196 lines
5.8 KiB
C
196 lines
5.8 KiB
C
|
//-----------------------------------------------------------------------
|
||
|
//
|
||
|
// Microsoft Windows
|
||
|
// Copyright (C) Microsoft Corporation, 1997.
|
||
|
//
|
||
|
// File: A U N I O B J . H
|
||
|
//
|
||
|
// Contents: CAtmUniCfg interface declaration
|
||
|
//
|
||
|
// Notes:
|
||
|
//
|
||
|
// Author: tongl 21 Mar 1997
|
||
|
//
|
||
|
//-----------------------------------------------------------------------
|
||
|
|
||
|
#pragma once
|
||
|
#include <ncxbase.h>
|
||
|
#include <nceh.h>
|
||
|
#include <notifval.h>
|
||
|
#include "resource.h"
|
||
|
#include "atmutil.h"
|
||
|
#include "pvcdata.h"
|
||
|
|
||
|
// Constants
|
||
|
static const WCHAR c_szPVC[] = L"PVC";
|
||
|
|
||
|
// Reg key value names ( non-configurable parameters )
|
||
|
static const WCHAR c_szMaxActiveSVCs[] = L"MaxActiveSVCs";
|
||
|
static const WCHAR c_szMaxSVCsInProgress[] = L"MaxSVCsInProgress";
|
||
|
static const WCHAR c_szMaxPMPSVCs[] = L"MaxPMPSVCs";
|
||
|
static const WCHAR c_szMaxActiveParties[] = L"MaxActiveParties";
|
||
|
static const WCHAR c_szMaxPartiesInProgress[] = L"MaxPartiesInProgress";
|
||
|
|
||
|
// Default Reg key values ( non-configurable parameters )
|
||
|
static const c_dwWksMaxActiveSVCs = 256;
|
||
|
static const c_dwSrvMaxActiveSVCs = 1024;
|
||
|
|
||
|
static const c_dwWksMaxSVCsInProgress = 8;
|
||
|
static const c_dwSrvMaxSVCsInProgress = 32;
|
||
|
|
||
|
static const c_dwWksMaxPMPSVCs = 32;
|
||
|
static const c_dwSrvMaxPMPSVCs = 64;
|
||
|
|
||
|
static const c_dwWksMaxActiveParties = 64;
|
||
|
static const c_dwSrvMaxActiveParties = 512;
|
||
|
|
||
|
static const c_dwWksMaxPartiesInProgress = 8;
|
||
|
static const c_dwSrvMaxPartiesInProgress = 32;
|
||
|
|
||
|
// number of property sheet pages
|
||
|
static const INT c_cUniPages = 1;
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// CAtmUniCfg
|
||
|
|
||
|
class ATL_NO_VTABLE CAtmUniCfg :
|
||
|
public CComObjectRoot,
|
||
|
public CComCoClass<CAtmUniCfg, &CLSID_CAtmUniCfg>,
|
||
|
public INetCfgComponentControl,
|
||
|
public INetCfgComponentSetup,
|
||
|
public INetCfgComponentNotifyBinding,
|
||
|
public INetCfgComponentPropertyUi
|
||
|
{
|
||
|
public:
|
||
|
CAtmUniCfg();
|
||
|
~CAtmUniCfg();
|
||
|
|
||
|
BEGIN_COM_MAP(CAtmUniCfg)
|
||
|
COM_INTERFACE_ENTRY(INetCfgComponentControl)
|
||
|
COM_INTERFACE_ENTRY(INetCfgComponentSetup)
|
||
|
COM_INTERFACE_ENTRY(INetCfgComponentNotifyBinding)
|
||
|
COM_INTERFACE_ENTRY(INetCfgComponentPropertyUi)
|
||
|
END_COM_MAP()
|
||
|
|
||
|
// DECLARE_NOT_AGGREGATABLE(CAtmUniCfg)
|
||
|
// Remove the comment from the line above if you don't want your object to
|
||
|
// support aggregation. The default is to support it
|
||
|
|
||
|
DECLARE_REGISTRY_RESOURCEID(IDR_REG_AUNICFG)
|
||
|
|
||
|
// INetCfgComponentControl
|
||
|
STDMETHOD (Initialize) (
|
||
|
IN INetCfgComponent* pIComp,
|
||
|
IN INetCfg* pINetCfg,
|
||
|
IN BOOL fInstalling);
|
||
|
STDMETHOD (ApplyRegistryChanges) ();
|
||
|
STDMETHOD (ApplyPnpChanges) (
|
||
|
IN INetCfgPnpReconfigCallback* pICallback) { return S_OK; }
|
||
|
STDMETHOD (CancelChanges) ();
|
||
|
STDMETHOD (Validate) ();
|
||
|
|
||
|
// INetCfgComponentSetup
|
||
|
STDMETHOD (Install) (DWORD dwSetupFlags);
|
||
|
STDMETHOD (Upgrade) (DWORD dwSetupFlags,
|
||
|
DWORD dwUpgradeFomBuildNo );
|
||
|
STDMETHOD (ReadAnswerFile) (PCWSTR pszAnswerFile,
|
||
|
PCWSTR pszAnswerSection);
|
||
|
STDMETHOD (Removing)();
|
||
|
|
||
|
// INetCfgNotifyBinding
|
||
|
STDMETHOD (QueryBindingPath) (DWORD dwChangeFlag, INetCfgBindingPath* pncbp);
|
||
|
STDMETHOD (NotifyBindingPath) (DWORD dwChangeFlag, INetCfgBindingPath* pncbp);
|
||
|
|
||
|
// INetCfgProperties
|
||
|
STDMETHOD (QueryPropertyUi) (
|
||
|
IN IUnknown* pUnk);
|
||
|
STDMETHOD (SetContext) (
|
||
|
IN IUnknown* pUnk);
|
||
|
STDMETHOD (MergePropPages) (
|
||
|
IN OUT DWORD* pdwDefPages,
|
||
|
OUT LPBYTE* pahpspPrivate,
|
||
|
OUT UINT* pcPrivate,
|
||
|
IN HWND hwndParent,
|
||
|
OUT PCWSTR* pszStartPage);
|
||
|
STDMETHOD (ValidateProperties) (
|
||
|
HWND hwndSheet);
|
||
|
STDMETHOD (CancelProperties) ();
|
||
|
STDMETHOD (ApplyProperties) ();
|
||
|
|
||
|
// help functions
|
||
|
CUniAdapterInfo * GetSecondMemoryAdapterInfo()
|
||
|
{
|
||
|
return m_pSecondMemoryAdapterInfo;
|
||
|
}
|
||
|
|
||
|
void SetSecondMemoryModified()
|
||
|
{
|
||
|
m_fSecondMemoryModified = TRUE;
|
||
|
}
|
||
|
|
||
|
private:
|
||
|
// Place to keep the INetCfg pointer
|
||
|
INetCfg * m_pnc;
|
||
|
|
||
|
// Place to keep corresponding component object
|
||
|
INetCfgComponent * m_pnccUni;
|
||
|
INetCfgComponent * m_pnccRwan;
|
||
|
|
||
|
// Place to keep the pointer to UI context
|
||
|
IUnknown * m_pUnkContext;
|
||
|
|
||
|
// (STL) List of adapter info structures
|
||
|
UNI_ADAPTER_LIST m_listAdapters;
|
||
|
|
||
|
// Guid of the current connection
|
||
|
tstring m_strGuidConn;
|
||
|
|
||
|
// Second memory adapter info structures
|
||
|
CUniAdapterInfo * m_pSecondMemoryAdapterInfo;
|
||
|
|
||
|
// Do we need to update registry on Apply
|
||
|
BOOL m_fSaveRegistry;
|
||
|
BOOL m_fUIParamChanged;
|
||
|
|
||
|
BOOL m_fSecondMemoryModified;
|
||
|
|
||
|
// property page
|
||
|
class CUniPage * m_uniPage;
|
||
|
|
||
|
// Load parameters from registry
|
||
|
HRESULT HrLoadSettings();
|
||
|
|
||
|
// Save parameters to registry
|
||
|
HRESULT HrSaveSettings();
|
||
|
|
||
|
// Add/Remove adapters from first memory state
|
||
|
HRESULT HrAddAdapter(INetCfgComponent * pncc);
|
||
|
HRESULT HrRemoveAdapter(INetCfgComponent * pncc);
|
||
|
|
||
|
HRESULT HrBindAdapter(INetCfgComponent * pnccAdapter);
|
||
|
HRESULT HrUnBindAdapter(INetCfgComponent * pnccAdapter);
|
||
|
|
||
|
// Set defaults for statis parameters
|
||
|
HRESULT HrSaveDefaultSVCParam(HKEY hkey);
|
||
|
|
||
|
// Check if a card guid string is on m_listAdapters
|
||
|
BOOL fIsAdapterOnList(PCWSTR pszBindName, CUniAdapterInfo ** ppAdapterInfo);
|
||
|
|
||
|
HRESULT HrSetConnectionContext();
|
||
|
|
||
|
HRESULT HrSetupPropSheets(HPROPSHEETPAGE ** pahpsp, INT * pcPages);
|
||
|
|
||
|
// Have we already load PVC info into memory
|
||
|
BOOL m_fPVCInfoLoaded;
|
||
|
|
||
|
// load and save adapter PVC info to first memory
|
||
|
HRESULT HrLoadPVCRegistry();
|
||
|
HRESULT HrLoadAdapterPVCRegistry(HKEY hkeyAdapterParam, CUniAdapterInfo * pAdapterInfo);
|
||
|
HRESULT HrSaveAdapterPVCRegistry(HKEY hkeyAdapterParam, CUniAdapterInfo * pAdapterInfo);
|
||
|
|
||
|
// load and save adapter parameters to second memory
|
||
|
HRESULT HrLoadAdapterPVCInfo();
|
||
|
HRESULT HrSaveAdapterPVCInfo();
|
||
|
};
|
||
|
|