windows-nt/Source/XPSP1/NT/com/oleutest/balls/idl/rpctst.idl
2020-09-26 16:20:57 +08:00

67 lines
1.9 KiB
Plaintext

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