Rmyproviderrowset의 상속 수정

추가 하는 IRowsetLocate 의 상속을 수정 하 고, 간단한 읽기 전용 공급자 예제에 대 한 인터페이스 RMyProviderRowset . 처음 RMyProviderRowset CRowsetImpl에서 상속 합니다. CRowsetBaseImpl에서 상속 하도록 수정 해야 합니다. 이렇게 하려면 새 클래스를 만들 CMyRowsetImpl , Myproviderrs.h에:

////////////////////////////////////////////////////////////////////////
/ / MyProviderRS.h

서식 파일 lt; 클래스 T 클래스 저장소를 클래스 CreatorClass, 클래스 ArrayType CSimpleArray <Storage> = >
CMyRowsetImpl 클래스:
   공공 CRowsetBaseImpl < T, 스토리지, CreatorClass, ArrayType >
   공공 IRowsetLocateImpl <T>
{
   typedef CRowsetBaseImpl < T, 스토리지, CreatorClass, ArrayType > _RowsetBaseClass;

BEGIN_COM_MAP(CMyRowsetImpl)
   COM_INTERFACE_ENTRY_IID (IID_IRowsetLocate, IRowset)
   COM_INTERFACE_ENTRY(IRowset)
   COM_INTERFACE_ENTRY_CHAIN(_RowsetBaseClass)
END_COM_MAP()
}

이제 알려주는 COM 인터페이스 맵을 만듭니다 CMyRowsetImpl 모두 IRowset 에 대 한 QueryInterface 를 호출 하 고 IRowsetLocate 인터페이스。

////////////////////////////////////////////////////////////////////////
/ / MyProviderRS.h

BEGIN_COM_MAP(CMyRowsetImpl)
   COM_INTERFACE_ENTRY_IID (IID_IRowsetLocate, IRowset)
   COM_INTERFACE_ENTRY(IRowset)
END_COM_MAP()

모든 다른 행 집합 클래스에 대 한 구현의 얻을, 링크를 CMyRowsetImpl 클래스는 OLE DB 템플릿을 정의한 CRowsetBaseImpl 클래스. 이렇게 하려면 다음 코드와 같이 COM_INTERFACE_ENTRY_CHAIN 매크로 사용 합니다. COM_INTERFACE_ENTRY_CHAIN 매크로 OLE DB 템플릿 QueryInterface 호출에 대 한 응답에서 CRowsetBaseImpl 의 COM 맵을 검색할 알려줍니다.

////////////////////////////////////////////////////////////////////////
/ / MyProviderRS.h

BEGIN_COM_MAP(CMyRowsetImpl)
   COM_INTERFACE_ENTRY_IID (IID_IRowsetLocate, IRowset)
   COM_INTERFACE_ENTRY(IRowset)
   COM_INTERFACE_ENTRY_CHAIN(_RowsetBaseClass)
END_COM_MAP()

마지막으로, 연결 RAgentRowset 에 CMyRowsetBaseImpl 수정 하 여 RAgentRowset 에서 상속 CMyRowsetImpl 여기에서 보이는 것과 같이,:

rAgentRowset 클래스: 공용 CMyRowsetImpllt;RAgentRowset CAgentMan, CMyProviderCommand & gt

RAgentRowset이제 사용할 수 있는 IRowsetLocate 행 집합 클래스에 대 한 구현의 나머지 부분을 이용 하는 동안 인터페이스。

IRowsetLocateImpl 구현 준비가이 작업을 수행 하는 경우。

Index