//[ 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);
}
//]