diff options
Diffstat (limited to 'NSCmpts/NSCmpts.cpp')
-rw-r--r-- | NSCmpts/NSCmpts.cpp | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/NSCmpts/NSCmpts.cpp b/NSCmpts/NSCmpts.cpp new file mode 100644 index 0000000..8dcaecf --- /dev/null +++ b/NSCmpts/NSCmpts.cpp @@ -0,0 +1,130 @@ +// NSCmpts.cpp : Implementation of DLL Exports. + + +// Note: Proxy/Stub Information +// To build a separate proxy/stub DLL, +// run nmake -f NSCmptsps.mk in the project directory. + +#include "stdafx.h" +#include "resource.h" +#include <initguid.h> +#include "NSCmpts.h" + +#include "NSCmpts_i.c" +#include "../common/interfaces.cpp" +#include "EmptyRecycleBin.h" +#include "EmptyTempFolder.h" +#include "DeleteSwapFile.h" +#include "RunScanDisk.h" +#include "WipefreeSpace.h" +#include "Backup.h" + +#include "..\Common\Defines.h" +#include "BackupSourceProp.h" +#include "BackupDestProp.h" +#include "BackupAdvancedProp.h" +#include "NightSecError.h" +#include "Encrypt.h" +#include "EncryptSourceProp.h" +#include "EncryptAdvancedProp.h" + +CComModule _Module; + +BEGIN_OBJECT_MAP(ObjectMap) + OBJECT_ENTRY(CLSID_EmptyRecycleBin, CEmptyRecycleBin) + OBJECT_ENTRY(CLSID_EmptyTempFolder, CEmptyTempFolder) + OBJECT_ENTRY(CLSID_DeleteSwapFile, CDeleteSwapFile) + OBJECT_ENTRY(CLSID_RunScanDisk, CRunScanDisk) + OBJECT_ENTRY(CLSID_WipefreeSpace, CWipefreeSpace) + OBJECT_ENTRY(CLSID_Backup, CBackup) + OBJECT_ENTRY(CLSID_BackupSourceProp, CBackupSourceProp) + OBJECT_ENTRY(CLSID_BackupDestProp, CBackupDestProp) + OBJECT_ENTRY(CLSID_BackupAdvancedProp, CBackupAdvancedProp) + OBJECT_ENTRY(CLSID_Encrypt, CEncrypt) + OBJECT_ENTRY(CLSID_EncryptSourceProp, CEncryptSourceProp) + OBJECT_ENTRY(CLSID_EncryptAdvancedProp, CEncryptAdvancedProp) +END_OBJECT_MAP() + +///////////////////////////////////////////////////////////////////////////// +// DLL Entry Point + +extern "C" +BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/) +{ + if (dwReason == DLL_PROCESS_ATTACH) + { + _Module.Init(ObjectMap, hInstance, &LIBID_NightSecCmpts); + DisableThreadLibraryCalls(hInstance); + + // Not mission critical (used only for drag drop) + OleInitialize(NULL); + } + else if (dwReason == DLL_PROCESS_DETACH) + { + _Module.Term(); + + // Not mission critical (used only for drag drop) + OleUninitialize(); + } + return TRUE; // ok +} + +///////////////////////////////////////////////////////////////////////////// +// Used to determine whether the DLL can be unloaded by OLE + +STDAPI DllCanUnloadNow(void) +{ + return (_Module.GetLockCount()==0) ? S_OK : S_FALSE; +} + +///////////////////////////////////////////////////////////////////////////// +// Returns a class factory to create an object of the requested type + +STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) +{ + return _Module.GetClassObject(rclsid, riid, ppv); +} + +///////////////////////////////////////////////////////////////////////////// +// DllRegisterServer - Adds entries to the system registry + +STDAPI DllRegisterServer(void) +{ + // <<<< Addition + // InstallShield Doesn't call this for the current thread + // And if we're using the _ATL_DLL (COM Based) we need this + HRESULT hr = CoInitialize(NULL); + // End >>>> + + // registers object, typelib and all interfaces in typelib + return _Module.RegisterServer(TRUE); + + // <<<< Addition + if(SUCCEEDED(hr)) + CoUninitialize(); + + return hr; + // End >>>> + +} + +///////////////////////////////////////////////////////////////////////////// +// DllUnregisterServer - Removes entries from the system registry + +STDAPI DllUnregisterServer(void) +{ + // <<<< Addition + HRESULT hr = CoInitialize(NULL); + // End >>>> + + return _Module.UnregisterServer(TRUE); + + // <<<< Addition + if(SUCCEEDED(hr)) + CoUninitialize(); + + return S_OK; + // End >>>> +} + + |