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.

765 lines
23 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Copyright 1996 - 1997 Microsoft Corporation. All Rights Reserved.
  4. //
  5. // Contents: Internet Location Services (ILS) Object interfaces
  6. //
  7. //----------------------------------------------------------------------------
  8. cpp_quote("//+-------------------------------------------------------------------------")
  9. cpp_quote("//")
  10. cpp_quote("// Microsoft Windows")
  11. cpp_quote("// Copyright 1996-1997 Microsoft Corporation. All Rights Reserved.")
  12. cpp_quote("//")
  13. cpp_quote("// File: ils.h")
  14. cpp_quote("//")
  15. cpp_quote("//--------------------------------------------------------------------------")
  16. import "objidl.idl";
  17. import "oleidl.idl";
  18. import "oaidl.idl";
  19. interface IIlsServer;
  20. interface IIlsMain;
  21. interface IIlsUser;
  22. interface IIlsProtocol;
  23. interface IIlsAttributes;
  24. interface IIlsFilter;
  25. interface IEnumIlsProtocols;
  26. interface IEnumIlsUsers;
  27. interface IEnumIlsNames;
  28. interface IIlsNotify;
  29. interface IIlsUserNotify;
  30. interface IIlsProtocolNotify;
  31. cpp_quote("")
  32. cpp_quote("////////////////////////////////////////////////////////////////////////////")
  33. cpp_quote("// Error Codes")
  34. cpp_quote("")
  35. cpp_quote("#define ILS_E(e) (0x81000000UL | (ULONG) (e))")
  36. cpp_quote("#define ILS_S(e) (0x01000000UL | (ULONG) (e))")
  37. cpp_quote("")
  38. cpp_quote("enum {")
  39. cpp_quote("")
  40. cpp_quote("// COM specific error codes")
  41. cpp_quote("//")
  42. cpp_quote(" ILS_S_SERVER_MAY_NOT_SUPPORT = ILS_S (1),")
  43. cpp_quote(" ILS_E_FAIL = E_FAIL,")
  44. cpp_quote(" ILS_E_POINTER = E_POINTER,")
  45. cpp_quote(" ILS_E_HANDLE = E_HANDLE,")
  46. cpp_quote(" ILS_E_ABORT = E_ABORT,")
  47. cpp_quote(" ILS_E_ACCESS_DENIED = E_ACCESSDENIED,")
  48. cpp_quote(" ILS_E_NOT_IMPL = E_NOTIMPL,")
  49. cpp_quote(" ILS_E_NO_INTERFACE = E_NOINTERFACE,")
  50. cpp_quote(" ILS_E_MEMORY = E_OUTOFMEMORY,")
  51. cpp_quote(" ILS_E_PARAMETER = E_INVALIDARG,")
  52. cpp_quote("")
  53. cpp_quote("// General error codes")
  54. cpp_quote("//")
  55. cpp_quote(" ILS_E_SERVER_SERVICE = ILS_E (1),")
  56. cpp_quote(" ILS_E_SERVER_NAME = ILS_E (2),")
  57. cpp_quote(" ILS_E_TIMEOUT = ILS_E (3),")
  58. cpp_quote(" ILS_E_BIND = ILS_E (4),")
  59. cpp_quote(" ILS_E_THREAD = ILS_E (5),")
  60. cpp_quote(" ILS_E_SERVER_EXEC = ILS_E (6),")
  61. cpp_quote(" ILS_E_WINSOCK = ILS_E (7),")
  62. cpp_quote(" ILS_E_NO_MORE = ILS_E (8),")
  63. cpp_quote(" ILS_E_NOT_INITIALIZED = ILS_E (9),")
  64. cpp_quote(" ILS_E_NOTIFY_ID = ILS_E (10),")
  65. cpp_quote(" ILS_E_NO_SUCH_OBJECT = ILS_E (11),")
  66. cpp_quote(" ILS_E_NEED_RELOGON = ILS_E (12),")
  67. cpp_quote(" ILS_E_NAME_CONFLICTS = ILS_E (13),")
  68. cpp_quote(" ILS_E_NETWORK_DOWN = ILS_E (14),")
  69. cpp_quote(" ILS_E_FILTER_STRING = ILS_E (15),")
  70. cpp_quote(" ILS_E_FILTER_OBJECT = ILS_E (16),")
  71. cpp_quote(" ILS_E_FILTER_TYPE = ILS_E (17),")
  72. cpp_quote(" ILS_E_ACCESS_CONTROL = ILS_E (18),")
  73. cpp_quote(" ILS_E_NOT_REGISTERED = ILS_E (19),")
  74. cpp_quote(" ILS_E_NO_SUCH_MEMBER = ILS_E (20),")
  75. cpp_quote(" ILS_E_NO_WRITE_ACCESS = ILS_E (21),")
  76. cpp_quote(" ILS_E_ALREADY_REGISTERED = ILS_E (22),")
  77. cpp_quote("")
  78. cpp_quote("// LDAP specific error codes")
  79. cpp_quote("//")
  80. cpp_quote(" ILS_E_LDAP_OPERATIONS_ERROR = ILS_E (0x101),")
  81. cpp_quote(" ILS_E_LDAP_PROTOCOL_ERROR = ILS_E (0x102),")
  82. cpp_quote(" ILS_E_LDAP_TIMELIMIT_EXCEEDED = ILS_E (0x103),")
  83. cpp_quote(" ILS_E_LDAP_SIZELIMIT_EXCEEDED = ILS_E (0x104),")
  84. cpp_quote(" ILS_E_LDAP_COMPARE_FALSE = ILS_E (0x105),")
  85. cpp_quote(" ILS_E_LDAP_COMPARE_TRUE = ILS_E (0x106),")
  86. cpp_quote(" ILS_E_LDAP_AUTH_METHOD_NOT_SUPPORTED = ILS_E (0x107),")
  87. cpp_quote(" ILS_E_LDAP_STRONG_AUTH_REQUIRED = ILS_E (0x108),")
  88. cpp_quote(" ILS_E_LDAP_REFERRAL_V2 = ILS_E (0x109),")
  89. cpp_quote(" ILS_E_LDAP_PARTIAL_RESULTS = ILS_E (0x10A),")
  90. cpp_quote(" ILS_E_LDAP_REFERRAL = ILS_E (0x10B),")
  91. cpp_quote(" ILS_E_LDAP_ADMIN_LIMIT_EXCEEDED = ILS_E (0x10C),")
  92. cpp_quote(" ILS_E_LDAP_UNAVAILABLE_CRIT_EXTENSION = ILS_E (0x10D),")
  93. cpp_quote(" ILS_E_LDAP_NO_SUCH_ATTRIBUTE = ILS_E (0x10E),")
  94. cpp_quote(" ILS_E_LDAP_UNDEFINED_TYPE = ILS_E (0x10F),")
  95. cpp_quote(" ILS_E_LDAP_INAPPROPRIATE_MATCHING = ILS_E (0x110),")
  96. cpp_quote(" ILS_E_LDAP_CONSTRAINT_VIOLATION = ILS_E (0x111),")
  97. cpp_quote(" ILS_E_LDAP_ATTRIBUTE_OR_VALUE_EXISTS = ILS_E (0x112),")
  98. cpp_quote(" ILS_E_LDAP_INVALID_SYNTAX = ILS_E (0x113),")
  99. cpp_quote(" ILS_E_LDAP_ALIAS_PROBLEM = ILS_E (0x114),")
  100. cpp_quote(" ILS_E_LDAP_INVALID_DN_SYNTAX = ILS_E (0x115),")
  101. cpp_quote(" ILS_E_LDAP_IS_LEAF = ILS_E (0x116),")
  102. cpp_quote(" ILS_E_LDAP_ALIAS_DEREF_PROBLEM = ILS_E (0x117),")
  103. cpp_quote(" ILS_E_LDAP_INAPPROPRIATE_AUTH = ILS_E (0x118),")
  104. cpp_quote(" ILS_E_LDAP_INVALID_CREDENTIALS = ILS_E (0x119),")
  105. cpp_quote(" ILS_E_LDAP_INSUFFICIENT_RIGHTS = ILS_E (0x11A),")
  106. cpp_quote(" ILS_E_LDAP_BUSY = ILS_E (0x11B),")
  107. cpp_quote(" ILS_E_LDAP_UNAVAILABLE = ILS_E (0x11C),")
  108. cpp_quote(" ILS_E_LDAP_UNWILLING_TO_PERFORM = ILS_E (0x11D),")
  109. cpp_quote(" ILS_E_LDAP_LOOP_DETECT = ILS_E (0x11E),")
  110. cpp_quote(" ILS_E_LDAP_NAMING_VIOLATION = ILS_E (0x11F),")
  111. cpp_quote(" ILS_E_LDAP_OBJECT_CLASS_VIOLATION = ILS_E (0x120),")
  112. cpp_quote(" ILS_E_LDAP_NOT_ALLOWED_ON_NONLEAF = ILS_E (0x121),")
  113. cpp_quote(" ILS_E_LDAP_NOT_ALLOWED_ON_RDN = ILS_E (0x122),")
  114. cpp_quote(" ILS_E_LDAP_NO_OBJECT_CLASS_MODS = ILS_E (0x123),")
  115. cpp_quote(" ILS_E_LDAP_RESULTS_TOO_LARGE = ILS_E (0x124),")
  116. cpp_quote(" ILS_E_LDAP_AFFECTS_MULTIPLE_DSAS = ILS_E (0x125),")
  117. cpp_quote(" ILS_E_LDAP_OTHER = ILS_E (0x126),")
  118. cpp_quote(" ILS_E_LDAP_SERVER_DOWN = ILS_E (0x127),")
  119. cpp_quote(" ILS_E_LDAP_LOCAL_ERROR = ILS_E (0x128),")
  120. cpp_quote(" ILS_E_LDAP_ENCODING_ERROR = ILS_E (0x129),")
  121. cpp_quote(" ILS_E_LDAP_DECODING_ERROR = ILS_E (0x12A),")
  122. cpp_quote(" ILS_E_LDAP_TIMEOUT = ILS_E (0x12B),")
  123. cpp_quote(" ILS_E_LDAP_AUTH_UNKNOWN = ILS_E (0x12C),")
  124. cpp_quote(" ILS_E_LDAP_FILTER_ERROR = ILS_E (0x12D),")
  125. cpp_quote(" ILS_E_LDAP_USER_CANCELLED = ILS_E (0x12E),")
  126. cpp_quote(" ILS_E_LDAP_NO_MEMORY = ILS_E (0x12F),")
  127. cpp_quote("}; // end of enum")
  128. cpp_quote("")
  129. cpp_quote("////////////////////////////////////////////////////////////////////////////")
  130. cpp_quote("// Constants Definitions")
  131. enum
  132. {
  133. ILS_INVALID_REQ_ID = 0
  134. };
  135. typedef enum
  136. {
  137. ILS_UNREGISTERED = 0,
  138. ILS_REGISTERING = 1,
  139. ILS_REGISTERED = 2,
  140. ILS_UNREGISTERING = 3,
  141. ILS_REGISTERED_BUT_INVALID = 4,
  142. ILS_NETWORK_DOWN = 5,
  143. ILS_IN_SYNC = 6,
  144. }
  145. ILS_STATE;
  146. typedef enum
  147. {
  148. ILS_ATTRTYPE_NONE = 0,
  149. ILS_ATTRTYPE_NAME_ONLY = 1,
  150. ILS_ATTRTYPE_NAME_VALUE = 2,
  151. }
  152. ILS_ATTR_TYPE;
  153. cpp_quote("")
  154. cpp_quote("////////////////////////////////////////////////////////////////////////////")
  155. cpp_quote("// Filters Definitions")
  156. typedef enum
  157. {
  158. ILS_FILTERTYPE_UNKNOWN = 0,
  159. ILS_FILTERTYPE_SIMPLE = 1,
  160. ILS_FILTERTYPE_COMPOSITE = 2,
  161. }
  162. ILS_FILTER_TYPE;
  163. typedef enum
  164. {
  165. ILS_FILTEROP_NONE = 0,
  166. ILS_FILTEROP_EQUAL = 1,
  167. ILS_FILTEROP_APPROX = 2,
  168. ILS_FILTEROP_LESS_THAN = 3,
  169. ILS_FILTEROP_GREATER_THAN = 4,
  170. ILS_FILTEROP_EXIST = 5,
  171. ILS_FILTEROP_AND = 21,
  172. ILS_FILTEROP_OR = 22,
  173. ILS_FILTEROP_NOT = 23,
  174. }
  175. ILS_FILTER_OP;
  176. typedef enum
  177. {
  178. ILS_STDATTR_NULL = 0,
  179. ILS_STDATTR_USER_ID = 1,
  180. ILS_STDATTR_IP_ADDRESS = 2,
  181. ILS_STDATTR_EMAIL_NAME = 3,
  182. ILS_STDATTR_FIRST_NAME = 4,
  183. ILS_STDATTR_LAST_NAME = 5,
  184. ILS_STDATTR_CITY_NAME = 6,
  185. ILS_STDATTR_COUNTRY_NAME = 7,
  186. ILS_STDATTR_COMMENT = 8,
  187. ILS_STDATTR_FLAGS = 9,
  188. ILS_STDATTR_APP_NAME = 10,
  189. ILS_STDATTR_APP_MIME_TYPE = 11,
  190. ILS_STDATTR_APP_GUID = 12,
  191. ILS_STDATTR_PROTOCOL_NAME = 13,
  192. ILS_STDATTR_PROTOCOL_MIME_TYPE = 14,
  193. ILS_STDATTR_PROTOCOL_PORT = 15,
  194. ILS_NUM_OF_STDATTRS = 16
  195. }
  196. ILS_STD_ATTR_NAME;
  197. typedef enum
  198. {
  199. ILS_AUTH_ANONYMOUS = 0,
  200. ILS_AUTH_CLEAR_TEXT = 1,
  201. ILS_AUTH_NTLM = 3,
  202. ILS_AUTH_DPA = 4,
  203. ILS_AUTH_MSN = 5,
  204. ILS_AUTH_SICILY = 6,
  205. ILS_AUTH_SSPI = 7,
  206. ILS_NUM_OF_AUTH_METHODS = 8
  207. }
  208. ILS_ENUM_AUTH_METHOD;
  209. cpp_quote("")
  210. cpp_quote("////////////////////////////////////////////////////////////////////////////")
  211. cpp_quote("// Interface Definitions")
  212. //+---------------------------------------------------------------------------
  213. //
  214. // Copyright (C) Microsoft Corporation, 1996 - 1997.
  215. //
  216. // Contents: IIlsServer interface definition
  217. //
  218. //----------------------------------------------------------------------------
  219. [
  220. object,
  221. uuid(8BCE6B64-85CE-11d0-9CA7-00A0C913B21E),
  222. pointer_default(unique)
  223. ]
  224. interface IIlsServer : IUnknown
  225. {
  226. typedef [unique] IIlsServer *LPILS_SERVER;
  227. HRESULT SetAuthenticationMethod (
  228. [in] ILS_ENUM_AUTH_METHOD enumAuthMethod );
  229. HRESULT SetLogonName (
  230. [in] BSTR bstrLogonName );
  231. HRESULT SetLogonPassword (
  232. [in] BSTR bstrLogonPassword );
  233. HRESULT SetDomain (
  234. [in] BSTR bstrDomain );
  235. HRESULT SetCredential (
  236. [in] BSTR bstrCredential );
  237. HRESULT SetTimeout (
  238. [in] ULONG uTimeoutInSecond );
  239. HRESULT SetBaseDN (
  240. [in] BSTR bstrBaseDN );
  241. }
  242. //+---------------------------------------------------------------------------
  243. //
  244. // Copyright (C) Microsoft Corporation, 1996 - 1997.
  245. //
  246. // Contents: IIlsMain interface definition
  247. //
  248. //----------------------------------------------------------------------------
  249. [
  250. object,
  251. uuid(34526E14-4D7D-11d0-8F4B-00C04FC29FEE),
  252. pointer_default(unique)
  253. ]
  254. interface IIlsMain : IUnknown
  255. {
  256. typedef [unique] IIlsMain *LPILS_MAIN;
  257. HRESULT Initialize();
  258. HRESULT CreateServer (
  259. [in] BSTR bstrServerName,
  260. [out] IIlsServer **ppServer );
  261. HRESULT CreateUser(
  262. [in] BSTR bstrUserID,
  263. [in] BSTR bstrAppName,
  264. [out] IIlsUser **ppUser);
  265. HRESULT GetUser(
  266. [in] IIlsServer *pServer,
  267. [in] BSTR bstrUserID,
  268. [in] BSTR bstrAppName,
  269. [in] BSTR bstrProtocolName,
  270. [in] IIlsAttributes *pAttrib,
  271. [out] IIlsUser **ppUser,
  272. [out] ULONG *puReqID);
  273. HRESULT EnumUserNames(
  274. [in] IIlsServer *pServer,
  275. [in] IIlsFilter *pFilter,
  276. [out] IEnumIlsNames **ppEnumUserNames,
  277. [out] ULONG *puReqID);
  278. HRESULT EnumUsers(
  279. [in] IIlsServer *pServer,
  280. [in] IIlsFilter *pFilter,
  281. [in] IIlsAttributes *pAttrib,
  282. [out] IEnumIlsUsers **ppEnumUsers,
  283. [out] ULONG *puReqID);
  284. HRESULT Abort(
  285. [in] ULONG uReqID);
  286. HRESULT CreateAttributes(
  287. [in] ILS_ATTR_TYPE AttrType,
  288. [out] IIlsAttributes **ppAttributes);
  289. HRESULT CreateFilter (
  290. [in] ILS_FILTER_TYPE FilterType,
  291. [in] ILS_FILTER_OP FilterOp,
  292. [out] IIlsFilter **ppFilter);
  293. HRESULT StringToFilter (
  294. [in] BSTR bstrFilterString,
  295. [out] IIlsFilter **ppFilter);
  296. HRESULT Uninitialize();
  297. }
  298. //+---------------------------------------------------------------------------
  299. //
  300. // Copyright (C) Microsoft Corporation, 1996 - 1997.
  301. //
  302. // Contents: IIlsNotify interface definition
  303. //
  304. //----------------------------------------------------------------------------
  305. [
  306. object,
  307. uuid(551D25EE-4D7D-11d0-8F4B-00C04FC29FEE),
  308. pointer_default(unique)
  309. ]
  310. interface IIlsNotify : IUnknown
  311. {
  312. typedef [unique] IIlsNotify *LPILS_NOTIFY;
  313. HRESULT GetUserResult(
  314. [in] ULONG uReqID,
  315. [in] IIlsUser *pUser,
  316. [in] HRESULT hResult);
  317. HRESULT EnumUserNamesResult(
  318. [in] ULONG uReqID,
  319. [in] IEnumIlsNames *pEnumUserName,
  320. [in] HRESULT hResult);
  321. HRESULT EnumUsersResult(
  322. [in] ULONG uReqID,
  323. [in] IEnumIlsUsers *pEnumUser,
  324. [in] HRESULT hResult);
  325. }
  326. //+---------------------------------------------------------------------------
  327. //
  328. // Copyright (C) Microsoft Corporation, 1996 - 1997.
  329. //
  330. // Contents: IIlsUser interface definition
  331. //
  332. //----------------------------------------------------------------------------
  333. [
  334. object,
  335. uuid(440CC982-20E6-11d0-8796-444553540000),
  336. pointer_default(unique)
  337. ]
  338. interface IIlsUser : IUnknown
  339. {
  340. typedef [unique] IIlsUser *LPILS_USER;
  341. HRESULT GetState(
  342. [out] ILS_STATE *pState);
  343. HRESULT GetStandardAttribute(
  344. [in] ILS_STD_ATTR_NAME StdAttr,
  345. [out] BSTR *pbstrValue);
  346. HRESULT SetStandardAttribute(
  347. [in] ILS_STD_ATTR_NAME StdAttr,
  348. [in] BSTR bstrValue);
  349. HRESULT GetExtendedAttribute (
  350. [in] BSTR bstrName,
  351. [out] BSTR *pbstrValue );
  352. HRESULT SetExtendedAttribute (
  353. [in] BSTR bstrName,
  354. [in] BSTR bstrValue );
  355. HRESULT RemoveExtendedAttribute (
  356. [in] BSTR bstrName );
  357. HRESULT GetAllExtendedAttributes(
  358. [out] IIlsAttributes **ppAttributes);
  359. HRESULT IsWritable(
  360. [in] BOOL *pValue);
  361. HRESULT Register(
  362. [in] IIlsServer *pServer,
  363. [out] ULONG *puReqID);
  364. HRESULT Unregister(
  365. [out] ULONG *puReqID);
  366. HRESULT Update(
  367. [out] ULONG *puReqID);
  368. HRESULT GetVisible(
  369. [out] DWORD *pfVisible);
  370. HRESULT SetVisible(
  371. [in] DWORD fVisible);
  372. HRESULT GetGuid(
  373. [out] GUID *pGuid);
  374. HRESULT SetGuid(
  375. [in] GUID *pGuid);
  376. HRESULT CreateProtocol(
  377. [in] BSTR bstrProtocolName,
  378. [in] ULONG uPortNumber,
  379. [in] BSTR bstrMimeType,
  380. [out] IIlsProtocol **ppProtocol);
  381. HRESULT AddProtocol(
  382. [in] IIlsProtocol *pProtocol,
  383. [out] ULONG *puReqID);
  384. HRESULT RemoveProtocol(
  385. [in] IIlsProtocol *pProtocol,
  386. [out] ULONG *puReqID);
  387. HRESULT GetProtocol(
  388. [in] BSTR bstrProtocolName,
  389. [in] IIlsAttributes *pAttributes,
  390. [out] IIlsProtocol **ppProtocol,
  391. [out] ULONG *puReqID);
  392. HRESULT EnumProtocols(
  393. [in] IIlsFilter *pFilter,
  394. [in] IIlsAttributes *pAttributes,
  395. [out] IEnumIlsProtocols **ppEnumProtocol,
  396. [out] ULONG *puReqID);
  397. HRESULT Clone (
  398. [out] IIlsUser **ppUser );
  399. }
  400. //+---------------------------------------------------------------------------
  401. //
  402. // Copyright (C) Microsoft Corporation, 1996 - 1997.
  403. //
  404. // Contents: IIlsProtocol interface definition
  405. //
  406. //----------------------------------------------------------------------------
  407. [
  408. object,
  409. uuid(440CC985-20E6-11d0-8796-444553540000),
  410. pointer_default(unique)
  411. ]
  412. interface IIlsProtocol : IUnknown
  413. {
  414. typedef [unique] IIlsProtocol *LPILS_PROTOCOL;
  415. HRESULT IsWritable(
  416. [in] BOOL *pValue);
  417. HRESULT GetPortNumber(
  418. [out] ULONG *pulPortNumber);
  419. HRESULT GetStandardAttribute(
  420. [in] ILS_STD_ATTR_NAME StdAttr,
  421. [out] BSTR *pbstrValue);
  422. HRESULT SetStandardAttribute(
  423. [in] ILS_STD_ATTR_NAME StdAttr,
  424. [in] BSTR bstrValue);
  425. HRESULT GetExtendedAttribute (
  426. [in] BSTR bstrName,
  427. [out] BSTR *pbstrValue );
  428. HRESULT SetExtendedAttribute (
  429. [in] BSTR bstrName,
  430. [in] BSTR bstrValue );
  431. HRESULT RemoveExtendedAttribute (
  432. [in] BSTR bstrName );
  433. HRESULT GetAllExtendedAttributes(
  434. [out] IIlsAttributes **ppAttributes);
  435. HRESULT Update(
  436. [out] ULONG *puReqID );
  437. }
  438. //+---------------------------------------------------------------------------
  439. //
  440. // Copyright (C) Microsoft Corporation, 1996 - 1997.
  441. //
  442. // Contents: IIlsProtocolNotify interface definition
  443. //
  444. //----------------------------------------------------------------------------
  445. [
  446. object,
  447. uuid(440CC986-20E6-11d0-8796-444553540000),
  448. pointer_default(unique)
  449. ]
  450. interface IIlsProtocolNotify : IUnknown
  451. {
  452. typedef [unique] IIlsProtocolNotify *LPILS_PROTOCOLNOTIFY;
  453. HRESULT UpdateResult(
  454. [in] ULONG uReqID,
  455. [in] HRESULT hResult);
  456. }
  457. //+---------------------------------------------------------------------------
  458. //
  459. // Copyright (C) Microsoft Corporation, 1996 - 1997.
  460. //
  461. // Contents: IIlsUserNotify interface definition
  462. //
  463. //----------------------------------------------------------------------------
  464. [
  465. object,
  466. uuid(440CC988-20E6-11d0-8796-444553540000),
  467. pointer_default(unique)
  468. ]
  469. interface IIlsUserNotify : IUnknown
  470. {
  471. typedef [unique] IIlsUserNotify *LPILS_USERNOTIFY;
  472. HRESULT RegisterResult(
  473. [in] ULONG uReqID,
  474. [in] HRESULT hResult);
  475. HRESULT UpdateResult(
  476. [in] ULONG uReqID,
  477. [in] HRESULT hResult);
  478. HRESULT ProtocolChangeResult(
  479. [in] ULONG uReqID,
  480. [in] HRESULT hResult);
  481. HRESULT GetProtocolResult(
  482. [in] ULONG uReqID,
  483. [in] IIlsProtocol *pProtocol,
  484. [in] HRESULT hResult);
  485. HRESULT EnumProtocolsResult(
  486. [in] ULONG uReqID,
  487. [in] IEnumIlsNames *pEnumProtocol,
  488. [in] HRESULT hResult);
  489. HRESULT StateChanged(
  490. [in] ULONG fPrimary,
  491. [in] BSTR bstrServerName );
  492. }
  493. //+---------------------------------------------------------------------------
  494. //
  495. // Copyright (C) Microsoft Corporation, 1996 - 1997.
  496. //
  497. // Contents: IIlsAttributes interface definition
  498. //
  499. //----------------------------------------------------------------------------
  500. [
  501. object,
  502. uuid(440CC98C-20E6-11d0-8796-444553540000),
  503. pointer_default(unique)
  504. ]
  505. interface IIlsAttributes : IUnknown
  506. {
  507. typedef [unique] IIlsAttributes *LPILS_ATTRIBUTES;
  508. HRESULT SetAttribute(
  509. [in] BSTR bstrName,
  510. [in] BSTR bstrValue);
  511. HRESULT GetAttribute(
  512. [in] BSTR bstrName,
  513. [out] BSTR *pbstrValue);
  514. HRESULT EnumAttributes(
  515. [out] IEnumIlsNames **ppEnumAttribute);
  516. HRESULT SetAttributeName (
  517. [in] BSTR bstrName );
  518. }
  519. //+---------------------------------------------------------------------------
  520. //
  521. // Copyright (C) Microsoft Corporation, 1996 - 1997.
  522. //
  523. // Contents: IIlsUserFilter interface definition
  524. //
  525. //----------------------------------------------------------------------------
  526. [
  527. object,
  528. uuid(440CC98D-20E6-11d0-8796-444553540000),
  529. pointer_default(unique)
  530. ]
  531. interface IIlsFilter : IUnknown
  532. {
  533. typedef [unique] IIlsFilter *LPILS_FILTER;
  534. cpp_quote("// Composite filter operations")
  535. HRESULT AddSubFilter (
  536. [in] IIlsFilter *pFilter );
  537. HRESULT RemoveSubFilter (
  538. [in] IIlsFilter *pFilter );
  539. HRESULT GetCount (
  540. [out] ULONG *pcElements );
  541. cpp_quote("// Simple filter operations")
  542. HRESULT SetStandardAttributeName (
  543. [in] ILS_STD_ATTR_NAME usrStdAttr);
  544. HRESULT SetExtendedAttributeName (
  545. [in] BSTR bstrAnyAttrName );
  546. HRESULT SetAttributeValue (
  547. [in] BSTR bstrAttrValue );
  548. }
  549. //+---------------------------------------------------------------------------
  550. //
  551. // Copyright (C) Microsoft Corporation, 1996 - 1997.
  552. //
  553. // Contents: IEnumIlsProtocols interface definition
  554. //
  555. //----------------------------------------------------------------------------
  556. [
  557. object,
  558. uuid(440CC98E-20E6-11d0-8796-444553540000),
  559. pointer_default(unique)
  560. ]
  561. interface IEnumIlsProtocols : IUnknown
  562. {
  563. typedef [unique] IEnumIlsProtocols *LPENUM_ILS_PROTOCOLS;
  564. HRESULT Next(
  565. [in] ULONG cProtocols,
  566. [out] IIlsProtocol **rgpProtocol,
  567. [out] ULONG *pcFetched);
  568. HRESULT Skip(
  569. [in] ULONG cProtocols);
  570. HRESULT Reset();
  571. HRESULT Clone(
  572. [out] IEnumIlsProtocols **ppEnumProtocol);
  573. }
  574. //+---------------------------------------------------------------------------
  575. //
  576. // Copyright (C) Microsoft Corporation, 1996 - 1997.
  577. //
  578. // Contents: IEnumIlsUsers interface definition
  579. //
  580. //----------------------------------------------------------------------------
  581. [
  582. object,
  583. uuid(440CC98F-20E6-11d0-8796-444553540000),
  584. pointer_default(unique)
  585. ]
  586. interface IEnumIlsUsers : IUnknown
  587. {
  588. typedef [unique] IEnumIlsUsers *LPENUM_ILS_USERS;
  589. HRESULT Next(
  590. [in] ULONG cUsers,
  591. [out] IIlsUser **rgpUsers,
  592. [out] ULONG *pcFetched);
  593. HRESULT Skip(
  594. [in] ULONG cUsers);
  595. HRESULT Reset();
  596. HRESULT Clone(
  597. [out] IEnumIlsUsers **ppEnumUser);
  598. }
  599. //+---------------------------------------------------------------------------
  600. //
  601. // Copyright (C) Microsoft Corporation, 1996 - 1997.
  602. //
  603. // Contents: IEnumIlsNames interface definition
  604. //
  605. //----------------------------------------------------------------------------
  606. [
  607. object,
  608. uuid(440CC990-20E6-11d0-8796-444553540000),
  609. pointer_default(unique)
  610. ]
  611. interface IEnumIlsNames : IUnknown
  612. {
  613. typedef [unique] IEnumIlsNames *LPENUM_ILS_NAMES;
  614. HRESULT Next(
  615. [in] ULONG cNames,
  616. [out] BSTR *rgpbstrName,
  617. [out] ULONG *pcFetched);
  618. HRESULT Skip(
  619. [in] ULONG cNames);
  620. HRESULT Reset();
  621. HRESULT Clone(
  622. [out] IEnumIlsNames **ppEnumName);
  623. }