CComModule クラス
ATL 7.0 以降、CComModule
は非推奨になりました。詳細については、「ATL モジュール クラス」を参照してください。
重要
このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。
構文
class CComModule : public _ATL_MODULE
メンバー
パブリック メソッド
名前 | 説明 |
---|---|
CComModule::GetClassObject | 指定した CLSID のオブジェクトを作成します。 DLL 専用。 |
CComModule::GetModuleInstance | m_hInst を返します。 |
CComModule::GetResourceInstance | m_hInstResource を返します。 |
CComModule::GetTypeLibInstance | m_hInstTypeLib を返します。 |
CComModule::Init | データ メンバーを初期化します。 |
CComModule::RegisterClassHelper | オブジェクトの標準クラスの登録をシステム レジストリに入力します。 |
CComModule::RegisterClassObjects | クラス オブジェクトを登録します。 EXE 専用。 |
CComModule::RegisterServer | オブジェクト マップ内の各オブジェクトのシステム レジストリを更新します。 |
CComModule::RegisterTypeLib | タイプ ライブラリを登録します。 |
CComModule::RevokeClassObjects | クラス オブジェクトを取り消します。 EXE 専用。 |
CComModule::Term | データ メンバーを解放します。 |
CComModule::UnregisterClassHelper | オブジェクトの標準クラスの登録をシステム レジストリから削除します。 |
CComModule::UnregisterServer | オブジェクト マップ内の各オブジェクトの登録を解除します。 |
CComModule::UpdateRegistryClass | オブジェクトの標準クラスの登録を登録するか登録解除します。 |
CComModule::UpdateRegistryFromResourceD | 指定したリソースに含まれているスクリプトを実行して、オブジェクトの登録または登録解除を行います。 |
CComModule::UpdateRegistryFromResourceS | ATL レジストリ コンポーネントに静的にリンクします。 指定したリソースに含まれているスクリプトを実行して、オブジェクトの登録または登録解除を行います。 |
パブリック データ メンバー
名前 | 説明 |
---|---|
CComModule::m_csObjMap | オブジェクト マップ情報への同期アクセスを保証します。 |
CComModule::m_csTypeInfoHolder | タイプ ライブラリ情報への同期アクセスを保証します。 |
CComModule::m_csWindowCreate | ウィンドウの作成時に使用されるウィンド ウクラス情報と静的データへの同期アクセスを保証します。 |
CComModule::m_hInst | モジュール インスタンスへのハンドルを格納します。 |
CComModule::m_hInstResource | 既定で、モジュール インスタンスへのハンドルを格納します。 |
CComModule::m_hInstTypeLib | 既定で、モジュール インスタンスへのハンドルを格納します。 |
CComModule::m_pObjMap | モジュール インスタンスによって管理されるオブジェクト マップを指定します。 |
解説
Note
このクラスは非推奨です。現在、ATL コード生成ウィザードによって CAtlAutoThreadModule 派生クラスおよび CAtlModule 派生クラスが使用されます。 詳細については、「ATL モジュール クラス」を参照してください。 この後の情報は、ATL の旧リリースで作成されたアプリケーションで使用するためのものです。 CComModule
は、以前の機能に備えて引き続き ATL に含まれています。
CComModule
は、COM サーバー モジュールを実装し、クライアントがモジュールのコンポーネントにアクセスできるようにします。 CComModule
は、DLL (インプロセス) と EXE (ローカル) 両方のモジュールをサポートします。
CComModule
インスタンスは、オブジェクト マップを使用して、クラス オブジェクト定義のセットを管理します。 このオブジェクト マップは、_ATL_OBJMAP_ENTRY
構造体の配列として実装され、次のための情報を含みます。
システム レジストリでのオブジェクトの説明の入力および削除。
クラス ファクトリを使用したオブジェクトのインスタンス化。
クライアントとコンポーネント内のルート オブジェクトとの通信の確立。
クラス オブジェクトの有効期間管理の実行。
ATL COM AppWizard を実行すると、ウィザードによって、CComModule
またはそれから派生したクラスのグローバル インスタンスである _Module
が自動的に生成されます。 ATL プロジェクト ウィザードの詳細については、「ATL プロジェクトの作成」を参照してください。
CComModule
に加え、ATL には CComAutoThreadModule が用意されており、これによって、EXE および Windows サービスのアパートメント モデル モジュールが実装されます。 複数のアパートメントにオブジェクトを作成する場合は、CComAutoThreadModule
からモジュールを派生させます。
継承階層
CComModule
要件
ヘッダー: atlbase.h
CComModule::GetClassObject
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
HRESULT GetClassObject(
REFCLSID rclsid,
REFIID riid,
LPVOID* ppv) throw();
パラメーター
rclsid
[入力] 作成するオブジェクトの CLSID。
riid
[入力] 要求された インターフェイスの IID。
ppv
[出力] riid によって識別されるインターフェイス ポインターへのポインター。 オブジェクトでこのインターフェイスがサポートされていない場合、ppv は NULL に設定されます。
戻り値
標準の HRESULT 値。
解説
指定した CLSID のオブジェクトを作成し、このオブジェクトへのインターフェイス ポインターを取得します。
GetClassObject
は、DLL でのみ使用できます。
CComModule::GetModuleInstance
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
HINSTANCE GetModuleInstance() throw();
戻り値
このモジュールを識別する HINSTANCE。
解説
m_hInst データ メンバーを返します。
CComModule::GetResourceInstance
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
HINSTANCE GetResourceInstance() throw();
戻り値
HINSTANCE。
解説
m_hInstResource データ メンバーを返します。
CComModule::GetTypeLibInstance
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
HINSTANCE GetTypeLibInstance() const throw();
戻り値
HINSTANCE。
解説
m_hInstTypeLib データ メンバーを返します。
CComModule::Init
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
HRESULT Init(
_ATL_OBJMAP_ENTRY* p,
HINSTANCE h,
const GUID* plibid = NULL) throw();
パラメーター
P
[入力] オブジェクト マップ エントリの配列へのポインター。
時
[入力] DLLMain
または WinMain
に渡される HINSTANCE。
plibid
[入力] プロジェクトに関連付けられたタイプ ライブラリの LIBID へのポインター。
戻り値
標準の HRESULT 値。
解説
すべてのデータ メンバーを初期化します。
CComModule::m_csObjMap
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
CRITICAL_SECTION m_csObjMap;
解説
オブジェクト マップへの同期アクセスを保証します。
CComModule::m_csTypeInfoHolder
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
CRITICAL_SECTION m_csTypeInfoHolder;
解説
タイプ ライブラリへの同期アクセスを保証します。
CComModule::m_csWindowCreate
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
CRITICAL_SECTION m_csWindowCreate;
解説
ウィンドウの作成時に使用されるウィンド ウクラス情報と静的データへの同期アクセスを保証します。
CComModule::m_hInst
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
HINSTANCE m_hInst;
解説
モジュール インスタンスへのハンドルを格納します。
Init メソッドによって、DLLMain
または WinMain
に渡されるハンドルが m_hInst
に設定されます。
CComModule::m_hInstResource
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
HINSTANCE m_hInstResource;
解説
既定で、モジュール インスタンスへのハンドルを格納します。
Init メソッドによって、DLLMain
または WinMain
に渡されるハンドルが m_hInstResource
に設定されます。 リソースに対するハンドルを m_hInstResource
に明示的に設定できます。
GetResourceInstance メソッドは、m_hInstResource
に格納されているハンドルを返します。
CComModule::m_hInstTypeLib
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
HINSTANCE m_hInstTypeLib;
解説
既定で、モジュール インスタンスへのハンドルを格納します。
Init メソッドによって、DLLMain
または WinMain
に渡されるハンドルが m_hInstTypeLib
に設定されます。 タイプ ライブラリに対するハンドルを m_hInstTypeLib
に明示的に設定できます。
GetTypeLibInstance メソッドは、m_hInstTypeLib
に格納されているハンドルを返します。
CComModule::m_pObjMap
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
_ATL_OBJMAP_ENTRY* m_pObjMap;
解説
モジュール インスタンスによって管理されるオブジェクト マップを指定します。
CComModule::RegisterClassHelper
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
ATL_DEPRECATED HRESULT RegisterClassHelper(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID,
UINT nDescID,
DWORD dwFlags);
パラメーター
clsid
[入力] 登録するオブジェクトの CLSID。
lpszProgID
[入力] オブジェクトに関連付けられている ProgID。
lpszVerIndProgID
[入力] オブジェクトに関連付けられている、バージョンに依存しない ProgID。
nDescID
[入力] オブジェクトの説明の文字列リソースの識別子。
dwFlags
[入力] レジストリに入力するスレッド モデルを指定します。 指定できる値は、THREADFLAGS_APARTMENT、THREADFLAGS_BOTH、または AUTPRXFLAG です。
戻り値
標準の HRESULT 値。
解説
オブジェクトの標準クラスの登録をシステム レジストリに入力します。
UpdateRegistryClass メソッドは RegisterClassHelper
を呼び出します。
CComModule::RegisterClassObjects
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw();
パラメーター
dwClsContext
[入力] クラス オブジェクトを実行するコンテキストを指定します。 指定できる値は、CLSCTX_INPROC_SERVER、CLSCTX_INPROC_HANDLER、または CLSCTX_LOCAL_SERVER です。 これらの値の詳細については、Windows SDK の「CLSCTX」を参照してください。
dwFlags
[入力] クラス オブジェクトへの接続の種類を決定します。 指定できる値は、REGCLS_SINGLEUSE、REGCLS_MULTIPLEUSE、または REGCLS_MULTI_SEPARATE です。 これらの値の詳細については、Windows SDK の「REGCLS」を参照してください。
戻り値
標準の HRESULT 値。
解説
他のアプリケーションが OLE に接続できるよう、EXE クラス オブジェクトを OLE に登録します。 このメソッドは、EXE でのみ使用できます。
CComModule::RegisterServer
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
HRESULT RegisterServer(
BOOL bRegTypeLib = FALSE,
const CLSID* pCLSID = NULL) throw();
パラメーター
bRegTypeLib
[入力] タイプ ライブラリを登録するかどうかを示します。 既定値は FALSE です。
pCLSID
[入力] 登録するオブジェクトの CLSID を指定します。 NULL (既定値) の場合、オブジェクト マップ内のすべてのオブジェクトが登録されます。
戻り値
標準の HRESULT 値。
解説
pCLSID パラメーターに基づき、1 つのクラス オブジェクトまたはオブジェクト マップ内のすべてのオブジェクトに対して、システム レジストリを更新します。
bRegTypeLib が TRUE の場合、タイプ ライブラリ情報も更新されます。
エントリをオブジェクト マップに追加する方法の詳細については、「OBJECT_ENTRY_AUTO」を参照してください。
RegisterServer
は、/RegServer
コマンド ライン オプションが指定されると、DLL 実行では DLLRegisterServer
によって、EXE 実行では WinMain
によって自動的に呼び出されます。
CComModule::RegisterTypeLib
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
HRESULT RegisterTypeLib() throw();
HRESULT RegisterTypeLib(LPCTSTR lpszIndex) throw();
パラメーター
lpszIndex
[入力] "\\N"
という形式の文字列。N
は TYPELIB リソースの整数のインデックスです。
戻り値
標準の HRESULT 値。
解説
タイプ ライブラリに関する情報をシステム レジストリに追加します。
モジュール インスタンスに複数のタイプ ライブラリが含まれている場合は、このメソッドの 2 番目のバージョンを使用して、使用するタイプ ライブラリを指定します。
CComModule::RevokeClassObjects
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
HRESULT RevokeClassObjects() throw();
戻り値
標準の HRESULT 値。
解説
クラス オブジェクトを削除します。 このメソッドは、EXE でのみ使用できます。
CComModule::Term
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
void Term() throw();
解説
すべてのデータ メンバーを解放します。
CComModule::UnregisterClassHelper
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
ATL_DEPRECATED HRESULT UnregisterClassHelper(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID);
パラメーター
clsid
[入力] 登録解除するオブジェクトの CLSID。
lpszProgID
[入力] オブジェクトに関連付けられている ProgID。
lpszVerIndProgID
[入力] オブジェクトに関連付けられている、バージョンに依存しない ProgID。
戻り値
標準の HRESULT 値。
解説
オブジェクトの標準クラスの登録をシステム レジストリから削除します。
UpdateRegistryClass メソッドは UnregisterClassHelper
を呼び出します。
CComModule::UnregisterServer
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
HRESULT UnregisterServer(const CLSID* pCLSID = NULL) throw ();
inline HRESULT UnregisterServer(BOOL bUnRegTypeLib, const CLSID* pCLSID = NULL) throw ();
パラメーター
bUnRegTypeLib
TRUE の場合、タイプ ライブラリも登録解除されます。
pCLSID
登録解除するオブジェクトの CLSID を指します。 NULL (既定値) の場合、オブジェクト マップ内のすべてのオブジェクトが登録解除されます。
戻り値
標準の HRESULT 値。
解説
pCLSID パラメーターに基づき、1 つのクラス オブジェクトまたはオブジェクト マップ内のすべてのオブジェクトを登録解除します。
UnregisterServer
は、/UnregServer
コマンド ライン オプションが指定されると、DLL 実行では DLLUnregisterServer
によって、EXE 実行では WinMain
によって自動的に呼び出されます。
エントリをオブジェクト マップに追加する方法の詳細については、「OBJECT_ENTRY_AUTO」を参照してください。
CComModule::UpdateRegistryClass
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
ATL_DEPRECATED HRESULT UpdateRegistryClass(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID,
UINT nDescID,
DWORD dwFlags,
BOOL bRegister);
ATL_DEPRECATED HRESULT UpdateRegistryClass(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID,
LPCTSTR szDesc,
DWORD dwFlags,
BOOL bRegister);
パラメーター
clsid
登録または登録解除するオブジェクトの CLSID。
lpszProgID
オブジェクトに関連付けられている ProgID。
lpszVerIndProgID
オブジェクトに関連付けられている、バージョンに依存しない ProgID。
nDescID
オブジェクトの説明の文字列リソースの識別子。
szDesc
オブジェクトの説明を含む文字列。
dwFlags
レジストリに入力するスレッド モデルを指定します。 指定できる値は、THREADFLAGS_APARTMENT、THREADFLAGS_BOTH、または AUTPRXFLAG です。
bRegister
オブジェクトを登録するかどうかを示します。
戻り値
標準の HRESULT 値。
解説
bRegister が TRUE の場合、このメソッドはオブジェクトの標準クラス登録をシステム レジストリに入力します。
bRegister が FALSE の場合、オブジェクトの登録を削除します。
bRegister の値に応じて、UpdateRegistryClass
は RegisterClassHelper または UnregisterClassHelper を呼び出します。
DECLARE_REGISTRY マクロを指定すると、オブジェクト マップが処理されるときに UpdateRegistryClass
が自動的に呼び出されます。
CComModule::UpdateRegistryFromResourceD
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
virtual HRESULT UpdateRegistryFromResourceD(
LPCTSTR lpszRes,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();
virtual HRESULT UpdateRegistryFromResourceD(
UINT nResID,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw ();
パラメーター
lpszRes
[入力] リソースの名前。
nResID
[入力] リソース ID。
bRegister
[入力] オブジェクトを登録するかどうかを示します。
pMapEntries
[入力] スクリプトの置換可能なパラメーターに関連付けられている値を格納する置換マップへのポインター。 ATL は自動的に %MODULE%
を使用します。 追加の置換可能なパラメーターを使用するには、詳細について「解説」を参照してください。 それ以外の場合は、既定値 NULL を使用します。
戻り値
標準の HRESULT 値。
解説
lpszRes または nResID によって指定されるリソースに含まれるスクリプトを実行します。
bRegister が TRUE の場合、このメソッドはオブジェクトをシステム レジストリに登録します。それ以外の場合は、オブジェクトの登録を解除します。
DECLARE_REGISTRY_RESOURCE または DECLARE_REGISTRY_RESOURCEID マクロを指定すると、オブジェクト マップが処理されるときに UpdateRegistryFromResourceD
が自動的に呼び出されます。
Note
実行時に置換値を代入する場合は、DECLARE_REGISTRY_RESOURCE または DECLARE_REGISTRY_RESOURCEID マクロを指定しないでください。 代わりに、_ATL_REGMAP_ENTRIES
構造体の配列を作成します。この各エントリには、変数のプレースホルダーと、そのプレースホルダーを実行時に置換する値のペアが含まれています。 その後、UpdateRegistryFromResourceD
を呼び出して、この配列を pMapEntries パラメーターに渡します。 これにより、_ATL_REGMAP_ENTRIES
構造体内のすべての置換値がレジストラーの置換マップに追加されます。
Note
ATL レジストリ コンポーネント (レジストラー) に静的にリンクするには、「UpdateRegistryFromResourceS」を参照してください。
置換可能パラメーターとスクリプト化の詳細については、ATL レジストリ コンポーネント (レジストラー) の記事を参照してください。
CComModule::UpdateRegistryFromResourceS
ATL 7.0 以降、CComModule
は古くなりました。詳細については、「ATL モジュール クラス」を参照してください。
virtual HRESULT UpdateRegistryFromResourceS(
LPCTSTR lpszRes,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();
virtual HRESULT UpdateRegistryFromResourceS(
UINT nResID,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();
パラメーター
lpszRes
[入力] リソースの名前。
nResID
[入力] リソース ID。
bRegister
[入力] リソース スクリプトを登録するかどうかを示します。
pMapEntries
[入力] スクリプトの置換可能なパラメーターに関連付けられている値を格納する置換マップへのポインター。 ATL は自動的に %MODULE%
を使用します。 追加の置換可能なパラメーターを使用するには、詳細について「解説」を参照してください。 それ以外の場合は、既定値 NULL を使用します。
戻り値
標準の HRESULT 値。
解説
UpdateRegistryFromResourceD に似ていますが、UpdateRegistryFromResourceS
は ATL レジストリ コンポーネント (レジストラー) への静的リンクを作成する点が異なります。
UpdateRegistryFromResourceS
は、#define _ATL_STATIC_REGISTRY
を pch.h (Visual Studio 2017 以前では stdafx.h) に追加した場合、オブジェクト マップが処理されると自動的に呼び出されます。
Note
実行時に置換値を代入する場合は、DECLARE_REGISTRY_RESOURCE または DECLARE_REGISTRY_RESOURCEID マクロを指定しないでください。 代わりに、_ATL_REGMAP_ENTRIES
構造体の配列を作成します。この各エントリには、変数のプレースホルダーと、そのプレースホルダーを実行時に置換する値のペアが含まれています。 その後、UpdateRegistryFromResourceS
を呼び出して、この配列を pMapEntries パラメーターに渡します。 これにより、_ATL_REGMAP_ENTRIES
構造体内のすべての置換値がレジストラーの置換マップに追加されます。
置換可能パラメーターとスクリプト化の詳細については、ATL レジストリ コンポーネント (レジストラー) の記事を参照してください。