X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/57c208c5759da71a637f0f0f5b7d3dc3eda09c02..06298235850b7e576ef77a9a95b521534f18a4d9:/src/msw/main.cpp diff --git a/src/msw/main.cpp b/src/msw/main.cpp index 45db41d119..3f8833f408 100644 --- a/src/msw/main.cpp +++ b/src/msw/main.cpp @@ -1,36 +1,59 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: main.cpp +// Name: msw/main.cpp // Purpose: Main/DllMain // Author: Julian Smart // Modified by: // Created: 04/01/98 // RCS-ID: $Id$ // Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license +// Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// +// ============================================================================ +// declarations +// ============================================================================ + +// ---------------------------------------------------------------------------- +// headers +// ---------------------------------------------------------------------------- + #ifdef __GNUG__ -#pragma implementation + #pragma implementation #endif // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" #ifdef __BORLANDC__ -#pragma hdrstop + #pragma hdrstop #endif #include "wx/event.h" #include "wx/app.h" -#include + +#include "wx/msw/private.h" + +// ---------------------------------------------------------------------------- +// globals +// ---------------------------------------------------------------------------- + +HINSTANCE wxhInstance = 0; + +// ============================================================================ +// implementation +// ============================================================================ + +// ---------------------------------------------------------------------------- +// various entry points +// ---------------------------------------------------------------------------- // May wish not to have a DllMain or WinMain, e.g. if we're programming -// a Netscape plugin. -#ifndef NOMAIN +// a Netscape plugin or if we're writing a console application +#if wxUSE_GUI && !defined(NOMAIN) // NT defines APIENTRY, 3.x not #if !defined(APIENTRY) -#define APIENTRY FAR PASCAL + #define APIENTRY FAR PASCAL #endif ///////////////////////////////////////////////////////////////////////////////// @@ -40,27 +63,22 @@ #if !defined(_WINDLL) -#ifdef __TWIN32__ - -extern "C" -BOOL PASCAL WinMain(HANDLE hInstance, HANDLE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) - -#else - -#ifdef __WATCOMC__ -int PASCAL -#else -int APIENTRY -#endif +#if defined(__TWIN32__) || defined(__WXWINE__) + #define HINSTANCE HANDLE - WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) -#endif -// __TWIN32__ + extern "C" +#endif // WINE +int PASCAL WinMain(HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPSTR lpCmdLine, + int nCmdShow) { - return wxEntry((WXHINSTANCE) hInstance, (WXHINSTANCE) hPrevInstance, lpCmdLine, nCmdShow); + return wxEntry((WXHINSTANCE) hInstance, (WXHINSTANCE) hPrevInstance, + lpCmdLine, nCmdShow); } -#endif + +#endif // !defined(_WINDLL) ///////////////////////////////////////////////////////////////////////////////// // DllMain @@ -78,25 +96,39 @@ BOOL WINAPI DllMain (HANDLE hModule, DWORD fdwReason, LPVOID lpReserved) #endif { switch (fdwReason) - { - case DLL_PROCESS_ATTACH: - // Only call wxEntry if the application itself is part of the DLL. - // If only the wxWindows library is in the DLL, then the initialisation - // will be called when the application implicitly calls WinMain. + { + case DLL_PROCESS_ATTACH: + // Only call wxEntry if the application itself is part of the DLL. + // If only the wxWindows library is in the DLL, then the initialisation + // will be called when the application implicitly calls WinMain. #if !defined(WXMAKINGDLL) - return wxEntry((WXHINSTANCE) hModule); + return wxEntry((WXHINSTANCE) hModule); #endif - break; + break; - case DLL_PROCESS_DETACH: - default: - break; - } - return TRUE; + case DLL_PROCESS_DETACH: + default: + break; + } + return TRUE; } -#endif +#endif // _WINDLL -#endif +#endif // !NOMAIN + +// ---------------------------------------------------------------------------- +// global functions +// ---------------------------------------------------------------------------- + +HINSTANCE wxGetInstance() +{ + return wxhInstance; +} + +void wxSetInstance(HINSTANCE hInst) +{ + wxhInstance = hInst; +}