CAtlModule 類別
這個類別提供數個 ATL 模組類別所使用的方法。
語法
class ATL_NO_VTABLE CAtlModule : public _ATL_MODULE
成員
公用建構函式
名稱 | 描述 |
---|---|
CAtlModule::CAtlModule | 建構函式。 |
CAtlModule::~CAtlModule | 解構函式。 |
公用方法
名稱 | 描述 |
---|---|
CAtlModule::AddCommonRGSReplacements | 覆寫這個方法,將參數新增至 ATL 登錄元件(登錄器)取代對應。 |
CAtlModule::AddTermFunc | 加入模組終止時要呼叫的新函式。 |
CAtlModule::GetGITPtr | 傳回全域介面指標。 |
CAtlModule::GetLockCount | 傳回鎖定計數。 |
CAtlModule::Lock | 遞增鎖定計數。 |
CAtlModule::Term | 釋放所有數據成員。 |
CAtlModule::Unlock | 減量鎖定計數。 |
CAtlModule::UpdateRegistryFromResourceD | 執行指定資源中包含的腳本,以註冊或取消註冊物件。 |
CAtlModule::UpdateRegistryFromResourceDHelper | 這個方法是由 UpdateRegistryFromResourceD 呼叫來執行登錄更新。 |
CAtlModule::UpdateRegistryFromResourceS | 執行指定資源中包含的腳本,以註冊或取消註冊物件。 這個方法會以靜態方式連結至 ATL 登錄元件。 |
公用資料成員
名稱 | 描述 |
---|---|
CAtlModule::m_libid | 包含目前模組的 GUID。 |
CAtlModule::m_pGIT | 全域介面數據表的指標。 |
備註
CAtlDllModuleT 類別、CAtlExeModuleT 類別和 CAtlServiceModuleT 類別分別支援 DLL 應用程式、EXE 應用程式和 Windows 服務。
如需 ATL 模組的詳細資訊,請參閱 ATL 模組類別。
這個類別會取代舊版 ATL 中使用的過時 CComModule 類別 。
繼承階層架構
CAtlModule
需求
標頭: atlbase.h
CAtlModule::AddCommonRGSReplacements
覆寫這個方法,將參數新增至 ATL 登錄元件(登錄器)取代對應。
virtual HRESULT AddCommonRGSReplacements(IRegistrarBase* /* pRegistrar*/) throw() = 0;
參數
pRegistrar
已保留。
傳回值
傳回成功時S_OK,或在失敗時傳回錯誤 HRESULT。
備註
可取代的參數可讓註冊機構用戶端指定運行時間數據。 若要這樣做,註冊機構會維護取代對應,它會在您的腳本中輸入與可取代參數相關聯的值。 登錄器會在運行時間建立這些專案。
如需詳細資訊,請參閱使用可取代參數主題(註冊器的預處理器)。
CAtlModule::AddTermFunc
加入模組終止時要呼叫的新函式。
HRESULT AddTermFunc(_ATL_TERMFUNC* pFunc, DWORD_PTR dw) throw();
參數
pFunc
要加入之函式的指標。
dw
傳遞至函式的使用者定義數據。
傳回值
傳回成功時S_OK,或在失敗時傳回錯誤 HRESULT。
CAtlModule::CAtlModule
建構函式。
CAtlModule() throw();
備註
初始化數據成員,並在模組的線程周圍起始重要區段。
CAtlModule::~CAtlModule
解構函式。
~CAtlModule() throw();
備註
釋放所有數據成員。
CAtlModule::GetGITPtr
擷取全域介面數據表的指標。
virtual HRESULT GetGITPtr(IGlobalInterfaceTable** ppGIT) throw();
參數
ppGIT
將接收全域介面數據表指標之變數的指標。
傳回值
傳回成功S_OK,或失敗時的錯誤碼。 如果 ppGIT 等於 NULL,則會傳回E_POINTER。
備註
如果全域介面數據表物件不存在,則會建立它,而且其位址會儲存在成員變數 CAtlModule::m_pGIT中。
在偵錯組建中,如果 ppGIT 等於NULL,或無法取得全域介面數據表指標,就會發生判斷提示錯誤。
如需全域介面數據表的相關信息,請參閱 IGlobalInterfaceTable 。
CAtlModule::GetLockCount
傳回鎖定計數。
virtual LONG GetLockCount() throw();
傳回值
傳回鎖定計數。 這個值對於診斷和偵錯可能很有用。
CAtlModule::Lock
遞增鎖定計數。
virtual LONG Lock() throw();
傳回值
遞增鎖定計數並傳回更新的值。 這個值對於診斷和偵錯可能很有用。
CAtlModule::m_libid
包含目前模組的 GUID。
static GUID m_libid;
CAtlModule::m_pGIT
全域介面數據表的指標。
IGlobalInterfaceTable* m_pGIT;
CAtlModule::Term
釋放所有數據成員。
void Term() throw();
備註
釋放所有數據成員。 解構函式會呼叫這個方法。
CAtlModule::Unlock
減量鎖定計數。
virtual LONG Unlock() throw();
傳回值
遞減鎖定計數並傳回更新的值。 這個值對於診斷和偵錯可能很有用。
CAtlModule::UpdateRegistryFromResourceD
執行指定資源中包含的腳本,以註冊或取消註冊物件。
HRESULT WINAPI UpdateRegistryFromResourceD(
UINT nResID,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();
HRESULT WINAPI UpdateRegistryFromResourceD(
LPCTSTR lpszRes,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();
參數
lpszRes
資源名稱。
nResID
資源標識碼。
bRegister
如果應該註冊物件,則為TRUE;否則為 FALSE。
pMapEntries
取代對應指標,儲存與腳本可取代參數相關聯的值。 ATL 會自動使用 %MODULE%。 若要使用其他可取代的參數,請參閱 CAtlModule::AddCommonRGSReplacements。 否則,請使用 NULL 預設值。
傳回值
傳回成功時S_OK,或在失敗時傳回錯誤 HRESULT。
備註
執行 lpszRes 或 nResID 所指定資源中包含的腳本。 如果 bRegister 為 TRUE,這個方法會在系統登錄中註冊對象,否則它會從登錄中移除物件。
若要以靜態方式連結至 ATL 登錄元件(登錄器),請參閱 CAtlModule::UpdateRegistryFromResourceS。
此方法會呼叫 CAtlModule::UpdateRegistryFromResourceDHelper 和 IRegistrar::ResourceUnregister。
CAtlModule::UpdateRegistryFromResourceDHelper
這個方法是由 UpdateRegistryFromResourceD
呼叫來執行登錄更新。
inline HRESULT WINAPI UpdateRegistryFromResourceDHelper(
LPCOLESTR lpszRes,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();
參數
lpszRes
資源名稱。
bRegister
指出是否應該註冊物件。
pMapEntries
取代對應指標,儲存與腳本可取代參數相關聯的值。 ATL 會自動使用 %MODULE%。 若要使用其他可取代的參數,請參閱 CAtlModule::AddCommonRGSReplacements。 否則,請使用 NULL 預設值。
傳回值
傳回成功時S_OK,或在失敗時傳回錯誤 HRESULT。
備註
這個方法提供 CAtlModule::UpdateRegistryFromResourceD 的實作。
CAtlModule::UpdateRegistryFromResourceS
執行指定資源中包含的腳本,以註冊或取消註冊物件。 這個方法會以靜態方式連結至 ATL 登錄元件。
HRESULT WINAPI UpdateRegistryFromResourceS(
UINT nResID,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();
HRESULT WINAPI UpdateRegistryFromResourceS(
LPCTSTR lpszRes,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();
參數
nResID
資源標識碼。
lpszRes
資源名稱。
bRegister
指出是否應該註冊資源腳本。
pMapEntries
取代對應指標,儲存與腳本可取代參數相關聯的值。 ATL 會自動使用 %MODULE%。 若要使用其他可取代的參數,請參閱 CAtlModule::AddCommonRGSReplacements。 否則,請使用 NULL 預設值。
傳回值
傳回成功時S_OK,或在失敗時傳回錯誤 HRESULT。
備註
類似於 CAtlModule::UpdateRegistryFromResourceD ,但 CAtlModule::UpdateRegistryFromResourceS
會建立 ATL 登錄元件(登錄器)的靜態連結。