Source code of Windows XP (NT5)
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.

246 lines
9.1 KiB

  1. //[ ITest_itf
  2. //+-------------------------------------------------------------------
  3. //
  4. // Interface: ITest (ib)
  5. //
  6. // Purpose: Interface for manipulating performance
  7. //
  8. // History: 5-Oct-93 AlexMit Created
  9. //
  10. // Notes:
  11. //
  12. //--------------------------------------------------------------------
  13. import "unknwn.idl";
  14. #ifdef NEVER
  15. [
  16. uuid(fc693210-cbeb-11d0-9b61-00c04fc3398c)
  17. ]
  18. pipe_interface long ILongPipe;
  19. #else
  20. [
  21. object,
  22. uuid(fc693210-cbeb-11d0-9b61-00c04fc3398c),
  23. pointer_default(unique)
  24. ]
  25. interface ILongPipe : IUnknown
  26. {
  27. HRESULT Alloc ( [in] ULONG bsize, [out] LONG **pbuf, [out] ULONG *bcount );
  28. HRESULT Push ( [in] LONG *buf, [in] ULONG ecount );
  29. HRESULT Pull ( [in] LONG *buf, [in] ULONG esize, [out] ULONG *ecount );
  30. }
  31. #endif
  32. [
  33. object,
  34. uuid(60000300-76d7-11cf-9af1-0020af6e72f4),
  35. pointer_default(unique)
  36. ]
  37. interface ITest : IUnknown
  38. {
  39. import "objidl.idl";
  40. import "accctrl.h";
  41. typedef struct
  42. {
  43. DWORD process;
  44. DWORD thread;
  45. DWORD sequence;
  46. } SAptId;
  47. typedef struct
  48. {
  49. UCHAR Value[6];
  50. } HACKHACKHACK_SID_IDENTIFIER_AUTHORITY;
  51. typedef struct
  52. {
  53. UCHAR Revision;
  54. UCHAR SubAuthorityCount;
  55. HACKHACKHACK_SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
  56. #ifdef MIDL_PASS
  57. [size_is(SubAuthorityCount)] ULONG SubAuthority[*];
  58. #else // MIDL_PASS
  59. ULONG SubAuthority[ANYSIZE_ARRAY];
  60. #endif // MIDL_PASS
  61. } HACKSID;
  62. typedef [string] wchar_t *STRING;
  63. typedef [string] wchar_t *KEEP_STRING;
  64. typedef [transmit_as(DWORD)] DWORD transmit_crash;
  65. typedef PACTRL_ACCESSW PACTRL_ACCESSW_ALLOCATE;
  66. HRESULT align ( [in] unsigned char x[17] );
  67. HRESULT by_the_way ( [in] DWORD );
  68. HRESULT call_canceled ( [in] long recurse, [in] long cancel,
  69. [in] ITest *callback );
  70. HRESULT call_dead ();
  71. HRESULT call_me_back ( [in] ITest *callback );
  72. HRESULT call_next ();
  73. HRESULT callback ();
  74. HRESULT cancel ();
  75. HRESULT cancel_now ();
  76. HRESULT cancel_pending_call ( [out] DWORD *thread );
  77. HRESULT cancel_stress ( [in] ITest *obj );
  78. HRESULT catch_at_top ( [in] BOOL catch_me_im_falling,
  79. [in] ITest *callback,
  80. [in] KEEP_STRING binding );
  81. HRESULT check ( [in] SAptId id );
  82. HRESULT check_hook ( [in] DWORD cg1, [in] DWORD cn1,
  83. [in] DWORD sg1, [in] DWORD sn1,
  84. [in] DWORD cg2, [in] DWORD cn2,
  85. [in] DWORD sg2, [in] DWORD sn2,
  86. [in] BOOL dh1, [in] BOOL dh2 );
  87. HRESULT count ();
  88. HRESULT crash_out ( [out] transmit_crash *data );
  89. HRESULT decrypt ( [in] DWORD blen,
  90. [in, size_is(blen)] BYTE *buf,
  91. [in] STRING decrypted,
  92. [in] DWORD klen,
  93. [in, unique, size_is(klen)] BYTE *key,
  94. [in, unique] STRING password );
  95. HRESULT delegate ( [in] ITest *obj, [in] SAptId id,
  96. [in] STRING caller );
  97. HRESULT do_next ( [in] DWORD );
  98. HRESULT exit ();
  99. HRESULT forget ();
  100. HRESULT get_advise ( [out] IAdviseSink **advise );
  101. HRESULT get_data ( [in] DWORD isize,
  102. [in, unique, size_is(isize)] char *idata,
  103. [in] DWORD osize,
  104. [out, size_is(,osize)] char **odata );
  105. HRESULT get_id ( [out] SAptId *id );
  106. HRESULT get_next ( [out] ITest **obj, [out] SAptId *id );
  107. HRESULT get_next_slowly ( [out] ITest **obj, [out] SAptId *id );
  108. HRESULT get_obj_from_new_apt ( [out] ITest **obj, [out] SAptId *id );
  109. HRESULT get_obj_from_this_apt ( [out] ITest **obj, [out] SAptId *id );
  110. HRESULT get_string ( [in] DWORD what, [out] STRING *str );
  111. HRESULT interface_in ( [in] ITest *obj );
  112. HRESULT interrupt ( [in] ITest *obj, [in] SAptId id, BOOL go );
  113. HRESULT interrupt_marshal ( [in] ITest *obj1, [in] ITest *obj2 );
  114. HRESULT list_out ( [out] PACTRL_ACCESSW_ALLOCATE *list );
  115. HRESULT make_acl ( [in] HACKSID *allow );
  116. HRESULT neighbor_access ( [in] ITest *obj );
  117. HRESULT null ();
  118. HRESULT out ( [out] ITest **obj );
  119. HRESULT perf_access ( [out] DWORD *grant, [out] DWORD *revoke,
  120. [out] DWORD *set, [out] DWORD *get,
  121. [out] DWORD *generate, [out] DWORD *check,
  122. [out] DWORD *cache );
  123. #ifdef NEVER
  124. HRESULT pipe_in ( [in] DWORD num, [in] DWORD block,
  125. [in] ILongPipe *p );
  126. HRESULT pipe_inout ( [in] DWORD num, [in] DWORD block,
  127. [in] ILongPipe *pi, [out] ILongPipe *po );
  128. HRESULT pipe_out ( [in] DWORD num, [in] DWORD block,
  129. [out] ILongPipe *po );
  130. #endif
  131. HRESULT pointer ( [in] DWORD *ptr );
  132. HRESULT pound ();
  133. HRESULT recurse ( [in] ITest *callback, [in] ULONG depth );
  134. HRESULT recurse_delegate ( [in] ITest *callback, [in] ULONG depth,
  135. [in] STRING Caller );
  136. HRESULT recurse_disconnect ( [in] ITest *callback, [in] ULONG depth );
  137. HRESULT recurse_excp ( [in] ITest *callback, [in] ULONG depth );
  138. HRESULT recurse_fatal ( [in] ITest *callback,
  139. [in] ULONG catch_depth,
  140. [in] ULONG throw_depth,
  141. [in] BOOL cancel );
  142. HRESULT register_hook ( [in] GUID ext, [in] DWORD seq );
  143. HRESULT recurse_interrupt ( [in] ITest *callback, [in] ULONG depth );
  144. HRESULT recurse_secure ( [in] ITest *callback, [in] ULONG depth,
  145. [in] ULONG imp_depth, [in] STRING Caller );
  146. HRESULT register_message_filter( BOOL );
  147. HRESULT register_rpc ( [in] STRING protseq, [out] STRING *binding );
  148. HRESULT reinitialize ( [in] DWORD authn_svc );
  149. HRESULT reject_next ();
  150. HRESULT remember ( [in] ITest *neighbor, [in] SAptId id );
  151. HRESULT rest_and_die ();
  152. HRESULT retry_next ();
  153. HRESULT ring ( [in] DWORD length );
  154. HRESULT secure ( [in] SAptId id,
  155. [in] DWORD AuthnLevel, [in] DWORD ImpLevel,
  156. [in] DWORD AuthnSvc, [in] DWORD AuthzSvc,
  157. [in, unique] STRING PrincName,
  158. [in, unique] STRING Caller,
  159. [out] DWORD *QueryAuthnLevel );
  160. HRESULT security_performance ( [out] DWORD *get_call,
  161. [out] DWORD *query_client,
  162. [out] DWORD *impersonate,
  163. [out] DWORD *revert );
  164. HRESULT set_state ( [in] DWORD flags, [in] DWORD priority );
  165. HRESULT setup_access ();
  166. HRESULT sick ( [in] ULONG throw_val );
  167. HRESULT sleep ( [in] ULONG time );
  168. HRESULT swap_key ( [in] DWORD clilen,
  169. [in, unique, size_is(clilen)] BYTE *clib,
  170. [out] DWORD *serlen,
  171. [out, size_is(,*serlen)] BYTE **serb );
  172. HRESULT test ( [in] ULONG gronk );
  173. HRESULT what ( [out] DWORD * );
  174. }
  175. [
  176. object,
  177. uuid(60000301-76d7-11cf-9af1-0020af6e72f4),
  178. pointer_default(unique)
  179. ]
  180. interface ITestNoneImp : ITest
  181. {
  182. HRESULT dummy();
  183. }
  184. [
  185. object,
  186. uuid(60000302-76d7-11cf-9af1-0020af6e72f4),
  187. pointer_default(unique)
  188. ]
  189. interface ITestConnectImp : ITest
  190. {
  191. HRESULT dummy();
  192. }
  193. [
  194. object,
  195. uuid(60000303-76d7-11cf-9af1-0020af6e72f4),
  196. pointer_default(unique)
  197. ]
  198. interface ITestEncryptImp : ITest
  199. {
  200. HRESULT dummy();
  201. }
  202. [
  203. object,
  204. uuid(60000304-76d7-11cf-9af1-0020af6e72f4),
  205. pointer_default(unique)
  206. ]
  207. interface ITestNoneId : ITest
  208. {
  209. HRESULT dummy();
  210. }
  211. [
  212. object,
  213. uuid(60000305-76d7-11cf-9af1-0020af6e72f4),
  214. pointer_default(unique)
  215. ]
  216. interface ITestConnectId : ITest
  217. {
  218. HRESULT dummy();
  219. }
  220. [
  221. object,
  222. uuid(60000306-76d7-11cf-9af1-0020af6e72f4),
  223. pointer_default(unique)
  224. ]
  225. interface ITestEncryptId : ITest
  226. {
  227. HRESULT dummy();
  228. }
  229. //]