//+------------------------------------------------------------------------- // // 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(); HRESULT SetMachineName(LPCOLESTR pszMachineName); 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(SetMachineName)(THIS_ LPCOLESTR pszMachineName) 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_