공급자에 인터페이스 추가
참고 항목
Visual Studio 2019 이상에서는 ATL OLE DB 공급자 마법사를 사용할 수 없습니다.
인터페이스를 추가하려는 개체를 결정합니다(일반적으로 데이터 소스, 행 집합, 명령 또는 OLE DB 공급자 마법사에서 생성된 세션 개체). 인터페이스를 추가해야 하는 개체가 공급자에서 현재 지원하지 않는 개체일 수 있습니다. 이 경우, ATL OLE DB 공급자 마법사를 실행하여 개체를 만듭니다. 클래스 뷰에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 메뉴에서 추가>새 항목을 클릭한 다음, 설치됨>Visual C++>ATL을 선택하고 ATL OLEDB 공급자를 클릭합니다. 인터페이스 코드를 별도의 디렉터리에 배치한 다음, 공급자 프로젝트에 파일을 복사하는 것이 좋습니다.
인터페이스를 지원하는 새 클래스를 만든 경우 개체가 해당 클래스에서 상속받도록 합니다. 예를 들어 행 집합 개체에 IRowsetIndexImpl
클래스를 추가할 수 있습니다.
template <class Creator>
class CCustomRowset :
public CRowsetImpl< CCustomRowset<Creator>, CCustomWindowsFile, Creator>,
public IRowsetIndexImpl< ... >
COM_INTERFACE_ENTRY 매크로를 사용하여 개체의 COM_MAP에 인터페이스를 추가합니다. 맵이 없으면 새로 만듭니다. 예시:
BEGIN_COM_MAP(CCustomRowset)
COM_INTERFACE_ENTRY(IRowsetIndex)
END_COM_MAP()
행 집합 개체의 경우 개체가 부모 클래스에 위임할 수 있도록 부모 개체의 맵을 연결합니다. 이 예제에서는 COM_INTERFACE_ENTRY_CHAIN 매크로를 맵에 추가합니다.
BEGIN_COM_MAP(CCustomRowset)
COM_INTERFACE_ENTRY(IRowsetIndex)
COM_INTERFACE_ENTRY_CHAIN(CRowsetImpl)
END_COM_MAP()