DECLARE_POLY_AGGREGATABLE

DECLARE_POLY_AGGREGATABLE ( x )

พารามิเตอร์

x

[ใน] ชื่อของวัตถุคลาสคุณกำลังกำหนดเป็น aggregatable หรือ aggregatable ไม่?

หมายเหตุ

ระบุที่อินสแตนซ์ของCComPolyObject ltxถูกสร้างขึ้นเมื่อวัตถุของคุณถูกสร้างขึ้น ในระหว่างการสร้าง ค่าของไม่ทราบภายนอกมีการตรวจสอบ ถ้าเป็นNULL, IUnknownถูกนำมาใช้สำหรับวัตถุ nonaggregated ถ้าไม่ทราบภายนอกไม่ใช่NULL, IUnknownถูกนำมาใช้สำหรับวัตถุรวม(&L)?

ประโยชน์ของการใช้DECLARE_POLY_AGGREGATABLEเป็นว่า คุณหลีกเลี่ยงทั้งCComAggObjectและCComObjectในโมดูลของคุณเพื่อจัดการกับกรณีที่รวม และ nonaggregated CComPolyObjectวัตถุเดียวจับทั้งสองกรณี ซึ่งหมายความว่า สำเนาเดียวเท่านั้น vtable และสำเนาหนึ่งของฟังก์ชันมีอยู่ในโมดูลของคุณ ถ้า vtable ของคุณมีขนาดใหญ่ นี้สามารถลดขนาดของโมดูลอย่างเต็มที่ อย่างไรก็ตาม ถ้า vtable ของคุณมีขนาดเล็ก การใช้CComPolyObjectสามารถทำในโมดูขนาดใหญ่ขึ้นเล็กน้อยเนื่องจากไม่เหมาะสำหรับวัตถุรวม หรือ nonaggregated เป็นCComAggObjectและCComObject?

แมโคDECLARE_POLY_AGGREGATABLEถูกโดยอัตโนมัติประกาศในวัตถุของคุณถ้าคุณใช้ตัวช่วยสร้างวัตถุ ATL เพื่อสร้างตัวควบคุมแบบเต็มหรือควบคุม Internet Explorer?

ATL แมโครและฟังก์ชันที่ส่วนกลาง

ดูเพิ่มเติม

CComPolyObject, CComAggObject, CComObject

Index