CAtlDllModuleT クラス

このクラスは、DLL のモジュールを表します。

構文

template <class T>
class ATL_NO_VTABLE CAtlDllModuleT : public CAtlModuleT<T>

パラメーター

T
CAtlDllModuleT から派生したクラス。

メンバー

パブリック コンストラクター

名前 説明
CAtlDllModuleT::CAtlDllModuleT コンストラクター。
CAtlDllModuleT::~CAtlDllModuleT デストラクター。

パブリック メソッド

名前 説明
CAtlDllModuleT::DllCanUnloadNow DLL をアンロードできるかどうかがテストされます。
CAtlDllModuleT::DllGetClassObject クラス ファクトリが返されます。
CAtlDllModuleT::DllMain ダイナミック リンク ライブラリ (DLL) へのオプションのエントリポイント。
CAtlDllModuleT::DllRegisterServer DLL 内のオブジェクトのエントリがシステム レジストリに追加されます。
CAtlDllModuleT::DllUnregisterServer DLL 内のオブジェクトのシステム レジストリ内のエントリが削除されます。
CAtlDllModuleT::GetClassObject クラス ファクトリが返されます。 DllGetClassObject によって呼び出されます。

解説

CAtlDllModuleT は、ダイナミックリンク ライブラリ (DLL) のモジュールを表し、すべての DLL プロジェクトで使用される関数を提供します。 この CAtlModuleT クラスの特殊化には、登録のサポートが含まれています。

ATL のモジュールの詳細については、「ATL モジュール クラス」を参照してください。

継承階層

_ATL_MODULE

CAtlModule

CAtlModuleT

CAtlDllModuleT

必要条件

ヘッダー: atlbase.h

CAtlDllModuleT::CAtlDllModuleT

コンストラクター。

CAtlDllModuleT() throw();

CAtlDllModuleT::~CAtlDllModuleT

デストラクター。

~CAtlDllModuleT() throw();

CAtlDllModuleT::DllCanUnloadNow

DLL をアンロードできるかどうかがテストされます。

HRESULT DllCanUnloadNow() throw();

戻り値

DLL をアンロードできる場合は S_OK を、できない場合は S_FALSE が返されます。

CAtlDllModuleT::DllGetClassObject

クラス ファクトリが返されます。

HRESULT DllGetClassObject(
    REFCLSID rclsid,
    REFIID riid,
    LPVOID* ppv) throw();

パラメーター

rclsid
作成するオブジェクトの CLSID。

riid
要求されたインターフェイスの IID。

ppv
riid によって識別されるインターフェイス ポインターへのポインター。 オブジェクトでこのインターフェイスがサポートされていない場合、ppv は NULL に設定されます。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

CAtlDllModuleT::DllMain

ダイナミック リンク ライブラリ (DLL) へのオプションのエントリポイント。

BOOL WINAPI DllMain(DWORD dwReason, LPVOID /* lpReserved*/) throw();

パラメーター

dwReason
DLL_PROCESS_ATTACH に設定すると、DLL_THREAD_ATTACH と DLL_THREAD_DETACH 通知の呼び出しが無効になります。

lpReserved
予約済み。

戻り値

常に TRUE が返されます。

解説

DLL_THREAD_ATTACH と DLL_THREAD_DETACH の通知呼び出しを無効にすると、多数の DLL を持ち、スレッドを頻繁に作成および削除することがあるマルチスレッド アプリケーションで、その DLL がアタッチ/デタッチのスレッドレベルの通知を必要としない場合に役立つ最適化になる場合があります。

CAtlDllModuleT::DllRegisterServer

DLL 内のオブジェクトのエントリがシステム レジストリに追加されます。

HRESULT DllRegisterServer(BOOL bRegTypeLib = TRUE) throw();

パラメーター

bRegTypeLib
タイプ ライブラリを登録する場合は TRUE。 既定値は TRUE です。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

CAtlDllModuleT::DllUnregisterServer

DLL 内のオブジェクトのシステム レジストリ内のエントリが削除されます。

HRESULT DllUnregisterServer(BOOL bUnRegTypeLib = TRUE) throw();

パラメーター

bUnRegTypeLib
タイプ ライブラリをレジストリから削除する場合は TRUE。 既定値は TRUE です。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

CAtlDllModuleT::GetClassObject

指定した CLSID のオブジェクトを作成します。

HRESULT GetClassObject(
    REFCLSID rclsid,
    REFIID riid,
    LPVOID* ppv) throw();

パラメーター

rclsid
作成するオブジェクトの CLSID。

riid
要求されたインターフェイスの IID。

ppv
riid によって識別されるインターフェイス ポインターへのポインター。 オブジェクトでこのインターフェイスがサポートされていない場合、ppv は NULL に設定されます。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

解説

このメソッドは、CAtlDllModuleT::DllGetClassObject によって呼び出され、下位互換性のために含まれています。

関連項目

CAtlModuleT クラス
CAtlExeModuleT クラス
クラスの概要
モジュール クラス