ATL 2.1 からの移植

IObjectSafetyImpl

ATL 2.1 では、 IObjectSafetyImplクラス スクリプトを実行しても安全としてコントロールをマークしました。2 番目のテンプレート パラメーターを使用して、安全性のオプションを明示的に指定する必要がありますのでセキュリティ上の理由から、この既定の設定、削除されています。今COM_INTERFACE_ENTRY_IMPLではなくCOM_INTERFACE_ENTRYを使用してこのクラスを公開する必要があります。

_ATL_NO_UUIDOF

ATL 3.0 コンパイラ キーワードを使用して_ _uuidof (特定クラスの対応する IID を取得するクラスCOM_INTERFACE_ENTRY マクロの変更のため、今あなたのヘッダーも、一致する Iid は、インターフェイスの定義をライブラリにリンクする代わりに、使用するインターフェイスを含めるだけです。この変更が、ヘッダーが以前 MIDL の古いバージョンによって生成された場合、またはそれ手コーディングされ、適切にマークされていない場合の問題を引き起こすことができます。

ヘッダーでインターフェイスを宣言に関連付けられている__declspec(uuid)とマークされていない場合は、そのインターフェイスの__uuidof()キーワードを使用しようが失敗します。問題この新しい動作を回避するには、ビルド設定で_ATL_NO_UUIDOFを定義することにより、古いスタイル (ATL 2.x) COM_INTERFACE_ENTRYマクロを戻すことができます。

新しいその

_ATL_DEBUG_QI_ATL_DEBUG_REFCOUNT、ATL 2.x では、現在のほかには、デバッグ コンソールには、インターフェイス リーク トレースされます、新しいその日が検出 _Module.Term (サーバーのシャット ダウン時) と呼ばれます。

参照してください。

ATL オブジェクトのデバッグのヒント

旧式のマクロ

マクロ コメント
COM_INTERFACE_ENTRY_IMPL 廃止されました。COM_INTERFACE_ENTRYを交換してください。
COM_INTERFACE_ENTRY_IMPL_IID 廃止されました。COM_INTERFACE_ENTRY_IIDを交換してください。
CHAIN_MSG_MAP_ALT_DYNAMIC 期限切れおよび削除。
BEGIN_PROPERTY_MAP 廃止されました。新しいマクロで説明されているように新しいプロパティ マップ マクロ、 BEGIN_PROP_MAPを使用します。
END_PROPERTY_MAP 廃止されました。新しいマクロで説明されているように新しいプロパティ マップ マクロ、 END_PROP_MAPを使用します。

Index