windows-nt/Source/XPSP1/NT/net/mmc/idl/router.idl
2020-09-26 16:20:57 +08:00

1308 lines
46 KiB
Plaintext

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1997 - 1999
//
// File: router.idl
//
//--------------------------------------------------------------------------
// mprsnap.idl : IDL source for MPRSNAP DLLs
//
#ifndef _ROUTER_IDL_
#define _ROUTER_IDL_
import "basetsd.h";
import "wtypes.idl";
import "mprsnap.idl";
import "rrasui.idl";
typedef BYTE * PBYTE;
const ULONG RTR_ID_MAX = 256;
const ULONG RTR_TITLE_MAX = 256;
const ULONG RTR_DEVICE_MAX = 256;
const ULONG RTR_PATH_MAX = 516;
const ULONG VENDOR_NAME_MAX = 256;
// predefined
interface IRouterInfo;
interface IRtrMgrInfo;
interface IRtrMgrProtocolInfo;
interface IInterfaceInfo;
interface IRtrMgrInterfaceInfo;
interface IRtrMgrProtocolInterfaceInfo;
typedef enum
{
// This flag is used to indicate that the interface exists in the UI
// and in the router. This means that it is ok to delete this
// interface if we have found that it has been deleted (since it
// should be in sync). If this flag, is 0, then it exists only on the
// local machine (usually it has just been created but not persisted)
// and that if a merge occurs, do not delete this interface.
// ----------------------------------------------------------------
RouterSnapin_InSyncWithRouter = 0x00000001,
RouterSnapin_RASOnly = 0x00000002, // NT4 non-Steelhead router
RouterSnapin_IsConfigured = 0x00000004, // is router configured?
RouterSnapin_Workstation = 0x00000008, // is this a workstation?
} RouterSnapinFlags;
typedef enum
{
// ----------------------------------------------------------------
RouterInfo_AddedAsLocal = 0x00000001, // the router is added as local machine --
} RouterInfoFlags;
//----------------------------------------------------------------------------
// Struct: RouterVersionInfo
//
// Router version information.
//----------------------------------------------------------------------------
typedef struct _RouterVersionInfo
{
DWORD dwSize;
DWORD dwRouterVersion;
DWORD dwOsMajorVersion;
DWORD dwOsMinorVersion;
DWORD dwOsBuildNo;
DWORD dwOsServicePack;
DWORD dwOsFlags;
DWORD dwRouterFlags;
} RouterVersionInfo;
//----------------------------------------------------------------------------
// Struct: RouterCB
//
// Contains information applying to the router as a whole
//----------------------------------------------------------------------------
typedef struct _RouterCB
{
DWORD dwLANOnlyMode; // 0 or 1
} RouterCB;
//----------------------------------------------------------------------------
// Struct: RtrMgrCB
//
// Contains information applying to a particular router-manager
//----------------------------------------------------------------------------
typedef struct _RtrMgrCB
{
DWORD dwTransportId; // e.g. PID_IP (mprapi.h)
OLECHAR szId [RTR_ID_MAX+1]; // e.g. "Tcpip"
OLECHAR szTitle [RTR_TITLE_MAX+1]; // e.g. "TCP/IP Router Manager"
OLECHAR szDLLPath [RTR_PATH_MAX+1]; // e.g. "%systemroot%\system32\iprtrmgr.dll"
} RtrMgrCB;
/*---------------------------------------------------------------------------
IEnumRtrMgrCB
---------------------------------------------------------------------------*/
[
object,
uuid(66A2DB0F-D706-11d0-A37B-00C04FC9DA04),
local,
pointer_default(unique),
]
interface IEnumRtrMgrCB : IUnknown
{
HRESULT Next( [in] ULONG uNum,
[in,out] RtrMgrCB *pBlock,
[out] ULONG * pNumReturned );
HRESULT Skip( [in] ULONG uNum );
HRESULT Reset();
HRESULT Clone( [out] IEnumRtrMgrCB **ppBlockEnum );
};
cpp_quote("#define DeclareIEnumRtrMgrCBMembers(IPURE) \\")
cpp_quote(" STDMETHOD(Next)(THIS_ ULONG uNum, RtrMgrCB *pBlock, \\")
cpp_quote(" ULONG *pNumReturned) IPURE; \\")
cpp_quote(" STDMETHOD(Skip)(THIS_ ULONG uNum) IPURE; \\")
cpp_quote(" STDMETHOD(Reset)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(Clone)(THIS_ IEnumRtrMgrCB **ppBlockEnum) IPURE; \\")
cpp_quote("")
//----------------------------------------------------------------------------
// Struct: RtrMgrProtocolCB
//
// Contains information describing a routing protocol.
//----------------------------------------------------------------------------
typedef struct _RtrMgrProtocolCB
{
DWORD dwProtocolId; // e.g. IP_RIP (routprot.h)
OLECHAR szId [RTR_ID_MAX+1]; // e.g. "IPRIP"
DWORD dwFlags;
DWORD dwTransportId; // e.g. PID_IP
OLECHAR szRtrMgrId [RTR_ID_MAX+1]; // e.g. "Tcpip"
OLECHAR szTitle [RTR_TITLE_MAX+1]; // e.g. "RIP for Internet Protocol"
OLECHAR szDLLName [RTR_PATH_MAX+1]; // e.g. "iprip2.dll"
OLECHAR szVendorName[VENDOR_NAME_MAX+1];
GUID guidConfig; // GUID for the configuration object
GUID guidAdminUI; // GUID of the snapin
} RtrMgrProtocolCB;
typedef enum {
RtrMgrProtocolCBFlagHidden = 0x00000001,
RtrMgrProtocolSupportsRouting = 0x00000002,
} RtrMgrProtocolCBFlags;
/*---------------------------------------------------------------------------
IEnumRtrMgrProtocolCB
---------------------------------------------------------------------------*/
[
object,
uuid(66A2DB10-D706-11d0-A37B-00C04FC9DA04),
local,
pointer_default(unique),
]
interface IEnumRtrMgrProtocolCB : IUnknown
{
HRESULT Next( [in] ULONG uNum,
[out] RtrMgrProtocolCB *ppBlock,
[out] ULONG * pNumReturned );
HRESULT Skip( [in] ULONG uNum );
HRESULT Reset();
HRESULT Clone( [out] IEnumRtrMgrProtocolCB **ppBlockEnum );
};
cpp_quote("#define DeclareIEnumRtrMgrProtocolCBMembers(IPURE) \\")
cpp_quote(" STDMETHOD(Next)(THIS_ ULONG uNum, RtrMgrProtocolCB *pBlock, \\")
cpp_quote(" ULONG *pNumReturned) IPURE; \\")
cpp_quote(" STDMETHOD(Skip)(THIS_ ULONG uNum) IPURE; \\")
cpp_quote(" STDMETHOD(Reset)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(Clone)(THIS_ IEnumRtrMgrProtocolCB **ppBlockEnum) IPURE; \\")
cpp_quote("")
//----------------------------------------------------------------------------
// Struct: InterfaceCB
//
// Contains transport-independent information applying to a interface
//----------------------------------------------------------------------------
typedef struct _InterfaceCB
{
OLECHAR szId [RTR_ID_MAX+1]; // e.g. "EPRO1"
DWORD dwIfType; // e.g. ROUTER_IF_TYPE_CLIENT (mprapi.h)
BOOL bEnable; // e.g. Enabled or Disabled
// On NT4, the szTitle == szDevice
// On NT5, szTitle == friendly name, szDevice == "[1] Intel EtherPro"
OLECHAR szTitle [RTR_TITLE_MAX+1]; // e.g. see above
OLECHAR szDevice[RTR_DEVICE_MAX+1];// e.g. see above
// Tells us what protocols are bound to this interface
// If the transport is not bound to the adapter, then we don't
// let the adapter be added to that router-manager.
DWORD dwBindFlags; // e.g. InterfaceCB_BindToIp
} InterfaceCB;
typedef enum {
InterfaceCB_BindToIp = 0x00000001,
InterfaceCB_BindToIpx = 0x00000002,
} InterfaceCBBindFlags;
/*---------------------------------------------------------------------------
IEnumInterfaceCB
---------------------------------------------------------------------------*/
[
object,
uuid(66A2DB11-D706-11d0-A37B-00C04FC9DA04),
local,
pointer_default(unique),
]
interface IEnumInterfaceCB : IUnknown
{
HRESULT Next( [in] ULONG uNum,
[out] InterfaceCB *pBlock,
[out] ULONG * pNumReturned );
HRESULT Skip( [in] ULONG uNum );
HRESULT Reset();
HRESULT Clone( [out] IEnumInterfaceCB **ppBlockEnum );
};
cpp_quote("#define DeclareIEnumInterfaceCBMembers(IPURE) \\")
cpp_quote(" STDMETHOD(Next)(THIS_ ULONG uNum, InterfaceCB *pBlock, \\")
cpp_quote(" ULONG *pNumReturned) IPURE; \\")
cpp_quote(" STDMETHOD(Skip)(THIS_ ULONG uNum) IPURE; \\")
cpp_quote(" STDMETHOD(Reset)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(Clone)(THIS_ IEnumInterfaceCB **ppBlockEnum) IPURE; \\")
cpp_quote("")
//----------------------------------------------------------------------------
// Struct: RtrMgrInterfaceCB
//
// Contains router-manager-specific information for an interface
//----------------------------------------------------------------------------
typedef struct _RtrMgrInterfaceCB
{
DWORD dwTransportId; // e.g. PID_IP (mprapi.h)
OLECHAR szId [RTR_ID_MAX+1]; // e.g. "Tcpip"
OLECHAR szInterfaceId [RTR_ID_MAX+1]; // e.g. "EPRO1"
DWORD dwIfType; // e.g. ROUTER_IF_TYPE_CLIENT (mprapi.h)
OLECHAR szTitle [RTR_TITLE_MAX+1]; // e.g. "[1] Intel Etherexpress PRO"
} RtrMgrInterfaceCB;
/*---------------------------------------------------------------------------
IEnumRtrMgrInterfaceCB
---------------------------------------------------------------------------*/
[
object,
uuid(66A2DB12-D706-11d0-A37B-00C04FC9DA04),
local,
pointer_default(unique),
]
interface IEnumRtrMgrInterfaceCB : IUnknown
{
HRESULT Next( [in] ULONG uNum,
[out] RtrMgrInterfaceCB *pBlock,
[out] ULONG * pNumReturned );
HRESULT Skip( [in] ULONG uNum );
HRESULT Reset();
HRESULT Clone( [out] IEnumRtrMgrInterfaceCB **ppBlockEnum );
};
cpp_quote("#define DeclareIEnumRtrMgrInterfaceCBMembers(IPURE) \\")
cpp_quote(" STDMETHOD(Next)(THIS_ ULONG uNum, RtrMgrInterfaceCB *pBlock, \\")
cpp_quote(" ULONG *pNumReturned) IPURE; \\")
cpp_quote(" STDMETHOD(Skip)(THIS_ ULONG uNum) IPURE; \\")
cpp_quote(" STDMETHOD(Reset)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(Clone)(THIS_ IEnumRtrMgrInterfaceCB **ppBlockEnum) IPURE; \\")
cpp_quote("")
//----------------------------------------------------------------------------
// Struct: RtrMgrProtocolInterfaceCB
//
// contains routing-protocol-specific information for an interface
//----------------------------------------------------------------------------
typedef struct RtrMgrProtocolInterfaceCB
{
DWORD dwProtocolId; // e.g. IP_RIP (routprot.h)
OLECHAR szId [RTR_ID_MAX+1]; // e.g. "IPRIP"
DWORD dwTransportId; // e.g. PID_IP
OLECHAR szRtrMgrId [RTR_TITLE_MAX+1]; // e.g. "Tcpip"
OLECHAR szInterfaceId [RTR_ID_MAX+1]; // e.g. "EPRO1"
DWORD dwIfType; // e.g. ROUTER_IF_TYPE_CLIENT (mprapi.h)
OLECHAR szTitle [RTR_TITLE_MAX+1]; // e.g. "[1] Intel Etherexpress PRO"
} RtrMgrProtocolInterfaceCB;
/*---------------------------------------------------------------------------
IEnumRtrMgrProtocolInterfaceCB
---------------------------------------------------------------------------*/
[
object,
uuid(66A2DB13-D706-11d0-A37B-00C04FC9DA04),
local,
pointer_default(unique),
]
interface IEnumRtrMgrProtocolInterfaceCB : IUnknown
{
HRESULT Next( [in] ULONG uNum,
[out] RtrMgrProtocolInterfaceCB *pBlock,
[out] ULONG * pNumReturned );
HRESULT Skip( [in] ULONG uNum );
HRESULT Reset();
HRESULT Clone( [out] IEnumRtrMgrProtocolInterfaceCB **ppBlockEnum );
};
cpp_quote("#define DeclareIEnumRtrMgrProtocolInterfaceCBMembers(IPURE) \\")
cpp_quote(" STDMETHOD(Next)(THIS_ ULONG uNum, RtrMgrProtocolInterfaceCB *pBlock, \\")
cpp_quote(" ULONG *pNumReturned) IPURE; \\")
cpp_quote(" STDMETHOD(Skip)(THIS_ ULONG uNum) IPURE; \\")
cpp_quote(" STDMETHOD(Reset)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(Clone)(THIS_ IEnumRtrMgrProtocolInterfaceCB **ppBlockEnum) IPURE; \\")
cpp_quote("")
/*---------------------------------------------------------------------------
Misc. things for the refresh object
---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
IRouterRefreshModify
---------------------------------------------------------------------------*/
[
object,
uuid(66A2DB1D-D706-11d0-A37B-00C04FC9DA04),
local,
pointer_default(unique),
]
interface IRouterRefreshModify : IUnknown
{
import "unknwn.idl";
// to make it refresh multiple routers
HRESULT AddRouterObject([in] REFCLSID riid,
[in, iid_is(riid)] IUnknown *pUnk);
HRESULT RemoveRouterObject([in] REFCLSID riid,
[in, iid_is(riid)] IUnknown *pUnk);
}
cpp_quote("#define DeclareIRouterRefreshModifyMembers(IPURE)\\")
cpp_quote(" STDMETHOD(AddRouterObject)(THIS_ REFIID riid, IUnknown *pUnk) IPURE;\\")
cpp_quote(" STDMETHOD(RemoveRouterObject)(THIS_ REFIID rrid, IUnknown *pUnk) IPURE;\\")
/*---------------------------------------------------------------------------
These are additional values that are used in the OnChange.
---------------------------------------------------------------------------*/
cpp_quote("// Valid values for dwChangeType of OnChange")
cpp_quote("//efine ROUTER_REFRESH 0 - defined in rrasui.idl")
cpp_quote("#define ROUTER_DATA_CHANGE 16")
cpp_quote("#define ROUTER_DATA_DELETE 17")
cpp_quote("#define ROUTER_CHILD_ADD 18")
cpp_quote("#define ROUTER_CHILD_DELETE 19")
cpp_quote("#define ROUTER_CHILD_PREADD 20")
cpp_quote("// Valid values for dwObjectType of OnChange")
cpp_quote("#define ROUTER_OBJ_Router 1")
cpp_quote("#define ROUTER_OBJ_Rm 2")
cpp_quote("#define ROUTER_OBJ_RmProt 3")
cpp_quote("#define ROUTER_OBJ_If 4")
cpp_quote("#define ROUTER_OBJ_RmIf 5")
cpp_quote("#define ROUTER_OBJ_RmProtIf 6")
/*---------------------------------------------------------------------------
IRtrMgrProtocolInfo
---------------------------------------------------------------------------*/
[
object,
uuid(66A2DB06-D706-11d0-A37B-00C04FC9DA04),
local,
pointer_default(unique),
]
interface IRtrMgrProtocolInfo : IUnknown
{
import "unknwn.idl";
DWORD GetFlags();
HRESULT SetFlags([in] DWORD dwFlags);
DWORD GetProtocolId();
LPCOLESTR GetTitle();
DWORD GetTransportId();
HRESULT CopyCB([in,out] RtrMgrProtocolCB *pRMProtCB);
HRESULT GetParentRtrMgrInfo([out] IRtrMgrInfo **ppRm);
HRESULT SetParentRtrMgrInfo([in] IRtrMgrInfo *pRm);
HRESULT RtrAdvise([in] IRtrAdviseSink *pRtrAdviseSink,
[out] LONG_PTR *pulConnection,
[in] LPARAM lUserParam);
HRESULT RtrNotify([in] DWORD dwChangeType, [in] DWORD dwObjectType,
[in] LPARAM lParam);
HRESULT RtrUnadvise([in] LONG_PTR ulConnection);
// Tell the object that it should remove all connections to the
// running router
HRESULT DoDisconnect();
HRESULT AddWeakRef();
HRESULT ReleaseWeakRef();
HRESULT Destruct();
};
cpp_quote("#define DeclareIRtrMgrProtocolInfoMembers(IPURE)\\")
cpp_quote(" STDMETHOD_(DWORD, GetFlags)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(SetFlags)(THIS_ DWORD dwFlags) IPURE; \\")
cpp_quote(" STDMETHOD_(DWORD, GetProtocolId)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD_(LPCOLESTR, GetTitle)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD_(DWORD, GetTransportId)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(CopyCB)(THIS_ RtrMgrProtocolCB *pRMProtCB) IPURE; \\")
cpp_quote(" STDMETHOD(GetParentRtrMgrInfo)(THIS_ IRtrMgrInfo **ppRm) IPURE; \\")
cpp_quote(" STDMETHOD(SetParentRtrMgrInfo)(THIS_ IRtrMgrInfo *pRm) IPURE; \\")
cpp_quote(" STDMETHOD(RtrAdvise)(THIS_ IRtrAdviseSink *pRtrAdviseSink,\\")
cpp_quote(" LONG_PTR *pulConnection, LPARAM lUserParam) IPURE; \\")
cpp_quote(" STDMETHOD(RtrNotify)(THIS_ DWORD dwChangeType, DWORD objtype, LPARAM lParam) IPURE;\\")
cpp_quote(" STDMETHOD(RtrUnadvise)(THIS_ LONG_PTR ulConnection) IPURE; \\")
cpp_quote(" STDMETHOD(DoDisconnect)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(AddWeakRef)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD(ReleaseWeakRef)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(Destruct)(THIS) IPURE; \\")
cpp_quote("")
/*---------------------------------------------------------------------------
IEnumRtrMgrProtocolInfo
---------------------------------------------------------------------------*/
[
object,
uuid(66A2DB07-D706-11d0-A37B-00C04FC9DA04),
local,
pointer_default(unique),
]
interface IEnumRtrMgrProtocolInfo : IUnknown
{
HRESULT Next( [in] ULONG uNum,
[out] IRtrMgrProtocolInfo **ppBlock,
[out] ULONG * pNumReturned );
HRESULT Skip( [in] ULONG uNum );
HRESULT Reset();
HRESULT Clone( [out] IEnumRtrMgrProtocolInfo **ppBlockEnum );
};
cpp_quote("#define DeclareIEnumRtrMgrProtocolInfoMembers(IPURE) \\")
cpp_quote(" STDMETHOD(Next)(THIS_ ULONG uNum, IRtrMgrProtocolInfo **ppBlock, \\")
cpp_quote(" ULONG *pNumReturned) IPURE; \\")
cpp_quote(" STDMETHOD(Skip)(THIS_ ULONG uNum) IPURE; \\")
cpp_quote(" STDMETHOD(Reset)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(Clone)(THIS_ IEnumRtrMgrProtocolInfo **ppBlockEnum) IPURE; \\")
cpp_quote("")
/*---------------------------------------------------------------------------
IRtrMgrInfo
---------------------------------------------------------------------------*/
[
object,
uuid(66A2DB04-D706-11d0-A37B-00C04FC9DA04),
local,
pointer_default(unique),
]
interface IRtrMgrInfo : IUnknown
{
import "unknwn.idl";
DWORD GetFlags();
HRESULT SetFlags([in] DWORD dwFlags);
HRESULT Load([in,string] LPCOLESTR pszMachine,
[in] HANDLE hMachine,
[in] HANDLE hTransport
);
HRESULT Save([in,string] LPCOLESTR pszMachine,
[in] HANDLE hMachine,
[in] HANDLE hTransport,
[in] IInfoBase * pGlobalInfo,
[in] IInfoBase * pClientInfo,
[in] DWORD dwDeleteProtocolId);
HRESULT Unload( );
HRESULT Delete([in,string] LPCOLESTR pszMachine,
[in] HANDLE hMachine);
HRESULT SetInfoBase([in] IInfoBase* pGlobalInfo,
[in] IInfoBase* pClientInfo );
HRESULT GetInfoBase([in] HANDLE hMachine,
[in] HANDLE hTransport,
[out] IInfoBase ** ppGlobalInfo,
[out] IInfoBase ** ppClientInfo);
HRESULT Merge([in] IRtrMgrInfo *pNewRtrMgrInfo);
DWORD GetTransportId();
LPCOLESTR GetTitle();
LPCOLESTR GetId();
HRESULT SetId(LPCOLESTR pszId);
HRESULT CopyRtrMgrCB([in,out] RtrMgrCB *pRMCB);
LPCOLESTR GetMachineName();
HRESULT EnumRtrMgrProtocol([out] IEnumRtrMgrProtocolInfo ** ppEnumRMProt);
HRESULT FindRtrMgrProtocol([in] DWORD dwProtocolId,
[out] IRtrMgrProtocolInfo **ppRMProtInfo);
HRESULT AddRtrMgrProtocol([in] IRtrMgrProtocolInfo *pInfo,
[in] IInfoBase * pGlobalInfo,
[in] IInfoBase * pClientInfo);
HRESULT DeleteRtrMgrProtocol([in] DWORD dwProtocolId, BOOL fRemove);
HRESULT ReleaseRtrMgrProtocol([in] DWORD dwProtocolId);
HRESULT RtrAdvise([in] IRtrAdviseSink *pRtrAdviseSink,
[out] LONG_PTR *pulConnection,
[in] LPARAM lUserParam);
HRESULT RtrNotify([in] DWORD dwChangeType, [in] DWORD dwObjectType,
[in] LPARAM lParam);
HRESULT RtrUnadvise([in] LONG_PTR ulConnection);
HRESULT GetParentRouterInfo([out] IRouterInfo **ppRouterInfo);
HRESULT SetParentRouterInfo([in] IRouterInfo *pRouterInfo);
// Tell the object that it should remove all connections to the
// running router
HRESULT DoDisconnect();
HRESULT AddWeakRef();
HRESULT ReleaseWeakRef();
HRESULT Destruct();
};
cpp_quote("#define DeclareIRtrMgrInfoMembers(IPURE) \\")
cpp_quote(" STDMETHOD_(DWORD, GetFlags)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(SetFlags)(THIS_ DWORD dwFlags) IPURE; \\")
cpp_quote(" STDMETHOD(Load)(THIS_ LPCOLESTR pszMachine, \\")
cpp_quote(" HANDLE hMachine, \\")
cpp_quote(" HANDLE hTransport) IPURE;\\")
cpp_quote(" STDMETHOD(Save)(THIS_ LPCOLESTR pszMachine, \\")
cpp_quote(" HANDLE hMachine, \\")
cpp_quote(" HANDLE hTransport, \\")
cpp_quote(" IInfoBase *pGlobalInfo, \\")
cpp_quote(" IInfoBase *pClientInfo, \\")
cpp_quote(" DWORD dwDeleteProtocolId) IPURE; \\")
cpp_quote(" STDMETHOD(Unload)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(Delete)(THIS_ LPCOLESTR pszMachine, HANDLE hMachine) IPURE; \\")
cpp_quote(" STDMETHOD(SetInfoBase)(THIS_ IInfoBase *pGlobalInfo, \\")
cpp_quote(" IInfoBase *pClientInfo) IPURE; \\")
cpp_quote(" STDMETHOD(GetInfoBase)(THIS_ HANDLE hMachine, \\")
cpp_quote(" HANDLE hTransport, \\")
cpp_quote(" IInfoBase **ppGlobalInfo, \\")
cpp_quote(" IInfoBase **ppClientInfo) IPURE; \\")
cpp_quote(" STDMETHOD(Merge)(THIS_ IRtrMgrInfo *pNewRtrMgrInfo) IPURE; \\")
cpp_quote(" STDMETHOD_(LPCOLESTR, GetId)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(SetId)(THIS_ LPCOLESTR pszId) IPURE; \\")
cpp_quote(" STDMETHOD_(DWORD, GetTransportId)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD_(LPCOLESTR, GetTitle)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(CopyRtrMgrCB)(THIS_ RtrMgrCB *pRMCB) IPURE; \\")
cpp_quote(" STDMETHOD_(LPCOLESTR, GetMachineName)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(EnumRtrMgrProtocol)(THIS_ IEnumRtrMgrProtocolInfo **ppEnumRMProt) IPURE; \\")
cpp_quote(" STDMETHOD(FindRtrMgrProtocol)(THIS_ DWORD dwProtocolId, \\")
cpp_quote(" IRtrMgrProtocolInfo **ppRMProtInfo) IPURE; \\")
cpp_quote(" STDMETHOD(AddRtrMgrProtocol)(THIS_ IRtrMgrProtocolInfo *pInfo, \\")
cpp_quote(" IInfoBase *pGlobalInfo, \\")
cpp_quote(" IInfoBase *pClientInfo) IPURE; \\")
cpp_quote(" STDMETHOD(DeleteRtrMgrProtocol)(THIS_ DWORD dwProtocolId, BOOL fRemove) IPURE; \\")
cpp_quote(" STDMETHOD(ReleaseRtrMgrProtocol)(THIS_ DWORD dwProtocolId) IPURE; \\")
cpp_quote(" STDMETHOD(RtrAdvise)(THIS_ IRtrAdviseSink *pRtrAdviseSink,\\")
cpp_quote(" LONG_PTR *pulConnection, LPARAM lUserParam) IPURE; \\")
cpp_quote(" STDMETHOD(RtrNotify)(THIS_ DWORD dwChangeType, DWORD objtype, LPARAM lParam) IPURE;\\")
cpp_quote(" STDMETHOD(RtrUnadvise)(THIS_ LONG_PTR ulConnection) IPURE; \\")
cpp_quote(" STDMETHOD(GetParentRouterInfo)(THIS_ IRouterInfo **ppParent) IPURE;\\")
cpp_quote(" STDMETHOD(SetParentRouterInfo)(THIS_ IRouterInfo *ppParent) IPURE;\\")
cpp_quote(" STDMETHOD(DoDisconnect)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(AddWeakRef)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD(ReleaseWeakRef)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(Destruct)(THIS) IPURE; \\")
cpp_quote("")
/*---------------------------------------------------------------------------
IEnumRtrMgrInfo
---------------------------------------------------------------------------*/
[
object,
uuid(66A2DB05-D706-11d0-A37B-00C04FC9DA04),
local,
pointer_default(unique),
]
interface IEnumRtrMgrInfo : IUnknown
{
HRESULT Next( [in] ULONG uNum,
[out] IRtrMgrInfo **ppBlock,
[out] ULONG * pNumReturned );
HRESULT Skip( [in] ULONG uNum );
HRESULT Reset();
HRESULT Clone( [out] IEnumRtrMgrInfo **ppBlockEnum );
};
cpp_quote("#define DeclareIEnumRtrMgrInfoMembers(IPURE) \\")
cpp_quote(" STDMETHOD(Next)(THIS_ ULONG uNum, IRtrMgrInfo **ppBlock, \\")
cpp_quote(" ULONG *pNumReturned) IPURE; \\")
cpp_quote(" STDMETHOD(Skip)(THIS_ ULONG uNum) IPURE; \\")
cpp_quote(" STDMETHOD(Reset)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(Clone)(THIS_ IEnumRtrMgrInfo **ppBlockEnum) IPURE; \\")
cpp_quote("")
/*---------------------------------------------------------------------------
IRtrMgrProtocolInterfaceInfo
---------------------------------------------------------------------------*/
[
object,
uuid(66A2DB0C-D706-11d0-A37B-00C04FC9DA04),
local,
pointer_default(unique),
]
interface IRtrMgrProtocolInterfaceInfo : IUnknown
{
import "unknwn.idl";
DWORD GetFlags();
HRESULT SetFlags([in] DWORD dwFlags);
DWORD GetProtocolId();
DWORD GetTransportId();
LPCOLESTR GetInterfaceId();
DWORD GetInterfaceType();
LPCOLESTR GetTitle();
HRESULT SetTitle(LPCOLESTR pszTitle);
HRESULT CopyCB([in,out] RtrMgrProtocolInterfaceCB * pRMProtCB);
HRESULT RtrAdvise([in] IRtrAdviseSink *pRtrAdviseSink,
[out] LONG_PTR *pulConnection,
[in] LPARAM lUserParam);
HRESULT RtrNotify([in] DWORD dwChangeType, [in] DWORD dwObjectType, [in] LPARAM lParam);
HRESULT RtrUnadvise([in] LONG_PTR ulConnection);
HRESULT GetParentRtrMgrInterfaceInfo([out] IRtrMgrInterfaceInfo **ppParent);
HRESULT SetParentRtrMgrInterfaceInfo([in] IRtrMgrInterfaceInfo *pParent);
// Tell the object that it should remove all connections to the
// running router
HRESULT DoDisconnect();
HRESULT AddWeakRef();
HRESULT ReleaseWeakRef();
HRESULT Destruct();
};
cpp_quote("#define DeclareIRtrMgrProtocolInterfaceInfoMembers(IPURE) \\")
cpp_quote(" STDMETHOD_(DWORD, GetFlags)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(SetFlags)(THIS_ DWORD dwFlags) IPURE; \\")
cpp_quote(" STDMETHOD_(DWORD, GetProtocolId)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD_(DWORD, GetTransportId)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD_(LPCOLESTR, GetInterfaceId)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD_(DWORD, GetInterfaceType)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD_(LPCOLESTR, GetTitle)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(SetTitle)(THIS_ LPCOLESTR pszTitle) IPURE;\\")
cpp_quote(" STDMETHOD(CopyCB)(THIS_ RtrMgrProtocolInterfaceCB *pRMProtCB) IPURE; \\")
cpp_quote(" STDMETHOD(RtrAdvise)(THIS_ IRtrAdviseSink *pRtrAdviseSink,\\")
cpp_quote(" LONG_PTR *pulConnection, LPARAM lUserParam) IPURE; \\")
cpp_quote(" STDMETHOD(RtrNotify)(THIS_ DWORD dwChangeType, DWORD objtype, LPARAM lParam) IPURE;\\")
cpp_quote(" STDMETHOD(RtrUnadvise)(THIS_ LONG_PTR ulConnection) IPURE; \\")
cpp_quote(" STDMETHOD(GetParentRtrMgrInterfaceInfo)(THIS_ IRtrMgrInterfaceInfo **ppParent) IPURE;\\")
cpp_quote(" STDMETHOD(SetParentRtrMgrInterfaceInfo)(THIS_ IRtrMgrInterfaceInfo *pParent) IPURE;\\")
cpp_quote(" STDMETHOD(DoDisconnect)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(AddWeakRef)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD(ReleaseWeakRef)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(Destruct)(THIS) IPURE; \\")
cpp_quote(" ")
/*---------------------------------------------------------------------------
IEnumRtrMgrProtocolInterfaceInfo
---------------------------------------------------------------------------*/
[
object,
uuid(66A2DB0D-D706-11d0-A37B-00C04FC9DA04),
local,
pointer_default(unique),
]
interface IEnumRtrMgrProtocolInterfaceInfo : IUnknown
{
HRESULT Next( [in] ULONG uNum,
[out] IRtrMgrProtocolInterfaceInfo **ppBlock,
[out] ULONG * pNumReturned );
HRESULT Skip( [in] ULONG uNum );
HRESULT Reset();
HRESULT Clone( [out] IEnumRtrMgrProtocolInterfaceInfo **ppBlockEnum );
};
cpp_quote("#define DeclareIEnumRtrMgrProtocolInterfaceInfoMembers(IPURE) \\")
cpp_quote(" STDMETHOD(Next)(THIS_ ULONG uNum, IRtrMgrProtocolInterfaceInfo **ppBlock, \\")
cpp_quote(" ULONG *pNumReturned) IPURE; \\")
cpp_quote(" STDMETHOD(Skip)(THIS_ ULONG uNum) IPURE; \\")
cpp_quote(" STDMETHOD(Reset)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(Clone)(THIS_ IEnumRtrMgrProtocolInterfaceInfo **ppBlockEnum) IPURE; \\")
cpp_quote("")
/*---------------------------------------------------------------------------
IRtrMgrInterfaceInfo
---------------------------------------------------------------------------*/
[
object,
uuid(66A2DB0A-D706-11d0-A37B-00C04FC9DA04),
local,
pointer_default(unique),
]
interface IRtrMgrInterfaceInfo : IUnknown
{
import "unknwn.idl";
DWORD GetFlags();
HRESULT SetFlags([in] DWORD dwFlags);
HRESULT Load([in,string] LPCOLESTR pszMachine,
[in] HANDLE hMachine,
[in] HANDLE hInterface,
[in] HANDLE hIfTransport);
HRESULT Save(
[in,string] LPCOLESTR pszMachine,
[in] HANDLE hMachine,
[in] HANDLE hInterface,
[in] HANDLE hIfTransport,
[in] IInfoBase* pInterfaceInfo,
[in] DWORD dwDeleteProtocolId);
HRESULT Unload( );
HRESULT Delete([in, string] LPCOLESTR pszMachine,
[in] HANDLE hMachine,
[in] HANDLE hInterface);
HRESULT Merge([in] IRtrMgrInterfaceInfo *pNewRtrMgrInterfaceInfo);
HRESULT SetInfo([in] DWORD dwIfInfoSize,
[in, size_is(dwIfInfoSize)] PBYTE pInterfaceInfoData);
HRESULT SetInfoBase([in] HANDLE hMachine,
[in] HANDLE hInterface,
[in] HANDLE hIfTransport,
[in] IInfoBase *pIfInfo);
HRESULT GetInfoBase([in] HANDLE hMachine,
[in] HANDLE hInterface,
[in] HANDLE hIfTransport,
[out] IInfoBase **ppIfInfo);
DWORD GetTransportId();
LPCOLESTR GetId();
HRESULT SetId(LPCOLESTR pszId);
// Information about the interface
LPCOLESTR GetInterfaceId();
DWORD GetInterfaceType();
LPCOLESTR GetTitle();
HRESULT SetTitle(LPCOLESTR pszTitle);
HRESULT CopyCB([in,out] RtrMgrInterfaceCB *pRMIfCB);
LPCOLESTR GetMachineName();
HRESULT SetMachineName(LPCOLESTR pszMachineName);
HRESULT EnumRtrMgrProtocolInterface([out] IEnumRtrMgrProtocolInterfaceInfo **ppEnumRmProtIf);
HRESULT FindRtrMgrProtocolInterface([in] DWORD dwProtocolId,
[out] IRtrMgrProtocolInterfaceInfo **pInfo);
HRESULT AddRtrMgrProtocolInterface([in] IRtrMgrProtocolInterfaceInfo *pInfo,
[in] IInfoBase *pInterfaceInfo);
HRESULT DeleteRtrMgrProtocolInterface([in] DWORD dwProtocolId, BOOL fRemove);
HRESULT ReleaseRtrMgrProtocolInterface([in] DWORD dwProtocolId);
HRESULT RtrAdvise([in] IRtrAdviseSink *pRtrAdviseSink,
[out] LONG_PTR *pulConnection,
[in] LPARAM lUserParam);
HRESULT RtrNotify([in] DWORD dwChangeType, [in] DWORD dwObjectType, [in] LPARAM lParam);
HRESULT RtrUnadvise([in] LONG_PTR ulConnection);
HRESULT GetParentInterfaceInfo([out] IInterfaceInfo **ppParent);
HRESULT SetParentInterfaceInfo([in] IInterfaceInfo *pParent);
// Tell the object that it should remove all connections to the
// running router
HRESULT DoDisconnect();
HRESULT AddWeakRef();
HRESULT ReleaseWeakRef();
HRESULT Destruct();
};
cpp_quote("#define DeclareIRtrMgrInterfaceInfoMembers(IPURE)\\")
cpp_quote(" STDMETHOD_(DWORD, GetFlags)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD(SetFlags)(THIS_ DWORD dwFlags) IPURE;\\")
cpp_quote(" STDMETHOD(Load)(THIS_ LPCOLESTR pszMachine,\\")
cpp_quote(" HANDLE hMachine,\\")
cpp_quote(" HANDLE hInterface,\\")
cpp_quote(" HANDLE hIfTransport) IPURE;\\")
cpp_quote(" STDMETHOD(Save)(THIS_ LPCOLESTR pszMachine,\\")
cpp_quote(" HANDLE hMachine,\\")
cpp_quote(" HANDLE hInterface,\\")
cpp_quote(" HANDLE hIfTransport,\\")
cpp_quote(" IInfoBase *pInterfaceInfo,\\")
cpp_quote(" DWORD dwProtocolId) IPURE;\\")
cpp_quote(" STDMETHOD(Unload)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD(Delete)(THIS_ LPCOLESTR pszMachine,\\")
cpp_quote(" HANDLE hMachine,\\")
cpp_quote(" HANDLE hInterface) IPURE;\\")
cpp_quote(" STDMETHOD(Merge)(THIS_ IRtrMgrInterfaceInfo *pNewRtrMgrInterfaceInfo) IPURE; \\")
cpp_quote(" STDMETHOD(SetInfo)(THIS_ DWORD dwIfInfoSize,\\")
cpp_quote(" PBYTE pInterfaceInfoData) IPURE;\\")
cpp_quote(" STDMETHOD(SetInfoBase)(THIS_ \\")
cpp_quote(" HANDLE hMachine,\\")
cpp_quote(" HANDLE hInterface,\\")
cpp_quote(" HANDLE hIfTransport,\\")
cpp_quote(" IInfoBase *pInfoBase) IPURE;\\")
cpp_quote(" STDMETHOD(GetInfoBase)(THIS_ \\")
cpp_quote(" HANDLE hMachine,\\")
cpp_quote(" HANDLE hInterface,\\")
cpp_quote(" HANDLE hIfTransport,\\")
cpp_quote(" IInfoBase **ppInfoBase) IPURE;\\")
cpp_quote(" STDMETHOD_(LPCOLESTR, GetId)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD(SetId)(THIS_ LPCOLESTR pszId) IPURE;\\")
cpp_quote(" STDMETHOD_(DWORD, GetTransportId)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD_(LPCOLESTR, GetInterfaceId)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD_(DWORD, GetInterfaceType)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD_(LPCOLESTR, GetTitle)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD(SetTitle)(THIS_ LPCOLESTR pszTitle) IPURE;\\")
cpp_quote(" STDMETHOD(CopyCB)(THIS_ RtrMgrInterfaceCB *pRMIfCB)IPURE;\\")
cpp_quote(" STDMETHOD_(LPCOLESTR, GetMachineName)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD(SetMachineName)(THIS_ LPCOLESTR pszMachineName) IPURE;\\")
cpp_quote(" STDMETHOD(EnumRtrMgrProtocolInterface)(THIS_ IEnumRtrMgrProtocolInterfaceInfo **ppEnumRmProtIf) IPURE;\\")
cpp_quote(" STDMETHOD(FindRtrMgrProtocolInterface)(THIS_ DWORD dwProtocolId,\\")
cpp_quote(" IRtrMgrProtocolInterfaceInfo **ppInfo) IPURE;\\")
cpp_quote(" STDMETHOD(AddRtrMgrProtocolInterface)(THIS_ IRtrMgrProtocolInterfaceInfo *pInfo,\\")
cpp_quote(" IInfoBase *pIfInfo) IPURE;\\")
cpp_quote(" STDMETHOD(DeleteRtrMgrProtocolInterface)(THIS_ DWORD dwProtocolId, BOOL fRemove) IPURE;\\")
cpp_quote(" STDMETHOD(ReleaseRtrMgrProtocolInterface)(THIS_ DWORD dwProtocolId) IPURE;\\")
cpp_quote(" STDMETHOD(RtrAdvise)(THIS_ IRtrAdviseSink *pRtrAdviseSink,\\")
cpp_quote(" LONG_PTR *pulConnection, LPARAM lUserParam) IPURE; \\")
cpp_quote(" STDMETHOD(RtrNotify)(THIS_ DWORD dwChangeType, DWORD objtype, LPARAM lParam) IPURE;\\")
cpp_quote(" STDMETHOD(RtrUnadvise)(THIS_ LONG_PTR ulConnection) IPURE; \\")
cpp_quote(" STDMETHOD(GetParentInterfaceInfo)(THIS_ IInterfaceInfo **ppParent) IPURE;\\")
cpp_quote(" STDMETHOD(SetParentInterfaceInfo)(THIS_ IInterfaceInfo *pParent) IPURE;\\")
cpp_quote(" STDMETHOD(DoDisconnect)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(AddWeakRef)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD(ReleaseWeakRef)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(Destruct)(THIS) IPURE; \\")
cpp_quote(" ")
/*---------------------------------------------------------------------------
IEnumRtrMgrInterfaceInfo
---------------------------------------------------------------------------*/
[
object,
uuid(66A2DB0B-D706-11d0-A37B-00C04FC9DA04),
local,
pointer_default(unique),
]
interface IEnumRtrMgrInterfaceInfo : IUnknown
{
HRESULT Next( [in] ULONG uNum,
[out] IRtrMgrInterfaceInfo **ppBlock,
[out] ULONG * pNumReturned );
HRESULT Skip( [in] ULONG uNum );
HRESULT Reset();
HRESULT Clone( [out] IEnumRtrMgrInterfaceInfo **ppBlockEnum );
};
cpp_quote("#define DeclareIEnumRtrMgrInterfaceInfoMembers(IPURE) \\")
cpp_quote(" STDMETHOD(Next)(THIS_ ULONG uNum, IRtrMgrInterfaceInfo **ppBlock, \\")
cpp_quote(" ULONG *pNumReturned) IPURE; \\")
cpp_quote(" STDMETHOD(Skip)(THIS_ ULONG uNum) IPURE; \\")
cpp_quote(" STDMETHOD(Reset)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(Clone)(THIS_ IEnumRtrMgrInterfaceInfo **ppBlockEnum) IPURE; \\")
cpp_quote("")
/*---------------------------------------------------------------------------
IInterfaceInfo
---------------------------------------------------------------------------*/
[
object,
uuid(66A2DB08-D706-11d0-A37B-00C04FC9DA04),
local,
pointer_default(unique),
]
interface IInterfaceInfo : IUnknown
{
import "unknwn.idl";
DWORD GetFlags();
HRESULT SetFlags([in] DWORD dwFlags);
HRESULT Load([in, string] LPCOLESTR pszMachine,
[in] HANDLE hMachine,
[in] HANDLE hInterface);
HRESULT Save([in,string] LPCOLESTR pszMachine,
[in] HANDLE hMachine,
[in] HANDLE hInterface);
HRESULT Delete([in,string] LPCOLESTR pszMachine,
[in] HANDLE hMachine);
HRESULT Unload( );
HRESULT Merge([in] IInterfaceInfo *pNewInterfaceInfo);
// These can't be changed
LPCOLESTR GetId();
DWORD GetInterfaceType();
LPCOLESTR GetDeviceName();
LPCOLESTR GetTitle();
HRESULT SetTitle([in] LPCOLESTR pszTitle);
BOOL IsInterfaceEnabled();
HRESULT SetInterfaceEnabledState([in] BOOL bEnabled);
HRESULT CopyCB([in,out] InterfaceCB *pifcb);
LPCOLESTR GetMachineName();
HRESULT SetMachineName([in] LPCOLESTR pszMachine);
HRESULT EnumRtrMgrInterface([out] IEnumRtrMgrInterfaceInfo **ppEnumRMIf);
HRESULT AddRtrMgrInterface([in] IRtrMgrInterfaceInfo *pInfo,
[in] IInfoBase *pInterfaceInfo);
HRESULT DeleteRtrMgrInterface([in] DWORD dwTransportId, BOOL fRemove);
HRESULT ReleaseRtrMgrInterface([in] DWORD dwTransportId);
HRESULT FindRtrMgrInterface([in] DWORD dwTransportId,
[out] IRtrMgrInterfaceInfo **ppInfo);
HRESULT RtrAdvise([in] IRtrAdviseSink *pRtrAdviseSink,
[out] LONG_PTR *pulConnection,
[in] LPARAM lUserParam);
HRESULT RtrNotify([in] DWORD dwChangeType, [in] DWORD dwObjectType,
[in] LPARAM lParam);
HRESULT RtrUnadvise([in] LONG_PTR ulConnection);
HRESULT GetParentRouterInfo([out] IRouterInfo **ppRouterInfo);
HRESULT SetParentRouterInfo([in] IRouterInfo *pRouterInfo);
// Tell the object that it should remove all connections to the
// running router
HRESULT DoDisconnect();
HRESULT AddWeakRef();
HRESULT ReleaseWeakRef();
HRESULT Destruct();
};
cpp_quote("#define DeclareIInterfaceInfoMembers(IPURE)\\")
cpp_quote(" STDMETHOD_(DWORD, GetFlags)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(SetFlags)(THIS_ DWORD dwFlags) IPURE; \\")
cpp_quote(" STDMETHOD(Load)(THIS_ LPCOLESTR pszMachine,\\")
cpp_quote(" HANDLE hMachine,\\")
cpp_quote(" HANDLE hInterface) IPURE;\\")
cpp_quote(" STDMETHOD(Save)(THIS_ LPCOLESTR pszMachine,\\")
cpp_quote(" HANDLE hMachine,\\")
cpp_quote(" HANDLE hInterface) IPURE;\\")
cpp_quote(" STDMETHOD(Delete)(THIS_ LPCOLESTR pszMachine,\\")
cpp_quote(" HANDLE hMachine) IPURE;\\")
cpp_quote(" STDMETHOD(Unload)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD(Merge)(THIS_ IInterfaceInfo *pNewInterfaceInfo) IPURE; \\")
cpp_quote(" STDMETHOD_(LPCOLESTR, GetId)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD_(DWORD, GetInterfaceType)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD_(LPCOLESTR, GetDeviceName)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD_(LPCOLESTR, GetTitle)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD(SetTitle)(THIS_ LPCOLESTR pszTitle) IPURE;\\")
cpp_quote(" STDMETHOD_(BOOL, IsInterfaceEnabled)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD(SetInterfaceEnabledState)(THIS_ BOOL bEnabled) IPURE;\\")
cpp_quote(" STDMETHOD(CopyCB)(THIS_ InterfaceCB *pifcb) IPURE;\\")
cpp_quote(" STDMETHOD_(LPCOLESTR, GetMachineName)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD(SetMachineName)(THIS_ LPCOLESTR pszMachineName) IPURE;\\")
cpp_quote(" STDMETHOD(EnumRtrMgrInterface)(THIS_ IEnumRtrMgrInterfaceInfo **ppEnumRMIf) IPURE;\\")
cpp_quote(" STDMETHOD(AddRtrMgrInterface)(THIS_ IRtrMgrInterfaceInfo *pInfo,\\")
cpp_quote(" IInfoBase *pInterfaceInfo) IPURE;\\")
cpp_quote(" STDMETHOD(DeleteRtrMgrInterface)(THIS_ DWORD dwTransportId, BOOL fRemove) IPURE;\\")
cpp_quote(" STDMETHOD(ReleaseRtrMgrInterface)(THIS_ DWORD dwTransportId) IPURE;\\")
cpp_quote(" STDMETHOD(FindRtrMgrInterface)(THIS_ DWORD dwTransportId,\\")
cpp_quote(" IRtrMgrInterfaceInfo **ppInfo) IPURE;\\")
cpp_quote(" STDMETHOD(RtrAdvise)(THIS_ IRtrAdviseSink *pRtrAdviseSink,\\")
cpp_quote(" LONG_PTR *pulConnection, LPARAM lUserParam) IPURE; \\")
cpp_quote(" STDMETHOD(RtrNotify)(THIS_ DWORD dwChangeType, DWORD objtype, LPARAM lParam) IPURE;\\")
cpp_quote(" STDMETHOD(RtrUnadvise)(THIS_ LONG_PTR ulConnection) IPURE; \\")
cpp_quote(" STDMETHOD(GetParentRouterInfo)(THIS_ IRouterInfo **ppRouterInfo) IPURE;\\")
cpp_quote(" STDMETHOD(SetParentRouterInfo)(THIS_ IRouterInfo *pRouterInfo) IPURE;\\")
cpp_quote(" STDMETHOD(DoDisconnect)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(AddWeakRef)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD(ReleaseWeakRef)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(Destruct)(THIS) IPURE; \\")
cpp_quote(" ")
/*---------------------------------------------------------------------------
IEnumInterfaceInfo
---------------------------------------------------------------------------*/
[
object,
uuid(66A2DB09-D706-11d0-A37B-00C04FC9DA04),
local,
pointer_default(unique),
]
interface IEnumInterfaceInfo : IUnknown
{
HRESULT Next( [in] ULONG uNum,
[out] IInterfaceInfo **ppBlock,
[out] ULONG * pNumReturned );
HRESULT Skip( [in] ULONG uNum );
HRESULT Reset();
HRESULT Clone( [out] IEnumInterfaceInfo **ppBlockEnum );
};
cpp_quote("#define DeclareIEnumInterfaceInfoMembers(IPURE) \\")
cpp_quote(" STDMETHOD(Next)(THIS_ ULONG uNum, IInterfaceInfo **ppBlock, \\")
cpp_quote(" ULONG *pNumReturned) IPURE; \\")
cpp_quote(" STDMETHOD(Skip)(THIS_ ULONG uNum) IPURE; \\")
cpp_quote(" STDMETHOD(Reset)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(Clone)(THIS_ IEnumInterfaceInfo **ppBlockEnum) IPURE; \\")
cpp_quote("")
/*---------------------------------------------------------------------------
IRouterAdminAccess
---------------------------------------------------------------------------*/
[
object,
uuid(66A2DB1F-D706-11d0-A37B-00C04FC9DA04),
local,
pointer_default(unique),
]
interface IRouterAdminAccess : IUnknown
{
// Returns TRUE if the SetInfo() has been called, FALSE otherwise
BOOL IsAdminInfoSet();
// Retrieves the component parts of the info
LPCOLESTR GetUserName();
LPCOLESTR GetDomainName();
// This does NOT allocate space. Do NOT free this up.
HRESULT GetUserPassword(BYTE *pByte, int *pcPassword);
//
// Sets the information
// Note : the cPassword is needed, because the pszPassword should
// not be in cleartext!
//
HRESULT SetInfo(LPCOLESTR pszName,
LPCOLESTR pszDomain,
BYTE *pszPassword,
int cPassword);
};
cpp_quote("#define DeclareIRouterAdminAccessMembers(IPURE) \\")
cpp_quote(" STDMETHOD_(BOOL, IsAdminInfoSet)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD_(LPCOLESTR, GetUserName)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD_(LPCOLESTR, GetDomainName)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD(GetUserPassword)(THIS_ BYTE *pByte, \\")
cpp_quote(" int *pcPassword) IPURE; \\")
cpp_quote(" STDMETHOD(SetInfo)(THIS_ LPCOLESTR pszName, \\")
cpp_quote(" LPCOLESTR pszDomain,\\")
cpp_quote(" BYTE * pPassword, int cPassword) IPURE;\\")
cpp_quote("")
cpp_quote("// IRouterInfo")
cpp_quote("// To make AutoRefresh to a group of IRouterInfo(s), assign an external Refresh Object")
cpp_quote("// Without setting the ExternalRefreshObject, IRouterInfo will create up reqest by GetRefreshObject")
/*---------------------------------------------------------------------------
IRouterInfo
---------------------------------------------------------------------------*/
[
object,
uuid(66A2DB02-D706-11d0-A37B-00C04FC9DA04),
local,
pointer_default(unique),
]
interface IRouterInfo : IRouterRefreshAccess
{
DWORD GetFlags();
HRESULT SetFlags([in] DWORD dwFlags);
HRESULT Load([in,string] LPCOLESTR pszMachine,
[in] HANDLE hMachine
);
HRESULT Save([in,string] LPCOLESTR pszMachine,
[in] HANDLE hMachine );
HRESULT Unload( );
HRESULT Merge([in] IRouterInfo *pNewRouterInfo);
HRESULT SetExternalRefreshObject([in] IRouterRefresh* pRouterRefresh);
HRESULT CopyCB([in,out] RouterCB *pRouterCB);
LPCOLESTR GetMachineName();
DWORD GetRouterType();
HRESULT GetRouterVersionInfo([out] RouterVersionInfo *pVerInfo);
HRESULT EnumRtrMgrCB([out] IEnumRtrMgrCB **ppEnumRtrMgrCB);
HRESULT EnumInterfaceCB([out] IEnumInterfaceCB **ppEnumInterfaceCB);
HRESULT EnumRtrMgrProtocolCB([out] IEnumRtrMgrProtocolCB **ppEnumRmProtCB);
HRESULT EnumRtrMgrInterfaceCB([out] IEnumRtrMgrInterfaceCB **ppEnumRmIfCB);
HRESULT EnumRtrMgrProtocolInterfaceCB([out] IEnumRtrMgrProtocolInterfaceCB **ppEnumRmProtIfCB);
HRESULT EnumRtrMgr([out] IEnumRtrMgrInfo **ppEnumRtrMgr);
HRESULT FindRtrMgr([in] DWORD dwTransportId,
[out] IRtrMgrInfo **ppInfo);
HRESULT AddRtrMgr([in] IRtrMgrInfo *pInfo,
[in] IInfoBase *pGlobalInfo,
[in] IInfoBase *pClientInfo);
HRESULT DeleteRtrMgr([in] DWORD dwTransportId, BOOL fRemove);
HRESULT ReleaseRtrMgr([in] DWORD dwTransportId);
HRESULT EnumInterface([out] IEnumInterfaceInfo **ppEnumInterface);
HRESULT FindInterface([in,string] LPCOLESTR pszInterface,
[out] IInterfaceInfo **ppInfo);
HRESULT AddInterface([in] IInterfaceInfo *pInfo);
HRESULT DeleteInterface([in,string] LPCOLESTR pszInterface, BOOL fRemove);
HRESULT ReleaseInterface([in, string] LPCOLESTR pszInterface);
HRESULT RtrAdvise([in] IRtrAdviseSink *pRtrAdviseSink,
[out] LONG_PTR *pulConnection,
[in] LPARAM lUserParam);
HRESULT RtrNotify([in] DWORD dwChangeType, [in] DWORD dwObjectType,
[in] LPARAM lParam);
HRESULT RtrUnadvise([in] LONG_PTR ulConnection);
// Tell the object that it should remove all connections to the
// running router
HRESULT DoDisconnect();
HRESULT AddWeakRef();
HRESULT ReleaseWeakRef();
HRESULT Destruct();
};
cpp_quote("#define DeclareIRouterInfoMembers(IPURE)\\")
cpp_quote(" STDMETHOD_(DWORD, GetFlags)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(SetFlags)(THIS_ DWORD dwFlags) IPURE; \\")
cpp_quote(" STDMETHOD(Load)(THIS_ LPCOLESTR pszMachine,\\")
cpp_quote(" HANDLE hMachine) IPURE;\\")
cpp_quote(" STDMETHOD(Save)(THIS_ LPCOLESTR pszMachine,\\")
cpp_quote(" HANDLE hMachine ) IPURE;\\")
cpp_quote(" STDMETHOD(Unload)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(Merge)(THIS_ IRouterInfo *pNewRouterInfo) IPURE; \\")
cpp_quote(" STDMETHOD(SetExternalRefreshObject)(THIS_ IRouterRefresh *pRefresh) IPURE;\\")
cpp_quote(" STDMETHOD(CopyCB)(THIS_ RouterCB *pRouterCB) IPURE; \\")
cpp_quote(" STDMETHOD_(LPCOLESTR, GetMachineName)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD_(DWORD, GetRouterType)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD(GetRouterVersionInfo)(THIS_ RouterVersionInfo *pVerInfo) IPURE;\\")
cpp_quote(" STDMETHOD(EnumRtrMgrCB)(THIS_ IEnumRtrMgrCB **ppEnumRtrMgrCB) IPURE;\\")
cpp_quote(" STDMETHOD(EnumInterfaceCB)(THIS_ IEnumInterfaceCB **ppEnumInterfaceCB) IPURE;\\")
cpp_quote(" STDMETHOD(EnumRtrMgrProtocolCB)(THIS_ IEnumRtrMgrProtocolCB **ppEnumRmProtCB) IPURE;\\")
cpp_quote(" STDMETHOD(EnumRtrMgrInterfaceCB)(THIS_ IEnumRtrMgrInterfaceCB **ppEnumRmIfCB) IPURE;\\")
cpp_quote(" STDMETHOD(EnumRtrMgrProtocolInterfaceCB)(THIS_ IEnumRtrMgrProtocolInterfaceCB **ppEnumRmProtIfCB) IPURE;\\")
cpp_quote(" STDMETHOD(EnumRtrMgr)(THIS_ IEnumRtrMgrInfo **ppEnumRtrMgr) IPURE;\\")
cpp_quote(" STDMETHOD(FindRtrMgr)(THIS_ DWORD dwTransportId,\\")
cpp_quote(" IRtrMgrInfo **ppInfo) IPURE;\\")
cpp_quote(" STDMETHOD(AddRtrMgr)(THIS_ IRtrMgrInfo *pInfo,\\")
cpp_quote(" IInfoBase *pGlobalInfo,\\")
cpp_quote(" IInfoBase *pClientInfo) IPURE;\\")
cpp_quote(" STDMETHOD(DeleteRtrMgr)(THIS_ DWORD dwTransportId, BOOL fRemove) IPURE;\\")
cpp_quote(" STDMETHOD(ReleaseRtrMgr)(THIS_ DWORD dwTransportId) IPURE;\\")
cpp_quote(" STDMETHOD(EnumInterface)(THIS_ IEnumInterfaceInfo **ppEnumInterface) IPURE;\\")
cpp_quote(" STDMETHOD(FindInterface)(THIS_ LPCOLESTR pszInterface,\\")
cpp_quote(" IInterfaceInfo **ppInfo) IPURE;\\")
cpp_quote(" STDMETHOD(AddInterface)(THIS_ IInterfaceInfo *pInfo) IPURE;\\")
cpp_quote(" STDMETHOD(DeleteInterface)(THIS_ LPCOLESTR pszInterface, BOOL fRemove) IPURE;\\")
cpp_quote(" STDMETHOD(ReleaseInterface)(THIS_ LPCOLESTR pszInterface) IPURE;\\")
cpp_quote(" STDMETHOD(RtrAdvise)(THIS_ IRtrAdviseSink *pRtrAdviseSink,\\")
cpp_quote(" LONG_PTR *pulConnection, LPARAM lUserParam) IPURE; \\")
cpp_quote(" STDMETHOD(RtrNotify)(THIS_ DWORD dwChangeType, DWORD objtype, LPARAM lParam) IPURE;\\")
cpp_quote(" STDMETHOD(RtrUnadvise)(THIS_ LONG_PTR ulConnection) IPURE; \\")
cpp_quote(" STDMETHOD(DoDisconnect)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(AddWeakRef)(THIS) IPURE;\\")
cpp_quote(" STDMETHOD(ReleaseWeakRef)(THIS) IPURE; \\")
cpp_quote(" STDMETHOD(Destruct)(THIS) IPURE; \\")
cpp_quote(" ")
#endif // _ROUTER_IDL_