Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

565 lines
12 KiB

// Copyright (c) 1995, Microsoft Corporation, all rights reserved
//
// rasdlgp.h
// Remote Access Common Dialog APIs
// Private pre-compiled header
//
// 06/18/95 Steve Cobb
#ifndef _RASDLGP_H_
#define _RASDLGP_H_
#define COBJMACROS
#include <nt.h> // NT declarations
#include <ntrtl.h> // NT general runtime-library
#include <nturtl.h> // NT user-mode runtime-library
#include <windows.h> // Win32 root
#include <windowsx.h> // Win32 macro extensions
#include <commctrl.h> // Win32 common controls
#include <commdlg.h> // Win32 common dialogs
#include <prsht.h> // Win32 property sheets
#include <setupapi.h> // Class image lists for network components
#include <shlobj.h> // To get profile directory for user
#include <tapi.h> // Telephony API
#include <rasdlg.h> // Win32 RAS common dialogs (our public header)
#include <rasuip.h> // RAS UI APIs (our private header)
#include <raserror.h> // Win32 RAS error codes
#include <netcfgx.h> // INetCfg interfaces
#include <hnetcfg.h> // IHNetCfg interfaces
#include <pbk.h> // RAS phonebook library
#include <tapiutil.h> // TAPI helper library
#include <nouiutil.h> // No-HWND helper library
#include <phonenum.h> // Phone number helper library
#include <debug.h> // Trace/assert library
#include <uiutil.h> // HWND helper library
#include <wait.rch> // LoadRas resource constants
#include <mdm.h> // installs null modems for the dcc wizards.
#include <pwutil.h> // password encoding, etc.
#include "rasdlgrc.h" // Our resource constants
#include "rasdlghc.h" // Our help context constants
#include "entry.h" // High-level common phonebook entry helpers
#include "rassrv.h"
#include "rasdiagp.h" // For whistler 460931
// Fusion support
// For whistler bug 349866
#include "shfusion.h"
// Whistler bug 224074 use only lstrcpyn's to prevent maliciousness
//
// Created this for the use of dial.c/terminal.c, max length of the IP address
// for the terminal dialog
//
#define TERM_IpAddress 17
// Positional offset of property sheets and wizards from the main dialog.
//
#define DXSHEET 12
#define DYSHEET 25
// List editor dialog option flags
//
#define LEDFLAG_NoDeleteLastItem 0x00000001
#define LEDFLAG_Sorted 0x00000002
#define LEDFLAG_Unique 0x00000004
//-----------------------------------------------------------------------------
// Datatypes
//-----------------------------------------------------------------------------
// For whistler 460931
//
typedef struct _tagDiagnosticInfo
{
HINSTANCE hDiagDll;
DiagGetDiagnosticFunctions pfnGetDiagFunc;
RAS_DIAGNOSTIC_FUNCTIONS strDiagFuncs;
} DiagnosticInfo;
// Defines arguments passed internally via reserved words in the public
// interface. This is done so an API doesn't have to re-load the phonebook
// and user preferences when serving another API.
//
typedef struct
_INTERNALARGS
{
PBFILE* pFile;
PBUSER* pUser;
RASNOUSER* pNoUser;
BOOL fNoUser;
BOOL fNoUserChanged;
BOOL fMoveOwnerOffDesktop;
BOOL fForceCloseOnDial;
HANDLE hConnection;
BOOL fInvalid;
PVOID pvEapInfo;
BOOL fDisableFirstConnect;
PVOID * pvSRouteInfo;
}
INTERNALARGS;
// Static list table item.
//
typedef struct
_LBTABLEITEM
{
DWORD sidItem;
DWORD dwData;
}
LBTABLEITEM;
//-----------------------------------------------------------------------------
// Global declarations (defined in main.c)
//-----------------------------------------------------------------------------
extern HINSTANCE g_hinstDll;
extern LPCWSTR g_contextId;
extern HBITMAP g_hbmWizard;
extern TCHAR* g_pszHelpFile;
extern TCHAR* g_pszRouterHelpFile;
extern BOOL g_fEncryptionPermitted;
extern LONG g_ulCallbacksActive;
extern BOOL g_fTerminateAsap;
extern CRITICAL_SECTION g_csDiagTab; //For whistler 460931
extern CRITICAL_SECTION g_csCallBacks; //for .Net 511810
//-----------------------------------------------------------------------------
// Macros
//-----------------------------------------------------------------------------
#define ErrorDlg(h,o,e,a) \
ErrorDlgUtil(h,o,e,a,g_hinstDll,SID_PopupTitle,SID_FMT_ErrorMsg)
#define MsgDlg(h,m,a) \
MsgDlgUtil(h,m,a,g_hinstDll,SID_PopupTitle)
// Extended tracing macros. Specifying a flag by name in the first parameter
// allows the caller to categorize messages printed e.g.
//
// TRACEX(RASDLG_TIMER,"entering LsRefresh")
//
#define RASDLG_TIMER ((DWORD)0x80000000|0x00000002)
//-----------------------------------------------------------------------------
// Cross-file prototypes (alphabetically)
//-----------------------------------------------------------------------------
BOOL
AdvancedSecurityDlg(
IN HWND hwndOwner,
IN OUT EINFO* pArgs );
BOOL
AllLinksAreModems(
IN PBENTRY* pEntry );
BOOL
AllowDccWizard(
IN HANDLE hConnection);
BOOL
AlternatePhoneNumbersDlg(
IN HWND hwndOwner,
IN OUT DTLNODE* pLinkNode,
IN OUT DTLLIST* pListAreaCodes );
DWORD
AuthRestrictionsFromTypicalAuth(
IN DWORD dwTypicalAuth );
LONG GetGlobalCallbackActive( );
LONG IncGlobalCallbackActive( );
LONG DecGlobalCallbackActive( );
ULONG
CallbacksActive(
INT nSetTerminateAsap,
BOOL* pfTerminateAsap );
VOID
ContextHelp(
IN const DWORD* padwMap,
IN HWND hwndDlg,
IN UINT unMsg,
IN WPARAM wparam,
IN LPARAM lparam );
VOID
ContextHelpX(
IN const DWORD* padwMap,
IN HWND hwndDlg,
IN UINT unMsg,
IN WPARAM wparam,
IN LPARAM lparam,
IN BOOL fRouter);
VOID
CopyLinkPhoneNumberInfo(
OUT DTLNODE* pDstLinkNode,
IN DTLNODE* pSrcLinkNode );
VOID
CopyPszListToPhoneList(
IN OUT PBLINK* pLink,
IN DTLLIST* pListPhoneNumbers );
HWND
CreateWizardBitmap(
IN HWND hwndDlg,
IN BOOL fPage );
BOOL
CustomAuthenticationDlg(
IN HWND hwndOwner,
IN OUT PBENTRY* pEntry,
IN DTLLIST* pList,
IN DTLNODE* pNodeToSelect,
OUT DTLNODE** ppNodeSelected );
BOOL
DataEncryptionDlg(
IN HWND hwndOwner,
IN OUT PBENTRY* pEntry,
IN DWORD dwfCaps );
VOID
DereferenceRunningCallbacks(
VOID );
BOOL
DeviceConfigureDlg(
IN HWND hwndOwner,
IN PBLINK* pLink,
IN PBENTRY* pEntry,
IN BOOL fSingleLink,
IN BOOL fRouter);
TCHAR*
DisplayPszFromDeviceAndPort(
IN TCHAR* pszDevice,
IN TCHAR* pszPort );
TCHAR*
DisplayPszFromPpbport(
IN PBPORT* pPort,
OUT DWORD* pdwDeviceIcon );
DWORD
DwCustomTerminalDlg(TCHAR *pszPhonebook,
HRASCONN hrasconn,
PBENTRY *pEntry,
HWND hwndDlg,
RASDIALPARAMS *prasdialparams,
PVOID pvReserved);
BOOL
EditPhoneNumberDlg(
IN HWND hwndOwner,
IN OUT DTLNODE* pPhoneNode,
IN OUT DTLLIST* pListAreaCodes,
IN DWORD sidTitle );
VOID
EnableCbWithRestore(
IN HWND hwndCb,
IN BOOL fEnable,
IN BOOL fDisabledCheck,
IN OUT BOOL* pfRestore );
VOID
EnableLbWithRestore(
IN HWND hwndLb,
IN BOOL fEnable,
IN OUT INT* piRestore );
DTLNODE*
FirstPhoneNodeFromPhoneList(
IN DTLLIST* pListPhones );
VOID
FirstPhoneNodeToPhoneList(
IN DTLLIST* pListPhones,
IN DTLNODE* pNewNode );
TCHAR*
FirstPhoneNumberFromEntry(
IN PBENTRY* pEntry );
TCHAR*
FirstPszFromList(
IN DTLLIST* pPszList );
DWORD
FirstPhoneNumberToEntry(
IN PBENTRY* pEntry,
IN TCHAR* pszPhoneNumber );
DWORD
FirstPszToList(
IN DTLLIST* pPszList,
IN TCHAR* psz );
VOID
GetBoldWindowFont(
IN HWND hwnd,
IN BOOL fLargeFont,
OUT HFONT * pBoldFont);
DWORD
GetDefaultEntryName(
IN PBFILE* pFile,
IN DWORD dwType,
IN BOOL fRouter,
OUT TCHAR** ppszName );
BOOL
IPSecPolicyDlg(
IN HWND hwndOwner,
IN OUT EINFO* pArgs );
BOOL
IsLocalPad(
IN PBENTRY* pEntry );
/*
DWORD
IsNt40Machine (
IN PWCHAR pszServer,
OUT PBOOL pbIsNt40
);
*/
BOOL
ListEditorDlg(
IN HWND hwndOwner,
IN OUT DTLLIST* pList,
IN OUT BOOL* pfCheck,
IN DWORD dwMaxItemLen,
IN TCHAR* pszTitle,
IN TCHAR* pszItemLabel,
IN TCHAR* pszListLabel,
IN TCHAR* pszCheckLabel,
IN TCHAR* pszDefaultItem,
IN INT iSelInitial,
IN DWORD* pdwHelp,
IN DWORD dwfFlags,
IN PDESTROYNODE pDestroyId );
BOOL
MultiLinkConfigureDlg(
IN HWND hwndOwner,
IN PBENTRY* pEntry,
IN BOOL fRouter );
BOOL
MultiLinkDialingDlg(
IN HWND hwndOwner,
OUT PBENTRY* pEntry );
BOOL
NwConnectionCheck(
IN HWND hwndOwner,
IN BOOL fPosition,
IN LONG xDlg,
IN LONG yDlg,
IN PBFILE* pFile,
IN PBENTRY* pEntry );
BOOL
PhoneNodeIsBlank(
IN DTLNODE* pNode );
BOOL
PhoneNumberDlg(
IN HWND hwndOwner,
IN BOOL fRouter,
IN OUT DTLLIST* pList,
IN OUT BOOL* pfCheck );
VOID
PositionDlg(
IN HWND hwndDlg,
IN BOOL fPosition,
IN LONG xDlg,
IN LONG yDlg );
LRESULT CALLBACK
PositionDlgStdCallWndProc(
int code,
WPARAM wparam,
LPARAM lparam );
BOOL
PppTcpipDlg(
IN HWND hwndOwner,
IN OUT PBENTRY* pEntry,
IN BOOL fRouter );
BOOL
PrefixSuffixLocationDlg(
IN HWND hwndOwner,
IN TCHAR* pszLocation,
IN DWORD dwLocationId,
IN OUT PBUSER* pUser,
IN OUT HLINEAPP* pHlineapp );
TCHAR*
PszFromPhoneNumberList(
IN DTLLIST* pList );
LRESULT CALLBACK
SelectDesktopCallWndRetProc(
int code,
WPARAM wparam,
LPARAM lparam );
HICON
GetCurrentIconEntryType(
IN DWORD dwType,
BOOL fSmall);
VOID
SetIconFromEntryType(
IN HWND hwndIcon,
IN DWORD dwType,
BOOL fSmall);
BOOL
SlipTcpipDlg(
IN HWND hwndOwner,
IN OUT PBENTRY* pEntry );
BOOL
StringEditorDlg(
IN HWND hwndOwner,
IN TCHAR* pszIn,
IN DWORD dwSidTitle,
IN DWORD dwSidLabel,
IN DWORD cbMax,
IN DWORD dwHelpId,
IN OUT TCHAR** ppszOut );
BOOL
TerminalDlg(
IN PBENTRY* pEntry,
IN RASDIALPARAMS* pRdp,
IN HWND hwndOwner,
IN HRASCONN hrasconn,
IN DWORD sidTitle,
IN OUT TCHAR* pszIpAddress );
VOID
TweakTitleBar(
IN HWND hwndDlg );
int CALLBACK
UnHelpCallbackFunc(
IN HWND hwndDlg,
IN UINT unMsg,
IN LPARAM lparam );
BOOL
UserPreferencesDlg(
IN HLINEAPP hlineapp,
IN HWND hwndOwner,
IN DWORD dwFlags,
OUT PBUSER* pUser,
OUT PBFILE** ppFile );
BOOL
WaitForRasDialCallbacksToTerminate(
VOID );
BOOL
X25LogonSettingsDlg(
IN HWND hwndOwner,
IN BOOL fLocalPad,
IN OUT PBENTRY* pEntry );
//-----------------------------------------------------------------------------
//
// pmay: 213060
// Prototypes moved from pref.c and entryps.c, cleanup added
//
// Callback number utilities
//
//-----------------------------------------------------------------------------
//
// Per-callback number context.
//
// CbutilFillLvNumbers will allocate one of these contexts for each
// item it puts in the list (accessed as LV_ITEM.lParam).
// CbutilLvNumbersCleanup will cleanup these contexts.
//
typedef struct _CBCONTEXT
{
TCHAR* pszPortName; // Pointer to port name (not owned by struct)
TCHAR* pszDeviceName;// Pointer to device name (not owned by struct)
DWORD dwDeviceType; // pointer to the type of the device
BOOL fConfigured; // Whether device referenced is installed on sys.
} CBCONTEXT;
VOID
CbutilFillLvNumbers(
IN HWND hwndDlg,
IN HWND hwndLvNumbers,
IN DTLLIST* pListCallback,
IN BOOL fRouter );
VOID
CbutilLvNumbersCleanup(
IN HWND hwndLvNumbers );
LVXDRAWINFO*
CbutilLvNumbersCallback(
IN HWND hwndLv,
IN DWORD dwItem );
VOID
CbutilEdit(
IN HWND hwndDlg,
IN HWND hwndLvNumbers );
VOID
CbutilDelete(
IN HWND hwndDlg,
IN HWND hwndLvNumbers );
VOID
CbutilSaveLv(
IN HWND hwndLvNumbers,
OUT DTLLIST* pListCallback );
// For whistler 460931
//
// Begin of functions implemented in diagnostic.c
//
INT_PTR CALLBACK
DgDlgProc(
IN HWND hwnd,
IN UINT unMsg,
IN WPARAM wparam,
IN LPARAM lparam );
DWORD
UnLoadDiagnosticDll(
IN DiagnosticInfo * pInfo );
DWORD
LoadDiagnosticDll(
IN DiagnosticInfo * pInfo);
// End of functions implemented in diagnostic.c
//
#endif // _RASDLGP_H_