Implementação de IRowsetLocate

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:

  1. Criar um novo arquivo chamado RowLoc.h e adicione o arquivo ao projeto.

  2. Em RowLoc.h, criar uma definição de classe para IRowsetLocateImpl , derivado de IRowsete implementar a classe.

  3. Copie os métodos para a interface de arquivo de cabeçalho OLE DB OLE DB.H a RowLoc.h. Alterar os códigos de retorno HRESULT para STDMETHOD e colocar entre parênteses os nomes de método, conforme mostrado no código a seguir.

  4. Conclua a execução (abordada no próximo tópico).
////////////////////////////////////////////////////////////////////////
/ / 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.

Index