|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1998 - 1999
//
// File: remcfg.h
//
//--------------------------------------------------------------------------
// RemCfg.h : Declaration of the CRemCfg
#ifndef __REMCFG_H_
#define __REMCFG_H_
#include "resource.h" // main symbols
#include "remras.h"
#include "ncutil.h"
/*---------------------------------------------------------------------------
This structure contains a list of IP interfaces that have changed. This information will be committed in the order in which they appear in the list. ---------------------------------------------------------------------------*/ class RemCfgIPEntry { public: GUID m_IPGuid; REMOTE_IPINFO m_newIPInfo; };
typedef CSimpleArray<RemCfgIPEntry *> RemCfgIPEntryList; //typedef CList<RemCfgIPEntry *, RemCfgIPEntry *> RemCfgIPEntryList;
/////////////////////////////////////////////////////////////////////////////
// CRemCfg
class ATL_NO_VTABLE CRemCfg : public CComObjectRootEx<CComSingleThreadModel>, public CComCoClass<CRemCfg, &CLSID_RemoteRouterConfig>, public IRemoteRouterConfig, public IRemoteTCPIPChangeNotify, public IRemoteNetworkConfig, public IRemoteRouterRestart, public IRemoteSetDnsConfig, public IRemoteICFICSConfig { public: CRemCfg() { TraceSz("CRemCfg constructor");
InitializeCriticalSection(&m_critsec); }; ~CRemCfg();
DECLARE_REGISTRY_RESOURCEID(IDR_REMCFG)
BEGIN_COM_MAP(CRemCfg) COM_INTERFACE_ENTRY(IRemoteRouterConfig) COM_INTERFACE_ENTRY(IRemoteNetworkConfig) COM_INTERFACE_ENTRY(IRemoteTCPIPChangeNotify) COM_INTERFACE_ENTRY(IRemoteRouterRestart) COM_INTERFACE_ENTRY(IRemoteSetDnsConfig) COM_INTERFACE_ENTRY(IRemoteICFICSConfig) END_COM_MAP()
// IRemoteTCPIPChangeNotify
STDMETHOD(NotifyChanges)(/* [in] */ BOOL fEnableRouter, /* [in] */ BYTE uPerformRouterDiscovery);
// IRemoteRouterConfig
public: STDMETHOD(SetIpInfo)(/*[in]*/ const GUID *pGuid, /*[in]*/ REMOTE_RRAS_IPINFO *pIpInfo); STDMETHOD(GetIpInfo)(/*[in]*/ const GUID *pGuid, /*[out]*/ REMOTE_RRAS_IPINFO**ppInfo); STDMETHOD(SetIpxVirtualNetworkNumber)(/*[in]*/ DWORD dwVNetworkNumber); STDMETHOD(GetIpxVirtualNetworkNumber)(/*[out]*/ DWORD *pdwVNetworkNumber); STDMETHOD(SetRasEndpoints)(/*[in]*/ DWORD dwFlags, /*[in]*/ DWORD dwTotalEndpoints, /*[in]*/ DWORD dwTotalIncoming, /*[in]*/ DWORD dwTotalOutgoing);
// IRemoteNetworkConfig
public: STDMETHOD(UpgradeRouterConfig)(); STDMETHOD(SetUserConfig)(/*[in]*/ LPCOLESTR pszService, /*[in]*/ LPCOLESTR pszNewGroup);
// IRemoteRouterRestart
public: STDMETHOD(RestartRouter)(/*[in]*/ DWORD dwFlags);
// IRemoteSetDnsConfig
public: STDMETHOD(SetDnsConfig)(/* [in] */ DWORD dwConfigId, /* [in] */ DWORD dwNewValue);
// IRemoteICFICSConfig
public: STDMETHOD(GetIcfEnabled)(/* [out] */ BOOL * status); public: STDMETHOD(GetIcsEnabled)(/* [out] */ BOOL * status);
protected: CRITICAL_SECTION m_critsec;
HRESULT CommitIPInfo(); };
HRESULT HrGetIpxPrivateInterface(INetCfg* pNetCfg, IIpxAdapterInfo** ppIpxAdapterInfo);
HRESULT HrGetIpPrivateInterface(INetCfg* pNetCfg, ITcpipProperties **ppTcpProperties);
HRESULT HrCreateAndInitializeINetCfg ( BOOL* pfInitCom, INetCfg** ppnc, BOOL fGetWriteLock, DWORD cmsTimeout, LPCWSTR szwClientDesc, LPWSTR * ppstrClientDesc);
HRESULT HrUninitializeAndReleaseINetCfg ( BOOL fUninitCom, INetCfg* pnc, BOOL fHasLock);
HRESULT HrUninitializeAndUnlockINetCfg ( INetCfg* pnc);
//
// This is a private function implemented in netcfgx.dll by ShaunCo.
//
#ifdef __cplusplus
extern "C" { #endif
typedef struct _RASCONFIGENDPOINTS { DWORD dwSize; DWORD dwFlags; INT cTotalEndpoints; INT cLimitSimultaneousIncomingCalls; INT cLimitSimultaneousOutgoingCalls; } RASCONFIGENDPOINTS;
typedef HRESULT (APIENTRY *PRASCONFIGUREENDPOINTS)(IN OUT RASCONFIGENDPOINTS *);
#ifdef __cplusplus
} #endif
#endif //__REMCFG_H_
|