Windows2003-3790/inetcore/connectionwizard/inetcfg/wizdef.h
2020-09-30 16:53:55 +02:00

210 lines
7.9 KiB
C

//*********************************************************************
//* Microsoft Windows **
//* Copyright(c) Microsoft Corp., 1994 **
//*********************************************************************
//
// WIZDEF.H - data structures and constants for Internet setup/signup wizard
//
// HISTORY:
//
// 11/20/94 jeremys Created.
// 96/02/27 markdu Changed RAS_MaxLocal to RAS_MaxPhoneNumber
// 96/03/09 markdu Moved all references to 'need terminal window after
// dial' into RASENTRY.dwfOptions.
// 96/03/10 markdu Moved all references to modem name into RASENTRY.
// 96/03/10 markdu Moved all references to phone number into RASENTRY.
// 96/03/23 markdu Remove unused IP LAN pages.
// 96/03/23 markdu Removed TCPINFO struct from CLIENTINFO struct.
// 96/03/23 markdu Since TCPINFO struct was removed from CLIENTINFO,
// CLIENTINFO contained only a CLIENTCONFIG. So, CLIENTINFO
// has been removed and all occurrences replaced with CLIENTCONFIG.
// 96/03/24 markdu Changed all MAX_ISP_ defines to use the values used
// by RASDIALPARAMS. Note that since for some reason RNA won't
// create an entry of length RAS_MaxEntryName even though
// RasValidateEntryName succeeds, we have to subtract one.
// 96/03/27 markdu Added lots of new pages.
// 96/04/19 markdu NASH BUG 13387 Changed RAS_MaxPhoneNumber.
// 96/05/06 markdu NASH BUG 15637 Removed unused code.
// 96/05/14 markdu NASH BUG 22681 Took out mail and news pages.
// 96/09/05 valdonb NORMANDY BUG 6248 Added pages for mail and news set up
//
#ifndef _WIZDEF_H_
#define _WIZDEF_H_
#include "icwcmn.h"
// Defines
#define MAX_ISP_NAME (RAS_MaxEntryName-1) // internet service provider name
#define MAX_ISP_USERNAME UNLEN // max length of login username
#define MAX_ISP_PASSWORD PWLEN // max length of login password
#define MAX_PORT_LEN 5 // max length of proxy port number (max # = 65535)
#define MAX_SCHEME_NAME_LENGTH sizeof("gopher")
#define MAX_URL_STRING (1024 + MAX_SCHEME_NAME_LENGTH + sizeof("://")) // max length of URL
#define MAX_REG_LEN 2048 // max length of registry entries
#define MAX_RES_LEN 255 // max length of string resources
#define SMALL_BUF_LEN 48 // convenient size for small text buffers
#define MAX_UI_AREA_CODE RAS_MaxAreaCode
// NASH BUG 13387 MAX_UI_PHONENUM should be defined as RAS_MaxPhoneNumber, since that
// what is used in RASENTRY, but internally RNA uses RAS_MaxLocal, which is 36. There
// is a bug in RNA though: it chops off the 36th character if you enter it.
#define MAX_UI_PHONENUM 35
// Keep in sync with CCHMAX_ACCOUNT_NAME in imnact.h. This is used here because
// we can't include imnact.h in this file because using a precompiled header
// conflicts with the use of DEFINE_GUID.
#define MAX_ACCOUNT_NAME 256
// 11/23/96 jmazner Normandy #8504
#define MAX_SERVERPROTOCOL_NAME 16
#define NUM_MAILSERVERPROTOCOLS 2 /* POP3
IMAP
*/
#ifndef ARRAYSIZE
#define ARRAYSIZE(a) (sizeof(a)/sizeof(a[0]))
#endif
#ifndef NULL_TERM_TCHARS
#define NULL_TERM_TCHARS(sz); {sz[ARRAYSIZE(sz)-1] = TEXT('\0');}
#endif
// Data structures
// we distinguish two kinds of phone numbers: "machine-readable"
// which are just the digits stored sequentially ("18003524060"), and
// "human readable" which is just text and may look like "(206) 352-9060
// ext. 910". We will never parse "human readable" numbers.
// structure to hold information about the user
// The fixed-lengths fields are a little wasteful, but we only have one
// of these, it's dynamically allocated and it's much more convenient this way.
typedef struct tagUSERINFO {
UINT cbStruct; // == sizeof(USERINFO)
// various choices made along the way...
// 5/4/97 jmazner Olympus #1347
// Updated to allow for new Manual connection type.
//BOOL fConnectOverLAN; // use LAN to connect, if user has both modem & LAN
UINT uiConnectionType;
// ISP (Internet Service Provider) information
BOOL fNewConnection;
BOOL fModifyConnection;
BOOL fModifyAdvanced;
BOOL fAutoDNS;
TCHAR szISPName[MAX_ISP_NAME+1];
TCHAR szAccountName[MAX_ISP_USERNAME+1]; // requested username
TCHAR szPassword[MAX_ISP_PASSWORD+1]; // requested password
// proxy server config information
TCHAR szAutoConfigURL[MAX_URL_STRING+1];
BOOL fProxyEnable;
BOOL bByPassLocal;
BOOL bAutoConfigScript;
BOOL bAutoDiscovery;
TCHAR szProxyServer[MAX_URL_STRING+1];
TCHAR szProxyOverride[MAX_URL_STRING+1];
BOOL fPrevInstallFound; // previous install was found
} USERINFO;
// structure used to pass information to mail profile config APIs.
// Most likely the pointers point into a USERINFO struct,
typedef struct MAILCONFIGINFO {
TCHAR * pszEmailAddress; // user's email address
TCHAR * pszEmailServer; // user's email server path
TCHAR * pszEmailDisplayName; // user's name
TCHAR * pszEmailAccountName; // account name
TCHAR * pszEmailAccountPwd; // account password
TCHAR * pszProfileName; // name of profile to use
// (create or use default if NULL)
BOOL fSetProfileAsDefault; // set profile as default profile
TCHAR * pszConnectoidName; // name of connectoid to dial
BOOL fRememberPassword; // password cached if TRUE
} MAILCONFIGINFO;
#define NUM_WIZARD_PAGES 12 //39 // total number of pages in wizard
#define MAX_PAGE_INDEX 11
// page index defines
#define ORD_PAGE_HOWTOCONNECT 0
#define ORD_PAGE_CHOOSEMODEM 1
#define ORD_PAGE_CONNECTEDOK 2
#define ORD_PAGE_CONNECTION 3
#define ORD_PAGE_MODIFYCONNECTION 4
#define ORD_PAGE_CONNECTIONNAME 5
#define ORD_PAGE_PHONENUMBER 6
#define ORD_PAGE_NAMEANDPASSWORD 7
#define ORD_PAGE_USEPROXY 8
#define ORD_PAGE_PROXYSERVERS 9
#define ORD_PAGE_PROXYEXCEPTIONS 10
#define ORD_PAGE_SETUP_PROXY 11
// structure to hold information about wizard state
typedef struct tagWIZARDSTATE {
UINT uCurrentPage; // index of current page wizard is on
// keeps a history of which pages were visited, so user can
// back up and we know the last page completed in case of reboot.
UINT uPageHistory[NUM_WIZARD_PAGES]; // array of page #'s we visited
UINT uPagesCompleted; // # of pages in uPageHistory
BOOL fMAPIActive; // MAPI initialized
BOOL fNeedReboot; // reboot needed at end
DWORD dwRunFlags; // flags passed to us
// State data that is common to both sides of the WIZARD
CMNSTATEDATA cmnStateData;
} WIZARDSTATE;
// handler proc for OK, cancel, etc button handlers
typedef BOOL (CALLBACK* INITPROC)(HWND,BOOL);
typedef BOOL (CALLBACK* OKPROC)(HWND,BOOL,UINT *,BOOL *);
typedef BOOL (CALLBACK* CANCELPROC)(HWND);
typedef BOOL (CALLBACK* CMDPROC)(HWND,WPARAM,LPARAM);
// structure with information for each wizard page
typedef struct tagPAGEINFO
{
UINT uDlgID; // dialog ID to use for page
UINT uDlgID97External; // dialog ID to use for pages given to an external Wizard 97
UINT uDlgID97; // dialog ID to use for a Wizard 97 that we build
// handler procedures for each page-- any of these can be
// NULL in which case the default behavior is used
INITPROC InitProc;
OKPROC OKProc;
CMDPROC CmdProc;
CANCELPROC CancelProc;
// Normandy 12278 ChrisK 12/4/96
#if !defined(WIN16)
DWORD dwHelpID;
#endif //!WIN16
int nIdTitle;
int nIdSubTitle;
} PAGEINFO;
#define SetPropSheetResult( hwnd, result ) SetWindowLongPtr(hwnd, DWLP_MSGRESULT, result)
#endif // _WIZDEF_H_