Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Der ATL-OLE DB-Anbieter-Assistent ist in Visual Studio 2019 und höher nicht verfügbar.
Bestimmen Sie, welchem Objekt Sie die Schnittstelle hinzufügen möchten (in der Regel Datenquellen-, Rowset-, Befehls- oder Sitzungsobjekte, die vom OLE DB-Anbieter-Assistent erstellt werden). Es kann passieren, dass das Objekt, dem Sie die Schnittstelle hinzufügen müssen, von Ihrem Anbieter noch nicht unterstützt wird. Führen Sie in diesem Fall den ATL-OLE DB-Anbieter-Assistenten aus, um das Objekt zu erstellen. Klicken Sie in der Klassenansicht mit der rechten Maustaste auf das Projekt. Klicken Sie im Kontextmenü auf Hinzufügen>Neues Element, und wählen Sie Installiert>Visual C++>ATL aus. Klicken Sie dann auf ATL-OLE DB-Anbieter. Möglicherweise ist es eine gute Idee, den Schnittstellencode in einem separaten Verzeichnis zu speichern und die Dateien dann in Ihr Anbieterprojekt zu kopieren.
Wenn Sie eine neue Klasse erstellt haben, um die Schnittstelle zu unterstützen, legen Sie das Objekt so fest, dass es von dieser Klasse erbt. Sie können z.B. die Klasse IRowsetIndexImpl zu einem Rowsetobjekt hinzufügen:
template <class Creator>
class CCustomRowset :
public CRowsetImpl< CCustomRowset<Creator>, CCustomWindowsFile, Creator>,
public IRowsetIndexImpl< ... >
Fügen Sie die Schnittstelle mit dem COM_INTERFACE_ENTRY-Makro zu COM_MAP im Objekt hinzu. Wenn keine Zuordnung vorhanden ist, erstellen Sie eine. Zum Beispiel:
BEGIN_COM_MAP(CCustomRowset)
COM_INTERFACE_ENTRY(IRowsetIndex)
END_COM_MAP()
Verketten Sie für das Rowsetobjekt die Zuordnung des übergeordneten Objekts, sodass das Objekt an die übergeordnete Klasse delegieren kann. In diesem Beispiel fügen Sie das COM_INTERFACE_ENTRY_CHAIN-Makro zur Zuordnung hinzu:
BEGIN_COM_MAP(CCustomRowset)
COM_INTERFACE_ENTRY(IRowsetIndex)
COM_INTERFACE_ENTRY_CHAIN(CRowsetImpl)
END_COM_MAP()