filename, // name
mode == Read ? GENERIC_READ // access mask
: GENERIC_WRITE,
- 0, // no sharing
+ FILE_SHARE_READ | // sharing mode
+ FILE_SHARE_WRITE, // (allow everything)
NULL, // no secutity attr
OPEN_EXISTING, // creation disposition
0, // no flags
}
#elif defined(__WINDOWS__) && !defined(__WXMICROWIN__)
-#ifdef __WIN32__
+
if ( dir.empty() )
{
if ( !::GetTempPath(MAX_PATH, wxStringBuffer(dir, MAX_PATH + 1)) )
path.clear();
}
-#else // Win16
- if ( !::GetTempFileName(NULL, prefix, 0, wxStringBuffer(path, 1025)) )
- {
- path.clear();
- }
-#endif // Win32/16
#else // !Windows
if ( dir.empty() )
m_dirs.Add(dir);
}
-#ifdef __WIN32__
+#if defined(__WIN32__) && !defined(__WXWINCE__) && wxUSE_OLE
if ( (flags & wxPATH_NORM_SHORTCUT) )
{
wxString filename;
{
// VZ: expand env vars here too?
+ m_volume.MakeLower();
m_name.MakeLower();
m_ext.MakeLower();
}
// 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 <ole2.h>
#include <shlobj.h>
+#if defined(__WXWINCE__)
+#include <shlguid.h>
#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);
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);
}
psl->Release();
return success;
-#endif
}
#endif
// get cwd only once - small time saving
wxString cwd = wxGetCwd();
- fn1.Normalize(wxPATH_NORM_ALL & ~wxPATH_NORM_CASE, cwd, format);
- fn2.Normalize(wxPATH_NORM_ALL & ~wxPATH_NORM_CASE, cwd, format);
+ fn1.Normalize(wxPATH_NORM_ALL | wxPATH_NORM_CASE, cwd, format);
+ fn2.Normalize(wxPATH_NORM_ALL | wxPATH_NORM_CASE, cwd, format);
if ( fn1.GetFullPath() == fn2.GetFullPath() )
return true;
size_t posLastDot = fullpath.find_last_of(wxFILE_SEP_EXT);
size_t posLastSlash = fullpath.find_last_of(sepPath);
+ // check whether this dot occurs at the very beginning of a path component
if ( (posLastDot != wxString::npos) &&
- ((format == wxPATH_UNIX) || (format == wxPATH_VMS)) )
- {
- if ( (posLastDot == 0) ||
- (fullpath[posLastDot - 1] == sepPath[0u] ) )
+ (posLastDot == 0 ||
+ IsPathSeparator(fullpath[posLastDot - 1]) ||
+ (format == wxPATH_VMS && fullpath[posLastDot - 1] == _T(']'))) )
{
- // under Unix and VMS, dot may be (and commonly is) the first
+ // dot may be (and commonly -- at least under Unix -- is) the first
// character of the filename, don't treat the entire filename as
// extension in this case
posLastDot = wxString::npos;
}
- }
// if we do have a dot and a slash, check that the dot is in the name part
if ( (posLastDot != wxString::npos) &&
MacDefaultExtensionArray gMacDefaultExtensions ;
-static void MacEnsureDefaultExtensionsLoaded()
+// load the default extensions
+MacDefaultExtensionRecord gDefaults[] =
{
- if ( !gMacDefaultExtensionsInited )
- {
-
- // load the default extensions
- MacDefaultExtensionRecord defaults[1] =
- {
- MacDefaultExtensionRecord( wxT("txt") , 'TEXT' , 'ttxt' ) ,
-
- } ;
- // we could load the pc exchange prefs here too
+ MacDefaultExtensionRecord( wxT("txt") , 'TEXT' , 'ttxt' ) ,
+ MacDefaultExtensionRecord( wxT("tif") , 'TIFF' , '****' ) ,
+ MacDefaultExtensionRecord( wxT("jpg") , 'JPEG' , '****' ) ,
+} ;
- 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 )
{