實作 CComObjectRootEx
CComObjectRootEx 很重要;所有 ATL 物件在其繼承中都必須有一個 或 CComObjectRoot 實例CComObjectRootEx
。 CComObjectRootEx
提供以 COM 對應項目為基礎的預設 QueryInterface
機制。
透過其 COM 對應,當用戶端查詢介面時,物件的介面會公開給用戶端。 查詢是透過 CComObjectRootEx::InternalQueryInterface
執行。 InternalQueryInterface
只處理 COM 對應表格中的介面。
您可以使用COM_INTERFACE_ENTRY巨集或其其中一個變體,在 COM 對應數據表中輸入介面。 例如,下列程式碼會將介面 IDispatch
、IBeeper
和 ISupportErrorInfo
輸入到 COM 對應表格:
BEGIN_COM_MAP(CBeeper)
COM_INTERFACE_ENTRY(IBeeper)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY_TEAR_OFF(IID_ISupportErrorInfo, CBeeper2)
END_COM_MAP()