Implementación de IRowsetLocate

Después de modificar la herencia de RMyProviderRowset, necesita implementar la IRowsetLocate interfaz. Puede encontrar la definición de interfaz en el Resumen de interfaz del Programador de OLE DB de referencia y en el OLEDB.H archivo en el SDK de OLE DB incluye directorio.

Para implementar esta interfaz:

  1. Cree un nuevo archivo denominado RowLoc.h y agregue el archivo del proyecto.

  2. En RowLoc.h, crear una definición de clase para IRowsetLocateImpl , derivado de IRowsete implementar la clase.

  3. Copiar los métodos de la interfaz desde el archivo de encabezado de OLE DB OLEDB.H a RowLoc.h. Cambiar los códigos de retorno HRESULT STDMETHOD y poner entre paréntesis el nombre de método, como se muestra en el siguiente código.

  4. Completar la aplicación (cubierta en el tema siguiente).
////////////////////////////////////////////////////////////////////////
/ / RowLoc.h
/ / clase IRowsetLocateImpl

plantilla lt; clase t >
clase ATL_NO_VTABLE IRowsetLocateImpl: IRowsetImpl public <T> {}
público:
   STDMETHOD (Comparar) (HCHAPTER hReserved, cbBookmark1 ULONG, const BYTE * pBookmark1, ULONG cbBookmark2, BYTE const * pBookmark2, DBCOMPARE * pComparison)
   {
      Devuelve S_OK;
   }

STDMETHOD (GetRowsAt) (HWATCHREGION hReserved1, HCHAPTER hReserved2,
      ULONG cbBookmark, BYTE const * pBookmark, lRowsOffset largo,
      Cuervos LONG, ULONG * pcRowsObtained, HROW ** prghRows)
   {
      Devuelve S_OK;
   }

STDMETHOD (GetRowsByBookmark) (HCHAPTER hReserved, cuervos ULONG,
      const ULONG rgcbBookmarks [], const BYTE * rgpBookmarks [],
      HROW [rghRows], DBROWSTATUS rgRowStatus[])
   {
      Devuelve S_OK;
   }

STDMETHOD (Hash) (HCHAPTER hReserved, cBookmarks ULONG,
      const ULONG rgcbBookmarks [], const BYTE * rgpBookmarks [],
      DWORD rgHashedValues [], DBROWSTATUS rgBookmarkStatus[])
   {
      ATLTRACENOTIMPL("IRowsetLocateImpl::GetRowsByBookmark");
   }
}

En el siguiente tema, verá cómo completar la aplicación mediante la adición de marcadores.

Index