//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (c) Microsoft Corporation. All rights reserved. // // File: netcfgn.idl // //---------------------------------------------------------------------------- cpp_quote("//+-------------------------------------------------------------------------") cpp_quote("//") cpp_quote("// Microsoft Windows") cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.") cpp_quote("//") cpp_quote("//--------------------------------------------------------------------------") cpp_quote("#include ") #pragma region Desktop Family cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") cpp_quote("#if ( _MSC_VER >= 800 )") cpp_quote("#pragma warning(disable:4201)") cpp_quote("#endif") #ifndef DO_NO_IMPORTS import "unknwn.idl"; import "wtypes.idl"; import "netcfgx.idl"; #endif [ local, object, uuid(8d84bd35-e227-11d2-b700-00a0c98a6a85), pointer_default(unique) ] interface INetCfgPnpReconfigCallback : IUnknown { typedef [v1_enum] enum tagNCPNP_RECONFIG_LAYER { NCRL_NDIS = 1, NCRL_TDI = 2 } NCPNP_RECONFIG_LAYER; HRESULT SendPnpReconfig ( [in, annotation("_In_")] NCPNP_RECONFIG_LAYER Layer, [in, annotation("_In_")] LPCWSTR pszwUpper, [in, annotation("_In_")] LPCWSTR pszwLower, [in, annotation("_In_reads_bytes_(dwSizeOfData)")] PVOID pvData, [in, annotation("_In_")] DWORD dwSizeOfData); }; [ local, object, uuid(932238df-bea1-11d0-9298-00c04fc99dcf), pointer_default(unique) ] interface INetCfgComponentControl : IUnknown { HRESULT Initialize ( [in, annotation("_In_")] INetCfgComponent* pIComp, [in, annotation("_In_")] INetCfg* pINetCfg, [in, annotation("_In_")] BOOL fInstalling); HRESULT ApplyRegistryChanges (); HRESULT ApplyPnpChanges ( [in, annotation("_In_")] INetCfgPnpReconfigCallback* pICallback); HRESULT CancelChanges (); }; [ local, object, uuid(932238e3-bea1-11d0-9298-00c04fc99dcf), pointer_default(unique) ] interface INetCfgComponentSetup : IUnknown { typedef [v1_enum] enum tagNETWORK_INSTALL_TIME { NSF_PRIMARYINSTALL = 0x00000001, NSF_POSTSYSINSTALL = 0x00000002 } NETWORK_INSTALL_TIME; typedef [v1_enum] enum tagNETWORK_UPGRADE_TYPE { NSF_WIN16_UPGRADE = 0x00000010, NSF_WIN95_UPGRADE = 0x00000020, NSF_WINNT_WKS_UPGRADE = 0x00000040, NSF_WINNT_SVR_UPGRADE = 0x00000080, NSF_WINNT_SBS_UPGRADE = 0x00000100, NSF_COMPONENT_UPDATE = 0x00000200, } NETWORK_UPGRADE_TYPE; HRESULT Install ( [in, annotation("_In_")] DWORD dwSetupFlags); HRESULT Upgrade( [in, annotation("_In_")] DWORD dwSetupFlags, [in, annotation("_In_")] DWORD dwUpgradeFomBuildNo ); HRESULT ReadAnswerFile( [in, annotation("_In_")] LPCWSTR pszwAnswerFile, [in, annotation("_In_")] LPCWSTR pszwAnswerSections); HRESULT Removing (); }; [ local, object, uuid(932238e0-bea1-11d0-9298-00c04fc99dcf), pointer_default(unique) ] interface INetCfgComponentPropertyUi : IUnknown { typedef [v1_enum] enum tagDEFAULT_PAGES { DPP_ADVANCED = 1, } DEFAULT_PAGES; HRESULT QueryPropertyUi ( [in, annotation("_In_")] IUnknown * pUnkReserved); HRESULT SetContext ( [in, annotation("_In_")] IUnknown * pUnkReserved); HRESULT MergePropPages ( [in, out, annotation("_Inout_")] DWORD* pdwDefPages, [out, annotation("_Out_")] BYTE** pahpspPrivate, [out, annotation("_Out_")] UINT* pcPages, [in, annotation("_In_")] HWND hwndParent, [in, annotation("_In_opt_")] LPCWSTR *pszStartPage); HRESULT ValidateProperties ( [in, annotation("_In_")] HWND hwndSheet); HRESULT ApplyProperties (); HRESULT CancelProperties (); }; [ local, object, uuid(932238e1-bea1-11d0-9298-00c04fc99dcf), pointer_default(unique) ] interface INetCfgComponentNotifyBinding : IUnknown { typedef [v1_enum] enum tagBIND_FLAGS1 { NCN_ADD = 0x00000001, NCN_REMOVE = 0x00000002, NCN_UPDATE = 0x00000004, NCN_ENABLE = 0x00000010, NCN_DISABLE = 0x00000020, NCN_BINDING_PATH = 0x00000100, NCN_PROPERTYCHANGE = 0x00000200, NCN_NET = 0x00010000, NCN_NETTRANS = 0x00020000, NCN_NETCLIENT = 0x00040000, NCN_NETSERVICE = 0x00080000, } BIND_FLAGS1; HRESULT QueryBindingPath ( [in, annotation("_In_")] DWORD dwChangeFlag, [in, annotation("_In_")] INetCfgBindingPath* pIPath); HRESULT NotifyBindingPath ( [in, annotation("_In_")] DWORD dwChangeFlag, [in, annotation("_In_")] INetCfgBindingPath* pIPath); }; [ local, object, uuid(932238e2-bea1-11d0-9298-00c04fc99dcf), pointer_default(unique) ] interface INetCfgComponentNotifyGlobal : IUnknown { HRESULT GetSupportedNotifications ( [out, annotation("_Out_")] DWORD* dwNotifications); HRESULT SysQueryBindingPath ( [in, annotation("_In_")] DWORD dwChangeFlag, [in, annotation("_In_")] INetCfgBindingPath* pIPath); HRESULT SysNotifyBindingPath ( [in, annotation("_In_")] DWORD dwChangeFlag, [in, annotation("_In_")] INetCfgBindingPath* pIPath); HRESULT SysNotifyComponent ( [in, annotation("_In_")] DWORD dwChangeFlag, [in, annotation("_In_")] INetCfgComponent* pIComp); }; [ local, object, uuid(932238e4-bea1-11d0-9298-00c04fc99dcf), pointer_default(unique) ] interface INetCfgComponentUpperEdge : IUnknown { // Return an array of interface ids for an adapter bound to // this component. If the specified adapter does not have explicit // interfaces exported from it, S_FALSE is returned. // pAdapter is the adapter in question. // pdwNumInterfaces is the address of a DWORD where the count of elements // returned via ppguidInterfaceIds is stored. // ppguidInterfaceIds is the address of a pointer where an allocated // block of memory is returned. This memory is an array of interface ids. // *ppguidInterfaceIds should be free with CoTaskMemFree if S_OK is // returned. if S_FALSE is returned, *pdwNumInterfaces and // *ppguidInterfaceIds should be NULL. // HRESULT GetInterfaceIdsForAdapter ( [in, annotation("_In_")] INetCfgComponent *pAdapter, [out, annotation("_Out_")] DWORD *pdwNumInterfaces, [out, annotation("_Outptr_opt_result_buffer_all_(*pdwNumInterfaces)")] GUID **ppguidInterfaceIds); // Add the specified number of new interfaces to the specified adapter. // The implementation will choose the interface ids. // HRESULT AddInterfacesToAdapter ( [in, annotation("_In_reads_(dwNumInterfaces)")] INetCfgComponent* pAdapter, [in, annotation("_In_")] DWORD dwNumInterfaces); // Remove the specified interface ids from the specified adapter. // pguidInterfaceIds is the array of ids to be removed. dwNumInterfaces // is the count in that array. // HRESULT RemoveInterfacesFromAdapter ( [in, annotation("_In_")] INetCfgComponent *pAdapter, [in, annotation("_In_")] DWORD dwNumInterfaces, [in, annotation("_In_reads_(dwNumInterfaces)")] const GUID *pguidInterfaceIds); }; //+--------------------------------------------------------------------------- // INetLanConnectionUiInfo - Used to obtain LAN connection-specific info // [ object, uuid(C08956A6-1CD3-11D1-B1C5-00805FC1270E), pointer_default(unique) ] interface INetLanConnectionUiInfo : IUnknown { HRESULT GetDeviceGuid ( [out] GUID* pguid); }; //+--------------------------------------------------------------------------- // INetRasConnectionIpUiInfo - // [ object, uuid(FAEDCF58-31FE-11D1-AAD2-00805FC1270E), pointer_default(unique) ] interface INetRasConnectionIpUiInfo : IUnknown { typedef enum tagRASCON_IPUI_FLAGS { RCUIF_VPN = 0x00000001, RCUIF_DEMAND_DIAL = 0x00000002, RCUIF_NOT_ADMIN = 0x00000004, RCUIF_USE_IPv4_STATICADDRESS = 0x00000008, RCUIF_USE_IPv4_NAME_SERVERS = 0x00000010, RCUIF_USE_IPv4_REMOTE_GATEWAY = 0x00000020, RCUIF_USE_IPv4_EXPLICIT_METRIC = 0x00000040, RCUIF_USE_HEADER_COMPRESSION = 0x00000080, RCUIF_USE_DISABLE_REGISTER_DNS = 0x00000100, RCUIF_USE_PRIVATE_DNS_SUFFIX = 0x00000200, RCUIF_ENABLE_NBT = 0x00000400, RCUIF_USE_IPv6_STATICADDRESS = 0x00000800, RCUIF_USE_IPv6_NAME_SERVERS = 0x00001000, RCUIF_USE_IPv6_REMOTE_GATEWAY = 0x00002000, RCUIF_USE_IPv6_EXPLICIT_METRIC = 0x00004000, RCUIF_DISABLE_CLASS_BASED_ROUTE = 0x00008000 } RASCON_UIINFO_FLAGS; typedef struct tagRASCON_IPUI { // This is the GUID of the phonebook entry and can be used as the // GUID of the 'fake' RAS adapter to TCP/IP. // GUID guidConnection; // fIPv6Cfg: TRUE when the configuration is Ipv6, otherwise it is IPv4 BOOL fIPv6Cfg; // dwFlags defines how to interpret rest of the data. // RCUIF_USE_IPv4_STATICADDRESS : use pszwIpAddr, otherwise automatic // RCUIF_USE_IPv4_NAME_SERVERS : use Dns and Wins address, otherwise automatic // RCUIF_USE_IPv4_REMOTE_GATEWAY : prioritize remote network // RCUIF_USE_IPV4_EXPLICIT_METRIC: explicit router interface metric for IPv4 // RCUIF_USE_HEADER_COMPRESSION : use IP header compression // RCUIF_VPN : use IP header compression should be disabled // RCUIF_USE_IPv6_STATICADDRESS : use pszwIpv6Addr, otherwise automatic // RCUIF_USE_IPv6_NAME_SERVERS : use IPv6 Dns, otherwise automatic // RCUIF_USE_IPV6_REMOTE_GATEWAY : prioritize IPv6 remote network // RCUIF_USE_IPV6_EXPLICIT_METRIC: explicit router interface metric for IPv6 // RCUIF_DISABLE_CLASS_BASED_ROUTE : disable addition of class based route in a non-remote gateway scenario // DWORD dwFlags; // 16 characters for an IP address is adequate for the form // aaa.bbb.ccc.ddd\0 // WCHAR pszwIpAddr [16]; WCHAR pszwDnsAddr [16]; WCHAR pszwDns2Addr [16]; WCHAR pszwWinsAddr [16]; WCHAR pszwWins2Addr [16]; WCHAR pszwDnsSuffix[256]; // IPv6 addressess WCHAR pszwIpv6Addr[65]; DWORD dwIpv6PrefixLength; WCHAR pszwIpv6DnsAddr[65]; WCHAR pszwIpv6Dns2Addr[65]; // Explicit Metric // Based on RCUIF_USE_IPV4_EXPLICIT_METRIC and RCUIF_USE_IPV6_EXPLICIT_METRIC flags // DWORD dwIPv4InfMetric; DWORD dwIPv6InfMetric; } RASCON_IPUI; HRESULT GetUiInfo ( [out] RASCON_IPUI* pInfo); }; //+--------------------------------------------------------------------------- // INetCfgComponentSysPrep - Used by SysPrep and mini-setup // [ local, object, uuid(C0E8AE9A-306E-11D1-AACF-00805FC1270E), pointer_default(unique) ] interface INetCfgComponentSysPrep : IUnknown { HRESULT SaveAdapterParameters( [in, annotation("_In_")] INetCfgSysPrep* pncsp, [in, annotation("_In_")] LPCWSTR pszwAnswerSections, [in, annotation("_In_")] GUID* pAdapterInstanceGuid); HRESULT RestoreAdapterParameters( [in, annotation("_In_")] LPCWSTR pszwAnswerFile, [in, annotation("_In_")] LPCWSTR pszwAnswerSection, [in, annotation("_In_")] GUID* pAdapterInstanceGuid); }; cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */") #pragma endregion