You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.3 KiB
61 lines
1.3 KiB
//
|
|
// init.cpp
|
|
//
|
|
|
|
#include "private.h"
|
|
#include "globals.h"
|
|
#include "immxutil.h"
|
|
#include "osver.h"
|
|
#include "mui.h"
|
|
|
|
DECLARE_OSVER();
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// DllInit
|
|
//
|
|
// Called on our first CoCreate. Use this function to do initialization that
|
|
// would be unsafe during process attach, like anything requiring a LoadLibrary.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
BOOL DllInit(void)
|
|
{
|
|
BOOL fRet = TRUE;
|
|
|
|
EnterCriticalSection(GetServerCritSec());
|
|
|
|
if (DllRefCount() != 1)
|
|
goto Exit;
|
|
|
|
fRet = TFInitLib();
|
|
InitOSVer();
|
|
|
|
Exit:
|
|
LeaveCriticalSection(GetServerCritSec());
|
|
|
|
return fRet;
|
|
}
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// DllUninit
|
|
//
|
|
// Called after the dll ref count drops to zero. Use this function to do
|
|
// uninitialization that would be unsafe during process deattach, like
|
|
// FreeLibrary calls.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
void DllUninit(void)
|
|
{
|
|
EnterCriticalSection(GetServerCritSec());
|
|
|
|
if (DllRefCount() != 0)
|
|
goto Exit;
|
|
|
|
TFUninitLib();
|
|
MuiFlushDlls(g_hInst);
|
|
|
|
Exit:
|
|
LeaveCriticalSection(GetServerCritSec());
|
|
}
|