X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/21f60945831a6edad0f2101b6053a2c8213d5296..2d35020a8dd1a0908f4e76af323cc0d413d6b8c3:/src/common/filename.cpp diff --git a/src/common/filename.cpp b/src/common/filename.cpp index c5f7f9a8a3..02e83a3506 100644 --- a/src/common/filename.cpp +++ b/src/common/filename.cpp @@ -946,7 +946,7 @@ bool wxFileName::Normalize(int flags, m_dirs.Add(dir); } -#ifdef __WIN32__ +#if defined(__WIN32__) && !defined(__WXWINCE__) && wxUSE_OLE if ( (flags & wxPATH_NORM_SHORTCUT) ) { wxString filename; @@ -990,17 +990,28 @@ bool wxFileName::Normalize(int flags, // get the shortcut target // ---------------------------------------------------------------------------- -#if defined(__WIN32__) && !defined(__WXWINCE__) +// WinCE (3) doesn't have CLSID_ShellLink, IID_IShellLink definitions. +// The .lnk file is a plain text file so it should be easy to +// make it work. Hint from Google Groups: +// "If you open up a lnk file, you'll see a +// number, followed by a pound sign (#), followed by more text. The +// number is the number of characters that follows the pound sign. The +// characters after the pound sign are the command line (which _can_ +// include arguments) to be executed. Any path (e.g. \windows\program +// files\myapp.exe) that includes spaces needs to be enclosed in +// quotation marks." + +#if defined(__WIN32__) && !defined(__WXWINCE__) && wxUSE_OLE +// The following lines are necessary under WinCE +// #include "wx/msw/private.h" +// #include #include +#if defined(__WXWINCE__) +#include #endif -#ifdef __WIN32__ bool wxFileName::GetShortcutTarget(const wxString& shortcutPath, wxString& targetFilename, wxString* arguments) { -#ifdef __WXWINCE__ - // Not tested on WinCE, so don't compile yet - return shortcutPath; -#else wxString path, file, ext; wxSplitPath(shortcutPath, & path, & file, & ext); @@ -1022,7 +1033,7 @@ bool wxFileName::GetShortcutTarget(const wxString& shortcutPath, wxString& targe hres = psl->QueryInterface( IID_IPersistFile, (LPVOID *) &ppf); if (SUCCEEDED(hres)) { - WORD wsz[MAX_PATH]; + WCHAR wsz[MAX_PATH]; MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, shortcutPath.mb_str(), -1, wsz, MAX_PATH); @@ -1046,7 +1057,6 @@ bool wxFileName::GetShortcutTarget(const wxString& shortcutPath, wxString& targe } psl->Release(); return success; -#endif } #endif @@ -1973,25 +1983,25 @@ WX_DEFINE_EXPORTED_OBJARRAY(MacDefaultExtensionArray) ; MacDefaultExtensionArray gMacDefaultExtensions ; -static void MacEnsureDefaultExtensionsLoaded() +// load the default extensions +MacDefaultExtensionRecord gDefaults[] = { - if ( !gMacDefaultExtensionsInited ) - { + MacDefaultExtensionRecord( wxT("txt") , 'TEXT' , 'ttxt' ) , + MacDefaultExtensionRecord( wxT("tif") , 'TIFF' , '****' ) , + MacDefaultExtensionRecord( wxT("jpg") , 'JPEG' , '****' ) , +} ; - // load the default extensions - MacDefaultExtensionRecord defaults[1] = - { - MacDefaultExtensionRecord( wxT("txt") , 'TEXT' , 'ttxt' ) , - - } ; - // we could load the pc exchange prefs here too - - for ( size_t i = 0 ; i < WXSIZEOF( defaults ) ; ++i ) +static void MacEnsureDefaultExtensionsLoaded() +{ + if ( !gMacDefaultExtensionsInited ) { - gMacDefaultExtensions.Add( defaults[i] ) ; + // we could load the pc exchange prefs here too + for ( size_t i = 0 ; i < WXSIZEOF( gDefaults ) ; ++i ) + { + gMacDefaultExtensions.Add( gDefaults[i] ) ; + } + gMacDefaultExtensionsInited = true ; } - gMacDefaultExtensionsInited = true ; - } } bool wxFileName::MacSetTypeAndCreator( wxUint32 type , wxUint32 creator ) {