X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/580ffdf4c03b47e37aaede43985ebb3a5b399162..96c9640205933ad0673d5af2c96af0816c50160c:/src/msw/dirdlg.cpp?ds=sidebyside diff --git a/src/msw/dirdlg.cpp b/src/msw/dirdlg.cpp index cdc1022464..d17cdc7f0f 100644 --- a/src/msw/dirdlg.cpp +++ b/src/msw/dirdlg.cpp @@ -72,11 +72,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; @@ -357,21 +361,21 @@ int wxDirDialog::ShowIFileDialog(WXHWND owner) 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 folder; - hr = s_pfnSHCreateItemFromParsingName(m_path.wc_str(), + hr = pfnSHCreateItemFromParsingName(m_path.wc_str(), NULL, wxIID_PPV_ARGS(IShellItem, &folder));