📄 dllmain.cpp
字号:
/*____________________________________________________________________________
Copyright (C) 2002 PGP Corporation
All rights reserved.
$Id: DllMain.cpp,v 1.9 2002/08/28 02:06:10 wjb Exp $
____________________________________________________________________________*/
#include "pgpClassesConfig.h"
#include <commctrl.h>
#include <ole2.h>
#include "CPFLImpFactoryWin32.h"
#include "UModuleInstance.h"
#include "pgpDiskUI.h"
#include "CPGPdiskEngine.h"
#include "CUIImpFactoryWin32.h"
#include "CUISubsystemsWin32.h"
_USING_PGP
_UNNAMED_BEGIN
// Static variables
PGPBoolean EngineInitialized = FALSE;
PGPBoolean OLEInitialized = FALSE;
PGPUInt32 PGPdiskUIRefCount = 0;
_UNNAMED_END
// Dll startup and shutdown functions
PGPError
PGPdiskUIExport
PGPdiskUIInitLibrary()
{
PGPError error = kPGPError_NoErr;
try
{
if (PGPdiskUIRefCount++ == 0)
{
INITCOMMONCONTROLSEX initEx;
initEx.dwSize = sizeof(initEx);
initEx.dwICC = ICC_BAR_CLASSES | ICC_COOL_CLASSES |
ICC_LISTVIEW_CLASSES | ICC_PROGRESS_CLASS | ICC_UPDOWN_CLASS;
if (!InitCommonControlsEx(&initEx))
THROW_PGPERROR(kPGPError_Win32CommCtrlOpFailed);
LoadLibrary ("RichEd20.dll");
LoadLibrary ("RichEd20.dll");
switch (OleInitialize(NULL))
{
case S_OK:
case S_FALSE:
OLEInitialized = TRUE;
break;
default:
THROW_PGPERROR(kPGPError_Win32COMOpFailed);
break;
}
CPGPdiskEngine::InitLibrary();
EngineInitialized = TRUE;
CPFLImpFactoryWin32::CreateInstance();
CUIImpFactoryWin32::CreateInstance();
CUISubsystemsWin32::CreateInstance();
CUISubsystemsWin32::CreateSubsystems();
}
}
catch (CComboError& caughtErr)
{
error = caughtErr.pgpErr;
PGPdiskUICleanupLibrary(); // this is safe
}
return error;
}
void
PGPdiskUIExport
PGPdiskUICleanupLibrary()
{
try
{
if ((PGPdiskUIRefCount > 0) &&
(--PGPdiskUIRefCount == 0))
{
CUISubsystemsWin32::DestroySubsystems();
CUISubsystemsWin32::DestroyInstance();
CUIImpFactoryWin32::DestroyInstance();
CPFLImpFactoryWin32::DestroyInstance();
if (EngineInitialized)
{
CPGPdiskEngine::CleanupLibrary();
EngineInitialized = FALSE;
}
if (OLEInitialized)
{
OleUninitialize();
OLEInitialized = FALSE;
}
}
}
catch (CComboError&) { }
}
BOOL
WINAPI
DllMain(HINSTANCE hInstDll, DWORD dwReason, LPVOID lpvReserved)
{
switch (dwReason)
{
case DLL_PROCESS_ATTACH:
UModuleInstance::Set(hInstDll);
break;
case DLL_PROCESS_DETACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
break;
default:
pgpAssert(FALSE);
break;
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -