168 lines
4.1 KiB
C++
168 lines
4.1 KiB
C++
//+-------------------------------------------------------------------------
|
|
//
|
|
// 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_
|