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.
644 lines
25 KiB
644 lines
25 KiB
//--------------------------------------------------------------------------------
|
|
// icwglob.h
|
|
// The information contained in this file is the sole property of Microsoft Corporation.
|
|
// Copywrite Microsoft 1998
|
|
//
|
|
// Created 1/7/98, DONALDM
|
|
//--------------------------------------------------------------------------------
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// INCLUDES
|
|
|
|
#include <wininet.h>
|
|
#include "enumodem.h"
|
|
|
|
#include "..\inc\debug.h"
|
|
#include "..\inc\inetcfg.h"
|
|
#include "..\inc\ras2.h"
|
|
#include "..\icwphbk\phbk.h"
|
|
// #include "..\icwdl\mydefs.h"
|
|
#include <rnaapi.h>
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// DEFINES
|
|
#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 TEXT("comm/datamodem")
|
|
//#define MsgBox(m,s) MessageBox(g_hwndBack,GetSz(m),GetSz(IDS_TITLE),s)
|
|
#if defined(WIN16)
|
|
#define MsgBox(m,s) MessageBox(g_hwndMessage,GetSz(m),GetSz(IDS_TITLE),s)
|
|
#endif
|
|
#define szLoginKey TEXT("Software\\Microsoft\\MOS\\Connection")
|
|
#define szCurrentComDev TEXT("CurrentCommDev")
|
|
#define szTollFree TEXT("OlRegPhone")
|
|
#define CCD_BUFFER_SIZE 255
|
|
#define szSignupConnectoidName TEXT("MSN Signup Connection")
|
|
#define szSignupDeviceKey TEXT("SignupCommDevice")
|
|
#define KEYVALUE_SIGNUPID TEXT("iSignUp")
|
|
#define RASENTRYVALUENAME TEXT("RasEntryName")
|
|
#define GATHERINFOVALUENAME TEXT("UserInfo")
|
|
#define INFFILE_USER_SECTION TEXT("User")
|
|
#define INFFILE_PASSWORD TEXT("Password")
|
|
#define NULLSZ TEXT("")
|
|
|
|
#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 PHONEBOOK_LIBRARY TEXT("icwphbk.DLL")
|
|
#ifdef WIN16
|
|
#define PHBK_LOADAPI "PhoneBookLoad"
|
|
#define PHBK_SUGGESTAPI "PhoneBookSuggestNumbers"
|
|
#define PHBK_DISPLAYAPI "PhoneBookDisplaySignUpNumbers"
|
|
#define PHBK_UNLOADAPI "PhoneBookUnload"
|
|
#define PHBK_GETCANONICAL "PhoneBookGetCanonical"
|
|
#else
|
|
#define PHBK_LOADAPI "PhoneBookLoad"
|
|
#define PHBK_SUGGESTAPI "PhoneBookSuggestNumbers"
|
|
#define PHBK_DISPLAYAPI "PhoneBookDisplaySignUpNumbers"
|
|
#define PHBK_UNLOADAPI "PhoneBookUnload"
|
|
#define PHBK_GETCANONICAL "PhoneBookGetCanonical"
|
|
#endif
|
|
|
|
#define NUM_PHBK_SUGGESTIONS 50
|
|
|
|
#define TYPE_SIGNUP_ANY 0x82
|
|
#define MASK_SIGNUP_ANY 0xB2
|
|
|
|
#define DOWNLOAD_LIBRARY TEXT("icwdl.dll")
|
|
#if defined(WIN16)
|
|
#define DOWNLOADINIT "DownLoadInit"
|
|
#define DOWNLOADEXECUTE "DownLoadExecute"
|
|
#define DOWNLOADCLOSE "DownLoadClose"
|
|
#define DOWNLOADSETSTATUS "DownLoadSetStatusCallback"
|
|
#define DOWNLOADPROCESS "DownLoadProcess"
|
|
#define DOWNLOADCANCEL "DownLoadCancel"
|
|
#else
|
|
#define DOWNLOADINIT "DownLoadInit"
|
|
#define DOWNLOADEXECUTE "DownLoadExecute"
|
|
#define DOWNLOADCLOSE "DownLoadClose"
|
|
#define DOWNLOADSETSTATUS "DownLoadSetStatusCallback"
|
|
#define DOWNLOADPROCESS "DownLoadProcess"
|
|
#define DOWNLOADCANCEL "DownLoadCancel"
|
|
#endif
|
|
|
|
#if defined(WIN16)
|
|
extern "C" void CALLBACK __export DialCallback(UINT uiMsg,
|
|
RASCONNSTATE rasState,
|
|
DWORD dwErr);
|
|
#endif
|
|
|
|
//#define RASENUMAPI "RasEnumConnectionsA"
|
|
//#define RASHANGUP "RasHangUpA"
|
|
|
|
#define INF_SUFFIX TEXT(".ISP")
|
|
#define INF_PHONE_BOOK TEXT("PhoneBookFile")
|
|
#define INF_DUN_FILE TEXT("DUNFile")
|
|
#define INF_REFERAL_URL TEXT("URLReferral")
|
|
#define INF_SIGNUPEXE TEXT("Sign_Up_EXE")
|
|
#define INF_SIGNUPPARAMS TEXT("Sign_Up_Params")
|
|
#define INF_WELCOME_LABEL TEXT("Welcome_Label")
|
|
#define INF_ISP_MSNSU TEXT("MSICW")
|
|
#define INF_SIGNUP_URL TEXT("Signup")
|
|
#define INF_AUTOCONFIG_URL TEXT("AutoConfig")
|
|
#define INF_ISDN_URL TEXT("ISDNSignup")
|
|
#define INF_ISDN_AUTOCONFIG_URL TEXT("ISDNAutoConfig")
|
|
#define INF_SECTION_URL TEXT("URL")
|
|
#define INF_SECTION_ISPINFO TEXT("ISP INFO")
|
|
|
|
#define DUN_NOPHONENUMBER TEXT("000000000000")
|
|
#define DUN_NOPHONENUMBER_A "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 TEXT("Software\\Microsoft\\User information")
|
|
#define REG_USER_NAME1 TEXT("Default First Name")
|
|
#define REG_USER_NAME2 TEXT("Default Last Name")
|
|
#define REG_USER_COMPANY TEXT("Default Company")
|
|
#define REG_USER_ADDRESS1 TEXT("Mailing Address")
|
|
#define REG_USER_ADDRESS2 TEXT("Additional Address")
|
|
#define REG_USER_CITY TEXT("City")
|
|
#define REG_USER_STATE TEXT("State")
|
|
#define REG_USER_ZIP TEXT("ZIP Code")
|
|
#define REG_USER_PHONE TEXT("Daytime Phone")
|
|
#define REG_USER_COUNTRY TEXT("Country")
|
|
|
|
#define SIGNUPKEY TEXT("SOFTWARE\\MICROSOFT\\GETCONN")
|
|
#define DEVICENAMEKEY TEXT("DeviceName") // used to store user's choice among multiple modems
|
|
#define DEVICETYPEKEY TEXT("DeviceType")
|
|
|
|
#define ICWSETTINGSPATH TEXT("Software\\Microsoft\\Internet Connection Wizard")
|
|
#define ICWBUSYMESSAGES TEXT("Software\\Microsoft\\Internet Connection Wizard\\Busy Messages")
|
|
#define RELEASEPRODUCTKEY TEXT("Release Product")
|
|
#define RELEASEVERSIONKEY TEXT("Release Product Version")
|
|
|
|
#define SETUPPATH_NONE TEXT("current")
|
|
#define SETUPPATH_MANUAL TEXT("manual")
|
|
#define SETUPPATH_AUTO TEXT("automatic")
|
|
#define MAX_SETUPPATH_TOKEN 200
|
|
|
|
// 12/3/96 jmazner superceded by definitions in ..\common\inc\semaphor.h
|
|
//#define SEMAPHORE_NAME "Internet Connection Wizard ICWCONN1.EXE"
|
|
|
|
//
|
|
// 5/24/97 ChrisK Olympus 4650
|
|
//
|
|
#define RASDEVICETYPE_VPN TEXT("VPN")
|
|
#define RASDEVICETYPE_MODEM TEXT("MODEM")
|
|
#define RASDEVICETYPE_ISDN TEXT("ISDN")
|
|
//--------------------------------------------------------------------------------
|
|
// Type declarations
|
|
|
|
// NOTE: due to code in connmain, the order of these IS IMPORTANT. They should be
|
|
// in the same order that they appear.
|
|
enum CState
|
|
{
|
|
STATE_WELCOME = 0,
|
|
STATE_INITIAL,
|
|
STATE_BEGINAUTO,
|
|
STATE_CONTEXT1,
|
|
STATE_NETWORK,
|
|
STATE_AUTORUNSIGNUPWIZARD,
|
|
STATE_GATHERINFO,
|
|
STATE_DOWNLOADISPLIST,
|
|
STATE_SHELLPARTTWO,
|
|
STATE_MAX
|
|
};
|
|
|
|
typedef HINTERNET (WINAPI* PFNINTERNETOPEN) (LPCTSTR lpszCallerName, DWORD dwAccessType, LPCTSTR lpszProxyName, INTERNET_PORT nProxyPort, DWORD dwFlags);
|
|
typedef HINTERNET (CALLBACK* PFNINTERNETOPENURL) (HINSTANCE hInternetSession,
|
|
LPCTSTR lpszUrl, LPCTSTR lpszHeaders,
|
|
DWORD dwHeadersLength, DWORD dwFlags,
|
|
DWORD dwContext);
|
|
typedef INTERNET_STATUS_CALLBACK (CALLBACK *PFNINTERNETSETSTATUSCALLBACK)(HINTERNET hInternet, INTERNET_STATUS_CALLBACK lpfnInternetCallback);
|
|
typedef BOOL (CALLBACK *PFNINTERNETCLOSEHANDLE)(HINTERNET hInet);
|
|
|
|
typedef HRESULT (CALLBACK* PFNPHONEBOOKLOAD)(LPCTSTR pszISPCode, DWORD_PTR *pdwPhoneID);
|
|
typedef HRESULT (CALLBACK* PFPHONEBOOKSUGGEST)(DWORD_PTR dwPhoneID, PSUGGESTINFO pSuggestInfo);
|
|
typedef HRESULT (CALLBACK* PFNPHONEDISPLAY)(DWORD_PTR dwPhoneID, LPTSTR *ppszPhoneNumbers,
|
|
LPTSTR *ppszDunFiles, WORD *pwPhoneNumbers,
|
|
DWORD *pdwCountry,WORD *pwRegion,BYTE fType,
|
|
BYTE bMask,HWND hwndParent,DWORD dwFlags);
|
|
typedef HRESULT (CALLBACK *PFNPHONEBOOKUNLOAD) (DWORD_PTR dwPhoneID);
|
|
typedef HRESULT (CALLBACK *PFNPHONEBOOKGETCANONICAL)(DWORD_PTR dwPhoneID, PACCESSENTRY pAE, TCHAR *psOut);
|
|
|
|
|
|
typedef HRESULT (CALLBACK *PFNCONFIGAPI)(HWND hwndParent,DWORD dwfOptions,LPBOOL lpfNeedsRestart);
|
|
typedef HRESULT (WINAPI *PFNINETCONFIGSYSTEM)(HWND,LPCTSTR,LPCTSTR,LPRASENTRY,LPCTSTR,LPCTSTR,LPCTSTR,LPVOID,DWORD,LPBOOL);
|
|
typedef HRESULT (WINAPI *PFINETSTARTSERVICES)(void);
|
|
typedef DWORD (WINAPI *PFNLAUNCHSIGNUPWIZARDEX)(LPTSTR,int, PBOOL);
|
|
typedef VOID (WINAPI *PFNFREESIGNUPWIZARD) (VOID);
|
|
typedef DWORD (WINAPI *PFNISSMARTSTART)(VOID);
|
|
|
|
typedef DWORD (WINAPI *PFNINETCONFIGCLIENT)(HWND hwndParent, LPCTSTR lpszPhoneBook,LPCTSTR lpszEntryName, LPRASENTRY lpRasEntry,LPCTSTR lpszUserName, LPCTSTR lpszPassword,LPCTSTR lpszProfile, LPINETCLIENTINFO lpClientInfo,DWORD dwfOptions, LPBOOL lpfNeedsRestart);
|
|
typedef DWORD (WINAPI *PFNINETGETAUTODIAL)(LPBOOL lpfEnable, LPCTSTR lpszEntryName, DWORD cbEntryNameSize);
|
|
typedef DWORD (WINAPI *PFNINETSETAUTODIAL)(BOOL fEnable, LPCTSTR lpszEntryName);
|
|
typedef DWORD (WINAPI *PFNINETGETCLIENTINFO)(LPCTSTR lpszProfile, LPINETCLIENTINFO lpClientInfo);
|
|
typedef DWORD (WINAPI *PFNINETSETCLIENTINFO)(LPCTSTR lpszProfile, LPINETCLIENTINFO lpClientInfo);
|
|
typedef DWORD (WINAPI *PFNINETGETPROXY)(LPBOOL lpfEnable, LPCTSTR lpszServer, DWORD cbServer,LPCTSTR lpszOverride, DWORD cbOverride);
|
|
typedef DWORD (WINAPI *PFNINETSETPROXY)(BOOL fEnable, LPCTSTR lpszServer, LPCTSTR lpszOverride);
|
|
|
|
typedef BOOL (WINAPI *PFNBRANDICW)(LPCSTR pszIns, LPCSTR pszPath, DWORD dwFlags, LPCSTR pszConnectoid);
|
|
|
|
typedef DWORD (WINAPI *PFNRASSETAUTODIALADDRESS)(LPTSTR lpszAddress,DWORD dwReserved,LPRASAUTODIALENTRY lpAutoDialEntries,DWORD dwcbAutoDialEntries,DWORD dwcAutoDialEntries);
|
|
typedef DWORD (WINAPI *PFNRASSETAUTODIALENABLE)(DWORD dwDialingLocation, BOOL fEnabled);
|
|
|
|
typedef HRESULT (CALLBACK *PFNDOWNLOADINIT)(LPTSTR pszURL, DWORD_PTR FAR *pdwCDialDlg, DWORD_PTR FAR *pdwDownLoad, HWND g_hWndMain);
|
|
typedef HRESULT (CALLBACK *PFNDOWNLOADGETSESSION)(DWORD_PTR dwDownLoad, HINTERNET *phInternet);
|
|
typedef HRESULT (CALLBACK *PFNDOWNLOADCANCEL)(DWORD_PTR dwDownLoad);
|
|
typedef HRESULT (CALLBACK *PFNDOWNLOADEXECUTE)(DWORD_PTR dwDownLoad);
|
|
typedef HRESULT (CALLBACK *PFNDOWNLOADCLOSE)(DWORD_PTR dwDownLoad);
|
|
typedef HRESULT (CALLBACK *PFNDOWNLOADSETSTATUS)(DWORD_PTR dwDownLoad, INTERNET_STATUS_CALLBACK lpfn);
|
|
typedef HRESULT (CALLBACK *PFNDOWNLOADPROCESS)(DWORD_PTR dwDownLoad);
|
|
|
|
typedef HRESULT (CALLBACK *PFNAUTODIALINIT)(LPTSTR lpszISPFile, BYTE fFlags, BYTE bMask, DWORD dwCountry, WORD wState);
|
|
|
|
typedef struct tagGatherInfo
|
|
{
|
|
LCID m_lcidUser;
|
|
LCID m_lcidSys;
|
|
LCID m_lcidApps;
|
|
DWORD m_dwOS;
|
|
DWORD m_dwMajorVersion;
|
|
DWORD m_dwMinorVersion;
|
|
WORD m_wArchitecture;
|
|
TCHAR m_szPromo[MAX_PROMO];
|
|
|
|
DWORD m_dwCountry;
|
|
TCHAR m_szAreaCode[MAX_AREACODE+1];
|
|
HWND m_hwnd;
|
|
LPLINECOUNTRYLIST m_pLineCountryList;
|
|
LPCNTRYNAMELOOKUPELEMENT m_rgNameLookUp;
|
|
|
|
TCHAR m_szSUVersion[MAX_VERSION_LEN];
|
|
WORD m_wState;
|
|
BYTE m_fType;
|
|
BYTE m_bMask;
|
|
TCHAR m_szISPFile[MAX_PATH+1];
|
|
TCHAR m_szAppDir[MAX_PATH+1];
|
|
|
|
TCHAR m_szRelProd[MAX_RELPROD + 1];
|
|
TCHAR m_szRelVer[MAX_RELVER + 1];
|
|
DWORD m_dwFlag;
|
|
|
|
} GATHERINFO, *LPGATHERINFO;
|
|
|
|
|
|
typedef struct tagRASDEVICE
|
|
{
|
|
LPRASDEVINFO lpRasDevInfo;
|
|
DWORD dwTapiDev;
|
|
} RASDEVICE, *PRASDEVICE;
|
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// Prototypes
|
|
DWORD ConfigRasEntryDevice( LPRASENTRY lpRasEntry );
|
|
BOOL FInsureTCPIP();
|
|
LPTSTR GetSz(WORD wszID);
|
|
#ifdef UNICODE
|
|
LPSTR GetSzA(WORD wszID);
|
|
#endif
|
|
void SetStatusArrow(CState wState);
|
|
BOOL FInsureModemTAPI(HWND hwnd);
|
|
BOOL FGetModemSpeed(PDWORD pdwSpeed);
|
|
BOOL FGetDeviceID(HLINEAPP *phLineApp, PDWORD pdwAPI, PDWORD pdwDevice);
|
|
BOOL FDoModemWizard(HWND hWnd);
|
|
void CALLBACK LineCallback(DWORD hDevice, DWORD dwMessage, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2, DWORD dwParam3);
|
|
BOOL FInsureNetwork(PBOOL pfNeedReboot);
|
|
BOOL TestInternetConnection();
|
|
inline DWORD Sz2Dw(LPCTSTR pSz);
|
|
inline DWORD Sz2DwFast(LPCTSTR pSz);
|
|
inline BOOL FSz2Dw(LPCTSTR pSz,LPDWORD dw);
|
|
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(LPTSTR pszISPCode, LPTSTR pszSection, LPTSTR pszDataName, LPTSTR pszOutput,
|
|
DWORD dwOutputLength);
|
|
HRESULT GetINTFromISPFile
|
|
(
|
|
LPTSTR pszISPCode,
|
|
LPTSTR pszSection,
|
|
LPTSTR pszDataName,
|
|
int far *lpData,
|
|
int iDefaultValue
|
|
);
|
|
|
|
HRESULT StoreInSignUpReg(LPBYTE lpbData, DWORD dwSize, DWORD dwType, LPCTSTR pszKey);
|
|
HRESULT ReadSignUpReg(LPBYTE lpbData, DWORD *pdwSize, DWORD dwType, LPCTSTR pszKey);
|
|
void CALLBACK LineCallback(DWORD hDevice,
|
|
DWORD dwMessage,
|
|
DWORD dwInstance,
|
|
DWORD dwParam1,
|
|
DWORD dwParam2,
|
|
DWORD dwParam3);
|
|
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 ShowPickANumberDlg(PSUGGESTINFO pSuggestInfo);
|
|
//HRESULT ShowDialingDialog(LPTSTR, LPGATHERINFO, LPTSTR);
|
|
DWORD RasErrorToIDS(DWORD dwErr);
|
|
HRESULT CreateEntryFromDUNFile(LPTSTR pszDunFile);
|
|
//HRESULT RestoreHappyWelcomeScreen();
|
|
HRESULT KillHappyWelcomeScreen();
|
|
HRESULT GetCurrentWebSettings();
|
|
LPTSTR LoadInfoFromWindowUser();
|
|
HRESULT GetTapiCountryID2(LPDWORD pdwCountryID);
|
|
HRESULT RestoreAutodialer();
|
|
//HRESULT FilterStringDigits(LPTSTR);
|
|
BOOL IsDigitString(LPTSTR szBuff);
|
|
BOOL WaitForAppExit(HINSTANCE hInstance);
|
|
VOID PrepareForRunOnceApp(VOID);
|
|
void MinimizeRNAWindow(LPTSTR pszConnectoidName, HINSTANCE hInst);
|
|
// 3/18/97 ChrisK Olympus 304
|
|
DWORD MyGetTempPath(UINT uiLength, LPTSTR szPath);
|
|
// 3/28/97 ChrisK Olympus 296
|
|
void StopRNAReestablishZapper(HANDLE hthread);
|
|
HANDLE LaunchRNAReestablishZapper(HINSTANCE hInst);
|
|
BOOL FGetSystemShutdownPrivledge();
|
|
BOOL LclSetEntryScriptPatch(LPTSTR lpszScript,LPTSTR lpszEntry);
|
|
BOOL IsScriptingInstalled();
|
|
void InstallScripter(void);
|
|
void DeleteStartUpCommand ();
|
|
extern BOOL IsNT (VOID);
|
|
extern BOOL IsNT4SP3Lower (VOID);
|
|
//
|
|
// ChrisK Olympus 6368 6/24/97
|
|
//
|
|
VOID Win95JMoveDlgItem( HWND hwndParent, HWND hwndItem, int iUp );
|
|
#if defined(DEBUG)
|
|
void LoadTestingLocaleOverride(LPDWORD lpdwCountryID, LCID FAR *lplcid);
|
|
BOOL FCampusNetOverride();
|
|
BOOL FRefURLOverride();
|
|
void TweakRefURL( TCHAR* szUrl,
|
|
LCID* lcid,
|
|
DWORD* dwOS,
|
|
DWORD* dwMajorVersion,
|
|
DWORD* dwMinorVersion,
|
|
WORD* wArchitecture,
|
|
TCHAR* szPromo,
|
|
TCHAR* szOEM,
|
|
TCHAR* szArea,
|
|
DWORD* dwCountry,
|
|
TCHAR* szSUVersion,//&m_lpGatherInfo->m_szSUVersion[0],
|
|
TCHAR* szProd,
|
|
DWORD* dwBuildNumber, //For this we really want to LOWORD
|
|
TCHAR* szRelProd,
|
|
TCHAR* szRelProdVer,
|
|
DWORD* dwCONNWIZVersion,
|
|
TCHAR* szPID,
|
|
long* lAllOffers);
|
|
#endif //DEBUG
|
|
|
|
//#ifdef __cplusplus
|
|
//extern "C" {
|
|
//#endif // __cplusplus
|
|
LPTSTR FileToPath(LPTSTR pszFile);
|
|
HRESULT ANSI2URLValue(TCHAR *s, TCHAR *buf, UINT uiLen);
|
|
BOOL BreakUpPhoneNumber(LPRASENTRY prasentry, LPTSTR pszPhone);
|
|
extern "C" int _cdecl _purecall(void);
|
|
|
|
// //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);
|
|
// Note that bryanst and marcl have confirmed that this key will be supported in IE 4
|
|
#define IE_PATHKEY TEXT("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)
|
|
|
|
HRESULT ClearProxySettings();
|
|
HRESULT RestoreProxySettings();
|
|
BOOL FShouldRetry2(HRESULT hrErr);
|
|
|
|
extern void ErrorMsg1(HWND hwnd, UINT uId, LPCTSTR lpszArg);
|
|
extern void InfoMsg1(HWND hwnd, UINT uId, LPCTSTR lpszArg);
|
|
|
|
VOID CALLBACK BusyMessagesTimerProc(HWND hwnd,
|
|
UINT uMsg,
|
|
UINT idEvent,
|
|
DWORD dwTime);
|
|
|
|
|
|
// 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
|
|
class CBusyMessages
|
|
{
|
|
friend VOID CALLBACK BusyMessagesTimerProc(HWND hwnd,
|
|
UINT uMsg,
|
|
UINT idEvent,
|
|
DWORD dwTime);
|
|
public:
|
|
CBusyMessages();
|
|
~CBusyMessages();
|
|
DWORD Start(HWND hwnd, INT iID, HRASCONN hrasconn);
|
|
DWORD Stop();
|
|
|
|
private:
|
|
// Private data members
|
|
HWND m_hwnd;
|
|
INT m_iStatusLabel;
|
|
CHAR m_szMessage[MAX_BUSY_MESSAGE];
|
|
DWORD m_dwCurIdx;
|
|
UINT m_uIDTimer;
|
|
HINSTANCE m_hInstance;
|
|
HRASCONN m_hrasconn;
|
|
RNAAPI* m_prna;
|
|
};
|
|
|
|
//
|
|
// defined in connmain.cpp
|
|
//
|
|
class RegEntry
|
|
{
|
|
public:
|
|
RegEntry(const TCHAR *pszSubKey, HKEY hkey = HKEY_CURRENT_USER);
|
|
~RegEntry();
|
|
|
|
long GetError() { return _error; }
|
|
long SetValue(const TCHAR *pszValue, const TCHAR *string);
|
|
// long SetValue(const TCHAR *pszValue, unsigned long dwNumber);
|
|
TCHAR * GetString(const TCHAR *pszValue, TCHAR *string, unsigned long length);
|
|
//long GetNumber(const TCHAR *pszValue, long dwDefault = 0);
|
|
long DeleteValue(const TCHAR *pszValue);
|
|
/**long FlushKey();
|
|
long MoveToSubKey(const TCHAR *pszSubKeyName);
|
|
HKEY GetKey() { return _hkey; } **/
|
|
|
|
private:
|
|
HKEY _hkey;
|
|
long _error;
|
|
BOOL bhkeyValid;
|
|
};
|
|
|
|
|
|
// Trace flags
|
|
#define TF_RNAAPI 0x00000010 // RNA Api stuff
|
|
#define TF_SMARTSTART 0x00000020 // Smart Start code
|
|
#define TF_SYSTEMCONFIG 0x00000040 // System Config
|
|
#define TF_TAPIINFO 0x00000080 // TAPI stuff
|
|
#define TF_INSHANDLER 0x00000100 // INS processing stuff
|
|
|
|
// Prototypes for stuff in MISC.CPP
|
|
int Sz2W (LPCTSTR szBuf);
|
|
int FIsDigit( int c );
|
|
LPBYTE MyMemSet(LPBYTE dest,int c, size_t count);
|
|
LPBYTE MyMemCpy(LPBYTE dest,const LPBYTE src, size_t count);
|
|
BOOL ShowControl(HWND hDlg,int idControl,BOOL fShow);
|
|
BOOL ConvertToLongFilename(LPTSTR szOut, LPTSTR szIn, DWORD dwSize);
|
|
|
|
|
|
//=--------------------------------------------------------------------------=
|
|
// allocates a temporary buffer that will disappear when it goes out of scope
|
|
// NOTE: be careful of that -- make sure you use the string in the same or
|
|
// nested scope in which you created this buffer. people should not use this
|
|
// class directly. use the macro(s) below.
|
|
//
|
|
class TempBuffer {
|
|
public:
|
|
TempBuffer(ULONG cBytes) {
|
|
m_pBuf = (cBytes <= 120) ? &m_szTmpBuf : malloc(cBytes);
|
|
m_fHeapAlloc = (cBytes > 120);
|
|
}
|
|
~TempBuffer() {
|
|
if (m_pBuf && m_fHeapAlloc) free(m_pBuf);
|
|
}
|
|
void *GetBuffer() {
|
|
return m_pBuf;
|
|
}
|
|
|
|
private:
|
|
void *m_pBuf;
|
|
// we'll use this temp buffer for small cases.
|
|
//
|
|
TCHAR m_szTmpBuf[120];
|
|
unsigned m_fHeapAlloc:1;
|
|
};
|
|
|
|
//=--------------------------------------------------------------------------=
|
|
// string helpers.
|
|
//
|
|
// given and ANSI String, copy it into a wide buffer.
|
|
// be careful about scoping when using this macro!
|
|
//
|
|
// how to use the below two macros:
|
|
//
|
|
// ...
|
|
// LPTSTR pszA;
|
|
// pszA = MyGetAnsiStringRoutine();
|
|
// MAKE_WIDEPTR_FROMANSI(pwsz, pszA);
|
|
// MyUseWideStringRoutine(pwsz);
|
|
// ...
|
|
//
|
|
// similarily for MAKE_ANSIPTR_FROMWIDE. note that the first param does not
|
|
// have to be declared, and no clean up must be done.
|
|
//
|
|
#define MAKE_WIDEPTR_FROMANSI(ptrname, ansistr) \
|
|
long __l##ptrname = (lstrlen(ansistr) + 1) * sizeof(WCHAR); \
|
|
TempBuffer __TempBuffer##ptrname(__l##ptrname); \
|
|
MultiByteToWideChar(CP_ACP, 0, ansistr, -1, (LPWSTR)__TempBuffer##ptrname.GetBuffer(), __l##ptrname); \
|
|
LPWSTR ptrname = (LPWSTR)__TempBuffer##ptrname.GetBuffer()
|
|
|
|
//
|
|
// Note: allocate lstrlenW(widestr) * 2 because its possible for a UNICODE
|
|
// character to map to 2 ansi characters this is a quick guarantee that enough
|
|
// space will be allocated.
|
|
//
|
|
#define MAKE_ANSIPTR_FROMWIDE(ptrname, widestr) \
|
|
long __l##ptrname = (lstrlenW(widestr) + 1) * 2 * sizeof(char); \
|
|
TempBuffer __TempBuffer##ptrname(__l##ptrname); \
|
|
WideCharToMultiByte(CP_ACP, 0, widestr, -1, (LPSTR)__TempBuffer##ptrname.GetBuffer(), __l##ptrname, NULL, NULL); \
|
|
LPSTR ptrname = (LPSTR)__TempBuffer##ptrname.GetBuffer()
|
|
|
|
#define STR_BSTR 0
|
|
#define STR_OLESTR 1
|
|
#define BSTRFROMANSI(x) (BSTR)MakeWideStrFromAnsi((LPSTR)(x), STR_BSTR)
|
|
#define OLESTRFROMANSI(x) (LPOLESTR)MakeWideStrFromAnsi((LPSTR)(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)
|
|
|
|
LPWSTR MakeWideStrFromAnsi(LPSTR, BYTE bType);
|
|
LPWSTR MakeWideStrFromResourceId(WORD, BYTE bType);
|
|
LPWSTR MakeWideStrFromWide(LPWSTR, BYTE bType);
|
|
|
|
|
|
typedef struct SERVER_TYPES_tag
|
|
{
|
|
TCHAR szType[6];
|
|
DWORD dwType;
|
|
DWORD dwfOptions;
|
|
} SERVER_TYPES;
|
|
#define NUM_SERVER_TYPES 4
|
|
|
|
// Default branding flags the we will support
|
|
#define BRAND_FAVORITES 1
|
|
#define BRAND_STARTSEARCH 2
|
|
#define BRAND_TITLE 4
|
|
#define BRAND_BITMAPS 8
|
|
#define BRAND_MAIL 16
|
|
#define BRAND_NEWS 32
|
|
|
|
#define BRAND_DEFAULT (BRAND_FAVORITES | BRAND_STARTSEARCH)
|