1
/////////////////////////////////////////////////////////////////////////////
2
// Name: wx/msw/mimetype.h
3
// Purpose: classes and functions to manage MIME types
4
// Author: Vadim Zeitlin
7
// RCS-ID: $Id: mimetype.h,v 1.16 2004/08/30 10:18:43 ABX Exp $
8
// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
9
// Licence: wxWindows licence (part of wxExtra library)
10
/////////////////////////////////////////////////////////////////////////////
12
#ifndef _MIMETYPE_IMPL_H
13
#define _MIMETYPE_IMPL_H
15
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
16
#pragma interface "mimetype.h"
23
#include "wx/mimetype.h"
25
// ----------------------------------------------------------------------------
26
// wxFileTypeImpl is the MSW version of wxFileType, this is a private class
27
// and is never used directly by the application
28
// ----------------------------------------------------------------------------
30
class WXDLLIMPEXP_BASE wxFileTypeImpl
36
// one of these Init() function must be called (ctor can't take any
37
// arguments because it's common)
39
// initialize us with our file type name and extension - in this case
40
// we will read all other data from the registry
41
void Init(const wxString& strFileType, const wxString& ext);
43
// implement accessor functions
44
bool GetExtensions(wxArrayString& extensions);
45
bool GetMimeType(wxString *mimeType) const;
46
bool GetMimeTypes(wxArrayString& mimeTypes) const;
47
bool GetIcon(wxIconLocation *iconLoc) const;
48
bool GetDescription(wxString *desc) const;
49
bool GetOpenCommand(wxString *openCmd,
50
const wxFileType::MessageParameters& params) const;
51
bool GetPrintCommand(wxString *printCmd,
52
const wxFileType::MessageParameters& params) const;
54
size_t GetAllCommands(wxArrayString * verbs, wxArrayString * commands,
55
const wxFileType::MessageParameters& params) const;
59
// set an arbitrary command, ask confirmation if it already exists and
60
// overwriteprompt is true
61
bool SetCommand(const wxString& cmd,
63
bool overwriteprompt = true);
65
bool SetDefaultIcon(const wxString& cmd = wxEmptyString, int index = 0);
67
// this is called by Associate
68
bool SetDescription (const wxString& desc);
71
// helper function: reads the command corresponding to the specified verb
72
// from the registry (returns an empty string if not found)
73
wxString GetCommand(const wxChar *verb) const;
75
// get the registry path for the given verb
76
wxString GetVerbPath(const wxString& verb) const;
78
// check that the registry key for our extension exists, create it if it
79
// doesn't, return false if this failed
80
bool EnsureExtKeyExists();
82
wxString m_strFileType, // may be empty
85
// these methods are not publicly accessible (as wxMimeTypesManager
86
// doesn't know about them), and should only be called by Unassociate
88
bool RemoveOpenCommand();
89
bool RemoveCommand(const wxString& verb);
90
bool RemoveMimeType();
91
bool RemoveDefaultIcon();
92
bool RemoveDescription();
95
class WXDLLIMPEXP_BASE wxMimeTypesManagerImpl
98
// nothing to do here, we don't load any data but just go and fetch it from
99
// the registry when asked for
100
wxMimeTypesManagerImpl() { }
102
// implement containing class functions
103
wxFileType *GetFileTypeFromExtension(const wxString& ext);
104
wxFileType *GetOrAllocateFileTypeFromExtension(const wxString& ext);
105
wxFileType *GetFileTypeFromMimeType(const wxString& mimeType);
107
size_t EnumAllFileTypes(wxArrayString& mimetypes);
109
// this are NOPs under Windows
110
bool ReadMailcap(const wxString& WXUNUSED(filename), bool WXUNUSED(fallback) = true)
112
bool ReadMimeTypes(const wxString& WXUNUSED(filename))
115
// create a new filetype association
116
wxFileType *Associate(const wxFileTypeInfo& ftInfo);
118
// create a new filetype with the given name and extension
119
wxFileType *CreateFileType(const wxString& filetype, const wxString& ext);
122
#endif // wxUSE_MIMETYPE