ILS.Idl
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:23k
源码类别:

模拟服务器

开发平台:

C/C++

  1. //+---------------------------------------------------------------------------
  2. //
  3. //  Copyright 1996 - 1999 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-1999 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.                                                           
  192.     ILS_STDATTR_PROTOCOL_NAME           = 13,
  193.     ILS_STDATTR_PROTOCOL_MIME_TYPE      = 14,
  194.     ILS_STDATTR_PROTOCOL_PORT           = 15,
  195.     ILS_NUM_OF_STDATTRS = 16
  196. }
  197.     ILS_STD_ATTR_NAME;
  198. typedef enum
  199. {
  200.     ILS_AUTH_ANONYMOUS       = 0,
  201.     ILS_AUTH_CLEAR_TEXT      = 1,
  202.     ILS_AUTH_NTLM            = 3,
  203.     ILS_AUTH_DPA             = 4,
  204.     ILS_AUTH_MSN             = 5,
  205.     ILS_AUTH_SICILY          = 6,
  206.     ILS_AUTH_SSPI            = 7,
  207.     ILS_NUM_OF_AUTH_METHODS  = 8
  208. }
  209.     ILS_ENUM_AUTH_METHOD;
  210. cpp_quote("")
  211. cpp_quote("////////////////////////////////////////////////////////////////////////////")
  212. cpp_quote("//  Interface Definitions")
  213. //+---------------------------------------------------------------------------
  214. //
  215. //  Copyright (C) Microsoft Corporation, 1996 - 1999.
  216. //
  217. //  Contents:    IIlsServer interface definition
  218. //              
  219. //----------------------------------------------------------------------------
  220. [
  221.     object,
  222.     uuid(8BCE6B64-85CE-11d0-9CA7-00A0C913B21E),
  223.     pointer_default(unique)
  224. ]
  225. interface IIlsServer : IUnknown
  226. {
  227.     typedef [unique] IIlsServer *LPILS_SERVER;
  228.     HRESULT SetAuthenticationMethod (
  229.         [in]  ILS_ENUM_AUTH_METHOD enumAuthMethod );
  230.     HRESULT SetLogonName (
  231.         [in]  BSTR bstrLogonName );
  232.     HRESULT SetLogonPassword (
  233.         [in]  BSTR bstrLogonPassword );
  234.     HRESULT SetDomain (
  235.         [in]  BSTR bstrDomain );
  236.     HRESULT SetCredential (
  237.         [in]  BSTR bstrCredential );
  238.     HRESULT SetTimeout (
  239.         [in]  ULONG uTimeoutInSecond );
  240.     HRESULT SetBaseDN (
  241.         [in]  BSTR bstrBaseDN );
  242. }
  243. //+---------------------------------------------------------------------------
  244. //
  245. //  Copyright (C) Microsoft Corporation, 1996 - 1999.
  246. //
  247. //  Contents:    IIlsMain interface definition
  248. //              
  249. //----------------------------------------------------------------------------
  250. [
  251.     object,
  252.     uuid(34526E14-4D7D-11d0-8F4B-00C04FC29FEE),
  253.     pointer_default(unique)
  254. ]
  255. interface IIlsMain : IUnknown
  256. {
  257.     typedef [unique] IIlsMain *LPILS_MAIN;
  258.     HRESULT Initialize();
  259.     HRESULT CreateServer (
  260.         [in]  BSTR bstrServerName,
  261.         [out] IIlsServer **ppServer );
  262.     HRESULT CreateUser(
  263.         [in]  BSTR bstrUserID,
  264.         [in]  BSTR bstrAppName,
  265.         [out] IIlsUser **ppUser);
  266.     HRESULT GetUser(
  267.         [in]  IIlsServer *pServer,
  268.         [in]  BSTR bstrUserID,
  269.         [in]  BSTR bstrAppName,
  270.         [in]  BSTR bstrProtocolName,
  271.         [in]  IIlsAttributes *pAttrib,
  272.         [out] IIlsUser **ppUser,
  273.         [out] ULONG *puReqID);
  274.     HRESULT EnumUserNames(
  275.         [in]  IIlsServer *pServer,
  276.         [in]  IIlsFilter *pFilter,
  277.         [out] IEnumIlsNames **ppEnumUserNames,
  278.         [out] ULONG *puReqID);
  279.     HRESULT EnumUsers(
  280.         [in] IIlsServer *pServer,
  281.         [in] IIlsFilter *pFilter,
  282.         [in]  IIlsAttributes *pAttrib,
  283.         [out] IEnumIlsUsers **ppEnumUsers,
  284.         [out] ULONG *puReqID);
  285.     HRESULT Abort(
  286.         [in] ULONG uReqID);
  287.     HRESULT CreateAttributes(
  288.         [in] ILS_ATTR_TYPE AttrType,
  289.         [out] IIlsAttributes **ppAttributes);
  290.     HRESULT CreateFilter (
  291.         [in] ILS_FILTER_TYPE FilterType,
  292.         [in] ILS_FILTER_OP FilterOp,
  293.         [out] IIlsFilter **ppFilter);
  294.     HRESULT StringToFilter (
  295.         [in] BSTR bstrFilterString,
  296.         [out] IIlsFilter **ppFilter);
  297.     HRESULT Uninitialize();
  298. }
  299. //+---------------------------------------------------------------------------
  300. //
  301. //  Copyright (C) Microsoft Corporation, 1996 - 1999.
  302. //
  303. //  Contents:    IIlsNotify interface definition
  304. //              
  305. //----------------------------------------------------------------------------
  306. [
  307.     object,
  308.     uuid(551D25EE-4D7D-11d0-8F4B-00C04FC29FEE),
  309.     pointer_default(unique)
  310. ]
  311. interface IIlsNotify : IUnknown
  312. {
  313.     typedef [unique] IIlsNotify *LPILS_NOTIFY;
  314.     HRESULT GetUserResult(
  315.         [in] ULONG uReqID,
  316.         [in] IIlsUser *pUser,
  317.         [in] HRESULT hResult);
  318.     HRESULT EnumUserNamesResult(
  319.         [in] ULONG uReqID,
  320.         [in] IEnumIlsNames *pEnumUserName,
  321.         [in] HRESULT hResult);
  322.     HRESULT EnumUsersResult(
  323.         [in] ULONG uReqID,
  324.         [in] IEnumIlsUsers *pEnumUser,
  325.         [in] HRESULT hResult);
  326. }
  327. //+---------------------------------------------------------------------------
  328. //
  329. //  Copyright (C) Microsoft Corporation, 1996 - 1999.
  330. //
  331. //  Contents:    IIlsUser interface definition
  332. //              
  333. //----------------------------------------------------------------------------
  334. [
  335.     object,
  336.     uuid(440CC982-20E6-11d0-8796-444553540000),
  337.     pointer_default(unique)
  338. ]
  339. interface IIlsUser : IUnknown
  340. {
  341.     typedef [unique] IIlsUser *LPILS_USER;
  342.     HRESULT GetState(
  343.         [out] ILS_STATE *pState);
  344.     HRESULT GetStandardAttribute(
  345.         [in]  ILS_STD_ATTR_NAME StdAttr,
  346.         [out] BSTR *pbstrValue);
  347.     HRESULT SetStandardAttribute(
  348.         [in] ILS_STD_ATTR_NAME StdAttr,
  349.         [in] BSTR bstrValue);
  350.     HRESULT GetExtendedAttribute (
  351.         [in] BSTR bstrName,
  352.         [out] BSTR *pbstrValue );
  353.     HRESULT SetExtendedAttribute (
  354.         [in] BSTR bstrName,
  355.         [in] BSTR bstrValue );
  356.     HRESULT RemoveExtendedAttribute (
  357.         [in] BSTR bstrName );
  358.     HRESULT GetAllExtendedAttributes(
  359.         [out] IIlsAttributes **ppAttributes);
  360.     HRESULT IsWritable(
  361.         [in] BOOL *pValue);
  362.     HRESULT Register(
  363.         [in] IIlsServer *pServer,
  364.         [out] ULONG *puReqID);
  365.     HRESULT Unregister(
  366.         [out] ULONG *puReqID);
  367.     HRESULT Update(
  368.         [out] ULONG *puReqID);
  369.     HRESULT GetVisible(
  370.         [out] DWORD *pfVisible);
  371.     HRESULT SetVisible(
  372.         [in] DWORD fVisible);
  373.     HRESULT GetGuid(
  374.         [out] GUID *pGuid);
  375.     HRESULT SetGuid(
  376.         [in] GUID *pGuid);
  377.     HRESULT CreateProtocol(
  378.         [in] BSTR bstrProtocolName,
  379.         [in] ULONG uPortNumber,
  380.         [in] BSTR bstrMimeType,
  381.         [out] IIlsProtocol **ppProtocol);
  382.     HRESULT AddProtocol(
  383.         [in] IIlsProtocol *pProtocol,
  384.         [out] ULONG *puReqID);
  385.     HRESULT RemoveProtocol(
  386.         [in] IIlsProtocol *pProtocol,
  387.         [out] ULONG *puReqID);
  388.     HRESULT GetProtocol(
  389.         [in]  BSTR bstrProtocolName,
  390.         [in]  IIlsAttributes *pAttributes,
  391.         [out] IIlsProtocol **ppProtocol,
  392.         [out] ULONG *puReqID);
  393.     HRESULT EnumProtocols(
  394.         [in]  IIlsFilter     *pFilter,
  395.         [in]  IIlsAttributes *pAttributes,
  396.         [out] IEnumIlsProtocols **ppEnumProtocol,
  397.         [out] ULONG *puReqID);
  398.     HRESULT Clone (
  399.         [out] IIlsUser **ppUser );
  400. }
  401. //+---------------------------------------------------------------------------
  402. //
  403. //  Copyright (C) Microsoft Corporation, 1996 - 1999.
  404. //
  405. //  Contents:    IIlsProtocol interface definition
  406. //              
  407. //----------------------------------------------------------------------------
  408. [
  409.     object,
  410.     uuid(440CC985-20E6-11d0-8796-444553540000),
  411.     pointer_default(unique)
  412. ]
  413. interface IIlsProtocol : IUnknown
  414. {
  415.     typedef [unique] IIlsProtocol *LPILS_PROTOCOL;
  416.     HRESULT IsWritable(
  417.         [in] BOOL *pValue);
  418.     HRESULT GetPortNumber(
  419.         [out] ULONG *pulPortNumber);
  420.     HRESULT GetStandardAttribute(
  421.         [in]  ILS_STD_ATTR_NAME StdAttr,
  422.         [out] BSTR *pbstrValue);
  423.     HRESULT SetStandardAttribute(
  424.         [in] ILS_STD_ATTR_NAME StdAttr,
  425.         [in] BSTR bstrValue);
  426.     HRESULT GetExtendedAttribute (
  427.         [in] BSTR bstrName,
  428.         [out] BSTR *pbstrValue );
  429.     HRESULT SetExtendedAttribute (
  430.         [in] BSTR bstrName,
  431.         [in] BSTR bstrValue );
  432.     HRESULT RemoveExtendedAttribute (
  433.         [in] BSTR bstrName );
  434.     HRESULT GetAllExtendedAttributes(
  435.         [out] IIlsAttributes **ppAttributes);
  436.     HRESULT Update(
  437.         [out] ULONG *puReqID );
  438. }
  439. //+---------------------------------------------------------------------------
  440. //
  441. //  Copyright (C) Microsoft Corporation, 1996 - 1999.
  442. //
  443. //  Contents:    IIlsProtocolNotify interface definition
  444. //              
  445. //----------------------------------------------------------------------------
  446. [
  447.     object,
  448.     uuid(440CC986-20E6-11d0-8796-444553540000),
  449.     pointer_default(unique)
  450. ]
  451. interface IIlsProtocolNotify : IUnknown
  452. {
  453.     typedef [unique] IIlsProtocolNotify *LPILS_PROTOCOLNOTIFY;
  454.     HRESULT UpdateResult(
  455.         [in] ULONG uReqID,
  456.         [in] HRESULT hResult);
  457. }
  458. //+---------------------------------------------------------------------------
  459. //
  460. //  Copyright (C) Microsoft Corporation, 1996 - 1999.
  461. //
  462. //  Contents:    IIlsUserNotify interface definition
  463. //              
  464. //----------------------------------------------------------------------------
  465. [
  466.     object,
  467.     uuid(440CC988-20E6-11d0-8796-444553540000),
  468.     pointer_default(unique)
  469. ]
  470. interface IIlsUserNotify : IUnknown
  471. {
  472.     typedef [unique] IIlsUserNotify *LPILS_USERNOTIFY;
  473.     HRESULT RegisterResult(
  474.         [in] ULONG uReqID,
  475.         [in] HRESULT hResult);
  476.     HRESULT UpdateResult(
  477.         [in] ULONG uReqID,
  478.         [in] HRESULT hResult);
  479.     HRESULT ProtocolChangeResult(
  480.         [in] ULONG uReqID,
  481.         [in] HRESULT hResult);
  482.     HRESULT GetProtocolResult(
  483.         [in] ULONG uReqID,
  484.         [in] IIlsProtocol *pProtocol,
  485.         [in] HRESULT hResult);
  486.     HRESULT EnumProtocolsResult(
  487.         [in] ULONG uReqID,
  488.         [in] IEnumIlsNames *pEnumProtocol,
  489.         [in] HRESULT hResult);
  490.     HRESULT StateChanged(
  491.         [in] ULONG fPrimary,
  492.         [in] BSTR bstrServerName );
  493. }
  494. //+---------------------------------------------------------------------------
  495. //
  496. //  Copyright (C) Microsoft Corporation, 1996 - 1999.
  497. //
  498. //  Contents:    IIlsAttributes interface definition
  499. //              
  500. //----------------------------------------------------------------------------
  501. [
  502.     object,
  503.     uuid(440CC98C-20E6-11d0-8796-444553540000),
  504.     pointer_default(unique)
  505. ]
  506. interface IIlsAttributes : IUnknown
  507. {
  508.     typedef [unique] IIlsAttributes *LPILS_ATTRIBUTES;
  509.     HRESULT SetAttribute(
  510.         [in] BSTR bstrName,
  511.         [in] BSTR bstrValue);
  512.     HRESULT GetAttribute(
  513.         [in] BSTR bstrName,
  514.         [out] BSTR *pbstrValue);
  515.     HRESULT EnumAttributes(
  516.         [out] IEnumIlsNames **ppEnumAttribute);
  517. HRESULT SetAttributeName (
  518.     [in] BSTR bstrName );
  519. }
  520. //+---------------------------------------------------------------------------
  521. //
  522. //  Copyright (C) Microsoft Corporation, 1996 - 1999.
  523. //
  524. //  Contents:    IIlsUserFilter interface definition
  525. //              
  526. //----------------------------------------------------------------------------
  527. [
  528.     object,
  529.     uuid(440CC98D-20E6-11d0-8796-444553540000),
  530.     pointer_default(unique)
  531. ]
  532. interface IIlsFilter : IUnknown
  533. {
  534.     typedef [unique] IIlsFilter *LPILS_FILTER;
  535. cpp_quote("// Composite filter operations")
  536.     HRESULT AddSubFilter (
  537.         [in] IIlsFilter *pFilter );
  538.     HRESULT RemoveSubFilter (
  539.         [in] IIlsFilter *pFilter );
  540.     HRESULT GetCount (
  541.         [out] ULONG *pcElements );
  542. cpp_quote("// Simple filter operations")
  543.     HRESULT SetStandardAttributeName (
  544.         [in] ILS_STD_ATTR_NAME  usrStdAttr);
  545.     HRESULT SetExtendedAttributeName (
  546.         [in] BSTR bstrAnyAttrName );
  547.     HRESULT SetAttributeValue (
  548.         [in] BSTR bstrAttrValue );
  549. }
  550. //+---------------------------------------------------------------------------
  551. //
  552. //  Copyright (C) Microsoft Corporation, 1996 - 1999.
  553. //
  554. //  Contents:    IEnumIlsProtocols interface definition
  555. //              
  556. //----------------------------------------------------------------------------
  557. [
  558.     object,
  559.     uuid(440CC98E-20E6-11d0-8796-444553540000),
  560.     pointer_default(unique)
  561. ]
  562. interface IEnumIlsProtocols : IUnknown
  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.         
  571.     HRESULT Reset();
  572.     HRESULT Clone(
  573.         [out] IEnumIlsProtocols **ppEnumProtocol);
  574. }
  575. //+---------------------------------------------------------------------------
  576. //
  577. //  Copyright (C) Microsoft Corporation, 1996 - 1999.
  578. //
  579. //  Contents:    IEnumIlsUsers interface definition
  580. //              
  581. //----------------------------------------------------------------------------
  582. [
  583.     object,
  584.     uuid(440CC98F-20E6-11d0-8796-444553540000),
  585.     pointer_default(unique)
  586. ]
  587. interface IEnumIlsUsers : IUnknown
  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.         
  596.     HRESULT Reset();
  597.     HRESULT Clone(
  598.         [out] IEnumIlsUsers **ppEnumUser);
  599. }
  600. //+---------------------------------------------------------------------------
  601. //
  602. //  Copyright (C) Microsoft Corporation, 1996 - 1999.
  603. //
  604. //  Contents:    IEnumIlsNames interface definition
  605. //              
  606. //----------------------------------------------------------------------------
  607. [
  608.     object,
  609.     uuid(440CC990-20E6-11d0-8796-444553540000),
  610.     pointer_default(unique)
  611. ]
  612. interface IEnumIlsNames : IUnknown
  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.         
  621.     HRESULT Reset();
  622.     HRESULT Clone(
  623.         [out] IEnumIlsNames **ppEnumName);
  624. }