X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/06d1d10faf9d2ced2a27156b52e6f3d710a0dd40..b9efe021b554fa3967d1442cf758435c5cd5ae8f:/src/msw/app.cpp diff --git a/src/msw/app.cpp b/src/msw/app.cpp index 2cf9c66e86..529d6688c0 100644 --- a/src/msw/app.cpp +++ b/src/msw/app.cpp @@ -54,6 +54,7 @@ #include "wx/dynlib.h" #include "wx/msw/private.h" +#include "wx/msw/ole/oleutils.h" #if wxUSE_TOOLTIPS #include "wx/tooltip.h" @@ -67,6 +68,10 @@ #define wxUSE_OLE 0 #endif // broken compilers +#if defined(__POCKETPC__) || defined(__SMARTPHONE__) +#include +#endif + #if wxUSE_OLE #include #endif @@ -81,6 +86,7 @@ #include "wx/msw/wince/missing.h" #endif +// For DLLVER_PLATFORM_WINDOWS #if (!defined(__MINGW32__) || wxCHECK_W32API_VERSION( 2, 0 )) && \ !defined(__CYGWIN__) && !defined(__DIGITALMARS__) && !defined(__WXWINCE__) && \ (!defined(_MSC_VER) || (_MSC_VER > 1100)) @@ -274,45 +280,15 @@ bool wxApp::Initialize(int& argc, wxChar **argv) } #endif - // the first thing to do is to check if we're trying to run an Unicode - // program under Win9x w/o MSLU emulation layer - if so, abort right now - // as it has no chance to work -#if wxUSE_UNICODE && !wxUSE_UNICODE_MSLU - if ( wxGetOsVersion() != wxWINDOWS_NT && wxGetOsVersion() != wxWINDOWS_CE ) - { - // note that we can use MessageBoxW() as it's implemented even under - // Win9x - OTOH, we can't use wxGetTranslation() because the file APIs - // used by wxLocale are not - ::MessageBox - ( - NULL, - _T("This program uses Unicode and requires Windows NT/2000/XP/CE.\nProgram aborted."), - _T("wxWidgets Fatal Error"), - MB_ICONERROR | MB_OK - ); - - return false; - } -#endif // wxUSE_UNICODE && !wxUSE_UNICODE_MSLU - #if defined(__WIN95__) && !defined(__WXMICROWIN__) InitCommonControls(); #endif // __WIN95__ -#if wxUSE_OLE || wxUSE_DRAG_AND_DROP - -#if wxUSE_OLE - // we need to initialize OLE library -#ifdef __WXWINCE__ - if ( FAILED(::CoInitializeEx(NULL, COINIT_MULTITHREADED)) ) - wxLogError(_("Cannot initialize OLE")); -#else - if ( FAILED(::OleInitialize(NULL)) ) - wxLogError(_("Cannot initialize OLE")); -#endif +#if defined(__SMARTPHONE__) || defined(__POCKETPC__) + SHInitExtraControls(); #endif -#endif // wxUSE_OLE + wxOleInitialize(); RegisterWindowClasses(); @@ -489,13 +465,7 @@ void wxApp::CleanUp() wxCleanUpPenWin(); #endif -#if wxUSE_OLE -#ifdef __WXWINCE__ - ::CoUninitialize(); -#else - ::OleUninitialize(); -#endif -#endif + wxOleUninitialize(); // for an EXE the classes are unregistered when it terminates but DLL may // be loaded several times (load/unload/load) into the same process in @@ -621,7 +591,17 @@ int wxApp::GetComCtl32Version() // if so, then we can check for the version if ( dllComCtl32.IsLoaded() ) { -#ifdef DLLVER_PLATFORM_WINDOWS +#ifndef DLLVER_PLATFORM_WINDOWS + typedef struct _DllVersionInfo + { + DWORD cbSize; + DWORD dwMajorVersion; // Major version + DWORD dwMinorVersion; // Minor version + DWORD dwBuildNumber; // Build number + DWORD dwPlatformID; // DLLVER_PLATFORM_* + } DLLVERSIONINFO; + typedef HRESULT (CALLBACK* DLLGETVERSIONPROC)(DLLVERSIONINFO *); +#endif // try to use DllGetVersion() if available in _headers_ wxDYNLIB_FUNCTION( DLLGETVERSIONPROC, DllGetVersion, dllComCtl32 ); if ( pfnDllGetVersion ) @@ -643,7 +623,6 @@ int wxApp::GetComCtl32Version() dvi.dwMinorVersion; } } -#endif // if DllGetVersion() is unavailable either during compile or // run-time, try to guess the version otherwise