Ajout d'une interface à votre fournisseur
Remarque
L’Assistant Fournisseur OLE DB ATL n’est pas disponible dans Visual Studio 2019 et versions ultérieures.
Déterminez à quel objet vous souhaitez ajouter l’interface (généralement des objets de source de données, d’ensemble de lignes, de commande ou de session créés par l’Assistant Fournisseur OLE DB). Il est possible que l’objet auquel vous devez ajouter l’interface ne soit pas pris en charge actuellement par votre fournisseur. Dans ce cas, exécutez l’Assistant Fournisseur OLE DB ATL pour créer l’objet. Cliquez avec le bouton droit sur le projet dans Affichage de classes, cliquez sur Ajouter>Nouvel élément dans le menu, sélectionnez Installé>Visual C++ >ATL, puis cliquez sur Fournisseur OLE DB ATL. Nous vous conseillons de placer le code d’interface dans un répertoire séparé, puis de copier les fichiers dans votre projet 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 d’ensemble de lignes :
template <class Creator>
class CCustomRowset :
public CRowsetImpl< CCustomRowset<Creator>, CCustomWindowsFile, Creator>,
public IRowsetIndexImpl< ... >
Ajoutez l’interface à COM_MAP dans l’objet en utilisant la macro COM_INTERFACE_ENTRY. S’il n’existe aucun mappage, créez-le. Par exemple :
BEGIN_COM_MAP(CCustomRowset)
COM_INTERFACE_ENTRY(IRowsetIndex)
END_COM_MAP()
Pour l’objet d’ensemble de lignes, chaînez le mappage de son objet parent afin 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(CCustomRowset)
COM_INTERFACE_ENTRY(IRowsetIndex)
COM_INTERFACE_ENTRY_CHAIN(CRowsetImpl)
END_COM_MAP()