Module 類別
表示相關物件的集合。
語法
template<ModuleType moduleType>
class Module;
template<>
class Module<InProc> : public Details::ModuleBase;
template<>
class Module<OutOfProc> : public Module<InProc>;
參數
moduleType
一或多個 ModuleType 列舉值的組合。
成員
受保護的類別
名稱 | 描述 |
---|---|
Module::GenericReleaseNotifier | 釋放目前模組中的最後一個物件時,叫用事件處理程式。 事件處理程式是在 Lambda、functor 或指針對函式上指定。 |
Module::MethodReleaseNotifier | 釋放目前模組中的最後一個物件時,叫用事件處理程式。 事件處理程式是由物件及其指向 a 方法成員的指標所指定。 |
Module::ReleaseNotifier | 釋放模組中的最後一個物件時,叫用事件處理程式。 |
公用建構函式
名稱 | 描述 |
---|---|
模組::~模組 | 將類別的 Module 目前實例取消初始化。 |
受保護的建構函式
名稱 | 描述 |
---|---|
Module::Module | 初始化 Module 類別的新執行個體。 |
公用方法
名稱 | 描述 |
---|---|
Module::Create | 建立模組的實例。 |
Module::D ecrementObjectCount | 遞減模組所追蹤的物件數目。 |
Module::GetActivationFactory | 取得模組的啟用處理站。 |
Module::GetClassObject | 擷取類別處理站的快取。 |
Module::GetModule | 建立模組的實例。 |
Module::GetObjectCount | 擷取此模組所管理的物件數目。 |
Module::IncrementObjectCount | 遞增模組所追蹤的物件數目。 |
Module::RegisterCOMObject | 註冊一或多個 COM 物件,讓其他應用程式可以連線到它們。 |
Module::RegisterObjects | 註冊 COM 或 Windows 執行階段 物件,讓其他應用程式可以連線到它們。 |
Module::RegisterWinRTObject | 註冊一或多個 Windows 執行階段 物件,讓其他應用程式可以連線到它們。 |
Module::Terminate | 導致模組具現化的所有處理站關閉。 |
Module::UnregisterCOMObject | 取消註冊一或多個 COM 物件,以防止其他應用程式連線到它們。 |
Module::UnregisterObjects | 取消註冊指定模組中的物件,讓其他應用程式無法連線到它們。 |
Module::UnregisterWinRTObject | 取消註冊一或多個 Windows 執行階段 物件,讓其他應用程式無法連線到它們。 |
受保護的方法
名稱 | 描述 |
---|---|
Module::Create | 建立模組的實例。 |
受保護的資料成員
名稱 | 描述 |
---|---|
Module::objectCount_ | 追蹤已使用 Make 函式建立的類別數目。 |
Module::releaseNotifier_ | 保存物件的指標 ReleaseNotifier 。 |
巨集
名稱 | 描述 |
---|---|
ActivatableClass | 填入內部快取,其中包含可建立指定類別實例的處理站。 此巨集指定預設處理站和群組識別元參數。 |
ActivatableClassWithFactory | 填入內部快取,其中包含可建立指定類別實例的處理站。 此巨集可讓您指定特定的 Factory 參數。 |
ActivatableClassWithFactoryEx | 填入內部快取,其中包含可建立指定類別實例的處理站。 此巨集可讓您指定特定的處理站和群組標識符參數。 |
繼承階層架構
ModuleBase
Module
Module
需求
標頭: module.h
命名空間: Microsoft::WRL
模組::~模組
將類別的 Module
目前實例取消初始化。
virtual ~Module();
Module::Create
建立模組的實例。
WRL_NOTHROW static Module& Create();
template<typename T>
WRL_NOTHROW static Module& Create(
T callback
);
template<typename T>
WRL_NOTHROW static Module& Create(
_In_ T* object,
_In_ void (T::* method)()
);
參數
T
模組類型。
回調
在釋放模組的最後一個實例物件時呼叫。
object
物件和方法參數會結合使用。 當模組中的最後一個實例對象發行時,指向最後一個實例物件。
method
物件和方法參數會結合使用。 指向釋放模組中最後一個實例物件時,最後一個實例物件的方法。
傳回值
模組的參考。
Module::D ecrementObjectCount
遞減模組所追蹤的物件數目。
virtual long DecrementObjectCount();
傳回值
遞減作業之前的計數。
Module::GetActivationFactory
取得模組的啟用處理站。
WRL_NOTHROW HRESULT GetActivationFactory(
_In_ HSTRING pActivatibleClassId,
_Deref_out_ IActivationFactory **ppIFactory,
wchar_t* serverName = nullptr
);
參數
pActivatibleClassId
運行時間類別的 IID。
ppIFactory
指定運行時間類別的 IActivationFactory。
serverName
目前模組中類別處理站子集的名稱。 指定在 ActivatableClassWithFactoryEx 巨集中使用的伺服器名稱,或指定 nullptr
以取得預設伺服器名稱。
傳回值
如果成功,S_OK;否則,GetActivationFactory 所傳回的 HRESULT。
Module::GetClassObject
擷取類別處理站的快取。
HRESULT GetClassObject(
REFCLSID clsid,
REFIID riid,
_Deref_out_ void **ppv,
wchar_t* serverName = nullptr
);
參數
clsid
類別標識碼。
riid
您要求的介面識別碼。
ppv
傳回物件的指標。
serverName
、 ActivatableClassWithFactoryEx
或 ActivatableClass
巨集 中指定的ActivatableClassWithFactory
伺服器名稱;或nullptr
取得預設伺服器名稱。
傳回值
備註
僅針對 COM 使用這個方法,而非 Windows 執行階段。 這個方法只會 IClassFactory
公開方法。
Module::GetModule
建立模組的實例。
static Module& GetModule();
WRL_NOTHROW static Module& GetModule();
傳回值
模組的參考。
Module::GetObjectCount
擷取此模組所管理的物件數目。
virtual long GetObjectCount() const;
傳回值
此模組所管理的物件目前數目。
Module::IncrementObjectCount
遞增模組所追蹤的物件數目。
virtual long IncrementObjectCount();
傳回值
遞增作業之前的計數。
Module::Module
初始化 Module
類別的新執行個體。
Module();
備註
此建構函式受到保護,且無法使用 關鍵詞呼叫 new
。 請改為呼叫 Module::GetModule 或 Module::Create。
Module::objectCount_
追蹤已使用 Make 函式建立的類別數目。
volatile long objectCount_;
Module::RegisterCOMObject
註冊一或多個 COM 物件,讓其他應用程式可以連線到它們。
WRL_NOTHROW virtual HRESULT RegisterCOMObject(
const wchar_t* serverName,
IID* clsids,
IClassFactory** factories,
DWORD* cookies,
unsigned int count);
參數
serverName
伺服器的完整名稱。
clsids
要註冊的 CLSID 陣列。
工廠
發行可用性之類別物件的 IUnknown 介面陣列。
餅乾
作業完成時,識別已註冊之類別物件的值指標陣列。 這些值稍後會使用來撤銷註冊。
計數
要註冊的 CLSID 數目。
傳回值
如果成功,S_OK;否則,HRESULT,例如CO_E_OBJISREG,表示作業失敗的原因。
備註
COM 物件會向 CLSCTX 列舉的CLSCTX_LOCAL_SERVER列舉值註冊。
與已註冊對象的連接類型是由目前 舒適旗 標範本參數和 REGCLS 列舉值的REGCLS_SUSPENDED列舉值的組合所指定。
Module::RegisterObjects
註冊 COM 或 Windows 執行階段 物件,讓其他應用程式可以連線到它們。
HRESULT RegisterObjects(
ModuleBase* module,
const wchar_t* serverName);
參數
module
COM或 Windows 執行階段 對象的陣列。
serverName
建立物件的伺服器名稱。
傳回值
如果成功,S_OK;否則,表示作業失敗原因的 HRESULT。
Module::RegisterWinRTObject
註冊一或多個 Windows 執行階段 物件,讓其他應用程式可以連線到它們。
HRESULT RegisterWinRTObject(const wchar_t* serverName,
wchar_t** activatableClassIds,
WINRT_REGISTRATION_COOKIE* cookie,
unsigned int count)
參數
serverName
指定受此作業影響之物件子集的名稱。
activatableClassIds
要註冊的可啟用 CLSID 陣列。
餅乾
值,識別已註冊的類別物件。 此值稍後會用來撤銷註冊。
計數
要註冊的物件數目。
傳回值
如果成功,S_OK;否則,錯誤 HRESULT,例如CO_E_OBJISREG,表示作業失敗的原因。
Module::releaseNotifier_
保存物件的指標 ReleaseNotifier
。
ReleaseNotifier *releaseNotifier_;
Module::Terminate
導致模組具現化的所有處理站關閉。
void Terminate();
備註
釋放快取中的處理站。
Module::UnregisterCOMObject
取消註冊一或多個 COM 物件,以防止其他應用程式連線到它們。
virtual HRESULT UnregisterCOMObject(
const wchar_t* serverName,
DWORD* cookies,
unsigned int count
參數
serverName
( 未使用 )
餅乾
要取消註冊之類別物件的值指標陣列。 陣列是由 RegisterCOMObject 方法所建立。
計數
要取消註冊的類別數目。
傳回值
如果這項作業成功,S_OK;否則,表示作業失敗原因的錯誤 HRESULT。
Module::UnregisterObjects
取消註冊指定模組中的物件,讓其他應用程式無法連線到它們。
HRESULT UnregisterObjects(
ModuleBase* module,
const wchar_t* serverName);
參數
module
模組的指標。
serverName
限定名稱,指定受此作業影響之物件的子集。
傳回值
如果這項作業成功,S_OK;否則,表示此作業失敗原因的錯誤 HRESULT。
Module::UnregisterWinRTObject
取消註冊一或多個 Windows 執行階段 物件,讓其他應用程式無法連線到它們。
virtual HRESULT UnregisterWinRTObject(
unsigned int,
_Inout_ WINRT_REGISTRATION_COOKIE* cookie
);
參數
餅乾
值的指標,識別要撤銷其註冊的類別物件。