Ajout d'une interface à votre fournisseur
Déterminez l'objet auquel vous souhaitez ajouter l'interface (en principe, des objets data source, rowset, command ou session créés par l'Assistant Fournisseur OLE DB). Il est possible que l'objet auquel vous devez ajouter l'interface soit un objet que votre fournisseur ne prend pas en charge actuellement. En ce cas, exécutez l'Assistant Fournisseur OLE DB ATL pour créer l'objet. Cliquez avec le bouton droit sur le projet dans l'affichage de classes, cliquez sur Ajouter une classe dans le menu Ajouter, puis sur Fournisseur OLE DB ATL. Vous pouvez, le cas échéant, souhaiter placer le code d'interface dans un répertoire séparé, puis copier les fichiers vers votre projet de fournisseur.
Si vous avez créé une nouvelle classe pour prendre en charge l'interface, faites en sorte que l'objet hérite de cette classe. Par exemple, vous pouvez ajouter la classe IRowsetIndexImpl à un objet rowset :
template <class Creator>
class CAgentRowset :
public CRowsetImpl< CAgentRowset<Creator>, CAgentMan, Creator>,
public IRowsetIndexImpl< ... >
Ajoutez l'interface à COM_MAP dans l'objet en utilisant la macro COM_INTERFACE_ENTRY. Si aucun mappage n'existe, vous devez en créer un. Par exemple :
BEGIN_COM_MAP(CAgentRowset)
COM_INTERFACE_ENTRY(IRowsetIndex)
END_COM_MAP()
Pour l'objet rowset, chaînez le mappage à son objet parent de façon que l'objet puisse déléguer à la classe parente. Dans cet exemple, ajoutez la macro COM_INTERFACE_ENTRY_CHAIN au mappage :
BEGIN_COM_MAP(CAgentRowset)
COM_INTERFACE_ENTRY(IRowsetIndex)
COM_INTERFACE_ENTRY_CHAIN(CRowsetImpl)
END_COM_MAP()