Поделиться через


Добавление интерфейса в поставщик

Следует определить, в какой объект требуется добавить интерфейс (обычно это объект источника данных, набора строк, команды или сеанса, созданный мастером поставщика OLE DB). Возможно, объект, в который требуется добавить интерфейс, не поддерживается поставщиком. В этом случае для создания объекта необходимо запустить мастер поставщика OLE DB библиотеки ATL. Щелкните правой кнопкой мыши проект в представлении классов, выберите пункт Добавить класс в меню Добавить, а затем выберите пункт Поставщик OLEDB библиотеки ATL. Возможно, потребуется разместить код интерфейса в отдельном каталоге и затем скопировать файлы в проект поставщика.

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

template <class Creator>
class CAgentRowset : 
public CRowsetImpl< CAgentRowset<Creator>, CAgentMan, Creator>,
   public IRowsetIndexImpl< ... > 

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

BEGIN_COM_MAP(CAgentRowset)
     COM_INTERFACE_ENTRY(IRowsetIndex)
END_COM_MAP()

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

BEGIN_COM_MAP(CAgentRowset)
     COM_INTERFACE_ENTRY(IRowsetIndex)
     COM_INTERFACE_ENTRY_CHAIN(CRowsetImpl)
END_COM_MAP()

См. также

Основные понятия

Работа с шаблонами поставщика OLE DB