如何继承自CAtlDllModuleT,实现自定义初始化DLLMAIN

解决方案 »

  1.   

    很久以前写的一段代码,不知道对你有用不
    class CMyModule : public CAtlDllModuleT< CMyModule >
    {
    public :
    DECLARE_LIBID(LIBID_WanceUnitLib)
    DECLARE_REGISTRY_APPID_RESOURCEID(IDR_WANCEUNIT, "{D5BBC473-A2F2-4BDC-8A15-B999DA463248}")
    };CWanceUnitModule _AtlModule;// DLL Entry Point
    extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
    {
    hInstance;
        return _AtlModule.DllMain(dwReason, lpReserved); 
    }
    // Used to determine whether the DLL can be unloaded by OLE
    STDAPI DllCanUnloadNow(void)
    {
        return _AtlModule.DllCanUnloadNow();
    }
    // Returns a class factory to create an object of the requested type
    STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
    {
        return _AtlModule.DllGetClassObject(rclsid, riid, ppv);
    }
    // DllRegisterServer - Adds entries to the system registry
    STDAPI DllRegisterServer(void)
    {
        // registers object, typelib and all interfaces in typelib
        HRESULT hr = _AtlModule.DllRegisterServer();
    return hr;
    }
    // DllUnregisterServer - Removes entries from the system registry
    STDAPI DllUnregisterServer(void)
    {
    HRESULT hr = _AtlModule.DllUnregisterServer();
    return hr;
    }