Re: Can I Initialize Windows Sockets in DllMain or CWinApp::InitIn
Why?
In order to understand the relation between DllMain and
WinApp::InitInstance, I have checked MFC source code. In C:\Program
Files\Microsoft Visual Studio\VC98\MFC\SRC\DLLMODUL.CPP (Line 72),
pApp->InitInstance() is called in DllMain as below. So I think the all
restriction which applies to DllMain ought to apply to InitInstance, too.
extern "C"
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID
/*lpReserved*/)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
BOOL bResult = FALSE;
#ifdef _AFXDLL
// wire up resources from core DLL
AfxCoreInitModule();
#endif
_AFX_THREAD_STATE* pState = AfxGetThreadState();
AFX_MODULE_STATE* pPrevModState = pState->m_pPrevModuleState;
// Initialize DLL's instance(/module) not the app's
if (!AfxWinInit(hInstance, NULL, _T(""), 0))
{
AfxWinTerm();
goto Cleanup; // Init Failed
}
// initialize the single instance DLL
CWinApp* pApp; pApp = AfxGetApp();
if (pApp != NULL && !pApp->InitInstance())
{
pApp->ExitInstance();
AfxWinTerm();
goto Cleanup; // Init Failed
}
...
}
"Scott McPhillips [MVP]" wrote:
happyjet wrote:
Can I Initialize Windows Sockets in DllMain or CWinApp::InitInstance? I think
the restriction about DllMain also applys to CWinApp::InitInstance.
All belowing are copied from MSDN Library. It is a contradiction!
There is no contradiction. InitInstance does not have the restrictions
that DLLMain has.
--
Scott McPhillips [VC++ MVP]