/********************************************************
*                                                       *
*   Copyright (C) Microsoft. All rights reserved.       *
*                                                       *
********************************************************/

//-----------------------------------------------------------------------------
// File:			rstbas.idl
//
// Contents: 		OLE DB interface definition
//
// Comments: 		
//
//-----------------------------------------------------------------------------

cpp_quote("#include <winapifamily.h>")

#pragma region Desktop Family
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")

#include "idlmulti.h"
//  
    
    LOCAL_INTERFACE(0c733a7c-2a1c-11ce-ade5-00aa0044773d)

    
interface IRowset : IUnknown {

	typedef DWORD DBROWOPTIONS;


	HRESULT AddRefRows(
		[in] DBCOUNTITEM cRows,
		[in, size_is(cRows)] const HROW rghRows[],
		[out, size_is(cRows)] DBREFCOUNT rgRefCounts[],
		[out, size_is(cRows)] DBROWSTATUS rgRowStatus[]
	);

	HRESULT GetData(
		[in] HROW hRow,
		[in] HACCESSOR hAccessor,
		[out] void * pData
	);

	HRESULT GetNextRows(
		[in] HCHAPTER hReserved,
		[in] DBROWOFFSET lRowsOffset,
		[in] DBROWCOUNT cRows,
		[out] DBCOUNTITEM * pcRowsObtained,
		[out, size_is(,cRows)] HROW ** prghRows
	);

	HRESULT ReleaseRows(
		[in] DBCOUNTITEM cRows,
		[in, size_is(cRows)] const HROW rghRows[],
		[in, size_is(cRows)] DBROWOPTIONS rgRowOptions[],
		[out, size_is(cRows)] DBREFCOUNT rgRefCounts[],
		[out, size_is(cRows)] DBROWSTATUS rgRowStatus[]
	);

	HRESULT RestartPosition(
		[in] HCHAPTER hReserved
	);

}

cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */")
#pragma endregion

