From: Vadim Zeitlin Date: Thu, 9 Jun 2005 20:13:20 +0000 (+0000) Subject: don't statically link to SetMenuInfo(): it is not present in Win95/NT4 X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/9f7e1cff95db6b856f47b9a104358e50dec509e7?ds=inline don't statically link to SetMenuInfo(): it is not present in Win95/NT4 git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34617 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/msw/menu.cpp b/src/msw/menu.cpp index a4a350915f..4880a3807b 100644 --- a/src/msw/menu.cpp +++ b/src/msw/menu.cpp @@ -62,6 +62,10 @@ // other standard headers #include +#if wxUSE_OWNER_DRAWN && defined(MIIM_BITMAP) + #include "wx/dynlib.h" +#endif + #ifndef MNS_CHECKORBMP #define MNS_CHECKORBMP 0x04000000 #endif @@ -435,10 +439,19 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos) // case in wx API WinStruct mi; - mi.fMask = MIM_STYLE; - mi.dwStyle = MNS_CHECKORBMP; - if ( !::SetMenuInfo(GetHmenu(), &mi) ) - wxLogLastError(_T("SetMenuInfo(MNS_NOCHECK)")); + // don't call SetMenuInfo() directly, this would prevent + // the app from starting up under Windows 95/NT 4 + typedef BOOL (WINAPI *SetMenuInfo_t)(HMENU, MENUINFO *); + + wxDynamicLibrary dllUser(_T("user32")); + wxDYNLIB_FUNCTION(SetMenuInfo_t, SetMenuInfo, dllUser); + if ( pfnSetMenuInfo ) + { + mi.fMask = MIM_STYLE; + mi.dwStyle = MNS_CHECKORBMP; + if ( !(*pfnSetMenuInfo)(GetHmenu(), &mi) ) + wxLogLastError(_T("SetMenuInfo(MNS_NOCHECK)")); + } // tell the item that it's not really owner-drawn but only // needs to draw its bitmap, the rest is done by Windows