summaryrefslogblamecommitdiffstats
path: root/private/oleutest/balls/idl/rpctst.idl
blob: 4c9e5e26547293268241bfeeac75a605aacc92bf (plain) (tree)

































































                                                                              
//[ IRpcTest_itf
//+-------------------------------------------------------------------
//
//  Interface:	IRpcTest (ib)
//
//  Purpose:	Interface for testing Rpc calls via Ole style interfaces
//
//  History:	23-Nov-92   Rickhi	Created
//
//  Notes:
//
//--------------------------------------------------------------------

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

interface IRpcTest : IUnknown
{
    import "unknwn.idl";

    //	test passing void parameters
    SCODE Void(void);
    SCODE VoidRC(void);

    //	test passing void ptr parameters ie byte arrays
    SCODE VoidPtrIn([in] ULONG cb, [in, size_is(cb)] BYTE *pv);
    SCODE VoidPtrOut([in] ULONG cb, [out] ULONG *pcb,
		     [out, size_is(cb), length_is(*pcb)] BYTE *pv);

    //	test passing dword parameters
    SCODE DwordIn([in] DWORD dw);
    SCODE DwordOut([out] DWORD *pdw);
    SCODE DwordInOut([in,out] DWORD *pdw);

    //	test passing LARGE_INTEGER parameters
    SCODE LiIn([in] LARGE_INTEGER li);
    SCODE LiOut([out] LARGE_INTEGER *pli);
    SCODE ULiIn([in] ULARGE_INTEGER uli);
    SCODE ULiOut([out] ULARGE_INTEGER *puli);

    //	test passing string parameters
    SCODE StringIn([in,string] LPWSTR pwsz);
    SCODE StringOut([out,string] LPWSTR *ppwsz);
    SCODE StringInOut([in,out,string] LPWSTR pwsz);

    //	test passing GUID parameters
    SCODE GuidIn([in] GUID guid);
    SCODE GuidOut([out] GUID *pguid);

    //	test passing interface parameters
    SCODE IUnknownIn([in] IUnknown *punk);
    SCODE IUnknownOut([out] IUnknown **ppunk);

    //	these versions retain the interface ptr
    SCODE IUnknownInKeep([in] IUnknown *punk);
    SCODE IUnknownInRelease(void);

    SCODE IUnknownOutKeep([out] IUnknown **ppunk);

    //	these versions test asking for a non-IUnknown interface
    SCODE InterfaceIn([in] REFIID riid,  [in, iid_is(riid)] IUnknown *punk);
    SCODE InterfaceOut([in] REFIID riid, [out,iid_is(riid)] IUnknown **ppunk);
}

//]