DECLARE_POLY_AGGREGATABLE

DECLARE_POLY_AGGREGATABLE ( x

パラメーター

x

[入力]集約または集計可能でないを定義しているクラスのオブジェクトの名前。

解説

示すCComPolyObject lt;のインスタンスx>は、オブジェクトの作成時に作成されます。作成時に、外側の未知の値がチェックされます。NULLの場合は、非集約オブジェクトのIUnknownが実装されます。外部不明がNULLでない場合は、集約オブジェクトのIUnknownを実装します。

DECLARE_POLY_AGGREGATABLEを使用する利点は、 CComAggObject ccomobject からモジュールに集約、非集約のケースを処理することを避けるためです。CComPolyObjectオブジェクトを 1 つは、両方のケースを処理します。これは、1 つは vtable のコピーと関数の 1 つのコピーをモジュールの存在を意味します。あなたの vtable が大きい場合は、この大幅にあなたのモジュールのサイズを減らすことができます。あなたの vtable が小さい場合は、集計または非集約オブジェクトの最適化されていないためCComAggObject ccomobject からただし、 CComPolyObjectを使用して、わずかに大きいモジュール サイズがあります。

ATL オブジェクト ウィザードを使用して、フル コントロールまたは Internet Explorer のコントロールを作成する場合、 DECLARE_POLY_AGGREGATABLEマクロが自動的にオブジェクト宣言です。

ATL マクロとグローバル関数

参照してください。

CComPolyObjectCComAggObjectccomobject から

Index