共用方式為


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 類別

繼承階層架構

_ATL_MODULE

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::UpdateRegistryFromResourceDHelperIRegistrar::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 登錄元件(登錄器)的靜態連結。

另請參閱

_ATL_MODULE
類別概觀
模組類別
登錄元件 (登錄器)