//-----------------------------------------------------------------------------
// File:			rstlkr.idl
//
// Copyright:		Copyright (c) Microsoft Corporation          
//
// Contents: 		OLE DB interface definition
//
// Comments: 		
//
//-----------------------------------------------------------------------------

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

    
interface IRowsetLockRows : IUnknown {

typedef DWORD DBLOCKMODE;

enum DBLOCKMODEENUM {
	DBLOCKMODE_NONE,
	DBLOCKMODE_READ,
	DBLOCKMODE_INTENT,
	DBLOCKMODE_WRITE
};

#ifdef _WIN64  //Use casting by ULONG in attribute size_is under 64-bit environment.

	HRESULT LockRowsByBookmark(
		[in] DBLOCKMODE eLockMode,
		[in] HCHAPTER hReserved,
		[in] DBCOUNTITEM cRows,
		[in, size_is((ULONG)cRows)] const DBBKMARK rgcbBookmarks[],
		[in, size_is((ULONG)cRows)] const BYTE * rgBookmarks[],
		[out, size_is((ULONG)cRows)] DBROWSTATUS rgRowStatus[]
	);
	
#else  //No casting by ULONG for 32-bit.

	HRESULT LockRowsByBookmark(
		[in] DBLOCKMODE eLockMode,
		[in] HCHAPTER hReserved,
		[in] DBCOUNTITEM cRows,
		[in, size_is(cRows)] const DBBKMARK rgcbBookmarks[],
		[in, size_is(cRows)] const BYTE * rgBookmarks[],
		[out, size_is(cRows)] DBROWSTATUS rgRowStatus[]
	);

#endif

}

