171 lines
6.8 KiB
C++
171 lines
6.8 KiB
C++
//*********************************************************************
|
|
//* Microsoft Windows **
|
|
//* Copyright(c) Microsoft Corp., 1994 **
|
|
//*********************************************************************
|
|
|
|
//
|
|
// RNACALL.H - header file for RNA functions
|
|
//
|
|
|
|
// HISTORY:
|
|
//
|
|
// 1/20/95 jeremys Created (mostly cloned from RNA UI code)
|
|
// 96/01/31 markdu Renamed CONNENTDLG to OLDCONNENTDLG to avoid
|
|
// conflicts with RNAP.H.
|
|
// 96/02/23 markdu Replaced RNAValidateEntryName with
|
|
// RASValidateEntryName
|
|
// 96/02/24 markdu Re-wrote the definition of ENUM_MODEM to
|
|
// use RASEnumDevices() instead of RNAEnumDevices().
|
|
// Also removed RNAGetDeviceInfo().
|
|
// 96/02/24 markdu Re-wrote the definition of ENUM_CONNECTOID to
|
|
// use RASEnumEntries() instead of RNAEnumConnEntries().
|
|
// 96/02/26 markdu Replaced all remaining internal RNA APIs.
|
|
// Also copied two structures (tagPhoneNum and tapIPData)
|
|
// from rnap.h and tagIAddr from rnaphint.h for internal use only.
|
|
// 96/03/07 markdu Extend ENUM_MODEM class
|
|
// 96/03/08 markdu Added ENUM_MODEM::VerifyDeviceNameAndType
|
|
// 96/03/09 markdu Moved all function prototypes here from wizard.h
|
|
// 96/03/09 markdu Added LPRASENTRY parameter to CreateConnectoid()
|
|
// 96/03/09 markdu Moved all references to 'need terminal window after
|
|
// dial' into RASENTRY.dwfOptions.
|
|
// Also no longer need GetConnectoidPhoneNumber function.
|
|
// 96/03/10 markdu Moved all references to modem name into RASENTRY.
|
|
// 96/03/10 markdu Moved all references to phone number into RASENTRY.
|
|
// Moved tagPhoneNum to inetapi.h
|
|
// 96/03/11 markdu Moved code to set username and password out of
|
|
// CreateConnectoid into SetConnectoidUsername so it can be reused.
|
|
// 96/03/13 markdu Change ValidateConncectoidName to take LPCSTR.
|
|
// 96/03/16 markdu Added ReInit member function to re-enumerate modems.
|
|
// 96/03/25 markdu Removed GetIPInfo and SetIPInfo.
|
|
// 96/04/04 markdu Added phonebook name param to CreateConnectoid,
|
|
// ValidateConnectoidName, and SetConnectoidUsername.
|
|
// 96/05/16 markdu NASH BUG 21810 Added function for IP address validation.
|
|
//
|
|
|
|
#ifndef _RNACALL_H_
|
|
#define _RNACALL_H_
|
|
|
|
// function pointer typedefs for RNA apis from rnaph.dll and rasapi32.dll
|
|
typedef DWORD (WINAPI * RASGETCOUNTRYINFO) (LPRASCTRYINFO, LPDWORD);
|
|
typedef DWORD (WINAPI * RASENUMDEVICES) (LPRASDEVINFO, LPDWORD, LPDWORD);
|
|
typedef DWORD (WINAPI * RASVALIDATEENTRYNAME) (LPCTSTR, LPTSTR);
|
|
typedef DWORD (WINAPI * RASGETERRORSTRING) (UINT, LPTSTR, DWORD);
|
|
typedef DWORD (WINAPI * RASGETENTRYDIALPARAMS) (LPCTSTR, LPRASDIALPARAMS, LPBOOL);
|
|
typedef DWORD (WINAPI * RASSETENTRYDIALPARAMS) (LPCTSTR, LPRASDIALPARAMS, BOOL);
|
|
typedef DWORD (WINAPI * RASSETENTRYPROPERTIES) (LPCTSTR, LPCTSTR, LPBYTE, DWORD, LPBYTE, DWORD);
|
|
typedef DWORD (WINAPI * RASGETENTRYPROPERTIES) (LPTSTR, LPCTSTR, LPBYTE, LPDWORD, LPBYTE, LPDWORD);
|
|
typedef DWORD (WINAPI * RASENUMENTRIES) (LPTSTR,LPTSTR,LPRASENTRYNAME,LPDWORD,LPDWORD);
|
|
typedef DWORD (WINAPI * RASSETCREDENTIALS) (LPTSTR,LPTSTR,LPRASCREDENTIALS,BOOL);
|
|
|
|
typedef struct tagCountryCode
|
|
{
|
|
DWORD dwCountryID;
|
|
DWORD dwCountryCode;
|
|
} COUNTRYCODE, *PCOUNTRYCODE, FAR* LPCOUNTRYCODE;
|
|
|
|
// Taken from rnap.h
|
|
typedef struct tagIPData {
|
|
DWORD dwSize;
|
|
DWORD fdwTCPIP;
|
|
DWORD dwIPAddr;
|
|
DWORD dwDNSAddr;
|
|
DWORD dwDNSAddrAlt;
|
|
DWORD dwWINSAddr;
|
|
DWORD dwWINSAddrAlt;
|
|
} IPDATA, *PIPDATA, FAR *LPIPDATA;
|
|
|
|
// start (taken from rnaphint.h)
|
|
// IP Addresses
|
|
#define MAX_IP_FIELDS 4
|
|
#define MIN_IP_FIELD1 1u // min allowed value for field 1
|
|
#define MAX_IP_FIELD1 255u // max allowed value for field 1
|
|
#define MIN_IP_FIELD2 0u // min for field 2
|
|
#define MAX_IP_FIELD2 255u // max for field 2
|
|
#define MIN_IP_FIELD3 0u // min for field 3
|
|
#define MAX_IP_FIELD3 254u // max for field 3
|
|
#define MIN_IP_FIELD4 1u // 0 is reserved for broadcast
|
|
#define MAX_IP_FIELD4 254u // max for field 4
|
|
#define MIN_IP_VALUE 0u // default minimum allowable field value
|
|
#define MAX_IP_VALUE 255u // default maximum allowable field value
|
|
|
|
// used to fix byte ordering
|
|
typedef struct tagIAddr {
|
|
union {
|
|
RASIPADDR ia;
|
|
DWORD dw;
|
|
};
|
|
} IADDR;
|
|
typedef IADDR * PIADDR;
|
|
typedef IADDR * LPIADDR;
|
|
|
|
#define FValidIaOrZero(pia) ((((PIADDR) (pia))->dw == 0) || FValidIa(pia))
|
|
// end (taken from rnaphint.h)
|
|
|
|
#define MAX_COUNTRY 512
|
|
#define DEF_COUNTRY_INFO_SIZE 1024
|
|
#define MAX_COUNTRY_NAME 36
|
|
#define MAX_AREA_LIST 20
|
|
#define MAX_DISPLAY_NAME 36
|
|
|
|
class ENUM_MODEM
|
|
{
|
|
private:
|
|
DWORD m_dwError;
|
|
DWORD m_dwNumEntries;
|
|
DWORD m_dwIndex;
|
|
LPRASDEVINFO m_lpData;
|
|
public:
|
|
ENUM_MODEM();
|
|
~ENUM_MODEM();
|
|
DWORD ReInit();
|
|
TCHAR * Next();
|
|
TCHAR * GetDeviceTypeFromName(LPTSTR szDeviceName);
|
|
TCHAR * GetDeviceNameFromType(LPTSTR szDeviceType);
|
|
BOOL VerifyDeviceNameAndType(LPTSTR szDeviceName, LPTSTR szDeviceType);
|
|
DWORD GetNumDevices() { return m_dwNumEntries; }
|
|
DWORD GetError() { return m_dwError; }
|
|
void ResetIndex() { m_dwIndex = 0; }
|
|
};
|
|
|
|
class ENUM_CONNECTOID
|
|
{
|
|
private:
|
|
DWORD m_dwError;
|
|
DWORD m_dwNumEntries;
|
|
DWORD m_dwIndex;
|
|
LPRASENTRYNAME m_lpData;
|
|
public:
|
|
ENUM_CONNECTOID();
|
|
~ENUM_CONNECTOID();
|
|
TCHAR * Next();
|
|
DWORD NumEntries();
|
|
DWORD GetError() { return m_dwError; }
|
|
};
|
|
|
|
|
|
// function prototypes
|
|
DWORD CreateConnectoid(LPCTSTR pszPhonebook, LPCTSTR pszConnectionName,
|
|
LPRASENTRY lpRasEntry, LPCTSTR pszUserName,LPCTSTR pszPassword);
|
|
BOOL InitRNA(HWND hWnd);
|
|
VOID DeInitRNA();
|
|
DWORD EnsureRNALoaded(VOID);
|
|
HRESULT InitModemList(HWND hCB);
|
|
VOID InitConnectoidList(HWND hCB, LPTSTR lpszSelect);
|
|
VOID InitCountryCodeList(HWND hLB);
|
|
VOID FillCountryCodeList(HWND hLB);
|
|
VOID GetCountryCodeSelection(HWND hLB,LPCOUNTRYCODE* plpCountryCode);
|
|
BOOL SetCountryIDSelection(HWND hwndCB,DWORD dwCountryCode);
|
|
VOID DeInitCountryCodeList(VOID);
|
|
DWORD ValidateConnectoidName(LPCTSTR pszPhonebook, LPCTSTR pszConnectoidName);
|
|
BOOL GetConnectoidUsername(TCHAR * pszConnectoidName,TCHAR * pszUserName,
|
|
DWORD cbUserName,TCHAR * pszPassword,DWORD cbPassword);
|
|
DWORD SetConnectoidUsername(LPCTSTR pszPhonebook, LPCTSTR pszConnectoidName,
|
|
LPCTSTR pszUserName, LPCTSTR pszPassword);
|
|
void InitRasEntry(LPRASENTRY lpEntry);
|
|
DWORD GetEntry(LPRASENTRY *lplpEntry, LPDWORD lpdwEntrySize, LPCTSTR szEntryName);
|
|
VOID CopyDw2Ia(DWORD dw, RASIPADDR* pia);
|
|
DWORD DwFromIa(RASIPADDR *pia);
|
|
BOOL FValidIa(RASIPADDR *pia);
|
|
|
|
#endif // _RNACALL_H_
|