X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b9691677a052aefd7125169c91c413ead9a7fd97..cb28cc9e757a89926ab437141218db72973b655d:/src/msw/app.cpp diff --git a/src/msw/app.cpp b/src/msw/app.cpp index c9b2ee00af..84a91f04d7 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 @@ -100,16 +105,16 @@ extern void wxSetKeyboardHook(bool doIt); // NB: all "NoRedraw" classes must have the same names as the "normal" classes // with NR suffix - wxWindow::MSWCreate() supposes this #ifdef __WXWINCE__ - wxChar *wxCanvasClassName; - wxChar *wxCanvasClassNameNR; +WXDLLIMPEXP_CORE wxChar *wxCanvasClassName; +WXDLLIMPEXP_CORE wxChar *wxCanvasClassNameNR; #else -const wxChar *wxCanvasClassName = wxT("wxWindowClass"); -const wxChar *wxCanvasClassNameNR = wxT("wxWindowClassNR"); +WXDLLIMPEXP_CORE const wxChar *wxCanvasClassName = wxT("wxWindowClass"); +WXDLLIMPEXP_CORE const wxChar *wxCanvasClassNameNR = wxT("wxWindowClassNR"); #endif -const wxChar *wxMDIFrameClassName = wxT("wxMDIFrameClass"); -const wxChar *wxMDIFrameClassNameNoRedraw = wxT("wxMDIFrameClassNR"); -const wxChar *wxMDIChildFrameClassName = wxT("wxMDIChildFrameClass"); -const wxChar *wxMDIChildFrameClassNameNoRedraw = wxT("wxMDIChildFrameClassNR"); +WXDLLIMPEXP_CORE const wxChar *wxMDIFrameClassName = wxT("wxMDIFrameClass"); +WXDLLIMPEXP_CORE const wxChar *wxMDIFrameClassNameNoRedraw = wxT("wxMDIFrameClassNR"); +WXDLLIMPEXP_CORE const wxChar *wxMDIChildFrameClassName = wxT("wxMDIChildFrameClass"); +WXDLLIMPEXP_CORE const wxChar *wxMDIChildFrameClassNameNoRedraw = wxT("wxMDIChildFrameClassNR"); // ---------------------------------------------------------------------------- // private functions @@ -278,7 +283,7 @@ bool wxApp::Initialize(int& argc, wxChar **argv) // 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 ) + if ( wxGetOsVersion() != wxWINDOWS_NT && wxGetOsVersion() != wxWINDOWS_CE && wxGetOsVersion() != wxWINDOWS_SMARTPHONE && wxGetOsVersion() != wxWINDOWS_POCKETPC ) { // note that we can use MessageBoxW() as it's implemented even under // Win9x - OTOH, we can't use wxGetTranslation() because the file APIs @@ -299,27 +304,11 @@ bool wxApp::Initialize(int& argc, wxChar **argv) 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")); +#if defined(__SMARTPHONE__) || defined(__POCKETPC__) + SHInitExtraControls(); #endif -#endif - -#endif // wxUSE_OLE -#if wxUSE_CTL3D - if (!Ctl3dRegister(wxhInstance)) - wxLogError(wxT("Cannot register CTL3D")); - - Ctl3dAutoSubclass(wxhInstance); -#endif // wxUSE_CTL3D + wxOleInitialize(); RegisterWindowClasses(); @@ -496,13 +485,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 @@ -510,10 +493,6 @@ void wxApp::CleanUp() // unregister the classes now UnregisterWindowClasses(); -#if wxUSE_CTL3D - Ctl3dUnregister(wxhInstance); -#endif - delete wxWinHandleHash; wxWinHandleHash = NULL;