(defined(__HANDHELDPC__) && (_WIN32_WCE >= 500)))
#include "wx/dirdlg.h"
+#include "wx/modalhook.h"
#ifndef WX_PRECOMP
#include "wx/utils.h"
#if wxUSE_DYNLIB_CLASS && !defined(__WXWINCE__)
#define wxUSE_IFILEDIALOG 1
#else
- #define wxUSE_IFILEDIALOG
+ #define wxUSE_IFILEDIALOG 0
#endif
#if wxUSE_IFILEDIALOG
virtual HRESULT wxSTDCALL Compare(IShellItem*, DWORD, int*) = 0;
};
+#endif // #ifndef __IShellItem_INTERFACE_DEFINED__
+
+// Define this GUID in any case, even when __IShellItem_INTERFACE_DEFINED__ is
+// defined in the headers we might still not have it in the actual uuid.lib,
+// this happens with at least VC7 used with its original (i.e. not updated) SDK
+// and there is no harm in defining the GUID unconditionally.
DEFINE_GUID(IID_IShellItem,
0x43826D1E, 0xE718, 0x42EE, 0xBC, 0x55, 0xA1, 0xE2, 0x61, 0xC3, 0x7B, 0xFE);
-#endif // #ifndef __IShellItem_INTERFACE_DEFINED__
-
struct IShellItemFilter;
struct IFileDialogEvents;
int wxDirDialog::ShowModal()
{
+ WX_HOOK_MODAL_DIALOG();
+
wxWindow* const parent = GetParent();
WXHWND hWndParent = parent ? GetHwndOf(parent) : NULL;
#endif
bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT;
bi.lpfn = BrowseCallbackProc;
- bi.lParam = (LPARAM)m_path.wx_str(); // param for the callback
+ bi.lParam = wxMSW_CONV_LPARAM(m_path); // param for the callback
static const int verComCtl32 = wxApp::GetComCtl32Version();
REFIID,
void**);
- SHCreateItemFromParsingName_t s_pfnSHCreateItemFromParsingName = NULL;
+ SHCreateItemFromParsingName_t pfnSHCreateItemFromParsingName = NULL;
wxDynamicLibrary dllShell32;
if ( dllShell32.Load(wxS("shell32.dll"), wxDL_VERBATIM | wxDL_QUIET) )
{
- wxDL_INIT_FUNC(s_pfn, SHCreateItemFromParsingName, dllShell32);
+ wxDL_INIT_FUNC(pfn, SHCreateItemFromParsingName, dllShell32);
}
- if ( !s_pfnSHCreateItemFromParsingName )
+ if ( !pfnSHCreateItemFromParsingName )
{
wxLogLastError(wxS("SHCreateItemFromParsingName() not found"));
return wxID_NONE;
}
wxCOMPtr<IShellItem> folder;
- hr = s_pfnSHCreateItemFromParsingName(m_path.wc_str(),
+ hr = pfnSHCreateItemFromParsingName(m_path.wc_str(),
NULL,
wxIID_PPV_ARGS(IShellItem,
&folder));
}
SendMessage(hwnd, BFFM_SETSTATUSTEXT,
- 0, (LPARAM)strDir.wx_str());
+ 0, wxMSW_CONV_LPARAM(strDir));
}
}
break;