Как добавить интерфейс к моему провайдеру?

Определите, объект, который требуется добавить в интерфейс (обычно данных источника, набора строк, команды или сессии объекты, созданные мастера поставщика ATL). Вполне возможно, что вам нужно добавить интерфейс для выделяется один, что ваш провайдер не поддерживает в настоящее время. В этом случае, запустите мастер объектов ATL для создания объекта (щелкните правой кнопкой мыши на панели окна контекстного рабочей области Project и выберите Новый объект ATL).

Если вы создали новый класс для поддержки интерфейса, делают объект наследовать от этого класса. Например можно добавить класс IRowsetIndexImpl для объекта набора строк:

шаблон lt; класс создатель >
класс CAgentRowset: государственные CRowsetImpl < CAgentRowset <Creator>, CAgentMan, создатель >
   государственные IRowsetIndexImpl < … & gt
 

Добавьте интерфейс к COM_MAP в объекте, используя макрос COM_INTERFACE_ENTRY . Если карта не существует, создайте его. Например:

BEGI&N_COM_MAP(CAgentRowset)
 nbsp;   COM_INTERFACE_ENTRY(IRowsetIndex)
END_COM_MAP()

Для объекта набора строк связать сопоставление родительского объекта, чтобы объект смог предоставить делегата для родительского класса. В этом примере добавьте COM_INTERFACE_ENTRY_CHAIN макрос к карте:

BEGI&N_COM_MAP(CAgentRowset)
 nbsp;   COM_INTERFACE_ENTRY(IRowsetIndex)
     COM_INTERFACE_ENTRY_CHAIN(CRowsetImpl)
END_COM_MAP()

Index