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

#include "idlmulti.h"
//

    REMOTED_INTERFACE(0c733a85-2a1c-11ce-ade5-00aa0044773d)


interface ISessionProperties : IUnknown {

	[local]
	HRESULT GetProperties(
		[in] ULONG cPropertyIDSets,
		[in, size_is(cPropertyIDSets), annotation("__in_ecount_opt(cPropertyIDSets)")] 
			const DBPROPIDSET rgPropertyIDSets[],
		[in, out, annotation("__out")] ULONG * pcPropertySets,
		[out, size_is(,*pcPropertySets), annotation("__deref_out_ecount_opt(*pcPropertySets)")] 
			DBPROPSET ** prgPropertySets
	);

	[call_as(GetProperties)]
	HRESULT RemoteGetProperties(
		[in] ULONG cPropertyIDSets,
		[in, unique, size_is(cPropertyIDSets)] const DBPROPIDSET *rgPropertyIDSets,
		[in, out] ULONG * pcPropertySets,
		[out, size_is(,*pcPropertySets)] DBPROPSET ** prgPropertySets,
		[out] IErrorInfo ** ppErrorInfoRem
	);

	[local]
	HRESULT SetProperties(
		[in] ULONG cPropertySets,
		[in, out, unique, size_is(cPropertySets), annotation("__inout_ecount_opt(cPropertySets)")] 
			DBPROPSET rgPropertySets[]
	);

	[call_as(SetProperties)]
	HRESULT RemoteSetProperties(
		[in] ULONG cPropertySets,
		[in, unique, size_is(cPropertySets)] DBPROPSET * rgPropertySets,
		[in] ULONG cTotalProps,
		[out, size_is(cTotalProps)] DBPROPSTATUS * rgPropStatus,
		[out] IErrorInfo ** ppErrorInfoRem
	);

}

