Depois de modificar a herança de RMyProviderRowset, você precisará implementar o IRowsetLocate interface. Você pode encontrar a definição de interface no Resumo de Interface de referência OLE DB Programmer , o OLEDB.H arquivo no SDK OLE DB incluir diretório.
Para implementar essa interface:
IRowsetLocateImpl , derivado de IRowsete implementar a classe.////////////////////////////////////////////////////////////////////////
/ / RowLoc.h
/ / Classe IRowsetLocateImpl
modelo lt; classe t >
Classe IRowsetLocateImpl ATL_NO_VTABLE: público IRowsetImpl <T> {
público:
STDMETHOD (comparar) (HCHAPTER hReserved, ULONG cbBookmark1, const BYTE * pBookmark1, ULONG cbBookmark2, const BYTE * pBookmark2, DBCOMPARE * pComparison)
{
retornar S_OK;
}
STDMETHOD (GetRowsAt) (HWATCHREGION hReserved1, HCHAPTER hReserved2,
ULONG cbBookmark, const BYTE * pBookmark, lRowsOffset longo,
CRows longas, ULONG * pcRowsObtained, HROW ** prghRows)
{
retornar S_OK;
}
STDMETHOD (GetRowsByBookmark) (HCHAPTER hReserved, corvos ULONG,
[] const rgcbBookmarks ULONG, const BYTE * rgpBookmarks [],
HROW rghRows [], DBROWSTATUS rgRowStatus[])
{
retornar S_OK;
}
STDMETHOD (Hash) (HCHAPTER hReserved, ULONG cBookmarks,
[] const rgcbBookmarks ULONG, const BYTE * rgpBookmarks [],
DWORD rgHashedValues [], DBROWSTATUS rgBookmarkStatus[])
{
ATLTRACENOTIMPL("IRowsetLocateImpl::GetRowsByBookmark");
}
}
No próximo tópico, você verá como completar a implementação pela adição de marcadores.