X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2dc7764675dcf5166731f0172bc2fb6284a427ea..da36f5446f10eace61869a3e42672667f344e63b:/include/wx/msw/registry.h?ds=sidebyside diff --git a/include/wx/msw/registry.h b/include/wx/msw/registry.h index 23b507744f..62d2f9a3ca 100644 --- a/include/wx/msw/registry.h +++ b/include/wx/msw/registry.h @@ -6,28 +6,37 @@ // Created: 03.04.198 // RCS-ID: $Id$ // Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef _REGISTRY_H #define _REGISTRY_H +#ifdef __GNUG__ +#pragma interface "registry.h" +#endif + // ---------------------------------------------------------------------------- // mutable hack (see also registry.cpp) // ---------------------------------------------------------------------------- -#if USE_MUTABLE +#if wxUSE_MUTABLE #define MUTABLE mutable #else #define MUTABLE #endif // ---------------------------------------------------------------------------- -// forward decl for handle type +// types used in this module // ---------------------------------------------------------------------------- + +/* #ifndef HKEY_DEFINED #define HKEY_DEFINED #define HKEY unsigned long #endif +*/ + +typedef unsigned long ulong; // ---------------------------------------------------------------------------- // class wxRegKey encapsulates window HKEY handle @@ -77,11 +86,11 @@ public: // number of standard keys static const size_t nStdKeys; // get the name of a standard key - static const char *GetStdKeyName(uint key); + static const char *GetStdKeyName(size_t key); // get the short name of a standard key - static const char *GetStdKeyShortName(uint key); + static const char *GetStdKeyShortName(size_t key); // get StdKey from root HKEY - static StdKey GetStdKeyFromHkey(HKEY hkey); + static StdKey GetStdKeyFromHkey(WXHKEY hkey); // extacts the std key prefix from the string (return value) and // leaves only the part after it (i.e. modifies the string passed!) @@ -107,15 +116,28 @@ public: // the name is relative to the parent key void SetName(const wxRegKey& keyParent, const wxString& strKey); // hKey should be opened and will be closed in wxRegKey dtor - void SetHkey(HKEY hKey); + void SetHkey(WXHKEY hKey); // get infomation about the key // get the (full) key name. Abbreviate std root keys if bShortPrefix. - wxString GetName(bool bShortPrefix = true) const; + wxString GetName(bool bShortPrefix = TRUE) const; // return true if the key exists - bool Exists() const; + bool Exists() const; + // get the info about key (any number of these pointers may be NULL) + +#ifdef __GNUWIN32__ + bool GetKeyInfo(size_t *pnSubKeys, // number of subkeys + size_t *pnMaxKeyLen, // max len of subkey name + size_t *pnValues, // number of values + size_t *pnMaxValueLen) const; +#else + bool GetKeyInfo(ulong *pnSubKeys, // number of subkeys + ulong *pnMaxKeyLen, // max len of subkey name + ulong *pnValues, // number of values + ulong *pnMaxValueLen) const; +#endif // return true if the key is opened - bool IsOpened() const { return m_hKey != 0; } + bool IsOpened() const { return m_hKey != 0; } // for "if ( !key ) wxLogError(...)" kind of expressions operator bool() const { return m_dwLastError == 0; } @@ -124,7 +146,7 @@ public: // which need the key to be opened if the key is not opened yet) bool Open(); // create the key: will fail if the key already exists and bOkIfExists - bool Create(bool bOkIfExists = true); + bool Create(bool bOkIfExists = TRUE); // close the key (will be automatically done in dtor) bool Close(); @@ -181,12 +203,40 @@ private: wxRegKey(const wxRegKey& key); // not implemented wxRegKey& operator=(const wxRegKey& key); // not implemented - HKEY m_hKey, // our handle + WXHKEY m_hKey, // our handle m_hRootKey; // handle of the top key (i.e. StdKey) wxString m_strKey; // key name (relative to m_hRootKey) MUTABLE long m_dwLastError; // last error (0 if none) }; +// ---------------------------------------------------------------------------- +// high level functions working with the registry +// ---------------------------------------------------------------------------- + +// file extensions and MIME types +// ------------------------------ + +// Look for and return the extension (with leading '.') which corresponds to +// MIME type strMimeType in pExt. +// +// Return value: true if MIME type was found, false otherwise +bool GetExtensionFromMimeType(wxString *pExt, const wxString& strMimeType); + +// Look for MIME type of the given extension, return TRUE if found. +bool GetMimeTypeFromExtension(wxString *pMimeType, const wxString& strExt); + +// Get file type from extension (it's not the same thing: for example, for +// the extension .txt the default file type is txtfile), return FALSE if not +// found. +bool GetFileTypeFromExtension(wxString *pFileType, const wxString& strExt); + +// Get the default icon from file type +class wxIcon; +bool GetFileTypeIcon(wxIcon *pIcon, const wxString& strFileType); + +// Get the description of files of this type +bool GetFileTypeDescription(wxString *pDesc, const wxString& strFileType); + #endif //_REGISTRY_H