Partilhar via


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()

Confira também

Trabalhando com modelos de provedor do OLE DB