windows-nt/Source/XPSP1/NT/public/internal/net/inc/netcfgp.idl
2020-09-26 16:20:57 +08:00

255 lines
6.8 KiB
Plaintext

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// File: netcfgp.idl
//
//----------------------------------------------------------------------------
cpp_quote("//+-------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Windows")
cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")
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
cpp_quote("STDAPI")
cpp_quote("SvchostChangeSvchostGroup (")
cpp_quote(" LPCWSTR pszService,")
cpp_quote(" LPCWSTR pszNewGroup")
cpp_quote(" );")
// Reserved GUIDS for our use
//
// 98133270-4B20-11D1-AB01-00805FC1270E IID_IIpxAdapterInfo
// 98133271-4B20-11D1-AB01-00805FC1270E IID_ITcpipProperties
// 98133272-4B20-11D1-AB01-00805FC1270E (available)
// 98133273-4B20-11D1-AB01-00805FC1270E IID_INetCfgComponentPrivate
// 98133274-4B20-11D1-AB01-00805FC1270E IID_INetInstallQueue
// 98133275-4B20-11D1-AB01-00805FC1270E IID_IRasBindingConfig
// 98133276-4B20-11D1-AB01-00805FC1270E IID_INetCfgInternalSetup
// 98133277-4B20-11D1-AB01-00805FC1270E
// ...
// 981332C4-4B20-11D1-AB01-00805FC1270E
// 981332C5-4B20-11D1-AB01-00805FC1270E
interface IIpxAdapterInfo;
interface INetCfgComponentPrivate;
interface INetCfgInternalSetup;
interface INetInstallQueue;
interface IRasBindingConfig;
interface ITcpipProperties;
//+---------------------------------------------------------------------------
// IIpxAdapterInfo -
//
// This interface is implemented by the IPX notify object. It is
// queryable by clients of INetCfg (via INetCfgComponent->QueryNotifyObject).
//
[
local,
object,
uuid(98133270-4B20-11D1-AB01-00805FC1270E),
pointer_default(unique)
]
interface IIpxAdapterInfo : IUnknown
{
HRESULT GetFrameTypesForAdapter (
[in, string] LPCWSTR pszwAdapterBindName,
[in] DWORD cFrameTypesMax,
[out, size_is (cFrameTypesMax),
length_is (*pcFrameTypes)]
DWORD* anFrameTypes,
[out, ref] DWORD* pcFrameTypes);
HRESULT GetVirtualNetworkNumber (
[out] DWORD* pdwVNetworkNumber);
HRESULT SetVirtualNetworkNumber(
[in] DWORD dwVNetworkNumber);
};
//+---------------------------------------------------------------------------
// ITcpipProperties -
//
// This interface is implemented by the TCP/IP notify object. It is
// queryable by clients of INetCfg (via INetCfgComponent->QueryNotifyObject).
//
[
local,
object,
uuid(98133271-4B20-11D1-AB01-00805FC1270E),
pointer_default(unique)
]
interface ITcpipProperties : IUnknown
{
// The following two methods are for remote tcpip configuration.
typedef struct tagREMOTE_IPINFO
{
DWORD dwEnableDhcp;
WCHAR * pszwIpAddrList;
WCHAR * pszwSubnetMaskList;
WCHAR * pszwOptionList;
} REMOTE_IPINFO;
HRESULT GetIpInfoForAdapter(
[in] const GUID* pguidAdapter,
[out] REMOTE_IPINFO** ppInfo);
HRESULT SetIpInfoForAdapter(
[in] const GUID* pguidAdapter,
[in] REMOTE_IPINFO* pInfo);
};
//+---------------------------------------------------------------------------
// INetCfgInternalSetup -
//
// This interface used by the internal clients to notify INetCfg of
// new or updated components.
//
[
local,
object,
uuid(98133276-4B20-11D1-AB01-00805FC1270E),
pointer_default(unique)
]
interface INetCfgInternalSetup : IUnknown
{
HRESULT BeginBatchOperation ();
HRESULT CommitBatchOperation ();
typedef enum tagCI_FILTER_COMPONENT
{
FC_LAN,
FC_RASSRV,
FC_RASCLI,
FC_ATM,
} CI_FILTER_COMPONENT;
typedef struct tagCI_FILTER_INFO
{
CI_FILTER_COMPONENT eFilter;
INetCfgComponent* pIComp;
void* pvReserved;
} CI_FILTER_INFO;
HRESULT SelectWithFilterAndInstall (
[in] HWND hwndParent,
[in] const GUID* pClassGuid,
[in] OBO_TOKEN* pOboToken,
[in] const CI_FILTER_INFO* pcfi,
[out] INetCfgComponent** ppIComp);
HRESULT EnumeratedComponentInstalled (
[in] PVOID pComponent /* type of CComponent */);
HRESULT EnumeratedComponentUpdated (
[in] LPCWSTR pszPnpId);
HRESULT UpdateNonEnumeratedComponent (
[in] INetCfgComponent* pIComp,
[in] DWORD dwSetupFlags,
[in] DWORD dwUpgradeFromBuildNo);
HRESULT EnumeratedComponentRemoved (
[in] LPCWSTR pszPnpId);
};
//+---------------------------------------------------------------------------
// INetCfgComponentPrivate -
//
// This interface used by the internal clients to access private methods
// off of INetCfgComponent.
//
[
local,
object,
uuid(98133273-4B20-11D1-AB01-00805FC1270E),
pointer_default(unique)
]
interface INetCfgComponentPrivate : IUnknown
{
HRESULT QueryNotifyObject (
[in] REFIID riid,
[out, iid_is(riid)] void** ppvObject);
HRESULT SetDirty ();
HRESULT NotifyUpperEdgeConfigChange ();
};
//+---------------------------------------------------------------------------
// INetInstallQueue -
//
[
object,
uuid(98133274-4B20-11D1-AB01-00805FC1270E),
pointer_default(unique)
]
interface INetInstallQueue : IUnknown
{
typedef enum tagNC_INSTALL_TYPE
{
NCI_INSTALL,
NCI_UPDATE,
NCI_REMOVE,
} NC_INSTALL_TYPE;
typedef struct NIQ_INFO
{
NC_INSTALL_TYPE eType;
GUID ClassGuid;
GUID InstanceGuid;
DWORD dwCharacter;
LPCWSTR pszPnpId;
LPCWSTR pszInfId;
DWORD dwDeipFlags;
} NIQ_INFO;
HRESULT AddItem (
[in] const NIQ_INFO* pInfo);
HRESULT ProcessItems ();
};
//+---------------------------------------------------------------------------
// INetCfgSpecialCase -
[
local,
object,
uuid(C0E8AE95-306E-11D1-AACF-00805FC1270E),
pointer_default(unique)
]
interface INetCfgSpecialCase : IUnknown
{
HRESULT GetAdapterOrder (
[out] DWORD* pcAdapters,
[out] INetCfgComponent*** papAdapters,
[out] BOOL* pfWanAdaptersFirst);
HRESULT SetAdapterOrder (
[in] DWORD cAdapters,
[in] INetCfgComponent** apAdapters,
[in] BOOL fWanAdaptersFirst);
HRESULT GetWanAdaptersFirst (
[out] BOOL * pfWanAdaptersFirst);
HRESULT SetWanAdaptersFirst (
[in] BOOL fWanAdaptersFirst);
};