diff -r 000000000000 -r 76b1f169d9fe mingw-5.1.4/win32/include/ras.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mingw-5.1.4/win32/include/ras.h Fri Apr 03 17:16:45 2009 +0100 @@ -0,0 +1,964 @@ +#ifndef _RAS_H +#define _RAS_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifdef __cplusplus +extern "C" +{ +#endif + +#ifndef _LMCONS_H +#include +#endif + +/* TODO +include from winnt.h so that this typedef is not necessary +*/ +#ifndef _BASETSD_H +typedef unsigned long ULONG_PTR, *PULONG_PTR; +#endif + +#include + +#define RAS_MaxDeviceType 16 +#define RAS_MaxPhoneNumber 128 +#define RAS_MaxIpAddress 15 +#define RAS_MaxIpxAddress 21 +#define RAS_MaxEntryName 256 +#define RAS_MaxDeviceName 128 +#define RAS_MaxCallbackNumber RAS_MaxPhoneNumber +#define RAS_MaxAreaCode 10 +#define RAS_MaxPadType 32 +#define RAS_MaxX25Address 200 +#define RAS_MaxFacilities 200 +#define RAS_MaxUserData 200 +#define RAS_MaxReplyMessage 1024 +#define RDEOPT_UsePrefixSuffix 0x00000001 +#define RDEOPT_PausedStates 0x00000002 +#define RDEOPT_IgnoreModemSpeaker 0x00000004 +#define RDEOPT_SetModemSpeaker 0x00000008 +#define RDEOPT_IgnoreSoftwareCompression 0x00000010 +#define RDEOPT_SetSoftwareCompression 0x00000020 +#define RDEOPT_DisableConnectedUI 0x00000040 +#define RDEOPT_DisableReconnectUI 0x00000080 +#define RDEOPT_DisableReconnect 0x00000100 +#define RDEOPT_NoUser 0x00000200 +#define RDEOPT_PauseOnScript 0x00000400 +#define RDEOPT_Router 0x00000800 +#define REN_User 0x00000000 +#define REN_AllUsers 0x00000001 +#define VS_Default 0 +#define VS_PptpOnly 1 +#define VS_PptpFirst 2 +#define VS_L2tpOnly 3 +#define VS_L2tpFirst 4 +#define RASDIALEVENT "RasDialEvent" +#define WM_RASDIALEVENT 0xCCCD +#define RASEO_UseCountryAndAreaCodes 0x00000001 +#define RASEO_SpecificIpAddr 0x00000002 +#define RASEO_SpecificNameServers 0x00000004 +#define RASEO_IpHeaderCompression 0x00000008 +#define RASEO_RemoteDefaultGateway 0x00000010 +#define RASEO_DisableLcpExtensions 0x00000020 +#define RASEO_TerminalBeforeDial 0x00000040 +#define RASEO_TerminalAfterDial 0x00000080 +#define RASEO_ModemLights 0x00000100 +#define RASEO_SwCompression 0x00000200 +#define RASEO_RequireEncryptedPw 0x00000400 +#define RASEO_RequireMsEncryptedPw 0x00000800 +#define RASEO_RequireDataEncryption 0x00001000 +#define RASEO_NetworkLogon 0x00002000 +#define RASEO_UseLogonCredentials 0x00004000 +#define RASEO_PromoteAlternates 0x00008000 +#define RASNP_NetBEUI 0x00000001 +#define RASNP_Ipx 0x00000002 +#define RASNP_Ip 0x00000004 +#define RASFP_Ppp 0x00000001 +#define RASFP_Slip 0x00000002 +#define RASFP_Ras 0x00000004 +#define RASDT_Modem TEXT("modem") +#define RASDT_Isdn TEXT("isdn") +#define RASDT_X25 TEXT("x25") +#define RASDT_Vpn TEXT("vpn") +#define RASDT_Pad TEXT("pad") +#define RASDT_Generic TEXT("GENERIC") +#define RASDT_Serial TEXT("SERIAL") +#define RASDT_FrameRelay TEXT("FRAMERELAY") +#define RASDT_Atm TEXT("ATM") +#define RASDT_Sonet TEXT("SONET") +#define RASDT_SW56 TEXT("SW56") +#define RASDT_Irda TEXT("IRDA") +#define RASDT_Parallel TEXT("PARALLEL") +#define RASET_Phone 1 +#define RASET_Vpn 2 +#define RASET_Direct 3 +#define RASET_Internet 4 +#if (WINVER >= 0x401) +#define RASEO_SecureLocalFiles 0x00010000 +#define RASCN_Connection 0x00000001 +#define RASCN_Disconnection 0x00000002 +#define RASCN_BandwidthAdded 0x00000004 +#define RASCN_BandwidthRemoved 0x00000008 +#define RASEDM_DialAll 1 +#define RASEDM_DialAsNeeded 2 +#define RASIDS_Disabled 0xffffffff +#define RASIDS_UseGlobalValue 0 +#define RASADFLG_PositionDlg 0x00000001 +#define RASCM_UserName 0x00000001 +#define RASCM_Password 0x00000002 +#define RASCM_Domain 0x00000004 +#define RASADP_DisableConnectionQuery 0 +#define RASADP_LoginSessionDisable 1 +#define RASADP_SavedAddressesLimit 2 +#define RASADP_FailedConnectionTimeout 3 +#define RASADP_ConnectionQueryTimeout 4 +#endif /* (WINVER >= 0x401) */ +#if (WINVER >= 0x500) +#define RDEOPT_CustomDial 0x00001000 +#define RASLCPAP_PAP 0xC023 +#define RASLCPAP_SPAP 0xC027 +#define RASLCPAP_CHAP 0xC223 +#define RASLCPAP_EAP 0xC227 +#define RASLCPAD_CHAP_MD5 0x05 +#define RASLCPAD_CHAP_MS 0x80 +#define RASLCPAD_CHAP_MSV2 0x81 +#define RASLCPO_PFC 0x00000001 +#define RASLCPO_ACFC 0x00000002 +#define RASLCPO_SSHF 0x00000004 +#define RASLCPO_DES_56 0x00000008 +#define RASLCPO_3_DES 0x00000010 +#define RASCCPCA_MPPC 0x00000006 +#define RASCCPCA_STAC 0x00000005 +#define RASCCPO_Compression 0x00000001 +#define RASCCPO_HistoryLess 0x00000002 +#define RASCCPO_Encryption56bit 0x00000010 +#define RASCCPO_Encryption40bit 0x00000020 +#define RASCCPO_Encryption128bit 0x00000040 +#define RASEO_RequireEAP 0x00020000 +#define RASEO_RequirePAP 0x00040000 +#define RASEO_RequireSPAP 0x00080000 +#define RASEO_Custom 0x00100000 +#define RASEO_PreviewPhoneNumber 0x00200000 +#define RASEO_SharedPhoneNumbers 0x00800000 +#define RASEO_PreviewUserPw 0x01000000 +#define RASEO_PreviewDomain 0x02000000 +#define RASEO_ShowDialingProgress 0x04000000 +#define RASEO_RequireCHAP 0x08000000 +#define RASEO_RequireMsCHAP 0x10000000 +#define RASEO_RequireMsCHAP2 0x20000000 +#define RASEO_RequireW95MSCHAP 0x40000000 +#define RASEO_CustomScript 0x80000000 +#define RASIPO_VJ 0x00000001 +#define RCD_SingleUser 0 +#define RCD_AllUsers 0x00000001 +#define RCD_Eap 0x00000002 +#define RASEAPF_NonInteractive 0x00000002 +#define RASEAPF_Logon 0x00000004 +#define RASEAPF_Preview 0x00000008 +#define ET_40Bit 1 +#define ET_128Bit 2 +#define ET_None 0 +#define ET_Require 1 +#define ET_RequireMax 2 +#define ET_Optional 3 +#endif /* (WINVER >= 0x500) */ + +#define RASCS_PAUSED 0x1000 +#define RASCS_DONE 0x2000 +typedef enum tagRASCONNSTATE { + RASCS_OpenPort = 0, + RASCS_PortOpened, + RASCS_ConnectDevice, + RASCS_DeviceConnected, + RASCS_AllDevicesConnected, + RASCS_Authenticate, + RASCS_AuthNotify, + RASCS_AuthRetry, + RASCS_AuthCallback, + RASCS_AuthChangePassword, + RASCS_AuthProject, + RASCS_AuthLinkSpeed, + RASCS_AuthAck, + RASCS_ReAuthenticate, + RASCS_Authenticated, + RASCS_PrepareForCallback, + RASCS_WaitForModemReset, + RASCS_WaitForCallback, + RASCS_Projected, + RASCS_StartAuthentication, + RASCS_CallbackComplete, + RASCS_LogonNetwork, + RASCS_SubEntryConnected, + RASCS_SubEntryDisconnected, + RASCS_Interactive = RASCS_PAUSED, + RASCS_RetryAuthentication, + RASCS_CallbackSetByCaller, + RASCS_PasswordExpired, +#if (WINVER >= 0x500) + RASCS_InvokeEapUI, +#endif + RASCS_Connected = RASCS_DONE, + RASCS_Disconnected +} RASCONNSTATE, *LPRASCONNSTATE; + +typedef enum tagRASPROJECTION { + RASP_Amb = 0x10000, + RASP_PppNbf = 0x803F, + RASP_PppIpx = 0x802B, + RASP_PppIp = 0x8021, +#if (WINVER >= 0x500) + RASP_PppCcp = 0x80FD, +#endif + RASP_PppLcp = 0xC021, + RASP_Slip = 0x20000 +} RASPROJECTION, *LPRASPROJECTION; + +DECLARE_HANDLE (HRASCONN); +typedef HRASCONN* LPHRASCONN; + +typedef struct tagRASCONNW { + DWORD dwSize; + HRASCONN hrasconn; + WCHAR szEntryName[RAS_MaxEntryName + 1]; +#if (WINVER >= 0x400) + WCHAR szDeviceType[RAS_MaxDeviceType + 1]; + WCHAR szDeviceName[RAS_MaxDeviceName + 1]; +#endif +#if (WINVER >= 0x401) + WCHAR szPhonebook[MAX_PATH]; + DWORD dwSubEntry; +#endif +#if (WINVER >= 0x500) + GUID guidEntry; +#endif +#if (WINVER >= 0x501) + DWORD dwFlags; + LUID luid; +#endif +} RASCONNW, *LPRASCONNW; + +typedef struct tagRASCONNA { + DWORD dwSize; + HRASCONN hrasconn; + CHAR szEntryName[RAS_MaxEntryName + 1]; +#if (WINVER >= 0x400) + CHAR szDeviceType[RAS_MaxDeviceType + 1]; + CHAR szDeviceName[RAS_MaxDeviceName + 1]; +#endif +#if (WINVER >= 0x401) + CHAR szPhonebook[MAX_PATH]; + DWORD dwSubEntry; +#endif +#if (WINVER >= 0x500) + GUID guidEntry; +#endif +#if (WINVER >= 0x501) + DWORD dwFlags; + LUID luid; +#endif +} RASCONNA, *LPRASCONNA; + +typedef struct tagRASCONNSTATUSW { + DWORD dwSize; + RASCONNSTATE rasconnstate; + DWORD dwError; + WCHAR szDeviceType[RAS_MaxDeviceType + 1]; + WCHAR szDeviceName[RAS_MaxDeviceName + 1]; +#if (WINVER >= 0x401) + WCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1]; +#endif +} RASCONNSTATUSW, *LPRASCONNSTATUSW; + +typedef struct tagRASCONNSTATUSA { + DWORD dwSize; + RASCONNSTATE rasconnstate; + DWORD dwError; + CHAR szDeviceType[RAS_MaxDeviceType + 1]; + CHAR szDeviceName[RAS_MaxDeviceName + 1]; +#if (WINVER >= 0x401) + CHAR szPhoneNumber[RAS_MaxPhoneNumber + 1]; +#endif +} RASCONNSTATUSA, *LPRASCONNSTATUSA; + +typedef struct tagRASDIALPARAMSW { + DWORD dwSize; + WCHAR szEntryName[RAS_MaxEntryName + 1]; + WCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1]; + WCHAR szCallbackNumber[RAS_MaxCallbackNumber + 1]; + WCHAR szUserName[UNLEN + 1]; + WCHAR szPassword[PWLEN + 1]; + WCHAR szDomain[DNLEN + 1]; +#if (WINVER >= 0x401) + DWORD dwSubEntry; + ULONG_PTR dwCallbackId; +#endif +} RASDIALPARAMSW, *LPRASDIALPARAMSW; + +typedef struct tagRASDIALPARAMSA { + DWORD dwSize; + CHAR szEntryName[RAS_MaxEntryName + 1]; + CHAR szPhoneNumber[RAS_MaxPhoneNumber + 1]; + CHAR szCallbackNumber[RAS_MaxCallbackNumber + 1]; + CHAR szUserName[UNLEN + 1]; + CHAR szPassword[PWLEN + 1]; + CHAR szDomain[DNLEN + 1]; +#if (WINVER >= 0x401) + DWORD dwSubEntry; + ULONG_PTR dwCallbackId; +#endif +} RASDIALPARAMSA, *LPRASDIALPARAMSA; + +#if (WINVER >= 0x500) +typedef struct tagRASEAPINFO { + DWORD dwSizeofEapInfo; + BYTE *pbEapInfo; +} RASEAPINFO; +#endif + +typedef struct tagRASDIALEXTENSIONS { + DWORD dwSize; + DWORD dwfOptions; + HWND hwndParent; + ULONG_PTR reserved; +#if (WINVER >= 0x500) + ULONG_PTR reserved1; + RASEAPINFO RasEapInfo; +#endif +} RASDIALEXTENSIONS, *LPRASDIALEXTENSIONS; + +typedef struct tagRASENTRYNAMEW { + DWORD dwSize; + WCHAR szEntryName[RAS_MaxEntryName + 1]; +#if (WINVER >= 0x500) + DWORD dwFlags; + WCHAR szPhonebookPath[MAX_PATH + 1]; +#endif +} RASENTRYNAMEW, *LPRASENTRYNAMEW; + +typedef struct tagRASENTRYNAMEA { + DWORD dwSize; + CHAR szEntryName[RAS_MaxEntryName + 1]; +#if (WINVER >= 0x500) + DWORD dwFlags; + CHAR szPhonebookPath[MAX_PATH + 1]; +#endif +} RASENTRYNAMEA, *LPRASENTRYNAMEA; + +typedef struct tagRASAMBW { + DWORD dwSize; + DWORD dwError; + WCHAR szNetBiosError[NETBIOS_NAME_LEN + 1]; + BYTE bLana; +} RASAMBW, *LPRASAMBW; + +typedef struct tagRASAMBA { + DWORD dwSize; + DWORD dwError; + CHAR szNetBiosError[NETBIOS_NAME_LEN + 1]; + BYTE bLana; +} RASAMBA, *LPRASAMBA; + +typedef struct tagRASPPPNBFW { + DWORD dwSize; + DWORD dwError; + DWORD dwNetBiosError; + WCHAR szNetBiosError[NETBIOS_NAME_LEN + 1]; + WCHAR szWorkstationName[NETBIOS_NAME_LEN + 1]; + BYTE bLana; +} RASPPPNBFW, *LPRASPPPNBFW; + +typedef struct tagRASPPPNBFA { + DWORD dwSize; + DWORD dwError; + DWORD dwNetBiosError; + CHAR szNetBiosError[NETBIOS_NAME_LEN + 1]; + CHAR szWorkstationName[NETBIOS_NAME_LEN + 1]; + BYTE bLana; +} RASPPPNBFA, *LPRASPPPNBFA; + +typedef struct tagRASIPXW { + DWORD dwSize; + DWORD dwError; + WCHAR szIpxAddress[RAS_MaxIpxAddress + 1]; +} RASPPPIPXW, *LPRASPPPIPXW; + +typedef struct tagRASIPXA { + DWORD dwSize; + DWORD dwError; + CHAR szIpxAddress[RAS_MaxIpxAddress + 1]; +} RASPPPIPXA, *LPRASPPPIPXA; + +typedef struct tagRASPPPIPW { + DWORD dwSize; + DWORD dwError; + WCHAR szIpAddress[RAS_MaxIpAddress + 1]; +#ifndef WINNT35COMPATIBLE + WCHAR szServerIpAddress[RAS_MaxIpAddress + 1]; +#endif +#if (WINVER >= 0x500) + DWORD dwOptions; + DWORD dwServerOptions; +#endif +} RASPPPIPW, *LPRASPPPIPW; + +typedef struct tagRASPPPIPA { + DWORD dwSize; + DWORD dwError; + CHAR szIpAddress[RAS_MaxIpAddress + 1]; +#ifndef WINNT35COMPATIBLE + CHAR szServerIpAddress[RAS_MaxIpAddress + 1]; +#endif +#if (WINVER >= 0x500) + DWORD dwOptions; + DWORD dwServerOptions; +#endif +} RASPPPIPA, *LPRASPPPIPA; + +typedef struct tagRASPPPLCPW { + DWORD dwSize; + BOOL fBundled; +#if (WINVER >= 0x500) + DWORD dwError; + DWORD dwAuthenticationProtocol; + DWORD dwAuthenticationData; + DWORD dwEapTypeId; + DWORD dwServerAuthenticationProtocol; + DWORD dwServerAuthenticationData; + DWORD dwServerEapTypeId; + BOOL fMultilink; + DWORD dwTerminateReason; + DWORD dwServerTerminateReason; + WCHAR szReplyMessage[RAS_MaxReplyMessage]; + DWORD dwOptions; + DWORD dwServerOptions; +#endif +} RASPPPLCPW, *LPRASPPPLCPW; + +typedef struct tagRASPPPLCPA { + DWORD dwSize; + BOOL fBundled; +#if (WINVER >= 0x500) + DWORD dwError; + DWORD dwAuthenticationProtocol; + DWORD dwAuthenticationData; + DWORD dwEapTypeId; + DWORD dwServerAuthenticationProtocol; + DWORD dwServerAuthenticationData; + DWORD dwServerEapTypeId; + BOOL fMultilink; + DWORD dwTerminateReason; + DWORD dwServerTerminateReason; + CHAR szReplyMessage[RAS_MaxReplyMessage]; + DWORD dwOptions; + DWORD dwServerOptions; +#endif +} RASPPPLCPA, *LPRASPPPLCPA; + +typedef struct tagRASSLIPW { + DWORD dwSize; + DWORD dwError; + WCHAR szIpAddress[RAS_MaxIpAddress + 1]; +} RASSLIPW, *LPRASSLIPW; + + +typedef struct tagRASSLIPA { + DWORD dwSize; + DWORD dwError; + CHAR szIpAddress[RAS_MaxIpAddress + 1]; +} RASSLIPA, *LPRASSLIPA; + +typedef struct tagRASDEVINFOW { + DWORD dwSize; + WCHAR szDeviceType[RAS_MaxDeviceType + 1]; + WCHAR szDeviceName[RAS_MaxDeviceName + 1]; +} RASDEVINFOW, *LPRASDEVINFOW; + +typedef struct tagRASDEVINFOA { + DWORD dwSize; + CHAR szDeviceType[RAS_MaxDeviceType + 1]; + CHAR szDeviceName[RAS_MaxDeviceName + 1]; +} RASDEVINFOA, *LPRASDEVINFOA; + +typedef struct tagRASCTRYINFO { + DWORD dwSize; + DWORD dwCountryID; + DWORD dwNextCountryID; + DWORD dwCountryCode; + DWORD dwCountryNameOffset; +} RASCTRYINFO, *LPRASCTRYINFO; + +typedef RASCTRYINFO RASCTRYINFOW, *LPRASCTRYINFOW; +typedef RASCTRYINFO RASCTRYINFOA, *LPRASCTRYINFOA; + +typedef struct tagRASIPADDR { + BYTE a; + BYTE b; + BYTE c; + BYTE d; +} RASIPADDR; + +typedef struct tagRASENTRYW { + DWORD dwSize; + DWORD dwfOptions; + DWORD dwCountryID; + DWORD dwCountryCode; + WCHAR szAreaCode[RAS_MaxAreaCode + 1]; + WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1]; + DWORD dwAlternateOffset; + RASIPADDR ipaddr; + RASIPADDR ipaddrDns; + RASIPADDR ipaddrDnsAlt; + RASIPADDR ipaddrWins; + RASIPADDR ipaddrWinsAlt; + DWORD dwFrameSize; + DWORD dwfNetProtocols; + DWORD dwFramingProtocol; + WCHAR szScript[MAX_PATH]; + WCHAR szAutodialDll[MAX_PATH]; + WCHAR szAutodialFunc[MAX_PATH]; + WCHAR szDeviceType[RAS_MaxDeviceType + 1]; + WCHAR szDeviceName[RAS_MaxDeviceName + 1]; + WCHAR szX25PadType[RAS_MaxPadType + 1]; + WCHAR szX25Address[RAS_MaxX25Address + 1]; + WCHAR szX25Facilities[RAS_MaxFacilities + 1]; + WCHAR szX25UserData[RAS_MaxUserData + 1]; + DWORD dwChannels; + DWORD dwReserved1; + DWORD dwReserved2; +#if (WINVER >= 0x401) + DWORD dwSubEntries; + DWORD dwDialMode; + DWORD dwDialExtraPercent; + DWORD dwDialExtraSampleSeconds; + DWORD dwHangUpExtraPercent; + DWORD dwHangUpExtraSampleSeconds; + DWORD dwIdleDisconnectSeconds; +#endif +#if (WINVER >= 0x500) + DWORD dwType; + DWORD dwEncryptionType; + DWORD dwCustomAuthKey; + GUID guidId; + WCHAR szCustomDialDll[MAX_PATH]; + DWORD dwVpnStrategy; +#endif +} RASENTRYW, *LPRASENTRYW; + +typedef struct tagRASENTRYA { + DWORD dwSize; + DWORD dwfOptions; + DWORD dwCountryID; + DWORD dwCountryCode; + CHAR szAreaCode[RAS_MaxAreaCode + 1]; + CHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1]; + DWORD dwAlternateOffset; + RASIPADDR ipaddr; + RASIPADDR ipaddrDns; + RASIPADDR ipaddrDnsAlt; + RASIPADDR ipaddrWins; + RASIPADDR ipaddrWinsAlt; + DWORD dwFrameSize; + DWORD dwfNetProtocols; + DWORD dwFramingProtocol; + CHAR szScript[MAX_PATH]; + CHAR szAutodialDll[MAX_PATH]; + CHAR szAutodialFunc[MAX_PATH]; + CHAR szDeviceType[RAS_MaxDeviceType + 1]; + CHAR szDeviceName[RAS_MaxDeviceName + 1]; + CHAR szX25PadType[RAS_MaxPadType + 1]; + CHAR szX25Address[RAS_MaxX25Address + 1]; + CHAR szX25Facilities[RAS_MaxFacilities + 1]; + CHAR szX25UserData[RAS_MaxUserData + 1]; + DWORD dwChannels; + DWORD dwReserved1; + DWORD dwReserved2; +#if (WINVER >= 0x401) + DWORD dwSubEntries; + DWORD dwDialMode; + DWORD dwDialExtraPercent; + DWORD dwDialExtraSampleSeconds; + DWORD dwHangUpExtraPercent; + DWORD dwHangUpExtraSampleSeconds; + DWORD dwIdleDisconnectSeconds; +#endif +#if (WINVER >= 0x500) + DWORD dwType; + DWORD dwEncryptionType; + DWORD dwCustomAuthKey; + GUID guidId; + CHAR szCustomDialDll[MAX_PATH]; + DWORD dwVpnStrategy; +#endif +} RASENTRYA, *LPRASENTRYA; + + +#if (WINVER >= 0x401) +typedef struct tagRASADPARAMS { + DWORD dwSize; + HWND hwndOwner; + DWORD dwFlags; + LONG xDlg; + LONG yDlg; +} RASADPARAMS, *LPRASADPARAMS; + +typedef struct tagRASSUBENTRYW { + DWORD dwSize; + DWORD dwfFlags; + WCHAR szDeviceType[RAS_MaxDeviceType + 1]; + WCHAR szDeviceName[RAS_MaxDeviceName + 1]; + WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1]; + DWORD dwAlternateOffset; +} RASSUBENTRYW, *LPRASSUBENTRYW; + +typedef struct tagRASSUBENTRYA { + DWORD dwSize; + DWORD dwfFlags; + CHAR szDeviceType[RAS_MaxDeviceType + 1]; + CHAR szDeviceName[RAS_MaxDeviceName + 1]; + CHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1]; + DWORD dwAlternateOffset; +} RASSUBENTRYA, *LPRASSUBENTRYA; + +typedef struct tagRASCREDENTIALSW { + DWORD dwSize; + DWORD dwMask; + WCHAR szUserName[UNLEN + 1]; + WCHAR szPassword[PWLEN + 1]; + WCHAR szDomain[DNLEN + 1]; +} RASCREDENTIALSW, *LPRASCREDENTIALSW; + +typedef struct tagRASCREDENTIALSA { + DWORD dwSize; + DWORD dwMask; + CHAR szUserName[UNLEN + 1]; + CHAR szPassword[PWLEN + 1]; + CHAR szDomain[DNLEN + 1]; +} RASCREDENTIALSA, *LPRASCREDENTIALSA; + +typedef struct tagRASAUTODIALENTRYW { + DWORD dwSize; + DWORD dwFlags; + DWORD dwDialingLocation; + WCHAR szEntry[RAS_MaxEntryName + 1]; +} RASAUTODIALENTRYW, *LPRASAUTODIALENTRYW; + +typedef struct tagRASAUTODIALENTRYA { + DWORD dwSize; + DWORD dwFlags; + DWORD dwDialingLocation; + CHAR szEntry[RAS_MaxEntryName + 1]; +} RASAUTODIALENTRYA, *LPRASAUTODIALENTRYA; +#endif /* (WINVER >= 0x401) */ + +#if (WINVER >= 0x500) +typedef struct tagRASPPPCCP { + DWORD dwSize; + DWORD dwError; + DWORD dwCompressionAlgorithm; + DWORD dwOptions; + DWORD dwServerCompressionAlgorithm; + DWORD dwServerOptions; +} RASPPPCCP, *LPRASPPPCCP; + +typedef struct tagRASEAPUSERIDENTITYW { + WCHAR szUserName[UNLEN + 1]; + DWORD dwSizeofEapInfo; + BYTE pbEapInfo[1]; +} RASEAPUSERIDENTITYW, *LPRASEAPUSERIDENTITYW; + +typedef struct tagRASEAPUSERIDENTITYA { + CHAR szUserName[UNLEN + 1]; + DWORD dwSizeofEapInfo; + BYTE pbEapInfo[1]; +} RASEAPUSERIDENTITYA, *LPRASEAPUSERIDENTITYA; + +typedef struct tagRAS_STATS { + DWORD dwSize; + DWORD dwBytesXmited; + DWORD dwBytesRcved; + DWORD dwFramesXmited; + DWORD dwFramesRcved; + DWORD dwCrcErr; + DWORD dwTimeoutErr; + DWORD dwAlignmentErr; + DWORD dwHardwareOverrunErr; + DWORD dwFramingErr; + DWORD dwBufferOverrunErr; + DWORD dwCompressionRatioIn; + DWORD dwCompressionRatioOut; + DWORD dwBps; + DWORD dwConnectDuration; +} RAS_STATS, *PRAS_STATS; +#endif /* (WINVER >= 0x500) */ + + +/* UNICODE typedefs for structures*/ +#ifdef UNICODE +typedef RASCONNW RASCONN, *LPRASCONN; +typedef RASENTRYW RASENTRY, *LPRASENTRY; +typedef RASCONNSTATUSW RASCONNSTATUS, *LPRASCONNSTATUS; +typedef RASDIALPARAMSW RASDIALPARAMS, *LPRASDIALPARAMS; +typedef RASAMBW RASAMB, *LPRASAM; +typedef RASPPPNBFW RASPPPNBF, *LPRASPPPNBF; +typedef RASPPPIPXW RASPPPIPX, *LPRASPPPIPX; +typedef RASPPPIPW RASPPPIP, *LPRASPPPIP; +typedef RASPPPLCPW RASPPPLCP, *LPRASPPPLCP; +typedef RASSLIPW RASSLIP, *LPRASSLIP; +typedef RASDEVINFOW RASDEVINFO, *LPRASDEVINFO; +typedef RASENTRYNAMEW RASENTRYNAME, *LPRASENTRYNAME; + +#if (WINVER >= 0x401) +typedef RASSUBENTRYW RASSUBENTRY, *LPRASSUBENTRY; +typedef RASCREDENTIALSW RASCREDENTIALS, *LPRASCREDENTIALS; +typedef RASAUTODIALENTRYW RASAUTODIALENTRY, *LPRASAUTODIALENTRY; +#endif /* (WINVER >= 0x401) */ + +#if (WINVER >= 0x500) +typedef RASEAPUSERIDENTITYW RASEAPUSERIDENTITY, *LPRASEAPUSERIDENTITY; +#endif /* (WINVER >= 0x500) */ + +#else /* ! defined UNICODE */ +typedef RASCONNA RASCONN, *LPRASCONN; +typedef RASENTRYA RASENTRY, *LPRASENTRY; +typedef RASCONNSTATUSA RASCONNSTATUS, *LPRASCONNSTATUS; +typedef RASDIALPARAMSA RASDIALPARAMS, *LPRASDIALPARAMS; +typedef RASAMBA RASAMB, *LPRASAM; +typedef RASPPPNBFA RASPPPNBF, *LPRASPPPNBF; +typedef RASPPPIPXA RASPPPIPX, *LPRASPPPIPX; +typedef RASPPPIPA RASPPPIP, *LPRASPPPIP; +typedef RASPPPLCPA RASPPPLCP, *LPRASPPPLCP; +typedef RASSLIPA RASSLIP, *LPRASSLIP; +typedef RASDEVINFOA RASDEVINFO, *LPRASDEVINFO; +typedef RASENTRYNAMEA RASENTRYNAME, *LPRASENTRYNAME; + +#if (WINVER >= 0x401) +typedef RASSUBENTRYA RASSUBENTRY, *LPRASSUBENTRY; +typedef RASCREDENTIALSA RASCREDENTIALS, *LPRASCREDENTIALS; +typedef RASAUTODIALENTRYA RASAUTODIALENTRY, *LPRASAUTODIALENTRY; +#endif /*(WINVER >= 0x401)*/ +#if (WINVER >= 0x500) +typedef RASEAPUSERIDENTITYA RASEAPUSERIDENTITY, *LPRASEAPUSERIDENTITY; +#endif /* (WINVER >= 0x500) */ +#endif /* ! UNICODE */ + +/* Callback prototypes */ +typedef BOOL (WINAPI * ORASADFUNC) (HWND, LPSTR, DWORD, LPDWORD); /* deprecated */ +typedef VOID (WINAPI * RASDIALFUNC) (UINT, RASCONNSTATE, DWORD); +typedef VOID (WINAPI * RASDIALFUNC1) (HRASCONN, UINT, RASCONNSTATE, DWORD, + DWORD); +typedef DWORD (WINAPI * RASDIALFUNC2) (ULONG_PTR, DWORD, HRASCONN, UINT, + RASCONNSTATE, DWORD, DWORD); + +/* External functions */ +DWORD APIENTRY RasDialA (LPRASDIALEXTENSIONS, LPCSTR, LPRASDIALPARAMSA, + DWORD, LPVOID, LPHRASCONN); +DWORD APIENTRY RasDialW (LPRASDIALEXTENSIONS, LPCWSTR, LPRASDIALPARAMSW, + DWORD, LPVOID, LPHRASCONN); +DWORD APIENTRY RasEnumConnectionsA (LPRASCONNA, LPDWORD, LPDWORD); +DWORD APIENTRY RasEnumConnectionsW (LPRASCONNW, LPDWORD, LPDWORD); +DWORD APIENTRY RasEnumEntriesA (LPCSTR, LPCSTR, LPRASENTRYNAMEA, LPDWORD, + LPDWORD); +DWORD APIENTRY RasEnumEntriesW (LPCWSTR, LPCWSTR, LPRASENTRYNAMEW, LPDWORD, + LPDWORD); +DWORD APIENTRY RasGetConnectStatusA (HRASCONN, LPRASCONNSTATUSA); +DWORD APIENTRY RasGetConnectStatusW (HRASCONN, LPRASCONNSTATUSW); +DWORD APIENTRY RasGetErrorStringA (UINT, LPSTR, DWORD); +DWORD APIENTRY RasGetErrorStringW (UINT, LPWSTR, DWORD); +DWORD APIENTRY RasHangUpA (HRASCONN); +DWORD APIENTRY RasHangUpW (HRASCONN); +DWORD APIENTRY RasGetProjectionInfoA (HRASCONN, RASPROJECTION, LPVOID, + LPDWORD); +DWORD APIENTRY RasGetProjectionInfoW (HRASCONN, RASPROJECTION, LPVOID, + LPDWORD); +DWORD APIENTRY RasCreatePhonebookEntryA (HWND, LPCSTR); +DWORD APIENTRY RasCreatePhonebookEntryW (HWND, LPCWSTR); +DWORD APIENTRY RasEditPhonebookEntryA (HWND, LPCSTR, LPCSTR); +DWORD APIENTRY RasEditPhonebookEntryW (HWND, LPCWSTR, LPCWSTR); +DWORD APIENTRY RasSetEntryDialParamsA (LPCSTR, LPRASDIALPARAMSA, BOOL); +DWORD APIENTRY RasSetEntryDialParamsW (LPCWSTR, LPRASDIALPARAMSW, BOOL); +DWORD APIENTRY RasGetEntryDialParamsA (LPCSTR, LPRASDIALPARAMSA, LPBOOL); +DWORD APIENTRY RasGetEntryDialParamsW (LPCWSTR, LPRASDIALPARAMSW, LPBOOL); +DWORD APIENTRY RasEnumDevicesA (LPRASDEVINFOA, LPDWORD, LPDWORD); +DWORD APIENTRY RasEnumDevicesW (LPRASDEVINFOW, LPDWORD, LPDWORD); +DWORD APIENTRY RasGetCountryInfoA (LPRASCTRYINFOA, LPDWORD); +DWORD APIENTRY RasGetCountryInfoW (LPRASCTRYINFOW, LPDWORD); +DWORD APIENTRY RasGetEntryPropertiesA (LPCSTR, LPCSTR, LPRASENTRYA, LPDWORD, + LPBYTE, LPDWORD); +DWORD APIENTRY RasGetEntryPropertiesW (LPCWSTR, LPCWSTR, LPRASENTRYW, + LPDWORD, LPBYTE, LPDWORD); +DWORD APIENTRY RasSetEntryPropertiesA (LPCSTR, LPCSTR, LPRASENTRYA, DWORD, + LPBYTE, DWORD); +DWORD APIENTRY RasSetEntryPropertiesW (LPCWSTR, LPCWSTR, LPRASENTRYW, DWORD, + LPBYTE, DWORD); +DWORD APIENTRY RasRenameEntryA (LPCSTR, LPCSTR, LPCSTR); +DWORD APIENTRY RasRenameEntryW (LPCWSTR, LPCWSTR, LPCWSTR); +DWORD APIENTRY RasDeleteEntryA (LPCSTR, LPCSTR); +DWORD APIENTRY RasDeleteEntryW (LPCWSTR, LPCWSTR); +DWORD APIENTRY RasValidateEntryNameA (LPCSTR, LPCSTR); +DWORD APIENTRY RasValidateEntryNameW (LPCWSTR, LPCWSTR); + +#if (WINVER >= 0x401) +typedef BOOL (WINAPI * RASADFUNCA) (LPSTR, LPSTR, LPRASADPARAMS, LPDWORD); +typedef BOOL (WINAPI * RASADFUNCW) (LPWSTR, LPWSTR, LPRASADPARAMS, LPDWORD); + +DWORD APIENTRY RasGetSubEntryHandleA (HRASCONN, DWORD, LPHRASCONN); +DWORD APIENTRY RasGetSubEntryHandleW (HRASCONN, DWORD, LPHRASCONN); +DWORD APIENTRY RasGetCredentialsA (LPCSTR, LPCSTR, LPRASCREDENTIALSA); +DWORD APIENTRY RasGetCredentialsW (LPCWSTR, LPCWSTR, LPRASCREDENTIALSW); +DWORD APIENTRY RasSetCredentialsA (LPCSTR, LPCSTR, LPRASCREDENTIALSA, BOOL); +DWORD APIENTRY RasSetCredentialsW (LPCWSTR, LPCWSTR, LPRASCREDENTIALSW, BOOL); +DWORD APIENTRY RasConnectionNotificationA (HRASCONN, HANDLE, DWORD); +DWORD APIENTRY RasConnectionNotificationW (HRASCONN, HANDLE, DWORD); +DWORD APIENTRY RasGetSubEntryPropertiesA (LPCSTR, LPCSTR, DWORD, + LPRASSUBENTRYA, LPDWORD, LPBYTE, LPDWORD); +DWORD APIENTRY RasGetSubEntryPropertiesW (LPCWSTR, LPCWSTR, DWORD, + LPRASSUBENTRYW, LPDWORD, LPBYTE, LPDWORD); +DWORD APIENTRY RasSetSubEntryPropertiesA (LPCSTR, LPCSTR, DWORD, + LPRASSUBENTRYA, DWORD, LPBYTE, DWORD); +DWORD APIENTRY RasSetSubEntryPropertiesW (LPCWSTR, LPCWSTR, DWORD, + LPRASSUBENTRYW, DWORD, LPBYTE, DWORD); +DWORD APIENTRY RasGetAutodialAddressA (LPCSTR, LPDWORD, LPRASAUTODIALENTRYA, + LPDWORD, LPDWORD); +DWORD APIENTRY RasGetAutodialAddressW (LPCWSTR, LPDWORD, + LPRASAUTODIALENTRYW, LPDWORD, LPDWORD); +DWORD APIENTRY RasSetAutodialAddressA (LPCSTR, DWORD, LPRASAUTODIALENTRYA, + DWORD, DWORD); +DWORD APIENTRY RasSetAutodialAddressW (LPCWSTR, DWORD, LPRASAUTODIALENTRYW, + DWORD, DWORD); +DWORD APIENTRY RasEnumAutodialAddressesA (LPSTR *, LPDWORD, LPDWORD); +DWORD APIENTRY RasEnumAutodialAddressesW (LPWSTR *, LPDWORD, LPDWORD); +DWORD APIENTRY RasGetAutodialEnableA (DWORD, LPBOOL); +DWORD APIENTRY RasGetAutodialEnableW (DWORD, LPBOOL); +DWORD APIENTRY RasSetAutodialEnableA (DWORD, BOOL); +DWORD APIENTRY RasSetAutodialEnableW (DWORD, BOOL); +DWORD APIENTRY RasGetAutodialParamA (DWORD, LPVOID, LPDWORD); +DWORD APIENTRY RasGetAutodialParamW (DWORD, LPVOID, LPDWORD); +DWORD APIENTRY RasSetAutodialParamA (DWORD, LPVOID, DWORD); +DWORD APIENTRY RasSetAutodialParamW (DWORD, LPVOID, DWORD); +#endif + +#if (WINVER >= 0x500) +typedef DWORD (WINAPI * RasCustomHangUpFn) (HRASCONN); +typedef DWORD (WINAPI * RasCustomDeleteEntryNotifyFn) (LPCTSTR, LPCTSTR, DWORD); +typedef DWORD (WINAPI * RasCustomDialFn) (HINSTANCE, LPRASDIALEXTENSIONS, + LPCTSTR, LPRASDIALPARAMS, DWORD, LPVOID, LPHRASCONN, DWORD); + +DWORD APIENTRY RasInvokeEapUI (HRASCONN, DWORD, LPRASDIALEXTENSIONS, HWND); +DWORD APIENTRY RasGetLinkStatistics (HRASCONN, DWORD, RAS_STATS*); +DWORD APIENTRY RasGetConnectionStatistics (HRASCONN, RAS_STATS*); +DWORD APIENTRY RasClearLinkStatistics (HRASCONN, DWORD); +DWORD APIENTRY RasClearConnectionStatistics (HRASCONN); +DWORD APIENTRY RasGetEapUserDataA (HANDLE, LPCSTR, LPCSTR, BYTE*, DWORD*); +DWORD APIENTRY RasGetEapUserDataW (HANDLE, LPCWSTR, LPCWSTR, BYTE*, DWORD*); +DWORD APIENTRY RasSetEapUserDataA (HANDLE, LPCSTR, LPCSTR, BYTE*, DWORD); +DWORD APIENTRY RasSetEapUserDataW (HANDLE, LPCWSTR, LPCWSTR, BYTE*, DWORD); +DWORD APIENTRY RasGetCustomAuthDataA (LPCSTR, LPCSTR, BYTE*, DWORD*); +DWORD APIENTRY RasGetCustomAuthDataW (LPCWSTR, LPCWSTR, BYTE*, DWORD*); +DWORD APIENTRY RasSetCustomAuthDataA (LPCSTR, LPCSTR, BYTE*, DWORD); +DWORD APIENTRY RasSetCustomAuthDataW (LPCWSTR, LPCWSTR, BYTE*, DWORD); +DWORD APIENTRY RasGetEapUserIdentityW (LPCWSTR, LPCWSTR, DWORD, HWND, LPRASEAPUSERIDENTITYW*); +DWORD APIENTRY RasGetEapUserIdentityA (LPCSTR, LPCSTR, DWORD, HWND, LPRASEAPUSERIDENTITYA*); +VOID APIENTRY RasFreeEapUserIdentityW (LPRASEAPUSERIDENTITYW); +VOID APIENTRY RasFreeEapUserIdentityA (LPRASEAPUSERIDENTITYA); +#endif /* (WINVER >= 0x500) */ + + +/* UNICODE defines for functions */ +#ifdef UNICODE +#define RasDial RasDialW +#define RasEnumConnections RasEnumConnectionsW +#define RasEnumEntries RasEnumEntriesW +#define RasGetConnectStatus RasGetConnectStatusW +#define RasGetErrorString RasGetErrorStringW +#define RasHangUp RasHangUpW +#define RasGetProjectionInfo RasGetProjectionInfoW +#define RasCreatePhonebookEntry RasCreatePhonebookEntryW +#define RasEditPhonebookEntry RasEditPhonebookEntryW +#define RasSetEntryDialParams RasSetEntryDialParamsW +#define RasGetEntryDialParams RasGetEntryDialParamsW +#define RasEnumDevices RasEnumDevicesW +#define RasGetCountryInfo RasGetCountryInfoW +#define RasGetEntryProperties RasGetEntryPropertiesW +#define RasSetEntryProperties RasSetEntryPropertiesW +#define RasRenameEntry RasRenameEntryW +#define RasDeleteEntry RasDeleteEntryW +#define RasValidateEntryName RasValidateEntryNameW +#if (WINVER >= 0x401) +#define RASADFUNC RASADFUNCW +#define RasGetSubEntryHandle RasGetSubEntryHandleW +#define RasConnectionNotification RasConnectionNotificationW +#define RasGetSubEntryProperties RasGetSubEntryPropertiesW +#define RasSetSubEntryProperties RasSetSubEntryPropertiesW +#define RasGetCredentials RasGetCredentialsW +#define RasSetCredentials RasSetCredentialsW +#define RasGetAutodialAddress RasGetAutodialAddressW +#define RasSetAutodialAddress RasSetAutodialAddressW +#define RasEnumAutodialAddresses RasEnumAutodialAddressesW +#define RasGetAutodialEnable RasGetAutodialEnableW +#define RasSetAutodialEnable RasSetAutodialEnableW +#define RasGetAutodialParam RasGetAutodialParamW +#define RasSetAutodialParam RasSetAutodialParamW +#endif /* (WINVER >= 0x401) */ +#if (WINVER >= 0x500) +#define RasGetEapUserData RasGetEapUserDataW +#define RasSetEapUserData RasSetEapUserDataW +#define RasGetCustomAuthData RasGetCustomAuthDataW +#define RasSetCustomAuthData RasSetCustomAuthDataW +#define RasGetEapUserIdentity RasGetEapUserIdentityW +#define RasFreeEapUserIdentity RasFreeEapUserIdentityW +#endif /* (WINVER >= 0x500) */ + +#else /* ! defined UNICODE */ +#define RasDial RasDialA +#define RasEnumConnections RasEnumConnectionsA +#define RasEnumEntries RasEnumEntriesA +#define RasGetConnectStatus RasGetConnectStatusA +#define RasGetErrorString RasGetErrorStringA +#define RasHangUp RasHangUpA +#define RasGetProjectionInfo RasGetProjectionInfoA +#define RasCreatePhonebookEntry RasCreatePhonebookEntryA +#define RasEditPhonebookEntry RasEditPhonebookEntryA +#define RasSetEntryDialParams RasSetEntryDialParamsA +#define RasGetEntryDialParams RasGetEntryDialParamsA +#define RasEnumDevices RasEnumDevicesA +#define RasGetCountryInfo RasGetCountryInfoA +#define RasGetEntryProperties RasGetEntryPropertiesA +#define RasSetEntryProperties RasSetEntryPropertiesA +#define RasRenameEntry RasRenameEntryA +#define RasDeleteEntry RasDeleteEntryA +#define RasValidateEntryName RasValidateEntryNameA + +#if (WINVER >= 0x401) +#define RASADFUNC RASADFUNCA +#define RasGetSubEntryHandle RasGetSubEntryHandleA +#define RasConnectionNotification RasConnectionNotificationA +#define RasGetSubEntryProperties RasGetSubEntryPropertiesA +#define RasSetSubEntryProperties RasSetSubEntryPropertiesA +#define RasGetCredentials RasGetCredentialsA +#define RasSetCredentials RasSetCredentialsA +#define RasGetAutodialAddress RasGetAutodialAddressA +#define RasSetAutodialAddress RasSetAutodialAddressA +#define RasEnumAutodialAddressesRasEnumAutodialAddressesA +#define RasGetAutodialEnable RasGetAutodialEnableA +#define RasSetAutodialEnable RasSetAutodialEnableA +#define RasGetAutodialParam RasGetAutodialParamA +#define RasSetAutodialParam RasSetAutodialParamA +#endif /*(WINVER >= 0x401)*/ + +#if (WINVER >= 0x500) +#define RasGetEapUserData RasGetEapUserDataA +#define RasSetEapUserData RasSetEapUserDataA +#define RasGetCustomAuthData RasGetCustomAuthDataA +#define RasSetCustomAuthData RasSetCustomAuthDataA +#define RasGetEapUserIdentity RasGetEapUserIdentityA +#define RasFreeEapUserIdentity RasFreeEapUserIdentityA +#endif /* (WINVER >= 0x500) */ +#endif /* ! UNICODE */ + +#ifdef __cplusplus +} +#endif +#include +#endif /* _RAS_H */