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 แมโครและฟังก์ชันที่ส่วนกลาง
ดูเพิ่มเติม