ATL モジュール クラス
更新 : 2007 年 11 月
ここでは、ATL 7.0 の新しいモジュール クラスについて説明します。
CComModule 置換クラス
以前のバージョンの ATL では CComModule を使用していました。ATL 7.0 では、CComModule の機能が次の複数のクラスで置き換えられています。
CAtlBaseModule ATL を使用するほとんどのアプリケーションで必要な情報を含みます。モジュールの HINSTANCE とリソース インスタンスを含みます。
CAtlComModule ATL の COM クラスで必要な情報を含みます。
CAtlWinModule ATL のウィンドウ クラスで必要な情報を含みます。
CAtlDebugInterfacesModule インターフェイス デバッグのサポートを含みます。
CAtlModule 以下の CAtlModule 派生クラスは、特定のアプリケーション タイプで必要な情報を含むようにカスタマイズされています。これらのクラスのほとんどのメンバはオーバーライドできます。
CAtlDllModuleT DLL アプリケーションで使用されます。標準エクスポートのコードを提供します。
CAtlExeModuleT EXE アプリケーションで使用されます。EXE に必要なコードを提供します。
CAtlServiceModuleT Windows NT および Windows 2000 サービスの作成をサポートします。
CComModule は、下位互換性を保つために現在も使用できます。
CComModule の機能を分散する理由
CComModule の機能は、次の理由で複数の新しいクラスに分散されました。
CComModule の機能を細分化するため。
COM、ウィンドウ化、インターフェイス デバッグ、およびアプリケーション固有の (DLL または EXE) 機能は、現在は別個のクラスでサポートされています。
これらの各モジュールのグローバル インスタンスを自動的に宣言するため。
必要なモジュール クラスのグローバル インスタンスはプロジェクトにリンクされます。
Init メソッドと Term メソッドの呼び出しの必要性をなくすため。
Init メソッドと Term メソッドはモジュール クラスのコンストラクタとデストラクタに移動されたため、Init と Term を呼び出す必要はなくなりました。