windows-nt/Source/XPSP1/NT/net/rras/ras/ui/inc/pbuser.h
2020-09-26 16:20:57 +08:00

261 lines
8 KiB
C

/* Copyright (c) 1995, Microsoft Corporation, all rights reserved
**
** pbuser.h
** Remote Access phonebook user preference library
** Public header
**
** 06/20/95 Steve Cobb
*/
#ifndef _PBUSER_H_
#define _PBUSER_H_
/*----------------------------------------------------------------------------
** Constants
**----------------------------------------------------------------------------
*/
/* User preference modes
*/
#define UPM_Normal 0
#define UPM_Logon 1
#define UPM_Router 2
/* User preference key and values.
*/
#define REGKEY_HkcuOldRas TEXT("Software\\Microsoft\\Windows NT\\CurrentVersion\\Network\\RemoteAccess")
#define REGKEY_HkcuOldRasParent TEXT("Software\\Microsoft\\Windows NT\\CurrentVersion\\Network")
#define REGKEY_HkcuOldRasRoot TEXT("RemoteAccess")
#define REGKEY_HkuOldRasLogon TEXT(".DEFAULT\\Software\\Microsoft\\RAS Phonebook")
#define REGKEY_HkcuRas TEXT("Software\\Microsoft\\RAS Phonebook")
#define REGKEY_HkuRasLogon TEXT(".DEFAULT\\Software\\Microsoft\\RAS Logon Phonebook")
#define REGKEY_HklmRouter TEXT("Software\\Microsoft\\Router Phonebook")
#define REGKEY_Callback TEXT("Callback")
#define REGKEY_Location TEXT("Location")
#define REGVAL_szNumber TEXT("Number")
#define REGVAL_dwDeviceType TEXT("DeviceType")
#define REGVAL_dwPhonebookMode TEXT("PhonebookMode")
#define REGVAL_szUsePersonalPhonebook TEXT("UsePersonalPhonebook")
#define REGVAL_szPersonalPhonebookPath TEXT("PersonalPhonebookPath")
#define REGVAL_szPersonalPhonebookFile TEXT("PersonalPhonebookFile")
#define REGVAL_szAlternatePhonebookPath TEXT("AlternatePhonebookPath")
#define REGVAL_fOperatorDial TEXT("OperatorDial")
#define REGVAL_fPreviewPhoneNumber TEXT("PreviewPhoneNumber")
#define REGVAL_fUseLocation TEXT("UseLocation")
#define REGVAL_fShowLights TEXT("ShowLights")
#define REGVAL_fShowConnectStatus TEXT("ShowConnectStatus")
#define REGVAL_fNewEntryWizard TEXT("NewEntryWizard")
#define REGVAL_dwRedialAttempts TEXT("RedialAttempts")
#define REGVAL_dwRedialSeconds TEXT("RedialSeconds")
#define REGVAL_dwIdleDisconnectSeconds TEXT("IdleHangUpSeconds")
#define REGVAL_dwCallbackMode TEXT("CallbackMode")
#define REGVAL_mszPhonebooks TEXT("Phonebooks")
#define REGVAL_mszAreaCodes TEXT("AreaCodes")
#define REGVAL_mszPrefixes TEXT("Prefixes")
#define REGVAL_mszSuffixes TEXT("Suffixes")
#define REGVAL_szLastCallbackByCaller TEXT("LastCallbackByCaller")
#define REGVAL_dwPrefix TEXT("Prefix")
#define REGVAL_dwSuffix TEXT("Suffix")
#define REGVAL_dwXWindow TEXT("WindowX")
#define REGVAL_dwYWindow TEXT("WindowY")
#define REGVAL_szDefaultEntry TEXT("DefaultEntry")
#define REGVAL_fCloseOnDial TEXT("CloseOnDial")
#define REGVAL_fAllowLogonPhonebookEdits TEXT("AllowLogonPhonebookEdits")
#define REGVAL_fAllowLogonLocationEdits TEXT("AllowLogonLocationEdits")
#define REGVAL_fUseAreaAndCountry TEXT("UseAreaAndCountry")
#define REGVAL_dwMode TEXT("Mode")
#define REGVAL_dwFlags TEXT("Flags")
#define REGVAL_dwX TEXT("x")
#define REGVAL_dwY TEXT("y")
#define REGVAL_dwCx TEXT("cx")
#define REGVAL_dwCy TEXT("cy")
#define REGVAL_dwCxCol1 TEXT("cxCol1")
#define REGVAL_dwStartPage TEXT("StartPage")
#define REGVAL_dwXDlg TEXT("xDlg")
#define REGVAL_dwYDlg TEXT("yDlg")
#define REGVAL_dwCxDlgCol1 TEXT("cxDlgCol1")
#define REGVAL_dwCxDlgCol2 TEXT("cxDlgCol2")
#define REGVAL_szLastDevice TEXT("LastDevice")
#define REGVAL_mszDeviceList TEXT("DeviceList")
#define REGVAL_fSkipConnectComplete TEXT("SkipConnectComplete")
#define REGVAL_fRedialOnLinkFailure TEXT("RedialOnLinkFailure")
#define REGVAL_fExpandAutoDialQuery TEXT("ExpandAutoDialQuery")
#define REGVAL_fPopupOnTopWhenRedialing TEXT("PopupOnTopWhenRedialing")
#define REGVAL_dwVersion TEXT("Version")
/* Callback modes (see dwCallbackMode below).
*/
#define CBM_No 0
#define CBM_Maybe 1
#define CBM_Yes 2
/* Phonebook modes (see dwPhonebookMode below).
*/
#define PBM_System 0
#define PBM_Personal 1
#define PBM_Alternate 2
#define PBM_Router 3
/*----------------------------------------------------------------------------
** Datatypes
**----------------------------------------------------------------------------
*/
/* Information about a callback number. See 'PBUSER.pdtllistCallback'. Note
** that 'dwDeviceType' is a PBK PBDEVICETYPE enumeration cast to a DWORD.
*/
#define CALLBACKINFO struct tagCALLBACKINFO
CALLBACKINFO
{
TCHAR* pszPortName;
TCHAR* pszDeviceName;
TCHAR* pszNumber;
DWORD dwDeviceType;
};
/* Information associated with a TAPI location number.
*/
#define LOCATIONINFO struct tagLOCATIONINFO
LOCATIONINFO
{
DWORD dwLocationId;
DWORD iPrefix;
DWORD iSuffix;
};
/* User preference information read from the "CURRENT_USER" registry. This
** information applies to all "normal" user phonebooks plus the system
** phonebook. The router phonebook may work differently.
*/
#define PBUSER struct tagPBUSER
PBUSER
{
/* Appearance page.
*/
BOOL fOperatorDial;
BOOL fPreviewPhoneNumber;
BOOL fUseLocation;
BOOL fShowLights;
BOOL fShowConnectStatus;
BOOL fCloseOnDial;
BOOL fAllowLogonPhonebookEdits;
BOOL fAllowLogonLocationEdits;
BOOL fSkipConnectComplete;
BOOL fNewEntryWizard;
/* Auto-dial page.
*/
DWORD dwRedialAttempts;
DWORD dwRedialSeconds;
DWORD dwIdleDisconnectSeconds;
BOOL fRedialOnLinkFailure;
BOOL fPopupOnTopWhenRedialing;
BOOL fExpandAutoDialQuery;
/* Callback page.
**
** This list is of CALLBACKINFO.
*/
DWORD dwCallbackMode;
DTLLIST* pdtllistCallback;
TCHAR* pszLastCallbackByCaller;
/* Phone list page.
*/
DWORD dwPhonebookMode;
TCHAR* pszPersonalFile;
TCHAR* pszAlternatePath;
DTLLIST* pdtllistPhonebooks;
/* Area code strings, in MRU order.
*/
DTLLIST* pdtllistAreaCodes;
BOOL fUseAreaAndCountry;
/* Prefix/suffix information, i.e. the ordered string lists and the
** settings for a particular TAPI location.
*/
DTLLIST* pdtllistPrefixes;
DTLLIST* pdtllistSuffixes;
DTLLIST* pdtllistLocations;
/* Phonebook window position and last entry selected used by RASPHONE.EXE.
*/
DWORD dwXPhonebook;
DWORD dwYPhonebook;
TCHAR* pszDefaultEntry;
/* Set true if the structure has been initialized.
*/
BOOL fInitialized;
/* Set true if something's changed since the structure was read.
*/
BOOL fDirty;
};
/*----------------------------------------------------------------------------
** Prototypes
**----------------------------------------------------------------------------
*/
DTLNODE*
CreateLocationNode(
IN DWORD dwLocationId,
IN DWORD iPrefix,
IN DWORD iSuffix );
DTLNODE*
CreateCallbackNode(
IN TCHAR* pszPortName,
IN TCHAR* pszDeviceName,
IN TCHAR* pszNumber,
IN DWORD dwDeviceType );
VOID
DestroyLocationNode(
IN DTLNODE* pNode );
VOID
DestroyCallbackNode(
IN DTLNODE* pNode );
VOID
DestroyUserPreferences(
IN PBUSER* pUser );
DTLNODE*
DuplicateLocationNode(
IN DTLNODE* pNode );
DWORD
GetUserPreferences(
IN HANDLE hConnection,
OUT PBUSER* pUser,
IN DWORD dwMode );
DWORD
SetUserPreferences(
IN HANDLE hConnection,
IN PBUSER* pUser,
IN DWORD dwMode );
// These two are provided as an optimization.
// They write directly to the registry.
DWORD GetUserManualDialEnabling (
IN OUT PBOOL pbEnabled,
IN DWORD dwMode );
DWORD SetUserManualDialEnabling (
IN BOOL bEnable,
IN DWORD dwMode );
#endif // _PBUSER_H_