]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/volume.cpp
avoid flicker when setting the text which is the same as the current status bar pane...
[wxWidgets.git] / src / msw / volume.cpp
index c9e25c22d6461b370bde35483af0c3c226b6e0b5..086c3ee1d7939700ad0a0961639c1a2e8c73e7c7 100644 (file)
 
 #if wxUSE_FSVOLUME
 
 
 #if wxUSE_FSVOLUME
 
+#include "wx/volume.h"
+
 #ifndef WX_PRECOMP
     #if wxUSE_GUI
         #include "wx/icon.h"
     #endif
     #include "wx/intl.h"
 #ifndef WX_PRECOMP
     #if wxUSE_GUI
         #include "wx/icon.h"
     #endif
     #include "wx/intl.h"
+    #include "wx/hashmap.h"
 #endif // WX_PRECOMP
 
 #include "wx/dir.h"
 #endif // WX_PRECOMP
 
 #include "wx/dir.h"
-#include "wx/hashmap.h"
 #include "wx/dynlib.h"
 #include "wx/arrimpl.cpp"
 
 #include "wx/dynlib.h"
 #include "wx/arrimpl.cpp"
 
-#include "wx/volume.h"
-
 #include <shellapi.h>
 #include <shlobj.h>
 #include "wx/msw/missing.h"
 #include <shellapi.h>
 #include <shlobj.h>
 #include "wx/msw/missing.h"
@@ -49,7 +49,9 @@
 // Dynamic library function defs.
 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 // Dynamic library function defs.
 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
+#if wxUSE_DYNLIB_CLASS
 static wxDynamicLibrary s_mprLib;
 static wxDynamicLibrary s_mprLib;
+#endif
 
 typedef DWORD (WINAPI* WNetOpenEnumPtr)(DWORD, DWORD, DWORD, LPNETRESOURCE, LPHANDLE);
 typedef DWORD (WINAPI* WNetEnumResourcePtr)(HANDLE, LPDWORD, LPVOID, LPDWORD);
 
 typedef DWORD (WINAPI* WNetOpenEnumPtr)(DWORD, DWORD, DWORD, LPNETRESOURCE, LPHANDLE);
 typedef DWORD (WINAPI* WNetEnumResourcePtr)(HANDLE, LPDWORD, LPVOID, LPDWORD);
@@ -149,11 +151,13 @@ static unsigned GetBasicFlags(const wxChar* filename)
     // this information.
     //-----------------------------------------------------------------------
     SHFILEINFO fi;
     // this information.
     //-----------------------------------------------------------------------
     SHFILEINFO fi;
-    long rc;
-    rc = SHGetFileInfo(filename, 0, &fi, sizeof(fi), SHGFI_ATTRIBUTES );
+    long rc = SHGetFileInfo(filename, 0, &fi, sizeof(fi), SHGFI_ATTRIBUTES);
     if (!rc)
     {
     if (!rc)
     {
-        wxLogError(_("Cannot read typename from '%s'!"), filename);
+        // this error is not fatal, so don't show a message to the user about
+        // it, otherwise it would appear every time a generic directory picker
+        // dialog is used and there is a connected network drive
+        wxLogLastError(_T("SHGetFileInfo"));
     }
     else
     {
     }
     else
     {
@@ -260,7 +264,7 @@ static void BuildListFromNN(wxArrayString& list, NETRESOURCE* pResSrc,
                 {
                     wxString filename(pRes->lpRemoteName);
 
                 {
                     wxString filename(pRes->lpRemoteName);
 
-                    if (filename.Len())
+                    if (!filename.empty())
                     {
                         if (filename.Last() != '\\')
                             filename.Append('\\');
                     {
                         if (filename.Last() != '\\')
                             filename.Append('\\');
@@ -378,6 +382,7 @@ wxArrayString wxFSVolumeBase::GetVolumes(int flagsSet, int flagsUnset)
 {
     ::InterlockedExchange(&s_cancelSearch, FALSE);     // reset
 
 {
     ::InterlockedExchange(&s_cancelSearch, FALSE);     // reset
 
+#if wxUSE_DYNLIB_CLASS
     if (!s_mprLib.IsLoaded() && s_mprLib.Load(_T("mpr.dll")))
     {
 #ifdef UNICODE
     if (!s_mprLib.IsLoaded() && s_mprLib.Load(_T("mpr.dll")))
     {
 #ifdef UNICODE
@@ -389,6 +394,7 @@ wxArrayString wxFSVolumeBase::GetVolumes(int flagsSet, int flagsUnset)
 #endif
         s_pWNetCloseEnum = (WNetCloseEnumPtr)s_mprLib.GetSymbol(_T("WNetCloseEnum"));
     }
 #endif
         s_pWNetCloseEnum = (WNetCloseEnumPtr)s_mprLib.GetSymbol(_T("WNetCloseEnum"));
     }
+#endif
 
     wxArrayString list;
 
 
     wxArrayString list;