gusucode.com > 《精通matlab 7》包括配套光盘 > 配套光盘里的程序附件/Ex-37/com_test/src/com_test_dll.cpp
#include "mwcomtypes.h" #include "mclcommain.h" #include "com_testclass_com.hpp" #include "com_test_idl_i.c" #include "mwcomutil_i.c" #include "mwcomtypes_i.c" CMCLModule g_Module; mclEventMap g_EventMap; static _MCLOBJECT_MAP_ENTRY objectmap[] = { { &CLSID_com_testclass, Ccom_testclass::RegisterClass, Ccom_testclass::UnregisterClass, Ccom_testclass::GetClassObject, "com_testclass", "com_test.com_testclass", "com_test.com_testclass.1_0" }, { NULL, NULL, NULL, NULL, "", "", "" } }; extern "C" { BOOL WINAPI DllMain( HINSTANCE hInstance, DWORD dwReason, void *pv ) { return g_Module.InitMain(objectmap, &LIBID_com_test, 1, 0, hInstance, dwReason, pv); } HRESULT __stdcall DllCanUnloadNow() { return (g_Module.GetLockCount()==0) ? S_OK : S_FALSE; } HRESULT __stdcall DllGetClassObject(REFCLSID clsid, REFIID iid, void **ppv ) { return g_Module.GetClassObject( clsid, iid, ppv ); } HRESULT __stdcall DllRegisterServer() { return g_Module.UpdateRegistry( TRUE ); } HRESULT __stdcall DllUnregisterServer() { return g_Module.UpdateRegistry( FALSE ); } }