Module クラス
関連するオブジェクトから成るコレクションを表します。
構文
template<ModuleType moduleType>
class Module;
template<>
class Module<InProc> : public Details::ModuleBase;
template<>
class Module<OutOfProc> : public Module<InProc>;
パラメーター
moduleType
1 つ以上の ModuleType 列挙型の値の組み合わせ。
メンバー
保護されたクラス
名前 | 説明 |
---|---|
Module::GenericReleaseNotifier | 現在のモジュール内の最後のオブジェクトが解放されると、イベント ハンドラーを呼び出します。 イベント ハンドラーは、ラムダ、ファンクター、または関数へのポインターで指定します。 |
Module::MethodReleaseNotifier | 現在のモジュール内の最後のオブジェクトが解放されると、イベント ハンドラーを呼び出します。 イベント ハンドラーを指定するには、オブジェクトと、そのメソッドへのポインター メンバーを使います。 |
Module::ReleaseNotifier | モジュール内の最後のオブジェクトが解放されると、イベント ハンドラーを呼び出します。 |
パブリック コンストラクター
名前 | 説明 |
---|---|
Module::~Module | Module クラスの現在のインスタンスの初期化を解除します。 |
保護されたコンストラクター
名前 | 説明 |
---|---|
Module::Module | Module クラスの新しいインスタンスを初期化します。 |
パブリック メソッド
名前 | 説明 |
---|---|
Module::Create | モジュールのインスタンスを作成します。 |
Module::DecrementObjectCount | モジュールによって追跡されるオブジェクトの数をデクリメントします。 |
Module::GetActivationFactory | モジュールのアクティブ化ファクトリを取得します。 |
Module::GetClassObject | クラス ファクトリのキャッシュを取得します。 |
Module::GetModule | モジュールのインスタンスを作成します。 |
Module::GetObjectCount | このモジュールによって管理されるオブジェクトの数を取得します。 |
Module::IncrementObjectCount | モジュールによって追跡されるオブジェクトの数をインクリメントします。 |
Module::RegisterCOMObject | 他のアプリケーションが接続できるよう、1 つ以上の COM オブジェクトを登録します。 |
Module::RegisterObjects | 他のアプリケーションが接続できるよう、COM オブジェクトまたは Windows ランタイム オブジェクトを登録します。 |
Module::RegisterWinRTObject | 他のアプリケーションが接続できるよう、1 つ以上の Windows ランタイム オブジェクトを登録します。 |
Module::Terminate | モジュールによってインスタンス化されたすべてのファクトリをシャットダウンします。 |
Module::UnregisterCOMObject | 1 つ以上の COM オブジェクトの登録を解除し、他のアプリケーションがそれに接続できないようにします。 |
Module::UnregisterObjects | 他のアプリケーションが接続できないように、指定されたモジュール内のオブジェクトの登録を解除します。 |
Module::UnregisterWinRTObject | 他のアプリケーションが接続できないよう、1 つ以上の Windows ランタイム オブジェクトの登録を解除します。 |
保護メソッド
名前 | 説明 |
---|---|
Module::Create | モジュールのインスタンスを作成します。 |
プロテクト データ メンバー
名前 | 説明 |
---|---|
Module::objectCount_ | Make 関数で作成されたクラスの数を追跡します。 |
Module::releaseNotifier_ | ReleaseNotifier オブジェクトへのポインターを保持します。 |
マクロ
名前 | 説明 |
---|---|
ActivatableClass | 指定したクラスのインスタンスを作成できるファクトリを含む内部キャッシュを設定します。 このマクロは、既定のファクトリとグループ ID のパラメーターを指定します。 |
ActivatableClassWithFactory | 指定したクラスのインスタンスを作成できるファクトリを含む内部キャッシュを設定します。 このマクロを使うと、特定のファクトリ パラメーターを指定できます。 |
ActivatableClassWithFactoryEx | 指定したクラスのインスタンスを作成できるファクトリを含む内部キャッシュを設定します。 このマクロを使うと、特定のファクトリ パラメーターとグループ ID パラメーターを指定できます。 |
継承階層
ModuleBase
Module
Module
要件
ヘッダー: module.h
名前空間: Microsoft::WRL
Module::~Module
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
モジュールの型。
callback
モジュールの最後のインスタンス オブジェクトが解放されると呼び出されます。
object
object と method パラメーターが組み合わせて使われます。 モジュール内の最後のインスタンス オブジェクトが解放されるとき、最後のインスタンス オブジェクトを指し示します。
method
object と method パラメーターが組み合わせて使われます。 モジュール内の最後のインスタンス オブジェクトが解放されるとき、最後のインスタンス オブジェクトのメソッドを指し示します。
戻り値
モジュールへの参照。
Module::DecrementObjectCount
モジュールによって追跡されるオブジェクトの数をデクリメントします。
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
クラス ID。
riid
要求するインターフェイス ID。
ppv
返されるオブジェクトへのポインター。
serverName
ActivatableClassWithFactory
、ActivatableClassWithFactoryEx
、または ActivatableClass
マクロで指定されているサーバー名。または。既定のサーバー名を取得するための 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
他のアプリケーションが接続できるよう、1 つ以上の COM オブジェクトを登録します。
WRL_NOTHROW virtual HRESULT RegisterCOMObject(
const wchar_t* serverName,
IID* clsids,
IClassFactory** factories,
DWORD* cookies,
unsigned int count);
パラメーター
serverName
サーバーの完全修飾名。
clsids
登録する CLSID の配列。
factories
可用性が公開されているクラス オブジェクトの IUnknown インターフェイスの配列。
cookies
操作が完了すると、登録されたクラス オブジェクトを識別する値へのポインターの配列。 これらの値は、後で登録を取り消すために使われます。
count
登録する CLSID の数。
戻り値
成功した場合はS_OK。それ以外の場合は、操作が失敗した理由を示すCO_E_OBJISREGなどの HRESULT。
解説
COM オブジェクトは、CLSCTX 列挙型の CLSCTX_LOCAL_SERVER 列挙子を使用して登録されます。
登録されるオブジェクトへの接続の種類は、現在の comflag テンプレート パラメーターと、REGCLS 列挙型の REGCLS_SUSPENDED 列挙子の組み合わせで指定します。
Module::RegisterObjects
他のアプリケーションが接続できるよう、COM オブジェクトまたは Windows ランタイム オブジェクトを登録します。
HRESULT RegisterObjects(
ModuleBase* module,
const wchar_t* serverName);
パラメーター
module
COM オブジェクトまたは Windows ランタイム オブジェクトの配列。
serverName
オブジェクトを作成したサーバーの名前。
戻り値
成功した場合は S_OK。それ以外の場合は、操作が失敗した理由を示す HRESULT。
Module::RegisterWinRTObject
他のアプリケーションが接続できるよう、1 つ以上の Windows ランタイム オブジェクトを登録します。
HRESULT RegisterWinRTObject(const wchar_t* serverName,
wchar_t** activatableClassIds,
WINRT_REGISTRATION_COOKIE* cookie,
unsigned int count)
パラメーター
serverName
この操作によって影響を受けるオブジェクトのサブセットを指定する名前。
activatableClassIds
登録するアクティブ化可能な CLSID の配列。
cookie
登録されたクラス オブジェクトを識別する値。 この値は、後で登録を取り消すために使われます。
count
登録するオブジェクトの数。
戻り値
成功した場合は S_OK。それ以外の場合は、操作が失敗した理由を示す CO_E_OBJISREG などのエラー HRESULT。
Module::releaseNotifier_
ReleaseNotifier
オブジェクトへのポインターを保持します。
ReleaseNotifier *releaseNotifier_;
Module::Terminate
モジュールによってインスタンス化されたすべてのファクトリをシャットダウンします。
void Terminate();
解説
キャッシュ内のファクトリを解放します。
Module::UnregisterCOMObject
1 つ以上の COM オブジェクトの登録を解除し、他のアプリケーションがそれに接続できないようにします。
virtual HRESULT UnregisterCOMObject(
const wchar_t* serverName,
DWORD* cookies,
unsigned int count
パラメーター
serverName
(未使用)
cookies
登録を解除するクラス オブジェクトを識別する値へのポインターの配列。 この配列は、RegisterCOMObject メソッドによって作成されたものです。
count
登録を解除するクラスの数。
戻り値
この操作が成功した場合は S_OK。それ以外の場合は、操作が失敗した理由を示すエラー HRESULT。
Module::UnregisterObjects
他のアプリケーションが接続できないように、指定されたモジュール内のオブジェクトの登録を解除します。
HRESULT UnregisterObjects(
ModuleBase* module,
const wchar_t* serverName);
パラメーター
module
モジュールへのポインター。
serverName
この操作によって影響を受けるオブジェクトのサブセットを指定する修飾名。
戻り値
この操作が成功した場合は S_OK。それ以外の場合は、この操作が失敗した理由を示すエラー HRESULT。
Module::UnregisterWinRTObject
他のアプリケーションが接続できないよう、1 つ以上の Windows ランタイム オブジェクトの登録を解除します。
virtual HRESULT UnregisterWinRTObject(
unsigned int,
_Inout_ WINRT_REGISTRATION_COOKIE* cookie
);
パラメーター
cookie
登録を取り消すクラス オブジェクトを識別する値へのポインター。