Path: blob/master/external/source/passivex/PassiveX.cpp
19516 views
#include "PassiveXLib.h"12#include <objbase.h>3#include <initguid.h>45#include "PassiveX_i.c"6#include "CPassiveX.h"78CComModule _Module;910BEGIN_OBJECT_MAP(ObjectMap)11OBJECT_ENTRY(CLSID_PassiveX, CPassiveX)12END_OBJECT_MAP()1314namespace ATL15{16void * __stdcall __AllocStdCallThunk()17{18return HeapAlloc( GetProcessHeap(), 0, sizeof(_stdcallthunk) );19}2021void __stdcall __FreeStdCallThunk( void * p )22{23HeapFree( GetProcessHeap(), 0, p );24}25}2627extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)28{29if (dwReason == DLL_PROCESS_ATTACH)30{31_Module.Init(ObjectMap, hInstance, &LIBID_PassiveXCOM);32DisableThreadLibraryCalls(hInstance);33}34else if (dwReason == DLL_PROCESS_DETACH)35_Module.Term();3637return TRUE;38}3940STDAPI DllCanUnloadNow(void)41{42return (_Module.GetLockCount()==0) ? S_OK : S_FALSE;43}4445STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)46{47return _Module.GetClassObject(rclsid, riid, ppv);48}4950STDAPI DllRegisterServer(void)51{52return _Module.RegisterServer(TRUE);53}5455STDAPI DllUnregisterServer(void)56{57return _Module.UnregisterServer(TRUE);58}596061