X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/27529614c292a298e67dd8db1f169c94a4df204c..520e470fdd0daef09c77938db642e4583933c90d:/src/msw/registry.cpp diff --git a/src/msw/registry.cpp b/src/msw/registry.cpp index 60296ca5ea..114169fad1 100644 --- a/src/msw/registry.cpp +++ b/src/msw/registry.cpp @@ -16,14 +16,6 @@ #pragma implementation "registry.h" #endif -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - // for compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -801,142 +793,3 @@ void RemoveTrailingSeparator(wxString& str) if ( !str.IsEmpty() && str.Last() == REG_SEPARATOR ) str.Truncate(str.Len() - 1); } - -// ============================================================================ -// global public functions -// ============================================================================ - -bool GetExtensionFromMimeType(wxString *pExt, const wxString& strMimeType) -{ - // @@@ VZ: I don't know of any official documentation which mentions this - // location, but as a matter of fact IE uses it, so why not we? - static const char *szMimeDbase = "MIME\\Database\\Content Type\\"; - - wxString strKey = szMimeDbase; - strKey << strMimeType; - - // suppress possible error messages - wxLogNull nolog; - wxRegKey key(wxRegKey::HKCR, strKey); - if ( key.Open() ) { - if ( key.QueryValue("Extension", *pExt) ) - return TRUE; - } - - // no such MIME type or no extension for it - return FALSE; -} - -bool GetMimeTypeFromExtension(wxString *pMimeType, const wxString& strExt) -{ - wxCHECK( !strExt.IsEmpty(), FALSE ); - - // add the leading point if necessary - wxString str; - if ( strExt[0] != '.' ) { - str = '.'; - } - str << strExt; - - // suppress possible error messages - wxLogNull nolog; - wxRegKey key(wxRegKey::HKCR, str); - if ( key.Open() ) { - if ( key.QueryValue("Content Type", *pMimeType) ) - return TRUE; - } - - // no such extension or no content-type - return FALSE; -} - -bool GetFileTypeFromExtension(wxString *pFileType, const wxString& strExt) -{ - wxCHECK( !strExt.IsEmpty(), FALSE ); - - // add the leading point if necessary - wxString str; - if ( strExt[0] != '.' ) { - str = '.'; - } - str << strExt; - - // suppress possible error messages - wxLogNull nolog; - wxRegKey key(wxRegKey::HKCR, str); - if ( key.Open() ) { - if ( key.QueryValue("", *pFileType) ) // it's the default value of the key - return TRUE; - } - - // no such extension or no value - return FALSE; -} - -bool GetFileTypeIcon(wxIcon *pIcon, const wxString& strFileType) -{ - wxCHECK( !strFileType.IsEmpty(), FALSE ); - - wxString strIconKey; - strIconKey << strFileType << REG_SEPARATOR << "DefaultIcon"; - - // suppress possible error messages - wxLogNull nolog; - wxRegKey key(wxRegKey::HKCR, strIconKey); - - if ( key.Open() ) { - wxString strIcon; - if ( key.QueryValue("", strIcon) ) { // it's the default value of the key - // the format is the following: , - // NB: icon index may be negative as well as positive and the full path - // may contain the environment variables inside '%' - wxString strFullPath = strIcon.Before(','), - strIndex = strIcon.Right(','); - - // index may be omitted, in which case Before(',') is empty and - // Right(',') is the whole string - if ( strFullPath.IsEmpty() ) { - strFullPath = strIndex; - strIndex = "0"; - } - - wxString strExpPath = wxExpandEnvVars(strFullPath); - int nIndex = atoi(strIndex); - - HICON hIcon = ExtractIcon(GetModuleHandle(NULL), strExpPath, nIndex); - switch ( (int)hIcon ) { - case 0: // means no icons were found - case 1: // means no such file or it wasn't a DLL/EXE/OCX/ICO/... - wxLogDebug("incorrect registry entry '%s': no such icon.", - GetFullName(&key)); - break; - - default: - pIcon->SetHICON((WXHICON)hIcon); - return TRUE; - } - } - } - - // no such file type or no value or incorrect icon entry - return FALSE; -} - -bool GetFileTypeDescription(wxString *pDesc, const wxString& strFileType) -{ - wxCHECK( !strFileType.IsEmpty(), FALSE ); - - // suppress possible error messages - wxLogNull nolog; - wxRegKey key(wxRegKey::HKCR, strFileType); - - if ( key.Open() ) { - if ( key.QueryValue("", *pDesc) ) // it's the default value of the key - return TRUE; - } - - // no such file type or no value - return FALSE; -} - -