254 lines
9.2 KiB
C++
254 lines
9.2 KiB
C++
// RefDial.h : Declaration of the CRefDial
|
|
|
|
#ifndef __REFDIAL_H_
|
|
#define __REFDIAL_H_
|
|
|
|
#include "rnaapi.h"
|
|
#include "import.h"
|
|
#include "inshdlr.h"
|
|
#include "obcomglb.h"
|
|
#include "ispcsv.h"
|
|
#include "ispdata.h"
|
|
|
|
// Defines used for Dialing
|
|
#define MAX_EXIT_RETRIES 10
|
|
#define MAX_RETIES 3
|
|
#define MAX_RASENTRYNAME 126
|
|
|
|
#define MAX_STRING 256 //used by ErrorMsg1 in mt.cpp
|
|
|
|
#define MAX_VERSION_LEN 40
|
|
#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 NULLSZ L""
|
|
|
|
typedef DWORD (WINAPI *PFNRASGETCONNECTSTATUS)(HRASCONN, LPRASCONNSTATUS);
|
|
|
|
static const WCHAR cszBrandingSection[] = L"Branding";
|
|
static const WCHAR cszBrandingFlags[] = L"Flags";
|
|
|
|
static const WCHAR cszSupportSection[] = L"Support";
|
|
static const WCHAR cszSupportNumber[] = L"SupportPhoneNumber";
|
|
|
|
static const WCHAR cszLoggingSection[] = L"Logging";
|
|
static const WCHAR cszStartURL[] = L"StartURL";
|
|
static const WCHAR cszEndURL[] = L"EndURL";
|
|
|
|
typedef struct ISPLIST
|
|
{
|
|
void* pElement;
|
|
int uElem;
|
|
ISPLIST* pNext;
|
|
} ISPLIST;
|
|
|
|
class RNAAPI;
|
|
class CISPImport;
|
|
class CObCommunicationManager;
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CRefDial
|
|
class CRefDial
|
|
{
|
|
public:
|
|
|
|
CRefDial();
|
|
CRefDial::~CRefDial();
|
|
friend DWORD WINAPI DownloadThreadInit(LPVOID lpv);
|
|
|
|
public:
|
|
|
|
virtual HRESULT SetupForDialing(UINT nType, BSTR bstrISPFile, DWORD dwCountry, BSTR bstrAreaCode, DWORD dwFlag, DWORD dwAppMode, DWORD dwMigISPIdx, LPCWSTR szRasDeviceName);
|
|
virtual HRESULT DoConnect(BOOL *pbRetVal) ;
|
|
virtual HRESULT DoHangup() ;
|
|
virtual HRESULT GetDialPhoneNumber(BSTR *pVal);
|
|
virtual HRESULT PutDialPhoneNumber(BSTR newVal);
|
|
virtual HRESULT SetDialAlternative(BOOL bVal);
|
|
virtual HRESULT GetDialErrorMsg(BSTR *pVal);
|
|
virtual HRESULT GetSupportNumber(BSTR *pVal);
|
|
virtual HRESULT RemoveConnectoid(BOOL *pbRetVal);
|
|
virtual HRESULT ReadPhoneBook(LPGATHERINFO lpGatherInfo, PSUGGESTINFO pSuggestInfo);
|
|
virtual HRESULT get_SignupURL(BSTR * pVal);
|
|
virtual HRESULT get_ReconnectURL(BSTR * pVal);
|
|
virtual HRESULT CheckPhoneBook(BSTR bstrISPFile, DWORD dwCountry, BSTR bstrAreaCode, DWORD dwFlag, BOOL *pbRetVal);
|
|
virtual HRESULT GetConnectionType(DWORD * pdwVal);
|
|
virtual HRESULT DoOfferDownload(BOOL *pbRetVal);
|
|
virtual HRESULT FormReferralServerURL(BOOL * pbRetVal);
|
|
virtual HRESULT OnDownloadEvent(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL* bHandled);
|
|
virtual HRESULT GetISPList(BSTR* pbstrISPList);
|
|
virtual HRESULT Set_SelectISP(UINT nVal);
|
|
virtual HRESULT Set_ConnectionMode(UINT nVal);
|
|
virtual HRESULT Get_ConnectionMode(UINT *pnVal);
|
|
virtual HRESULT DownloadISPOffer(BOOL *pbVal, BSTR *pVal);
|
|
virtual HRESULT ProcessSignedPID(BOOL * pbRetVal);
|
|
virtual HRESULT get_SignedPID(BSTR * pVal);
|
|
virtual HRESULT get_ISDNAutoConfigURL(BSTR *pVal);
|
|
virtual HRESULT get_AutoConfigURL(BSTR *pVal);
|
|
virtual HRESULT get_ISPName(BSTR *pVal);
|
|
virtual HRESULT RemoveDownloadDir() ;
|
|
virtual HRESULT PostRegData(DWORD dwSrvType, LPWSTR szPath);
|
|
virtual HRESULT CheckStayConnected(BSTR bstrISPFile, BOOL *pbVal);
|
|
virtual HRESULT Connect(UINT nType, BSTR bstrISPFile, DWORD dwCountry, BSTR bstrAreaCode, DWORD dwFlag, DWORD dwAppMode);
|
|
virtual HRESULT CheckOnlineStatus(BOOL *pbVal);
|
|
virtual HRESULT GetPhoneBookNumber(BSTR *pVal);
|
|
|
|
BOOL CrackUrl(const WCHAR* lpszUrlIn, WCHAR* lpszHostOut, WCHAR* lpszActionOut, INTERNET_PORT* lpnHostPort, BOOL* lpfSecure);
|
|
|
|
BOOL ParseISPInfo(HWND hDlg, WCHAR *pszCSVFileName, BOOL bCheckDupe);
|
|
|
|
// Dialing service functions
|
|
HRESULT GetDisplayableNumber();
|
|
HRESULT Dial();
|
|
BOOL FShouldRetry(HRESULT hrErr);
|
|
|
|
DWORD ReadConnectionInformation(void);
|
|
DWORD FillGatherInfoStruct(LPGATHERINFO lpGatherInfo);
|
|
HRESULT CreateEntryFromDUNFile(LPWSTR pszDunFile);
|
|
|
|
HRESULT SetupForRASDialing(LPGATHERINFO lpGatherInfo,
|
|
HINSTANCE hPHBKDll,
|
|
LPDWORD lpdwPhoneBook,
|
|
PSUGGESTINFO pSuggestInfo,
|
|
WCHAR *pszConnectoid,
|
|
BOOL FAR *bConnectiodCreated);
|
|
HRESULT SetupConnectoid(PSUGGESTINFO pSuggestInfo, int irc,
|
|
WCHAR *pszConnectoid, DWORD dwSize, BOOL * pbSuccess);
|
|
|
|
HRESULT MyRasGetEntryProperties(LPWSTR lpszPhonebookFile,
|
|
LPWSTR lpszPhonebookEntry,
|
|
LPRASENTRY *lplpRasEntryBuff,
|
|
LPDWORD lpdwRasEntryBuffSize,
|
|
LPRASDEVINFO *lplpRasDevInfoBuff,
|
|
LPDWORD lpdwRasDevInfoBuffSize);
|
|
static void CALLBACK RasDialFunc( HRASCONN hRas, UINT unMsg,
|
|
RASCONNSTATE rasconnstate,
|
|
DWORD dwError,
|
|
DWORD dwErrorEx);
|
|
BOOL get_QueryString(WCHAR* szTemp, DWORD dwSize);
|
|
|
|
DWORD DialThreadInit(LPVOID pdata);
|
|
DWORD ConnectionMonitorThread(LPVOID pdata);
|
|
void TerminateConnMonitorThread();
|
|
HRESULT RasGetConnectStatus(BOOL *pVal);
|
|
void CleanISPList();
|
|
void DeleteDirectory(LPCWSTR szDirName);
|
|
HRESULT SetupForAutoDial(BOOL bEnabled, BSTR bstrUserSection);
|
|
|
|
// Dialing service members
|
|
UINT m_unRasDialMsg;
|
|
DWORD m_dwTapiDev;
|
|
HRASCONN m_hrasconn;
|
|
WCHAR m_szConnectoid[RAS_MaxEntryName+1];
|
|
DWORD m_dwThreadID;
|
|
HINSTANCE m_hRasDll;
|
|
FARPROC m_fpRasDial;
|
|
FARPROC m_fpRasGetEntryDialParams;
|
|
LPGATHERINFO m_pGI;
|
|
WCHAR m_szUrl[INTERNET_MAX_URL_LENGTH]; // Download thread
|
|
HANDLE m_hThread;
|
|
HANDLE m_hDialThread;
|
|
HANDLE m_hConnMonThread;
|
|
HANDLE m_hConnectionTerminate;
|
|
HANDLE m_hEventError;
|
|
|
|
DWORD_PTR m_dwDownLoad; // Download thread
|
|
HLINEAPP m_hLineApp;
|
|
DWORD m_dwAPIVersion;
|
|
LPWSTR m_pszDisplayable;
|
|
LPWSTR m_pszOriginalDisplayable;
|
|
RNAAPI *m_pcRNA;
|
|
WCHAR m_szPhoneNumber[256];
|
|
BOOL m_bDialAsIs;
|
|
BOOL m_bDialCustom;
|
|
UINT m_uiRetry;
|
|
WCHAR m_szISPFile[MAX_PATH];
|
|
WCHAR m_szCurrentDUNFile[MAX_PATH];
|
|
WCHAR m_szLastDUNFile[MAX_PATH];
|
|
WCHAR m_szEntryName[RAS_MaxEntryName+1];
|
|
WCHAR m_szISPSupportNumber[RAS_MaxAreaCode + RAS_MaxPhoneNumber +1];
|
|
|
|
BOOL m_bDownloadHasBeenCanceled;
|
|
BOOL m_bDisconnect;
|
|
BOOL m_bFromPhoneBook;
|
|
BOOL m_bDialAlternative;
|
|
|
|
LPGATHERINFO m_lpGatherInfo;
|
|
//
|
|
// Used for Phone book look-up
|
|
//
|
|
SUGGESTINFO m_SuggestInfo;
|
|
|
|
CISPImport m_ISPImport; // Import an ISP file
|
|
|
|
CINSHandler m_InsHandler;
|
|
|
|
int m_RasStatusID;
|
|
int m_DownloadStatusID;
|
|
|
|
WCHAR m_szRefServerURL[INTERNET_MAX_URL_LENGTH];
|
|
WCHAR m_szRegServerName[INTERNET_MAX_URL_LENGTH];
|
|
INTERNET_PORT m_nRegServerPort;
|
|
BOOL m_fSecureRegServer;
|
|
WCHAR m_szRegFormAction[INTERNET_MAX_URL_LENGTH];
|
|
LPRASENTRY m_reflpRasEntryBuff;
|
|
LPRASDEVINFO m_reflpRasDevInfoBuff;
|
|
DWORD m_dwRASErr;
|
|
DWORD m_dwCnType;
|
|
WCHAR* m_pszISPList;
|
|
DWORD m_dwNumOfAutoConfigOffers;
|
|
ISPLIST* m_pCSVList;
|
|
BOOL m_bUserInitiateHangup;
|
|
UINT m_unSelectedISP;
|
|
|
|
protected:
|
|
CRITICAL_SECTION m_csMyCriticalSection;
|
|
BOOL m_bTryAgain;
|
|
BOOL m_bQuitWizard;
|
|
BOOL m_bUserPickNumber;
|
|
BOOL m_bRedial;
|
|
HRESULT m_hrDisplayableNumber;
|
|
|
|
BSTR m_bstrPromoCode;
|
|
BSTR m_bstrProductCode;
|
|
WCHAR m_szOEM[MAX_OEMNAME];
|
|
BSTR m_bstrSignedPID;
|
|
BSTR m_bstrSupportNumber;
|
|
BSTR m_bstrLoggingStartUrl;
|
|
BSTR m_bstrLoggingEndUrl;
|
|
|
|
long m_lAllOffers;
|
|
DWORD m_dwCountryCode;
|
|
|
|
long m_lBrandingFlags;
|
|
long m_lCurrentModem;
|
|
// Version of the wizard HTML. Sent to RefServer
|
|
DWORD m_dwWizardVersion;
|
|
WCHAR m_szPID[(MAX_DIGITAL_PID * 2) + 1];
|
|
long m_PhoneNumberEnumidx;
|
|
|
|
private:
|
|
BOOL IsDBCSString( CHAR *sz );
|
|
void GetISPFileSettings(LPWSTR lpszFile);
|
|
void CleanupAutodial();
|
|
|
|
BOOL m_bModemOverride;
|
|
DWORD m_dwConnectionType;
|
|
DWORD m_dwAppMode;
|
|
DWORD m_bDial;
|
|
CISPCSV* m_pSelectedISPInfo;
|
|
CICWISPData* m_pISPData;
|
|
BOOL m_bAutodialModeSaved;
|
|
BOOL m_bCleanupAutodial;
|
|
DWORD m_dwOrigAutodialMode;
|
|
|
|
};
|
|
|
|
#endif //__REFDIAL_H_
|