CAtlDllModuleT 類別
這個類別代表 DLL 的模組。
語法
template <class T>
class ATL_NO_VTABLE CAtlDllModuleT : public CAtlModuleT<T>
參數
T
衍生自 CAtlDllModuleT
的類別。
成員
公用建構函式
名稱 | 描述 |
---|---|
CAtlDllModuleT::CAtlDllModuleT | 建構函式。 |
CAtlDllModuleT::~CAtlDllModuleT | 解構函式。 |
公用方法
名稱 | 描述 |
---|---|
CAtlDllModuleT::D llCanUnloadNow | 測試是否可以卸除 DLL。 |
CAtlDllModuleT::D llGetClassObject | 傳回類別處理站。 |
CAtlDllModuleT::D llMain | 動態連結庫 (DLL) 的選擇性進入點。 |
CAtlDllModuleT::D llRegisterServer | 將專案新增至 DLL 中對象的系統登錄。 |
CAtlDllModuleT::D llUnregisterServer | 拿掉 DLL 中物件之系統登錄中的專案。 |
CAtlDllModuleT::GetClassObject | 傳回類別處理站。 DllGetClassObject 叫用。 |
備註
CAtlDllModuleT
代表動態連結庫 (DLL) 的模組,並提供所有 DLL 專案所使用的函式。 CAtlModuleT 類別的這個特製化包含註冊的支援。
如需 ATL 模組的詳細資訊,請參閱 ATL 模組類別。
繼承階層架構
CAtlDllModuleT
需求
標頭: atlbase.h
CAtlDllModuleT::CAtlDllModuleT
建構函式。
CAtlDllModuleT() throw();
CAtlDllModuleT::~CAtlDllModuleT
解構函式。
~CAtlDllModuleT() throw();
CAtlDllModuleT::D llCanUnloadNow
測試是否可以卸除 DLL。
HRESULT DllCanUnloadNow() throw();
傳回值
如果 DLL 可以卸除,則傳回S_OK;如果 DLL 無法卸除,則傳回S_FALSE。
CAtlDllModuleT::D llGetClassObject
傳回類別處理站。
HRESULT DllGetClassObject(
REFCLSID rclsid,
REFIID riid,
LPVOID* ppv) throw();
參數
rclsid
要建立之物件的 CLSID。
riid
所要求介面的 IID。
ppv
riid 所識別之介面指標的指標。 如果物件不支持這個介面, ppv 會設定為 NULL。
傳回值
傳回成功時S_OK,或在失敗時傳回錯誤 HRESULT。
CAtlDllModuleT::D llMain
動態連結庫 (DLL) 的選擇性進入點。
BOOL WINAPI DllMain(DWORD dwReason, LPVOID /* lpReserved*/) throw();
參數
dwReason
如果設定為 DLL_PROCESS_ATTACH,則會停用DLL_THREAD_ATTACH和DLL_THREAD_DETACH通知呼叫。
lpReserved
已保留。
傳回值
一律會傳回 TRUE。
備註
停用DLL_THREAD_ATTACH和DLL_THREAD_DETACH通知呼叫,對於具有許多 DLL、經常建立和刪除線程的多線程應用程式,以及其 DLL 不需要附件/卸離的這些線程層級通知,可能是有用的優化。
CAtlDllModuleT::D llRegisterServer
將專案新增至 DLL 中對象的系統登錄。
HRESULT DllRegisterServer(BOOL bRegTypeLib = TRUE) throw();
參數
bRegTypeLib
如果要註冊類型庫,則為TRUE。 預設值為 TRUE。
傳回值
傳回成功時S_OK,或在失敗時傳回錯誤 HRESULT。
CAtlDllModuleT::D llUnregisterServer
拿掉 DLL 中物件之系統登錄中的專案。
HRESULT DllUnregisterServer(BOOL bUnRegTypeLib = TRUE) throw();
參數
bUnRegTypeLib
如果類型庫要從登錄中移除,則為TRUE。 預設值為 TRUE。
傳回值
傳回成功時S_OK,或在失敗時傳回錯誤 HRESULT。
CAtlDllModuleT::GetClassObject
建立指定 CLSID 的物件。
HRESULT GetClassObject(
REFCLSID rclsid,
REFIID riid,
LPVOID* ppv) throw();
參數
rclsid
要建立之物件的 CLSID。
riid
所要求介面的 IID。
ppv
riid 所識別之介面指標的指標。 如果物件不支持這個介面, ppv 會設定為 NULL。
傳回值
傳回成功時S_OK,或在失敗時傳回錯誤 HRESULT。
備註
這個方法是由 CAtlDllModuleT::D llGetClassObject 所呼叫,並隨附於回溯相容性。