X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6f3320bf3ddc8b06e9b291105948b0f97a6408a2..12bb29f5432174ecbd65549bda832d70d34a98ae:/src/msw/dirdlg.cpp diff --git a/src/msw/dirdlg.cpp b/src/msw/dirdlg.cpp index df4e4ddb54..314299db91 100644 --- a/src/msw/dirdlg.cpp +++ b/src/msw/dirdlg.cpp @@ -30,6 +30,7 @@ (defined(__HANDHELDPC__) && (_WIN32_WCE >= 500))) #include "wx/dirdlg.h" +#include "wx/modalhook.h" #ifndef WX_PRECOMP #include "wx/utils.h" @@ -50,7 +51,7 @@ #if wxUSE_DYNLIB_CLASS && !defined(__WXWINCE__) #define wxUSE_IFILEDIALOG 1 #else - #define wxUSE_IFILEDIALOG + #define wxUSE_IFILEDIALOG 0 #endif #if wxUSE_IFILEDIALOG @@ -72,11 +73,15 @@ struct IShellItem : public IUnknown 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; @@ -216,6 +221,8 @@ void wxDirDialog::SetPath(const wxString& path) int wxDirDialog::ShowModal() { + WX_HOOK_MODAL_DIALOG(); + wxWindow* const parent = GetParent(); WXHWND hWndParent = parent ? GetHwndOf(parent) : NULL; @@ -259,7 +266,7 @@ int wxDirDialog::ShowSHBrowseForFolder(WXHWND owner) #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(); @@ -486,7 +493,7 @@ BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lp, LPARAM pData) } SendMessage(hwnd, BFFM_SETSTATUSTEXT, - 0, (LPARAM)strDir.wx_str()); + 0, wxMSW_CONV_LPARAM(strDir)); } } break;