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 モジュール クラス」を参照してください。
継承階層
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 によって呼び出され、下位互換性のために含まれています。