windows-nt/Source/XPSP1/NT/base/crts/crtw32/startup/dllmain.c
2020-09-26 16:20:57 +08:00

57 lines
1.9 KiB
C

/***
*dllmain.c - Dummy DllMain for user DLLs that have no notification handler
*
* Copyright (c) 1993-2001, Microsoft Corporation. All rights reserved.
*
*Purpose:
* This object goes into LIBC.LIB and LIBCMT.LIB and MSVCRT.LIB for use
* when linking a DLL with one of the three models of C run-time library.
* If the user does not provide a DllMain notification routine, this
* dummy handler will be linked in. It always returns TRUE (success).
*
*Revision History:
* 04-14-93 SKS Initial version
* 02-22-95 JCF Spliced _WIN32 & Mac versions.
* 04-06-95 SKS In LIBC.LIB and MSVCRT.LIB models, turn off thread
* attach and detach notifications to the current DLL.
* 05-17-99 PML Remove all Macintosh support.
*
******************************************************************************/
#include <oscalls.h>
#define _DECL_DLLMAIN /* include prototype of _pRawDllMain */
#include <process.h>
/***
*DllMain - dummy version DLLs linked with all 3 C Run-Time Library models
*
*Purpose:
* The routine DllMain is always called by _DllMainCrtStartup. If
* the user does not provide a routine named DllMain, this one will
* get linked in so that _DllMainCRTStartup has something to call.
*
* For the LIBC.LIB and MSVCRT.LIB models, the CRTL does not need
* per-thread notifications so if the user is ignoring them (default
* DllMain and _pRawDllMain == NULL), just turn them off. (WIN32-only)
*
*Entry:
*
*Exit:
*
*Exceptions:
*
******************************************************************************/
BOOL WINAPI DllMain(
HANDLE hDllHandle,
DWORD dwReason,
LPVOID lpreserved
)
{
#if !defined(_MT) || defined(CRTDLL)
if ( dwReason == DLL_PROCESS_ATTACH && ! _pRawDllMain )
DisableThreadLibraryCalls(hDllHandle);
#endif
return TRUE ;
}