CComTearOffObject

templatelt คลาส Base >
คลาส CComTearOffObject : สาธารณะ Base

พารามิเตอร์

Base

ของคุณฉีกออกคลาส มาจากCComTearOffObjectBaseและอินเทอร์เฟซคุณต้องการให้วัตถุฉีกออกเพื่อสนับสนุน?

ATL ใช้อินเตอร์เฟซของฉีกออกในระยะที่สอง — CComTearOffObjectBaseวิธีจัดการการนับจำนวนการอ้างอิงและQueryInterfaceในขณะที่ใช้CComTearOffObject IUnknown?

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

คุณควรได้สืบทอดมาของชั้นนำฉีกออกจากCComTearOffObjectBaseและ จากอินเทอร์เฟซการใดที่คุณต้องการฉีกออกวัตถุเพื่อสนับสนุน CComTearOffObjectBaseเป็น templatized เจ้าของชั้นเรียนและแบบเธรด เรียนเจ้าของเป็นคลาสของวัตถุซึ่งการฉีกออกเป็นการดำเนินการ ถ้าคุณไม่ระบุรูปแบบเธรด แบบเธรดการเริ่มต้นใช้?

คุณควรสร้างแผนที่ COM สำหรับคลาสคุณฉีกออก เมื่อ ATL instantiates ฉีกออก มันจะสร้างCComTearOffObjectltCYourTearOffClass >หรือCComCachedTearOffObject <CYourTearOffClass>?

ในตัวอย่าง BEEPER ตัวอย่าง การ CBeeper2 ชั้นคือ ชั้นฉีกออกและ CBeeper ชั้นคือ ชั้นเจ้า:

คลา CBeeper2: ISupportErrorInfo สาธารณะ
 nbsp               สาธารณะ CComTearOffObjectBase <CBeeper>
{
สาธารณะ:
   CBeeper2() {}
   STDMETHOD(InterfaceSupportsErrorInfo) (REFIID riid)
   {
      กลับ (InlineIsEqualGUID(IID_IBeeper,riid)) 
              S_OK: S_FALSE
   }

BEGIN_COM_MAP(CBeeper2)
      COM_INTERFACE_ENTRY(ISupportErrorInfo)
   END_COM_MAP()
};

คลา CBeeper:
   สาธารณะ IDispatchImpl < IBeeper และ IID_IBeeper และ LIBID_BeeperLib >
   CComObjectRoot สาธารณะ
   สาธารณะ CComCoClass < CBeeper และ CLSID_Beeper >
{
สาธารณะ:
   CBeeper()
   BEGIN_COM_MAP(CBeeper)
      COM_INTERFACE_ENTRY(IDispatch)
      COM_INTERFACE_ENTRY(IBeeper)
      COM_INTERFACE_ENTRY_TEAR_OFF (IID_ISupportErrorInfo, CBeeper2)
   END_COM_MAP()
...
}

#รวม lt;atlcom.h>

สมาชิกของคลาส

ดูเพิ่มเติมnbspCComCachedTearOffObject(&N)

Index