mirror of
https://github.com/python/cpython.git
synced 2025-12-15 21:44:50 +00:00
Recorded merge of revisions 81029 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines Untabify C files. Will watch buildbots. ........
This commit is contained in:
parent
bd25030019
commit
f95a1b3c53
248 changed files with 113361 additions and 113361 deletions
86
PC/dl_nt.c
86
PC/dl_nt.c
|
|
@ -3,7 +3,7 @@
|
|||
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
|
||||
be called, removing that burden (and possible source of frustration if
|
||||
forgotten) from the programmer.
|
||||
|
||||
*/
|
||||
|
|
@ -46,61 +46,61 @@ static PFN_RELEASEACTCTX pfnReleaseActCtx = NULL;
|
|||
|
||||
void _LoadActCtxPointers()
|
||||
{
|
||||
HINSTANCE hKernel32 = GetModuleHandleW(L"kernel32.dll");
|
||||
if (hKernel32)
|
||||
pfnGetCurrentActCtx = (PFN_GETCURRENTACTCTX) GetProcAddress(hKernel32, "GetCurrentActCtx");
|
||||
// If we can't load GetCurrentActCtx (ie, pre XP) , don't bother with the rest.
|
||||
if (pfnGetCurrentActCtx) {
|
||||
pfnActivateActCtx = (PFN_ACTIVATEACTCTX) GetProcAddress(hKernel32, "ActivateActCtx");
|
||||
pfnDeactivateActCtx = (PFN_DEACTIVATEACTCTX) GetProcAddress(hKernel32, "DeactivateActCtx");
|
||||
pfnAddRefActCtx = (PFN_ADDREFACTCTX) GetProcAddress(hKernel32, "AddRefActCtx");
|
||||
pfnReleaseActCtx = (PFN_RELEASEACTCTX) GetProcAddress(hKernel32, "ReleaseActCtx");
|
||||
}
|
||||
HINSTANCE hKernel32 = GetModuleHandleW(L"kernel32.dll");
|
||||
if (hKernel32)
|
||||
pfnGetCurrentActCtx = (PFN_GETCURRENTACTCTX) GetProcAddress(hKernel32, "GetCurrentActCtx");
|
||||
// If we can't load GetCurrentActCtx (ie, pre XP) , don't bother with the rest.
|
||||
if (pfnGetCurrentActCtx) {
|
||||
pfnActivateActCtx = (PFN_ACTIVATEACTCTX) GetProcAddress(hKernel32, "ActivateActCtx");
|
||||
pfnDeactivateActCtx = (PFN_DEACTIVATEACTCTX) GetProcAddress(hKernel32, "DeactivateActCtx");
|
||||
pfnAddRefActCtx = (PFN_ADDREFACTCTX) GetProcAddress(hKernel32, "AddRefActCtx");
|
||||
pfnReleaseActCtx = (PFN_RELEASEACTCTX) GetProcAddress(hKernel32, "ReleaseActCtx");
|
||||
}
|
||||
}
|
||||
|
||||
ULONG_PTR _Py_ActivateActCtx()
|
||||
{
|
||||
ULONG_PTR ret = 0;
|
||||
if (PyWin_DLLhActivationContext && pfnActivateActCtx)
|
||||
if (!(*pfnActivateActCtx)(PyWin_DLLhActivationContext, &ret)) {
|
||||
OutputDebugString("Python failed to activate the activation context before loading a DLL\n");
|
||||
ret = 0; // no promise the failing function didn't change it!
|
||||
}
|
||||
return ret;
|
||||
ULONG_PTR ret = 0;
|
||||
if (PyWin_DLLhActivationContext && pfnActivateActCtx)
|
||||
if (!(*pfnActivateActCtx)(PyWin_DLLhActivationContext, &ret)) {
|
||||
OutputDebugString("Python failed to activate the activation context before loading a DLL\n");
|
||||
ret = 0; // no promise the failing function didn't change it!
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
void _Py_DeactivateActCtx(ULONG_PTR cookie)
|
||||
{
|
||||
if (cookie && pfnDeactivateActCtx)
|
||||
if (!(*pfnDeactivateActCtx)(0, cookie))
|
||||
OutputDebugString("Python failed to de-activate the activation context\n");
|
||||
if (cookie && pfnDeactivateActCtx)
|
||||
if (!(*pfnDeactivateActCtx)(0, cookie))
|
||||
OutputDebugString("Python failed to de-activate the activation context\n");
|
||||
}
|
||||
|
||||
BOOL WINAPI DllMain (HANDLE hInst,
|
||||
ULONG ul_reason_for_call,
|
||||
LPVOID lpReserved)
|
||||
BOOL WINAPI DllMain (HANDLE hInst,
|
||||
ULONG ul_reason_for_call,
|
||||
LPVOID lpReserved)
|
||||
{
|
||||
switch (ul_reason_for_call)
|
||||
{
|
||||
case DLL_PROCESS_ATTACH:
|
||||
PyWin_DLLhModule = hInst;
|
||||
// 1000 is a magic number I picked out of the air. Could do with a #define, I spose...
|
||||
LoadString(hInst, 1000, dllVersionBuffer, sizeof(dllVersionBuffer));
|
||||
switch (ul_reason_for_call)
|
||||
{
|
||||
case DLL_PROCESS_ATTACH:
|
||||
PyWin_DLLhModule = hInst;
|
||||
// 1000 is a magic number I picked out of the air. Could do with a #define, I spose...
|
||||
LoadString(hInst, 1000, dllVersionBuffer, sizeof(dllVersionBuffer));
|
||||
|
||||
// and capture our activation context for use when loading extensions.
|
||||
_LoadActCtxPointers();
|
||||
if (pfnGetCurrentActCtx && pfnAddRefActCtx)
|
||||
if ((*pfnGetCurrentActCtx)(&PyWin_DLLhActivationContext))
|
||||
if (!(*pfnAddRefActCtx)(PyWin_DLLhActivationContext))
|
||||
OutputDebugString("Python failed to load the default activation context\n");
|
||||
break;
|
||||
// and capture our activation context for use when loading extensions.
|
||||
_LoadActCtxPointers();
|
||||
if (pfnGetCurrentActCtx && pfnAddRefActCtx)
|
||||
if ((*pfnGetCurrentActCtx)(&PyWin_DLLhActivationContext))
|
||||
if (!(*pfnAddRefActCtx)(PyWin_DLLhActivationContext))
|
||||
OutputDebugString("Python failed to load the default activation context\n");
|
||||
break;
|
||||
|
||||
case DLL_PROCESS_DETACH:
|
||||
if (pfnReleaseActCtx)
|
||||
(*pfnReleaseActCtx)(PyWin_DLLhActivationContext);
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
case DLL_PROCESS_DETACH:
|
||||
if (pfnReleaseActCtx)
|
||||
(*pfnReleaseActCtx)(PyWin_DLLhActivationContext);
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#endif /* Py_ENABLE_SHARED */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue