wxBase/GUI separation: 1st step, wxMSW should build, all the rest is broken
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21342 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: msw/main.cpp
|
||||
// Purpose: Main/DllMain
|
||||
// Purpose: WinMain/DllMain
|
||||
// Author: Julian Smart
|
||||
// Modified by:
|
||||
// Created: 04/01/98
|
||||
@@ -33,85 +33,74 @@
|
||||
|
||||
#include "wx/msw/private.h"
|
||||
|
||||
// Don't implement WinMain if we're building an MFC/wxWindows
|
||||
// hybrid app.
|
||||
// Don't implement WinMain if we're building an MFC/wxWindows hybrid app.
|
||||
#if wxUSE_MFC && !defined(NOMAIN)
|
||||
#define NOMAIN 1
|
||||
#define NOMAIN 1
|
||||
#endif
|
||||
|
||||
#ifdef __BORLANDC__
|
||||
// BC++ has to be special: its run-time expects the DLL entry point to be
|
||||
// named DllEntryPoint instead of the (more) standard DllMain
|
||||
#define DllMain DllEntryPoint
|
||||
#endif
|
||||
|
||||
#if defined(__WXMICROWIN__)
|
||||
#define HINSTANCE HANDLE
|
||||
#endif
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// function prototypes
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// from src/msw/app.cpp
|
||||
extern void WXDLLEXPORT wxEntryCleanup();
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// globals
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
HINSTANCE wxhInstance = 0;
|
||||
|
||||
// ============================================================================
|
||||
// implementation
|
||||
// implementation: various entry points
|
||||
// ============================================================================
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// various entry points
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// May wish not to have a DllMain or WinMain, e.g. if we're programming
|
||||
// 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
|
||||
#endif
|
||||
extern "C"
|
||||
{
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// ----------------------------------------------------------------------------
|
||||
// WinMain
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// Note that WinMain is also defined in dummy.obj, which is linked to
|
||||
// an application that is using the DLL version of wxWindows.
|
||||
|
||||
#if !defined(_WINDLL)
|
||||
|
||||
#if defined(__WXMICROWIN__)
|
||||
#define HINSTANCE HANDLE
|
||||
|
||||
extern "C"
|
||||
#endif
|
||||
|
||||
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 // !defined(_WINDLL)
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// DllMain
|
||||
|
||||
#if defined(_WINDLL)
|
||||
#else // _WINDLL
|
||||
|
||||
// DLL entry point
|
||||
|
||||
extern "C"
|
||||
#ifdef __BORLANDC__
|
||||
// SCD: I don't know why, but also OWL uses this function
|
||||
BOOL WINAPI DllEntryPoint (HANDLE hModule, DWORD fdwReason, LPVOID lpReserved)
|
||||
#else
|
||||
BOOL WINAPI DllMain (HANDLE hModule, DWORD fdwReason, LPVOID lpReserved)
|
||||
#endif
|
||||
BOOL WINAPI
|
||||
DllMain(HANDLE hModule, DWORD fdwReason, LPVOID WXUNUSED(lpReserved))
|
||||
{
|
||||
// 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.
|
||||
#ifndef WXMAKINGDLL
|
||||
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.
|
||||
return wxEntry((WXHINSTANCE) hModule);
|
||||
|
||||
case DLL_PROCESS_DETACH:
|
||||
@@ -124,18 +113,24 @@ BOOL WINAPI DllMain (HANDLE hModule, DWORD fdwReason, LPVOID lpReserved)
|
||||
(void)hModule;
|
||||
(void)fdwReason;
|
||||
#endif // !WXMAKINGDLL
|
||||
(void)lpReserved;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#endif // _WINDLL
|
||||
#endif // _WINDLL/!_WINDLL
|
||||
|
||||
} // extern "C"
|
||||
|
||||
#endif // !NOMAIN
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// global functions
|
||||
// global HINSTANCE
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#ifdef __WXBASE__
|
||||
|
||||
HINSTANCE wxhInstance = 0;
|
||||
|
||||
HINSTANCE wxGetInstance()
|
||||
{
|
||||
return wxhInstance;
|
||||
@@ -146,3 +141,5 @@ void wxSetInstance(HINSTANCE hInst)
|
||||
wxhInstance = hInst;
|
||||
}
|
||||
|
||||
#endif // __WXBASE__
|
||||
|
||||
|
Reference in New Issue
Block a user