|
|
#ifndef __OBCOMGLB_H_
#define __OBCOMGLB_H_
#include <windows.h>
#include <tchar.h>
#include <ras.h>
#include <raserror.h>
#include <tapi.h>
#include "wininet.h"
#include <mapidefs.h>
#include <assert.h>
#include "appdefs.h"
//--------------------------------------------------------------------------------
// obcomglb.h
// The information contained in this file is the sole property of Microsoft Corporation.
// Copywrite Microsoft 1999
//
// Created 2/7/99, vyung
//--------------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// DEFINES
#undef DATASEG_PERINSTANCE
#define DATASEG_PERINSTANCE ".instance"
#define DATASEG_SHARED ".data"
#define DATASEG_DEFAULT DATASEG_SHARED
#undef DATASEG_READONLY
#define DATASEG_READONLY ".rdata"
#define ERROR_USERCANCEL 32767 // quit message value
#define ERROR_USERBACK 32766 // back message value
#define ERROR_USERNEXT 32765 // back message value
#define ERROR_DOWNLOADIDNT 32764 // Download failure
#define ERROR_READING_DUN 32768
#define ERROR_READING_ISP 32769
#define ERROR_PHBK_NOT_FOUND 32770
#define ERROR_DOWNLOAD_NOT_FOUND 32771
#define cMarvelBpsMin 2400 // minimum modem speed
#define INVALID_PORTID UINT_MAX
#define pcszDataModem L"comm/datamodem"
#define MAX_SECTIONS_BUFFER 1024
#define MAX_KEYS_BUFFER 1024
// install TCP (if needed)
#define ICFG_INSTALLTCP 0x00000001
// install RAS (if needed)
#define ICFG_INSTALLRAS 0x00000002
// install exchange and internet mail
#define ICFG_INSTALLMAIL 0x00000004
//
// ChrisK 5/8/97
// Note: the next three switches are only valid for IcfgNeedInetComponet
// check to see if a LAN adapter with TCP bound is installed
//
#define ICFG_INSTALLLAN 0x00000008
//
// Check to see if a DIALUP adapter with TCP bound is installed
//
#define ICFG_INSTALLDIALUP 0x00000010
//
// Check to see if TCP is installed
//
#define ICFG_INSTALLTCPONLY 0x00000020
#define szLoginKey L"Software\\Microsoft\\MOS\\Connection"
#define szCurrentComDev L"CurrentCommDev"
#define szTollFree L"OlRegPhone"
#define CCD_BUFFER_SIZE 255
#define szSignupConnectoidName L"MSN Signup Connection"
#define szSignupDeviceKey L"SignupCommDevice"
#define KEYVALUE_SIGNUPID L"iSignUp"
#define RASENTRYVALUENAME L"RasEntryName"
#define GATHERINFOVALUENAME L"UserInfo"
#define INFFILE_USER_SECTION L"User"
#define INFFILE_PASSWORD L"Password"
#define INFFILE_DOMAIN L"Domain"
#define DUN_SECTION L"DUN"
#define USERNAME L"Username"
#define INF_OEMREGPAGE L"OEMRegistrationPage"
#define NULLSZ L""
#define cchMoreSpace 22000 // bytes needed to hold results of lineGetCountry(0, ...).
// Currently this function returns about 16K, docs say 20K,
// this should be enough.
#define DwFromSz(sz) Sz2Dw(sz) //make it inline, so this is faster.
#define DwFromSzFast(sz) Sz2DwFast(sz)
#define CONNECT_SIGNUPFIRST 1 // phonenumber constant for determining the firstcall phonenumber TO DO
#define CONNECTFLAGS_MASK_TOLLFREE 0x01
#define CONNECTFLAGS_MASK_TCP 0x02
#define CONNECTFLAGS_MASK_ISDN 0x04
#define CONNECTFLAGS_MASK_DIRECT 0x08
#define CONNECTFLAGS_MASK_OTHERDIALUP 0x10
#define CONNECTFLAGS_MASK_PROXY 0x20
#define CONNECTFLAGS_MASK_FIRST CONNECTFLAGS_MASK_TCP
#define CONNECTFLAGS_MASK_LAST CONNECTFLAGS_MASK_ISDN
#define CONNECTMSNDIALUP(dw) ((dw & (CONNECTFLAGS_MASK_TOLLFREE|CONNECTFLAGS_M
#define LANORSHUTTLE(dw) ((dw)==10 || (dw)==34)
#define IS_SHUTTLE(dw) ((dw)==34)
#define IS_ISP(dw) ((dw)==18)
#define CONNECTPROTOCOL_MSNDIALUPX25 0
#define CONNECTPROTOCOL_MSNDIALUPTCP 2
#define CONNECTPROTOCOL_MSNDIALUPTCPISDN 6
#define CONNECTPROTOCOL_LANDIRECT 10
#define CONNECTPROTOCOL_ISPDIALUPTCP 18
#define CONNECTPROTOCOL_LANSHUTTLE 34
#define clineMaxATT 16 //for 950 MNEMONIC
#define NXXMin 200
#define NXXMax 999
#define cbgrbitNXX ((NXXMax + 1 - NXXMin) / 8)
#define crgnpab (NPAMax + 1 - NPAMin)
#define MAX_PROMO 64
#define MAX_OEMNAME 64
#define MAX_AREACODE RAS_MaxAreaCode
#define MAX_RELPROD 8
#define MAX_RELVER 30
#define MAX_STRING 256 //used by ErrorMsg1 in mt.cpp
#define NUM_PHBK_SUGGESTIONS 50
#define TYPE_SIGNUP_ANY 0x82
#define MASK_SIGNUP_ANY 0xB2
//#define RASENUMAPI "RasEnumConnectionsA"
//#define RASHANGUP "RasHangUpA"
#define INF_SUFFIX L".ISP"
#define INF_PHONE_BOOK L"PhoneBookFile"
#define INF_DUN_FILE L"DUNFile"
#define INF_REFERAL_URL L"URLReferral"
#define INF_SIGNUPEXE L"Sign_Up_EXE"
#define INF_SIGNUPPARAMS L"Sign_Up_Params"
#define INF_WELCOME_LABEL L"Welcome_Label"
#define INF_ISP_MSNSU L"MSICW"
#define INF_SIGNUP_URL L"Signup"
#define INF_AUTOCONFIG_URL L"AutoConfig"
#define INF_ISDN_URL L"ISDNSignup"
#define INF_ISDN_AUTOCONFIG_URL L"ISDNAutoConfig"
#define INF_SECTION_URL L"URL"
#define INF_SECTION_ISPINFO L"ISP INFO"
#define INF_RECONNECT_URL L"Reconnect"
#define INF_SECTION_CONNECTION L"Connection"
#define ISP_MSNSIGNUP L"MsnSignup"
#define QUERY_STRING_MSNSIGNUP L"&MSNSIGNUP=1"
#define DUN_NOPHONENUMBER L"000000000000"
#define MAX_VERSION_LEN 40
#define MB_MYERROR (MB_APPLMODAL | MB_ICONERROR | MB_SETFOREGROUND)
// 8/9/96 jmazner
// Added new macro to fix MOS Normandy Bug #4170
#define MB_MYINFORMATION (MB_APPLMODAL | MB_ICONINFORMATION | MB_SETFOREGROUND)
// 8/27/96 jmazner
#define MB_MYEXCLAMATION (MB_APPLMODAL | MB_ICONEXCLAMATION | MB_SETFOREGROUND)
#define WM_STATECHANGE WM_USER
#define WM_DIENOW WM_USER + 1
#define WM_DUMMY WM_USER + 2
#define WM_DOWNLOAD_DONE WM_USER + 3
#define WM_DOWNLOAD_PROGRESS WM_USER + 4
#define WM_MYINITDIALOG (WM_USER + 4)
#define MAX_REDIALS 2
#define REG_USER_INFO L"Software\\Microsoft\\User information"
#define REG_USER_NAME1 L"Default First Name"
#define REG_USER_NAME2 L"Default Last Name"
#define REG_USER_COMPANY L"Default Company"
#define REG_USER_ADDRESS1 L"Mailing Address"
#define REG_USER_ADDRESS2 L"Additional Address"
#define REG_USER_CITY L"City"
#define REG_USER_STATE L"State"
#define REG_USER_ZIP L"ZIP Code"
#define REG_USER_PHONE L"Daytime Phone"
#define REG_USER_COUNTRY L"Country"
#define SIGNUPKEY L"SOFTWARE\\MICROSOFT\\GETCONN"
#define DEVICENAMEKEY L"DeviceName" // used to store user's choice among multiple modems
#define DEVICETYPEKEY L"DeviceType"
#define ICWSETTINGSPATH L"Software\\Microsoft\\Internet Connection Wizard"
#define ICWBUSYMESSAGES L"Software\\Microsoft\\Internet Connection Wizard\\Busy Messages"
#define ICWCOMPLETEDKEY L"Completed"
#define OOBERUNONCE L"Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce"
#define ICSSETTINGSPATH L"Software\\Microsoft\\Windows\\CurrentVersion\\ICS"
#define ICSCLIENT L"ICS Client"
#define RELEASEPRODUCTKEY L"Release Product"
#define RELEASEVERSIONKEY L"Release Product Version"
#define MAX_DIGITAL_PID 256
#define CONNECTOIDNAME L"Connectoid"
#define ACCESSINFO L"AccessInfo"
#define SETUPPATH_NONE L"current"
#define SETUPPATH_MANUAL L"manual"
#define SETUPPATH_AUTO L"automatic"
#define MAX_SETUPPATH_TOKEN 200
// 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)
// constants for INETCLIENTINFO.dwFlags
#define INETC_LOGONMAIL 0x00000001
#define INETC_LOGONNEWS 0x00000002
#define INETC_LOGONDIRSERV 0x00000004
// Connection Type
#define CONNECTION_ICS_TYPE 0x00000001
#define ERROR_INETCFG_UNKNOWN 0x20000000L
#define MAX_EMAIL_NAME 64
#define MAX_EMAIL_ADDRESS 128
#define MAX_LOGON_NAME UNLEN
#define MAX_LOGON_PASSWORD PWLEN
#define MAX_SERVER_NAME 64 // max length of DNS name per RFC 1035 +1
// IE Auto proxy value in registry
#define AUTO_ONCE_EVER 0 // Auto proxy discovery
#define AUTO_DISABLED 1
#define AUTO_ONCE_PER_SESSION 2
#define AUTO_ALWAYS 3
// Flags for dwfOptions
// install Internet mail
#define INETCFG_INSTALLMAIL 0x00000001
// Invoke InstallModem wizard if NO MODEM IS INSTALLED
#define INETCFG_INSTALLMODEM 0x00000002
// install RNA (if needed)
#define INETCFG_INSTALLRNA 0x00000004
// install TCP (if needed)
#define INETCFG_INSTALLTCP 0x00000008
// connecting with LAN (vs modem)
#define INETCFG_CONNECTOVERLAN 0x00000010
// Set the phone book entry for autodial
#define INETCFG_SETASAUTODIAL 0x00000020
// Overwrite the phone book entry if it exists
// Note: if this flag is not set, and the entry exists, a unique name will
// be created for the entry.
#define INETCFG_OVERWRITEENTRY 0x00000040
// Do not show the dialog that tells the user that files are about to be installed,
// with OK/Cancel buttons.
#define INETCFG_SUPPRESSINSTALLUI 0x00000080
// Check if TCP/IP file sharing is turned on, and warn user to turn it off.
// Reboot is required if the user turns it off.
#define INETCFG_WARNIFSHARINGBOUND 0x00000100
// Check if TCP/IP file sharing is turned on, and force user to turn it off.
// If user does not want to turn it off, return will be ERROR_CANCELLED
// Reboot is required if the user turns it off.
#define INETCFG_REMOVEIFSHARINGBOUND 0x00000200
// Indicates that this is a temporary phone book entry
// In Win3.1 an icon will not be created
#define INETCFG_TEMPPHONEBOOKENTRY 0x00000400
// Show the busy dialog while checking system configuration
#define INETCFG_SHOWBUSYANIMATION 0x00000800
//
// Chrisk 5/8/97
// Note: the next three switches are only valid for InetNeedSystemComponents
// Check if LAN adapter is installed and bound to TCP
//
#define INETCFG_INSTALLLAN 0x00001000
//
// Check if DIALUP adapter is installed and bound to TCP
//
#define INETCFG_INSTALLDIALUP 0x00002000
//
// Check to see if TCP is installed requardless of binding
//
#define INETCFG_INSTALLTCPONLY 0x00004000
/*
#ifdef __cplusplus
extern "C" { #endif // __cplusplus
*/ // constants for INETCLIENTINFO.dwFlags
#define INETC_LOGONMAIL 0x00000001
#define INETC_LOGONNEWS 0x00000002
#define INETC_LOGONDIRSERV 0x00000004
#define NUM_SERVER_TYPES 4
#define STR_BSTR 0
#define STR_OLESTR 1
#define BSTRFROMANSI(x) (BSTR)MakeWideStrFromAnsi((LPWSTR)(x), STR_BSTR)
#define OLESTRFROMANSI(x) (LPOLESTR)MakeWideStrFromAnsi((LPWSTR)(x), STR_OLESTR)
#define BSTRFROMRESID(x) (BSTR)MakeWideStrFromResourceId(x, STR_BSTR)
#define OLESTRFROMRESID(x) (LPOLESTR)MakeWideStrFromResourceId(x, STR_OLESTR)
#define COPYOLESTR(x) (LPOLESTR)MakeWideStrFromWide(x, STR_OLESTR)
#define COPYBSTR(x) (BSTR)MakeWideStrFromWide(x, STR_BSTR)
// Note that bryanst and marcl have confirmed that this key will be supported in IE 4
#define IE_PATHKEY L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\IEXPLORE.EXE"
// IE 4 has major.minor version 4.71
// IE 3 golden has major.minor.release.build version # > 4.70.0.1155
// IE 2 has major.minor of 4.40
#define IE4_MAJOR_VERSION (UINT) 4
#define IE4_MINOR_VERSION (UINT) 71
#define IE4_VERSIONMS (DWORD) ((IE4_MAJOR_VERSION << 16) | IE4_MINOR_VERSION)
// 4-30-97 ChrisK Olympus 2934
// While the ICW is trying to connect to the referral server, indicate something is
// working
#define MAX_BUSY_MESSAGE 255
#define MAX_VALUE_NAME 10
#define DEFAULT_IDEVENT 31
#define DEFAULT_UELAPSE 3000
#define cbAreaCode 6 // maximum number of characters in an area code, not including \0
#define cbCity 19 // maximum number of chars in city name, not including \0
#define cbAccessNumber 15 // maximum number of chars in phone number, not including \0
#define cbStateName 31 // maximum number of chars in state name, not including \0
#define cbBaudRate 6 // maximum number of chars in a baud rate, not including \0
#define cbDataCenter (MAX_PATH+1) // max length of data center string
#define MAX_EXIT_RETRIES 10
static const WCHAR szFmtAppendIntToString[] = L"%s %d"; static const WCHAR cszOobePhBkFile[] = L"Phone.obe"; static const WCHAR cszOobePhBkCountry[] = L"COUNTRY_CODE"; static const WCHAR cszOobePhBkCount[] = L"NUMBERS"; static const WCHAR cszOobePhBkNumber[] = L"NUMBER%d"; static const WCHAR cszOobePhBkDunFile[] = L"NUMBER%d_DUN"; static const WCHAR cszOobePhBkCity[] = L"NUMBER%d_CITY"; static const WCHAR cszOobePhBkAreaCode[] = L"NUMBER%d_ACODE"; static const WCHAR cszOobePhBkRandom[] = L"RANDOM";
static const WCHAR cszHTTPS[] = L"https:"; // code relies on these two being the same length
static const WCHAR cszHTTP[] = L"http:"; static const WCHAR cszFILE[] = L"file:"; static const WCHAR cszOEMBRND[] = L"oembrnd.ins"; static const WCHAR cszOEMCNFG[] = L"oemcnfg.ins"; static const WCHAR cszISPCNFG[] = L"ispcnfg.ins"; static const WCHAR cszOOBEINFOINI[] = L"oobeinfo.INI"; static const WCHAR cszSignup[] = L"Signup"; static const WCHAR cszOfferCode[] = L"OfferCode"; static const WCHAR cszISPSignup[] = L"ISPSignup"; static const WCHAR cszISPQuery[] = L"Query String"; static const WCHAR cszBranding[] = L"Branding"; static const WCHAR cszOEMName[] = L"OEMName"; static const WCHAR cszOptions[] = L"Options"; static const WCHAR cszBroadbandDeviceName[] = L"BroadbandDeviceName"; static const WCHAR cszBroadbandDevicePnpid[] = L"BroadbandDevicePnpid";
//--------------------------------------------------------------------------------
// Type declarations
// NOTE: due to code in connmain, the order of these IS IMPORTANT. They should be
// in the same order that they appear.
typedef HRESULT (WINAPI * ICFGNEEDSYSCOMPONENTS) (DWORD dwfOptions, LPBOOL lpfNeedComponents);
typedef struct tagGatherInfo { LCID m_lcidUser; LCID m_lcidSys; LCID m_lcidApps; DWORD m_dwOS; DWORD m_dwMajorVersion; DWORD m_dwMinorVersion; WORD m_wArchitecture; WCHAR m_szPromo[MAX_PROMO];
DWORD m_dwCountryID; DWORD m_dwCountryCode; WCHAR m_szAreaCode[MAX_AREACODE+1]; HWND m_hwnd; LPLINECOUNTRYLIST m_pLineCountryList; BOOL m_bUsePhbk; //LPCNTRYNAMELOOKUPELEMENT m_rgNameLookUp;
WCHAR m_szSUVersion[MAX_VERSION_LEN]; WORD m_wState; BYTE m_fType; BYTE m_bMask; WCHAR m_szISPFile[MAX_PATH+1]; WCHAR m_szAppDir[MAX_PATH+1];
WCHAR m_szRelProd[MAX_RELPROD + 1]; WCHAR m_szRelVer[MAX_RELVER + 1]; DWORD m_dwFlag;
} GATHERINFO, *LPGATHERINFO;
typedef struct tagRASDEVICE { LPRASDEVINFO lpRasDevInfo; DWORD dwTapiDev; } RASDEVICE, *PRASDEVICE;
HRESULT GetINTFromISPFile ( LPWSTR pszISPCode, LPWSTR pszSection, LPWSTR pszDataName, int far *lpData, int iDefaultValue );
typedef struct tagINETCLIENTINFO { DWORD dwSize; DWORD dwFlags; WCHAR szEMailName[MAX_EMAIL_NAME + 1]; WCHAR szEMailAddress[MAX_EMAIL_ADDRESS + 1]; WCHAR szPOPLogonName[MAX_LOGON_NAME + 1]; WCHAR szPOPLogonPassword[MAX_LOGON_PASSWORD + 1]; WCHAR szPOPServer[MAX_SERVER_NAME + 1]; WCHAR szSMTPServer[MAX_SERVER_NAME + 1]; WCHAR szNNTPLogonName[MAX_LOGON_NAME + 1]; WCHAR szNNTPLogonPassword[MAX_LOGON_PASSWORD + 1]; WCHAR szNNTPServer[MAX_SERVER_NAME + 1]; // end of version 1.0 structure;
// extended 1.1 structure includes the following fields:
WCHAR szNNTPName[MAX_EMAIL_NAME + 1]; WCHAR szNNTPAddress[MAX_EMAIL_ADDRESS + 1]; int iIncomingProtocol; WCHAR szIncomingMailLogonName[MAX_LOGON_NAME + 1]; WCHAR szIncomingMailLogonPassword[MAX_LOGON_PASSWORD + 1]; WCHAR szIncomingMailServer[MAX_SERVER_NAME + 1]; BOOL fMailLogonSPA; BOOL fNewsLogonSPA; WCHAR szLDAPLogonName[MAX_LOGON_NAME + 1]; WCHAR szLDAPLogonPassword[MAX_LOGON_PASSWORD + 1]; WCHAR szLDAPServer[MAX_SERVER_NAME + 1]; BOOL fLDAPLogonSPA; BOOL fLDAPResolve;
} INETCLIENTINFO, *PINETCLIENTINFO, FAR *LPINETCLIENTINFO;
typedef struct SERVER_TYPES_tag { WCHAR szType[6]; DWORD dwType; DWORD dwfOptions; } SERVER_TYPES;
typedef struct { DWORD dwIndex; // index number
BYTE bFlipFactor; // for auto-pick
DWORD fType; // phone number type
WORD wStateID; // state ID
DWORD dwCountryID; // TAPI country ID
DWORD dwCountryCode; // TAPI country code
DWORD dwAreaCode; // area code or NO_AREA_CODE if none
DWORD dwConnectSpeedMin; // minimum baud rate
DWORD dwConnectSpeedMax; // maximum baud rate
WCHAR szCity[MAX_PATH]; // city name
WCHAR szAccessNumber[MAX_PATH]; // access number
WCHAR szDataCenter[MAX_PATH]; // data center access string
WCHAR szAreaCode[MAX_PATH]; //Keep the actual area code string around.
} ACCESSENTRY, far *PACCESSENTRY; // ae
typedef struct tagSUGGESTIONINFO { DWORD dwCountryID; DWORD dwCountryCode; DWORD dwAreaCode; DWORD dwPick; WORD wNumber; //DWORD fType; // 9/6/96 jmazner Normandy
//DWORD bMask; // make this struct look like the one in %msnroot%\core\client\phbk\phbk.h
ACCESSENTRY AccessEntry; } SUGGESTINFO, far *PSUGGESTINFO;
// structure used to pass information to mail profile config APIs.
// Most likely the pointers point into a USERINFO struct,
typedef struct MAILCONFIGINFO { WCHAR * pszEmailAddress; // user's email address
WCHAR * pszEmailServer; // user's email server path
WCHAR * pszEmailDisplayName; // user's name
WCHAR * pszEmailAccountName; // account name
WCHAR * pszEmailAccountPwd; // account password
WCHAR * pszProfileName; // name of profile to use
// (create or use default if NULL)
BOOL fSetProfileAsDefault; // set profile as default profile
WCHAR * pszConnectoidName; // name of connectoid to dial
BOOL fRememberPassword; // password cached if TRUE
} MAILCONFIGINFO;
// structure to pass data back from IDD_CHOOSEPROFILENAME handler
typedef struct tagCHOOSEPROFILEDLGINFO { WCHAR szProfileName[cchProfileNameMax+1]; BOOL fSetProfileAsDefault; } CHOOSEPROFILEDLGINFO, * PCHOOSEPROFILEDLGINFO;
// structure for getting proc addresses of api functions
typedef struct APIFCN { PVOID * ppFcnPtr; LPCSTR pszName; } APIFCN;
// The following are the names for the name/value pairs that will be passed as a query string to the
// ISP signup server
const WCHAR csz_USER_FIRSTNAME[] = L"USER_FIRSTNAME"; const WCHAR csz_USER_LASTNAME[] = L"USER_LASTNAME"; const WCHAR csz_USER_ADDRESS[] = L"USER_ADDRESS"; const WCHAR csz_USER_MOREADDRESS[] = L"USER_MOREADDRESS"; const WCHAR csz_USER_CITY[] = L"USER_CITY"; const WCHAR csz_USER_STATE[] = L"USER_STATE"; const WCHAR csz_USER_ZIP[] = L"USER_ZIP"; const WCHAR csz_USER_PHONE[] = L"USER_PHONE"; const WCHAR csz_AREACODE[] = L"AREACODE"; const WCHAR csz_COUNTRYCODE[] = L"COUNTRYCODE"; const WCHAR csz_USER_FE_NAME[] = L"USER_FE_NAME"; const WCHAR csz_PAYMENT_TYPE[] = L"PAYMENT_TYPE"; const WCHAR csz_PAYMENT_BILLNAME[] = L"PAYMENT_BILLNAME"; const WCHAR csz_PAYMENT_BILLADDRESS[] = L"PAYMENT_BILLADDRESS"; const WCHAR csz_PAYMENT_BILLEXADDRESS[] = L"PAYMENT_BILLEXADDRESS"; const WCHAR csz_PAYMENT_BILLCITY[] = L"PAYMENT_BILLCITY"; const WCHAR csz_PAYMENT_BILLSTATE[] = L"PAYMENT_BILLSTATE"; const WCHAR csz_PAYMENT_BILLZIP[] = L"PAYMENT_BILLZIP"; const WCHAR csz_PAYMENT_BILLPHONE[] = L"PAYMENT_BILLPHONE"; const WCHAR csz_PAYMENT_DISPLAYNAME[] = L"PAYMENT_DISPLAYNAME"; const WCHAR csz_PAYMENT_CARDNUMBER[] = L"PAYMENT_CARDNUMBER"; const WCHAR csz_PAYMENT_EXMONTH[] = L"PAYMENT_EXMONTH"; const WCHAR csz_PAYMENT_EXYEAR[] = L"PAYMENT_EXYEAR"; const WCHAR csz_PAYMENT_CARDHOLDER[] = L"PAYMENT_CARDHOLDER"; const WCHAR csz_SIGNED_PID[] = L"SIGNED_PID"; const WCHAR csz_GUID[] = L"GUID"; const WCHAR csz_OFFERID[] = L"OFFERID"; const WCHAR csz_USER_COMPANYNAME[] = L"USER_COMPANYNAME"; const WCHAR csz_ICW_VERSION[] = L"ICW_Version";
//Info required flags
// 1 -- required
// 0 -- optional
//User Info
#define REQUIRE_FE_NAME 0x00000001
#define REQUIRE_FIRSTNAME 0x00000002
#define REQUIRE_LASTNAME 0x00000004
#define REQUIRE_ADDRESS 0x00000008
#define REQUIRE_MOREADDRESS 0x00000010
#define REQUIRE_CITY 0x00000020
#define REQUIRE_STATE 0x00000040
#define REQUIRE_ZIP 0x00000080
#define REQUIRE_PHONE 0x00000100
#define REQUIRE_COMPANYNAME 0x00000200
//Credit Card
#define REQUIRE_CCNAME 0x00000400
#define REQUIRE_CCADDRESS 0x00000800
#define REQUIRE_CCNUMBER 0x00001000
#define REQUIRE_CCZIP REQUIRE_ZIP
//Invoice
#define REQUIRE_IVADDRESS1 REQUIRE_ADDRESS
#define REQUIRE_IVADDRESS2 REQUIRE_MOREADDRESS
#define REQUIRE_IVCITY REQUIRE_CITY
#define REQUIRE_IVSTATE REQUIRE_STATE
#define REQUIRE_IVZIP REQUIRE_ZIP
//Phone
#define REQUIRE_PHONEIV_BILLNAME 0x00002000
#define REQUIRE_PHONEIV_ACCNUM REQUIRE_PHONE
//Htm pagetype flags
#define PAGETYPE_UNDEFINED E_FAIL
#define PAGETYPE_NOOFFERS 0x00000001
#define PAGETYPE_MARKETING 0x00000002
#define PAGETYPE_BRANDED 0x00000004
#define PAGETYPE_BILLING 0x00000008
#define PAGETYPE_CUSTOMPAY 0x00000010
#define PAGETYPE_ISP_NORMAL 0x00000020
#define PAGETYPE_ISP_TOS 0x00000040
#define PAGETYPE_ISP_FINISH 0x00000080
#define PAGETYPE_ISP_CUSTOMFINISH 0x00000100
#define PAGETYPE_OLS_FINISH 0x00000200
typedef BOOL (* VALIDATECONTENT) (LPCWSTR lpData);
enum IPSDataContentValidators { ValidateCCNumber = 0, ValidateCCExpire };
typedef struct tag_ISPDATAELEMENT { LPCWSTR lpQueryElementName; // Static name to put in query string
LPWSTR lpQueryElementValue; // data for element
WORD idContentValidator; // id of content validator
WORD wValidateNameID; // validation element name string ID
DWORD dwValidateFlag; // validation bit flag for this element
}ISPDATAELEMENT, *LPISPDATAELEMENT;
enum IPSDataElements { ISPDATA_USER_FIRSTNAME = 0, ISPDATA_USER_LASTNAME, ISPDATA_USER_ADDRESS, ISPDATA_USER_MOREADDRESS, ISPDATA_USER_CITY, ISPDATA_USER_STATE, ISPDATA_USER_ZIP, ISPDATA_USER_PHONE, ISPDATA_AREACODE, ISPDATA_COUNTRYCODE, ISPDATA_USER_FE_NAME, ISPDATA_PAYMENT_TYPE, ISPDATA_PAYMENT_BILLNAME, ISPDATA_PAYMENT_BILLADDRESS, ISPDATA_PAYMENT_BILLEXADDRESS, ISPDATA_PAYMENT_BILLCITY, ISPDATA_PAYMENT_BILLSTATE, ISPDATA_PAYMENT_BILLZIP, ISPDATA_PAYMENT_BILLPHONE, ISPDATA_PAYMENT_DISPLAYNAME, ISPDATA_PAYMENT_CARDNUMBER, ISPDATA_PAYMENT_EXMONTH, ISPDATA_PAYMENT_EXYEAR, ISPDATA_PAYMENT_CARDHOLDER, ISPDATA_SIGNED_PID, ISPDATA_GUID, ISPDATA_OFFERID, ISPDATA_BILLING_OPTION, ISPDATA_PAYMENT_CUSTOMDATA, ISPDATA_USER_COMPANYNAME, ISPDATA_ICW_VERSION };
enum ISPDATAValidateLevels { ISPDATA_Validate_None = 0, ISPDATA_Validate_DataPresent, ISPDATA_Validate_Content }; //--------------------------------------------------------------------------------
// Prototypes
// functions in MAPICALL.C
BOOL InitMAPI(HWND hWnd); VOID DeInitMAPI(VOID); HRESULT SetMailProfileInformation(MAILCONFIGINFO * pMailConfigInfo); BOOL FindInternetMailService(WCHAR * pszEmailAddress, DWORD cbEmailAddress, WCHAR * pszEmailServer, DWORD cbEmailServer);
DWORD ConfigRasEntryDevice( LPRASENTRY lpRasEntry ); BOOL FInsureTCPIP(); LPWSTR GetSz(DWORD dwszID); //void SetStatusArrow(CState wState);
BOOL FInsureModemTAPI(HWND hwnd); BOOL FGetModemSpeed(PDWORD pdwSpeed); BOOL FGetDeviceID(HLINEAPP *phLineApp, PDWORD pdwAPI, PDWORD pdwDevice); BOOL FDoModemWizard(HWND hWnd);
BOOL FInsureNetwork(PBOOL pfNeedReboot); BOOL TestInternetConnection();
WORD Sz2W (LPCWSTR szBuf); DWORD Sz2Dw(LPCWSTR pSz); DWORD Sz2DwFast(LPCWSTR pSz); BOOL FSz2Dw(LPCWSTR pSz, LPDWORD dw); BOOL FSz2DwEx(LPCWSTR pSz, DWORD far *dw); BOOL FSz2WEx(LPCWSTR pSz, WORD far *w); BOOL FSz2W(LPCWSTR pSz, WORD far *w); BOOL FSz2B(LPCWSTR pSz, BYTE far *pb); BOOL FSz2W(LPCWSTR pSz, WORD far *w); BOOL FSz2BOOL(LPCWSTR pSz, BOOL far *pbool); BOOL FSz2SPECIAL(LPCWSTR pSz, BOOL far *pbool, BOOL far *pbIsSpecial, int far *pInt); BOOL FSz2B(LPCWSTR pSz, BYTE far *pb);
int __cdecl CompareCountryNames(const void *pv1, const void *pv2); DWORD GetCurrentTapiCountryID(void); int __cdecl CompareNPAEntry(const void *pv1, const void *pv2); //HRESULT GatherInformation(LPGATHERINFO pGatheredInfo, HWND hwndParent);
HRESULT DownLoadISPInfo(GATHERINFO *pGI); HRESULT GetDataFromISPFile(LPWSTR pszISPCode, LPWSTR pszSection, LPWSTR pszDataName, LPWSTR pszOutput, DWORD dwOutputLength); HRESULT StoreInSignUpReg(LPBYTE lpbData, DWORD dwSize, DWORD dwType, LPCWSTR pszKey); extern HRESULT ReadSignUpReg(LPBYTE lpbData, DWORD *pdwSize, DWORD dwType, LPCWSTR pszKey); extern HRESULT DeleteSignUpReg(LPCWSTR pszKey); VOID WINAPI MyProgressCallBack( HINTERNET hInternet, DWORD dwContext, DWORD dwInternetStatus, LPVOID lpvStatusInformation, DWORD dwStatusInformationLength );
HRESULT ReleaseBold(HWND hwnd); HRESULT MakeBold (HWND hwnd, BOOL fSize, LONG lfWeight); //HRESULT ShowDialingDialog(LPWSTR, LPGATHERINFO, LPWSTR);
DWORD RasErrorToIDS(DWORD dwErr); HRESULT CreateEntryFromDUNFile(LPWSTR pszDunFile); //HRESULT RestoreHappyWelcomeScreen();
HRESULT KillHappyWelcomeScreen(); HRESULT GetCurrentWebSettings(); LPWSTR LoadInfoFromWindowUser(); HRESULT GetTapiCountryID2(LPDWORD pdwCountryID); HRESULT RestoreAutodialer(); //HRESULT FilterStringDigits(LPWSTR);
BOOL IsDigitString(LPWSTR szBuff); BOOL WaitForAppExit(HINSTANCE hInstance); VOID PrepareForRunOnceApp(VOID); void MinimizeRNAWindow(LPWSTR pszConnectoidName, HINSTANCE hInst); // 3/28/97 ChrisK Olympus 296
void StopRNAReestablishZapper(HANDLE hthread); HANDLE LaunchRNAReestablishZapper(HINSTANCE hInst); BOOL FGetSystemShutdownPrivledge(); BOOL LclSetEntryScriptPatch(LPWSTR lpszScript, LPCWSTR lpszEntry); BOOL IsScriptingInstalled(); void InstallScripter(void); void DeleteStartUpCommand (); extern BOOL IsNT (VOID); extern BOOL IsNT4SP3Lower (VOID); HRESULT GetCommonAppDataDirectory(LPWSTR szDirectory, DWORD cchDirectory); HRESULT GetDefaultPhoneBook(LPWSTR szPhoneBook, DWORD cchPhoneBook); BOOL INetNToW(struct in_addr inaddr, LPWSTR szAddr);
typedef enum tagAUTODIAL_TYPE { AutodialTypeNever = 1, AutodialTypeNoNet, AutodialTypeAlways } AUTODIAL_TYPE, *PAUTODIAL_TYPE;
LONG SetAutodial( IN HKEY hUserRoot, IN AUTODIAL_TYPE eType, IN LPCWSTR szConnectoidName, IN BOOL bSetICWCompleted );
BOOL SetMultiUserAutodial( IN AUTODIAL_TYPE eType, IN LPCWSTR szConnectoidName, IN BOOL bSetICWCompleted );
BOOL SetDefaultConnectoid(AUTODIAL_TYPE eType, LPCWSTR szConnectoidName);
//
// ChrisK Olympus 6368 6/24/97
//
#if defined(PRERELEASE)
BOOL FCampusNetOverride(); #endif //PRERELEASE
//*******************************************************************
//
// FUNCTION: InetGetClientInfo
//
// PURPOSE: This function will get the internet client params
// from the registry
//
// PARAMETERS: lpClientInfo - on return, this structure will contain
// the internet client params as set in the registry.
// lpszProfileName - Name of client info profile to
// retrieve. If this is NULL, the default profile is used.
//
// RETURNS: HRESULT code, ERROR_SUCCESS if no errors occurred
//
//*******************************************************************
HRESULT WINAPI InetGetClientInfo( LPCWSTR lpszProfileName, LPINETCLIENTINFO lpClientInfo);
//*******************************************************************
//
// FUNCTION: InetSetClientInfo
//
// PURPOSE: This function will set the internet client params
//
// PARAMETERS: lpClientInfo - pointer to struct with info to set
// in the registry.
// lpszProfileName - Name of client info profile to
// modify. If this is NULL, the default profile is used.
//
// RETURNS: HRESULT code, ERROR_SUCCESS if no errors occurred
//
//*******************************************************************
HRESULT WINAPI InetSetClientInfo( LPCWSTR lpszProfileName, LPINETCLIENTINFO lpClientInfo);
//#ifdef __cplusplus
//extern "C" {
//#endif // __cplusplus
// //10/24/96 jmazner Normandy 6968
// //No longer neccessary thanks to Valdon's hooks for invoking ICW.
// 11/21/96 jmazner Normandy 11812
// oops, it _is_ neccessary, since if user downgrades from IE 4 to IE 3,
// ICW 1.1 needs to morph the IE 3 icon.
HRESULT GetDeskTopInternetCommand(); HRESULT RestoreDeskTopInternetCommand();
//
// 7/24/97 ChrisK Olympus 1923
//
BOOL WaitForConnectionTermination(HRASCONN);
// 11/21/96 jmazner Normandy #11812
BOOL GetIEVersion(PDWORD pdwVerNumMS, PDWORD pdwVerNumLS); HRESULT ClearProxySettings(); HRESULT RestoreProxySettings(); BOOL FShouldRetry2(HRESULT hrErr);
LPBYTE MyMemCpy(LPBYTE dest, const LPBYTE src, size_t count);
#endif
|