Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
2.0 KiB

  1. //[ IRpcTest_itf
  2. //+-------------------------------------------------------------------
  3. //
  4. // Interface: IRpcTest (ib)
  5. //
  6. // Purpose: Interface for testing Rpc calls via Ole style interfaces
  7. //
  8. // History: 23-Nov-92 Rickhi Created
  9. //
  10. // Notes:
  11. //
  12. //--------------------------------------------------------------------
  13. [ object,
  14. uuid(00000137-0001-0008-C000-000000000046),
  15. pointer_default(unique) ]
  16. interface IRpcTest : IUnknown
  17. {
  18. import "unknwn.idl";
  19. // test passing void parameters
  20. SCODE Void(void);
  21. SCODE VoidRC(void);
  22. // test passing void ptr parameters ie byte arrays
  23. SCODE VoidPtrIn([in] ULONG cb, [in, size_is(cb)] BYTE *pv);
  24. SCODE VoidPtrOut([in] ULONG cb, [out] ULONG *pcb,
  25. [out, size_is(cb), length_is(*pcb)] BYTE *pv);
  26. // test passing dword parameters
  27. SCODE DwordIn([in] DWORD dw);
  28. SCODE DwordOut([out] DWORD *pdw);
  29. SCODE DwordInOut([in,out] DWORD *pdw);
  30. // test passing LARGE_INTEGER parameters
  31. SCODE LiIn([in] LARGE_INTEGER li);
  32. SCODE LiOut([out] LARGE_INTEGER *pli);
  33. SCODE ULiIn([in] ULARGE_INTEGER uli);
  34. SCODE ULiOut([out] ULARGE_INTEGER *puli);
  35. // test passing string parameters
  36. SCODE StringIn([in,string] LPWSTR pwsz);
  37. SCODE StringOut([out,string] LPWSTR *ppwsz);
  38. SCODE StringInOut([in,out,string] LPWSTR pwsz);
  39. // test passing GUID parameters
  40. SCODE GuidIn([in] GUID guid);
  41. SCODE GuidOut([out] GUID *pguid);
  42. // test passing interface parameters
  43. SCODE IUnknownIn([in] IUnknown *punk);
  44. SCODE IUnknownOut([out] IUnknown **ppunk);
  45. // these versions retain the interface ptr
  46. SCODE IUnknownInKeep([in] IUnknown *punk);
  47. SCODE IUnknownInRelease(void);
  48. SCODE IUnknownOutKeep([out] IUnknown **ppunk);
  49. // these versions test asking for a non-IUnknown interface
  50. SCODE InterfaceIn([in] REFIID riid, [in, iid_is(riid)] IUnknown *punk);
  51. SCODE InterfaceOut([in] REFIID riid, [out,iid_is(riid)] IUnknown **ppunk);
  52. }
  53. //]