ILS.Idl 22 KB

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