summaryrefslogblamecommitdiffstats
path: root/private/oleutest/balls/idl/rpctyp.idl
blob: 2265008fae730d0bf641cd5ea9f38cf94abd1eac (plain) (tree)






























































































                                                                             
//[ IRpcTypes_itf
//+-------------------------------------------------------------------
//
//  Interface:	IRpcTypes
//
//  Purpose:	Interface for testing Rpc calls via Ole style interfaces
//
//  History:	23-Nov-92   Rickhi	Created
//
//  Notes:
//
//--------------------------------------------------------------------

[ object,
  uuid(00000135-0001-0008-C000-000000000046),
  pointer_default(unique) ]

interface IRpcTypes : IUnknown
{
    import "unknwn.idl";
    import "estatd.idl";


    //	methods to test GUID parameter passing

    SCODE GuidsIn([in] REFCLSID 	rclsid,
		  [in] CLSID		clsid,
		  [in] REFIID		riid,
		  [in] IID		iid,
		  [in] GUID		guid);

    SCODE GuidsOut([out] CLSID		*pclsid,
		   [out] IID		*piid,
		   [out] GUID		*pguid);


    //	methods to test DWORD / LARGE_INTEGER parameter passing

    SCODE DwordIn([in] DWORD		dw,
		  [in] ULONG		ul,
		  [in] LONG		lg,
		  [in] LARGE_INTEGER	li,
		  [in] ULARGE_INTEGER	uli);

    SCODE DwordOut([out] DWORD		*pdw,
		  [out] ULONG		*pul,
		  [out] LONG		*plg,
		  [out] LARGE_INTEGER	*pli,
		  [out] ULARGE_INTEGER	*puli);


    //	methods to test Windows structures parameter passing

    SCODE WindowsIn([in] POINTL 	pointl,
		    [in] SIZEL		sizel,
		    [in] RECTL		rectl,
		    [in] FILETIME	filetime,
		    [in] PALETTEENTRY	paletentry,
		    [in] LOGPALETTE	*plogpalet);

    SCODE WindowsOut([out] POINTL	*ppointl,
		     [out] SIZEL	*psizel,
		     [out] RECTL	*prectl,
		     [out] FILETIME	*pfiletime,
		     [out] PALETTEENTRY *ppaletentry,
		     [out] LOGPALETTE	**pplogpalet);


    //	methods to test OLE2.0 data/presentation structures parameter passing

    SCODE OleDataIn([in] STATDATA	statdata,
		   [in] STATSTG 	statstg,
		   [in] STGMEDIUM	stgmedium,
		   [in] FORMATETC	formatetc,
		   [in] DVTARGETDEVICE	*pdvtargetdevice);

    SCODE OleDataOut([out] STATDATA	*pstatdata,
		    [out] STATSTG	*pstatstg,
		    [out] STGMEDIUM	*pstgmedium,
		    [out] FORMATETC	*pformatetc,
		    [out] DVTARGETDEVICE **ppdvtargetdevice);


    //	methods to test void pointer parameter passing - mimics stream i/o

    SCODE VoidPtrIn([in] ULONG cb,
		    [in, size_is(cb)] void *pv);

    SCODE VoidPtrOut([out, size_is(cb), length_is(*pcb)] void *pv,
		     [in] ULONG cb,
		     [out] ULONG *pcb);

}

//]