mirror of
https://github.com/python/cpython
synced 2024-09-05 16:38:56 +00:00
48 lines
1.3 KiB
C
48 lines
1.3 KiB
C
/*
|
|
|
|
Entry point for the Windows NT DLL.
|
|
|
|
About the only reason for having this, is so initall() can automatically
|
|
be called, removing that burden (and possible source of frustration if
|
|
forgotten) from the programmer.
|
|
|
|
*/
|
|
|
|
#include "Python.h"
|
|
#include "windows.h"
|
|
|
|
#ifdef Py_ENABLE_SHARED
|
|
#ifdef MS_DLL_ID
|
|
// The string is available at build, so fill the buffer immediately
|
|
char dllVersionBuffer[16] = MS_DLL_ID;
|
|
#else
|
|
char dllVersionBuffer[16] = ""; // a private buffer
|
|
#endif
|
|
|
|
// Python Globals
|
|
HMODULE PyWin_DLLhModule = NULL;
|
|
const char *PyWin_DLLVersionString = dllVersionBuffer;
|
|
|
|
BOOL WINAPI DllMain (HANDLE hInst,
|
|
ULONG ul_reason_for_call,
|
|
LPVOID lpReserved)
|
|
{
|
|
switch (ul_reason_for_call)
|
|
{
|
|
case DLL_PROCESS_ATTACH:
|
|
PyWin_DLLhModule = hInst;
|
|
#ifndef MS_DLL_ID
|
|
// If we have MS_DLL_ID, we don't need to load the string.
|
|
// 1000 is a magic number I picked out of the air. Could do with a #define, I spose...
|
|
LoadString(hInst, 1000, dllVersionBuffer, sizeof(dllVersionBuffer));
|
|
#endif
|
|
break;
|
|
|
|
case DLL_PROCESS_DETACH:
|
|
break;
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
#endif /* Py_ENABLE_SHARED */
|