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