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.

254 lines
7.0 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (c) Microsoft Corporation. All rights reserved.
  5. //
  6. // File: netcfgp.idl
  7. //
  8. //----------------------------------------------------------------------------
  9. cpp_quote("//+-------------------------------------------------------------------------")
  10. cpp_quote("//")
  11. cpp_quote("// Microsoft Windows")
  12. cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.")
  13. cpp_quote("//")
  14. cpp_quote("//--------------------------------------------------------------------------")
  15. cpp_quote("#if ( _MSC_VER >= 800 )")
  16. cpp_quote("#pragma warning(disable:4201)")
  17. cpp_quote("#endif")
  18. #ifndef DO_NO_IMPORTS
  19. import "unknwn.idl";
  20. import "wtypes.idl";
  21. import "netcfgx.idl";
  22. #endif
  23. cpp_quote("STDAPI")
  24. cpp_quote("SvchostChangeSvchostGroup (")
  25. cpp_quote(" LPCWSTR pszService,")
  26. cpp_quote(" LPCWSTR pszNewGroup")
  27. cpp_quote(" );")
  28. // Reserved GUIDS for our use
  29. //
  30. // 98133270-4B20-11D1-AB01-00805FC1270E IID_IIpxAdapterInfo
  31. // 98133271-4B20-11D1-AB01-00805FC1270E IID_ITcpipProperties
  32. // 98133272-4B20-11D1-AB01-00805FC1270E (available)
  33. // 98133273-4B20-11D1-AB01-00805FC1270E IID_INetCfgComponentPrivate
  34. // 98133274-4B20-11D1-AB01-00805FC1270E IID_INetInstallQueue
  35. // 98133275-4B20-11D1-AB01-00805FC1270E IID_IRasBindingConfig
  36. // 98133276-4B20-11D1-AB01-00805FC1270E IID_INetCfgInternalSetup
  37. // 98133277-4B20-11D1-AB01-00805FC1270E
  38. // ...
  39. // 981332C4-4B20-11D1-AB01-00805FC1270E
  40. // 981332C5-4B20-11D1-AB01-00805FC1270E
  41. interface IIpxAdapterInfo;
  42. interface INetCfgComponentPrivate;
  43. interface INetCfgInternalSetup;
  44. interface INetInstallQueue;
  45. interface IRasBindingConfig;
  46. interface ITcpipProperties;
  47. //+---------------------------------------------------------------------------
  48. // IIpxAdapterInfo -
  49. //
  50. // This interface is implemented by the IPX notify object. It is
  51. // queryable by clients of INetCfg (via INetCfgComponent->QueryNotifyObject).
  52. //
  53. [
  54. local,
  55. object,
  56. uuid(98133270-4B20-11D1-AB01-00805FC1270E),
  57. pointer_default(unique)
  58. ]
  59. interface IIpxAdapterInfo : IUnknown
  60. {
  61. HRESULT GetFrameTypesForAdapter (
  62. [in, string] LPCWSTR pszwAdapterBindName,
  63. [in] DWORD cFrameTypesMax,
  64. [out, size_is (cFrameTypesMax),
  65. length_is (*pcFrameTypes)]
  66. DWORD* anFrameTypes,
  67. [out, ref] DWORD* pcFrameTypes);
  68. HRESULT GetVirtualNetworkNumber (
  69. [out] DWORD* pdwVNetworkNumber);
  70. HRESULT SetVirtualNetworkNumber(
  71. [in] DWORD dwVNetworkNumber);
  72. };
  73. //+---------------------------------------------------------------------------
  74. // ITcpipProperties -
  75. //
  76. // This interface is implemented by the TCP/IP notify object. It is
  77. // queryable by clients of INetCfg (via INetCfgComponent->QueryNotifyObject).
  78. //
  79. [
  80. local,
  81. object,
  82. uuid(98133271-4B20-11D1-AB01-00805FC1270E),
  83. pointer_default(unique)
  84. ]
  85. interface ITcpipProperties : IUnknown
  86. {
  87. // The following two methods are for remote tcpip configuration.
  88. typedef struct tagREMOTE_IPINFO
  89. {
  90. DWORD dwEnableDhcp;
  91. WCHAR * pszwIpAddrList;
  92. WCHAR * pszwSubnetMaskList;
  93. WCHAR * pszwOptionList;
  94. } REMOTE_IPINFO;
  95. HRESULT GetIpInfoForAdapter(
  96. [in] const GUID* pguidAdapter,
  97. [out] REMOTE_IPINFO** ppInfo);
  98. HRESULT SetIpInfoForAdapter(
  99. [in] const GUID* pguidAdapter,
  100. [in] REMOTE_IPINFO* pInfo);
  101. };
  102. //+---------------------------------------------------------------------------
  103. // INetCfgInternalSetup -
  104. //
  105. // This interface used by the internal clients to notify INetCfg of
  106. // new or updated components.
  107. //
  108. [
  109. local,
  110. object,
  111. uuid(98133276-4B20-11D1-AB01-00805FC1270E),
  112. pointer_default(unique)
  113. ]
  114. interface INetCfgInternalSetup : IUnknown
  115. {
  116. HRESULT BeginBatchOperation ();
  117. HRESULT CommitBatchOperation ();
  118. typedef enum tagCI_FILTER_COMPONENT
  119. {
  120. FC_LAN,
  121. FC_RASSRV,
  122. FC_RASCLI,
  123. FC_ATM,
  124. } CI_FILTER_COMPONENT;
  125. typedef struct tagCI_FILTER_INFO
  126. {
  127. CI_FILTER_COMPONENT eFilter;
  128. INetCfgComponent* pIComp;
  129. void* pvReserved;
  130. } CI_FILTER_INFO;
  131. HRESULT SelectWithFilterAndInstall (
  132. [in] HWND hwndParent,
  133. [in] const GUID* pClassGuid,
  134. [in] OBO_TOKEN* pOboToken,
  135. [in] const CI_FILTER_INFO* pcfi,
  136. [out] INetCfgComponent** ppIComp);
  137. HRESULT EnumeratedComponentInstalled (
  138. [in] PVOID pComponent /* type of CComponent */);
  139. HRESULT EnumeratedComponentUpdated (
  140. [in] LPCWSTR pszPnpId);
  141. HRESULT UpdateNonEnumeratedComponent (
  142. [in] INetCfgComponent* pIComp,
  143. [in] DWORD dwSetupFlags,
  144. [in] DWORD dwUpgradeFromBuildNo);
  145. HRESULT EnumeratedComponentRemoved (
  146. [in] LPCWSTR pszPnpId);
  147. };
  148. //+---------------------------------------------------------------------------
  149. // INetCfgComponentPrivate -
  150. //
  151. // This interface used by the internal clients to access private methods
  152. // off of INetCfgComponent.
  153. //
  154. [
  155. local,
  156. object,
  157. uuid(98133273-4B20-11D1-AB01-00805FC1270E),
  158. pointer_default(unique)
  159. ]
  160. interface INetCfgComponentPrivate : IUnknown
  161. {
  162. HRESULT QueryNotifyObject (
  163. [in] REFIID riid,
  164. [out, iid_is(riid)] void** ppvObject);
  165. HRESULT SetDirty ();
  166. HRESULT NotifyUpperEdgeConfigChange ();
  167. };
  168. //+---------------------------------------------------------------------------
  169. // INetInstallQueue -
  170. //
  171. [
  172. object,
  173. uuid(98133274-4B20-11D1-AB01-00805FC1270E),
  174. pointer_default(unique)
  175. ]
  176. interface INetInstallQueue : IUnknown
  177. {
  178. typedef enum tagNC_INSTALL_TYPE
  179. {
  180. NCI_INSTALL,
  181. NCI_UPDATE,
  182. NCI_REMOVE,
  183. } NC_INSTALL_TYPE;
  184. typedef struct NIQ_INFO
  185. {
  186. NC_INSTALL_TYPE eType;
  187. GUID ClassGuid;
  188. GUID InstanceGuid;
  189. DWORD dwCharacter;
  190. LPCWSTR pszPnpId;
  191. LPCWSTR pszInfId;
  192. DWORD dwDeipFlags;
  193. } NIQ_INFO;
  194. HRESULT AddItem (
  195. [in] const NIQ_INFO* pInfo);
  196. HRESULT ProcessItems ();
  197. };
  198. //+---------------------------------------------------------------------------
  199. // INetCfgSpecialCase -
  200. [
  201. local,
  202. object,
  203. uuid(C0E8AE95-306E-11D1-AACF-00805FC1270E),
  204. pointer_default(unique)
  205. ]
  206. interface INetCfgSpecialCase : IUnknown
  207. {
  208. HRESULT GetAdapterOrder (
  209. [out] DWORD* pcAdapters,
  210. [out] INetCfgComponent*** papAdapters,
  211. [out] BOOL* pfWanAdaptersFirst);
  212. HRESULT SetAdapterOrder (
  213. [in] DWORD cAdapters,
  214. [in] INetCfgComponent** apAdapters,
  215. [in] BOOL fWanAdaptersFirst);
  216. HRESULT GetWanAdaptersFirst (
  217. [out] BOOL * pfWanAdaptersFirst);
  218. HRESULT SetWanAdaptersFirst (
  219. [in] BOOL fWanAdaptersFirst);
  220. };