#ifndef __OBCOMGLB_H_ #define __OBCOMGLB_H_ #include #include #include #include #include #include "wininet.h" #include #include #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