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 モジュール インスタンスによって管理されるオブジェクト マップを指定します。

注釈

注意

このクラスは非推奨です。現在、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 からモジュールを派生させます。

継承階層

_ATL_MODULE

CAtlModule

CAtlModuleT

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
[入力] オブジェクト マップ エントリの配列へのポインター。

h
[入力] 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 の値に応じて、UpdateRegistryClassRegisterClassHelper または 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_REGISTRYpch.h (Visual Studio 2017 以前では stdafx.h) に追加した場合、オブジェクト マップが処理されると自動的に呼び出されます。

Note

実行時に置換値を代入する場合は、DECLARE_REGISTRY_RESOURCE または DECLARE_REGISTRY_RESOURCEID マクロを指定しないでください。 代わりに、_ATL_REGMAP_ENTRIES 構造体の配列を作成します。この各エントリには、変数のプレースホルダーと、そのプレースホルダーを実行時に置換する値のペアが含まれています。 その後、UpdateRegistryFromResourceS を呼び出して、この配列を pMapEntries パラメーターに渡します。 これにより、_ATL_REGMAP_ENTRIES 構造体内のすべての置換値がレジストラーの置換マップに追加されます。

置換可能パラメーターとスクリプト化の詳細については、ATL レジストリ コンポーネント (レジストラー) の記事を参照してください。

関連項目

クラスの概要