Adicionando uma interface ao provedor
Observação
O assistente de Provedor OLE DB da ATL não está disponível no Visual Studio 2019 e posteriores.
Determine a qual objeto você deseja adicionar a interface (geralmente fonte de dados, conjunto de linhas, comando ou objetos de sessão criados pelo Assistente de Provedor OLE DB). É possível que o objeto ao qual você precise adicionar a interface não seja compatível no momento com o provedor. Nesse caso, execute o Assistente de Provedor OLE DB da ATL para criar o objeto. Clique com o botão direito do mouse no projeto no Modo de Exibição de Classe, clique em Adicionar>Novo Item no menu, selecione Instalado>Visual C++>ATL e, em seguida, clique em provedor OLEDB do ATL. Convém colocar o código da interface em um diretório separado e copiar os arquivos no seu projeto de provedor.
Se você criou uma nova classe para dar suporte à interface, faça o objeto ser herdado dessa classe. Por exemplo, você pode adicionar a classe IRowsetIndexImpl
a um objeto de conjunto de linhas:
template <class Creator>
class CCustomRowset :
public CRowsetImpl< CCustomRowset<Creator>, CCustomWindowsFile, Creator>,
public IRowsetIndexImpl< ... >
Adicione a interface a COM_MAP no objeto usando a macro COM_INTERFACE_ENTRY. Se não houver mapa, crie um. Por exemplo:
BEGIN_COM_MAP(CCustomRowset)
COM_INTERFACE_ENTRY(IRowsetIndex)
END_COM_MAP()
Para o objeto de conjunto de linhas, encadeie o mapa de seu objeto pai para que o objeto possa ser delegado à classe pai. Neste exemplo, adicione a macro COM_INTERFACE_ENTRY_CHAIN ao mapa:
BEGIN_COM_MAP(CCustomRowset)
COM_INTERFACE_ENTRY(IRowsetIndex)
COM_INTERFACE_ENTRY_CHAIN(CRowsetImpl)
END_COM_MAP()