79 lines
2.1 KiB
C++
79 lines
2.1 KiB
C++
|
//+-------------------------------------------------------------------------
|
||
|
//
|
||
|
// Microsoft Windows
|
||
|
//
|
||
|
// Copyright (C) Microsoft Corporation, 1996 - 1999
|
||
|
//
|
||
|
// File: dll.cpp
|
||
|
//
|
||
|
// Core entry points for the DLL
|
||
|
//
|
||
|
//--------------------------------------------------------------------------
|
||
|
|
||
|
#include "aclpriv.h"
|
||
|
|
||
|
|
||
|
/*----------------------------------------------------------------------------
|
||
|
/ Globals
|
||
|
/----------------------------------------------------------------------------*/
|
||
|
|
||
|
HINSTANCE hModule = NULL;
|
||
|
HINSTANCE g_hGetUserLib = NULL;
|
||
|
|
||
|
UINT UM_SIDLOOKUPCOMPLETE = 0;
|
||
|
UINT g_cfDsSelectionList = 0;
|
||
|
UINT g_cfSidInfoList = 0;
|
||
|
|
||
|
|
||
|
/*-----------------------------------------------------------------------------
|
||
|
/ DllMain
|
||
|
/ -------
|
||
|
/ Main entry point. We are passed reason codes and assored other
|
||
|
/ information when loaded or closed down.
|
||
|
/
|
||
|
/ In:
|
||
|
/ hInstance = our instance handle
|
||
|
/ dwReason = reason code
|
||
|
/ pReserved = depends on the reason code.
|
||
|
/
|
||
|
/ Out:
|
||
|
/ -
|
||
|
/----------------------------------------------------------------------------*/
|
||
|
STDAPI_(BOOL)
|
||
|
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*pReserved*/)
|
||
|
{
|
||
|
switch (dwReason)
|
||
|
{
|
||
|
case DLL_PROCESS_ATTACH:
|
||
|
hModule = hInstance;
|
||
|
DebugProcessAttach();
|
||
|
TraceSetMaskFromRegKey(HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Windows NT\\CurrentVersion\\AclUI"));
|
||
|
#ifndef DEBUG
|
||
|
DisableThreadLibraryCalls(hInstance);
|
||
|
#endif
|
||
|
SHFusionInitializeFromModuleID(hInstance, SHFUSION_DEFAULT_RESOURCE_ID);
|
||
|
RegisterCheckListWndClass();
|
||
|
|
||
|
UM_SIDLOOKUPCOMPLETE = RegisterWindowMessage(TEXT("ACLUI SID Lookup Complete"));
|
||
|
#if(_WIN32_WINNT >= 0x0500)
|
||
|
g_cfDsSelectionList = RegisterClipboardFormat(CFSTR_DSOP_DS_SELECTION_LIST);
|
||
|
#endif
|
||
|
g_cfSidInfoList = RegisterClipboardFormat(CFSTR_ACLUI_SID_INFO_LIST);
|
||
|
break;
|
||
|
|
||
|
case DLL_PROCESS_DETACH:
|
||
|
FreeSidCache();
|
||
|
if (g_hGetUserLib)
|
||
|
FreeLibrary(g_hGetUserLib);
|
||
|
SHFusionUninitialize();
|
||
|
DebugProcessDetach();
|
||
|
break;
|
||
|
|
||
|
case DLL_THREAD_DETACH:
|
||
|
DebugThreadDetach();
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
return TRUE;
|
||
|
}
|