home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 April / PCWorld_2008-04_cd.bin / temacd / devc++ / devcpp-4.9.9.2_setup.exe / ras.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  33KB  |  965 lines

  1. #ifndef _RAS_H
  2. #define _RAS_H
  3. #if __GNUC__ >=3
  4. #pragma GCC system_header
  5. #endif
  6.  
  7. #ifdef __cplusplus
  8. extern "C"
  9. {
  10. #endif
  11.  
  12. #ifndef _LMCONS_H
  13. #include <lmcons.h>
  14. #endif
  15.  
  16. /* TODO
  17. include <basetsd.h> from winnt.h so that this typedef is not necessary
  18. */
  19. #ifndef _BASETSD_H
  20. typedef unsigned long ULONG_PTR, *PULONG_PTR;
  21. #endif
  22.  
  23. #include <pshpack4.h>
  24.  
  25. #define RAS_MaxDeviceType     16
  26. #define RAS_MaxPhoneNumber    128
  27. #define RAS_MaxIpAddress      15
  28. #define RAS_MaxIpxAddress     21
  29. #define RAS_MaxEntryName      256
  30. #define RAS_MaxDeviceName     128
  31. #define RAS_MaxCallbackNumber RAS_MaxPhoneNumber
  32. #define RAS_MaxAreaCode       10
  33. #define RAS_MaxPadType        32
  34. #define RAS_MaxX25Address     200
  35. #define RAS_MaxFacilities     200
  36. #define RAS_MaxUserData       200
  37. #define RAS_MaxReplyMessage   1024
  38. #define RDEOPT_UsePrefixSuffix           0x00000001
  39. #define RDEOPT_PausedStates              0x00000002
  40. #define RDEOPT_IgnoreModemSpeaker        0x00000004
  41. #define RDEOPT_SetModemSpeaker           0x00000008
  42. #define RDEOPT_IgnoreSoftwareCompression 0x00000010
  43. #define RDEOPT_SetSoftwareCompression    0x00000020
  44. #define RDEOPT_DisableConnectedUI        0x00000040
  45. #define RDEOPT_DisableReconnectUI        0x00000080
  46. #define RDEOPT_DisableReconnect          0x00000100
  47. #define RDEOPT_NoUser                    0x00000200
  48. #define RDEOPT_PauseOnScript             0x00000400
  49. #define RDEOPT_Router                    0x00000800
  50. #define REN_User                         0x00000000
  51. #define REN_AllUsers                     0x00000001
  52. #define VS_Default                        0
  53. #define VS_PptpOnly                        1
  54. #define VS_PptpFirst                    2
  55. #define VS_L2tpOnly                     3
  56. #define VS_L2tpFirst                    4
  57. #define RASDIALEVENT                    "RasDialEvent"
  58. #define WM_RASDIALEVENT                 0xCCCD
  59. #define RASEO_UseCountryAndAreaCodes    0x00000001
  60. #define RASEO_SpecificIpAddr            0x00000002
  61. #define RASEO_SpecificNameServers       0x00000004
  62. #define RASEO_IpHeaderCompression       0x00000008
  63. #define RASEO_RemoteDefaultGateway      0x00000010
  64. #define RASEO_DisableLcpExtensions      0x00000020
  65. #define RASEO_TerminalBeforeDial        0x00000040
  66. #define RASEO_TerminalAfterDial         0x00000080
  67. #define RASEO_ModemLights               0x00000100
  68. #define RASEO_SwCompression             0x00000200
  69. #define RASEO_RequireEncryptedPw        0x00000400
  70. #define RASEO_RequireMsEncryptedPw      0x00000800
  71. #define RASEO_RequireDataEncryption     0x00001000
  72. #define RASEO_NetworkLogon              0x00002000
  73. #define RASEO_UseLogonCredentials       0x00004000
  74. #define RASEO_PromoteAlternates         0x00008000
  75. #define RASNP_NetBEUI                   0x00000001
  76. #define RASNP_Ipx                       0x00000002
  77. #define RASNP_Ip                        0x00000004
  78. #define RASFP_Ppp                       0x00000001
  79. #define RASFP_Slip                      0x00000002
  80. #define RASFP_Ras                       0x00000004
  81. #define RASDT_Modem                     TEXT("modem")
  82. #define RASDT_Isdn                      TEXT("isdn")
  83. #define RASDT_X25                       TEXT("x25")
  84. #define RASDT_Vpn                       TEXT("vpn")
  85. #define RASDT_Pad                       TEXT("pad")
  86. #define RASDT_Generic                   TEXT("GENERIC")
  87. #define RASDT_Serial                TEXT("SERIAL")
  88. #define RASDT_FrameRelay                TEXT("FRAMERELAY")
  89. #define RASDT_Atm                       TEXT("ATM")
  90. #define RASDT_Sonet                     TEXT("SONET")
  91. #define RASDT_SW56                      TEXT("SW56")
  92. #define RASDT_Irda                      TEXT("IRDA")
  93. #define RASDT_Parallel                  TEXT("PARALLEL")
  94. #define RASET_Phone     1
  95. #define RASET_Vpn       2
  96. #define RASET_Direct    3
  97. #define RASET_Internet  4
  98. #if (WINVER >= 0x401)
  99. #define RASEO_SecureLocalFiles  0x00010000
  100. #define RASCN_Connection        0x00000001
  101. #define RASCN_Disconnection     0x00000002
  102. #define RASCN_BandwidthAdded    0x00000004
  103. #define RASCN_BandwidthRemoved  0x00000008
  104. #define RASEDM_DialAll          1
  105. #define RASEDM_DialAsNeeded     2
  106. #define RASIDS_Disabled         0xffffffff
  107. #define RASIDS_UseGlobalValue   0
  108. #define RASADFLG_PositionDlg    0x00000001
  109. #define RASCM_UserName       0x00000001
  110. #define RASCM_Password       0x00000002
  111. #define RASCM_Domain         0x00000004
  112. #define RASADP_DisableConnectionQuery   0
  113. #define RASADP_LoginSessionDisable      1
  114. #define RASADP_SavedAddressesLimit      2
  115. #define RASADP_FailedConnectionTimeout  3
  116. #define RASADP_ConnectionQueryTimeout   4
  117. #endif  /* (WINVER >= 0x401) */
  118. #if (WINVER >= 0x500)
  119. #define RDEOPT_CustomDial   0x00001000
  120. #define RASLCPAP_PAP        0xC023
  121. #define RASLCPAP_SPAP       0xC027
  122. #define RASLCPAP_CHAP       0xC223
  123. #define RASLCPAP_EAP        0xC227
  124. #define RASLCPAD_CHAP_MD5   0x05
  125. #define RASLCPAD_CHAP_MS    0x80
  126. #define RASLCPAD_CHAP_MSV2  0x81
  127. #define RASLCPO_PFC         0x00000001
  128. #define RASLCPO_ACFC        0x00000002
  129. #define RASLCPO_SSHF        0x00000004
  130. #define RASLCPO_DES_56      0x00000008
  131. #define RASLCPO_3_DES       0x00000010
  132. #define RASCCPCA_MPPC       0x00000006
  133. #define RASCCPCA_STAC       0x00000005
  134. #define RASCCPO_Compression         0x00000001
  135. #define RASCCPO_HistoryLess         0x00000002
  136. #define RASCCPO_Encryption56bit     0x00000010
  137. #define RASCCPO_Encryption40bit     0x00000020
  138. #define RASCCPO_Encryption128bit    0x00000040
  139. #define RASEO_RequireEAP            0x00020000
  140. #define RASEO_RequirePAP            0x00040000
  141. #define RASEO_RequireSPAP           0x00080000
  142. #define RASEO_Custom                0x00100000
  143. #define RASEO_PreviewPhoneNumber    0x00200000
  144. #define RASEO_SharedPhoneNumbers    0x00800000
  145. #define RASEO_PreviewUserPw         0x01000000
  146. #define RASEO_PreviewDomain         0x02000000
  147. #define RASEO_ShowDialingProgress   0x04000000
  148. #define RASEO_RequireCHAP           0x08000000
  149. #define RASEO_RequireMsCHAP         0x10000000
  150. #define RASEO_RequireMsCHAP2        0x20000000
  151. #define RASEO_RequireW95MSCHAP      0x40000000
  152. #define RASEO_CustomScript          0x80000000
  153. #define RASIPO_VJ                   0x00000001
  154. #define RCD_SingleUser              0
  155. #define RCD_AllUsers                0x00000001
  156. #define RCD_Eap                     0x00000002
  157. #define RASEAPF_NonInteractive      0x00000002
  158. #define RASEAPF_Logon               0x00000004
  159. #define RASEAPF_Preview             0x00000008
  160. #define ET_40Bit        1
  161. #define ET_128Bit       2
  162. #define ET_None         0
  163. #define ET_Require      1
  164. #define ET_RequireMax   2
  165. #define ET_Optional     3
  166. #endif /* (WINVER >= 0x500) */
  167.  
  168. #define RASCS_PAUSED 0x1000
  169. #define RASCS_DONE   0x2000
  170. typedef enum tagRASCONNSTATE {
  171.       RASCS_OpenPort = 0,
  172.       RASCS_PortOpened,
  173.       RASCS_ConnectDevice,
  174.       RASCS_DeviceConnected,
  175.       RASCS_AllDevicesConnected,
  176.       RASCS_Authenticate,
  177.       RASCS_AuthNotify,
  178.       RASCS_AuthRetry,
  179.       RASCS_AuthCallback,
  180.       RASCS_AuthChangePassword,
  181.       RASCS_AuthProject,
  182.       RASCS_AuthLinkSpeed,
  183.       RASCS_AuthAck,
  184.       RASCS_ReAuthenticate,
  185.       RASCS_Authenticated,
  186.       RASCS_PrepareForCallback,
  187.       RASCS_WaitForModemReset,
  188.       RASCS_WaitForCallback,
  189.       RASCS_Projected,
  190.       RASCS_StartAuthentication,
  191.       RASCS_CallbackComplete,
  192.       RASCS_LogonNetwork,
  193.       RASCS_SubEntryConnected,
  194.       RASCS_SubEntryDisconnected,
  195.       RASCS_Interactive = RASCS_PAUSED,
  196.       RASCS_RetryAuthentication,
  197.       RASCS_CallbackSetByCaller,
  198.       RASCS_PasswordExpired,
  199. #if (WINVER >= 0x500)
  200.       RASCS_InvokeEapUI,
  201. #endif
  202.       RASCS_Connected = RASCS_DONE,
  203.       RASCS_Disconnected
  204. }  RASCONNSTATE, *LPRASCONNSTATE;
  205.  
  206. typedef enum tagRASPROJECTION {
  207.     RASP_Amb =      0x10000,
  208.     RASP_PppNbf =   0x803F,
  209.     RASP_PppIpx =   0x802B,
  210.     RASP_PppIp =    0x8021,
  211. #if (WINVER >= 0x500)
  212.     RASP_PppCcp =   0x80FD,
  213. #endif
  214.     RASP_PppLcp =   0xC021,
  215.     RASP_Slip =     0x20000
  216. } RASPROJECTION, *LPRASPROJECTION;
  217.  
  218. DECLARE_HANDLE (HRASCONN);
  219. typedef  HRASCONN* LPHRASCONN;
  220.  
  221. typedef struct tagRASCONNW {
  222.     DWORD dwSize;
  223.     HRASCONN hrasconn;
  224.     WCHAR szEntryName[RAS_MaxEntryName + 1];
  225. #if (WINVER >= 0x400) 
  226.     WCHAR szDeviceType[RAS_MaxDeviceType + 1];
  227.     WCHAR szDeviceName[RAS_MaxDeviceName + 1];
  228. #endif
  229. #if (WINVER >= 0x401)
  230.     WCHAR szPhonebook[MAX_PATH];
  231.     DWORD dwSubEntry;
  232. #endif
  233. #if (WINVER >= 0x500)
  234.     GUID guidEntry;
  235. #endif
  236. #if (WINVER >= 0x501)
  237.     DWORD dwFlags;
  238.     LUID luid;
  239. #endif
  240. } RASCONNW, *LPRASCONNW;
  241.  
  242. typedef struct tagRASCONNA {
  243.     DWORD dwSize;
  244.     HRASCONN hrasconn;
  245.     CHAR szEntryName[RAS_MaxEntryName + 1];
  246. #if (WINVER >= 0x400) 
  247.     CHAR szDeviceType[RAS_MaxDeviceType + 1];
  248.     CHAR szDeviceName[RAS_MaxDeviceName + 1];
  249. #endif
  250. #if (WINVER >= 0x401)
  251.     CHAR szPhonebook[MAX_PATH];
  252.     DWORD dwSubEntry;
  253. #endif
  254. #if (WINVER >= 0x500)
  255.     GUID guidEntry;
  256. #endif
  257. #if (WINVER >= 0x501)
  258.     DWORD dwFlags;
  259.     LUID luid;
  260. #endif
  261. } RASCONNA, *LPRASCONNA;
  262.  
  263. typedef struct tagRASCONNSTATUSW {
  264.     DWORD dwSize;
  265.     RASCONNSTATE rasconnstate;
  266.     DWORD dwError;
  267.     WCHAR szDeviceType[RAS_MaxDeviceType + 1];
  268.     WCHAR szDeviceName[RAS_MaxDeviceName + 1];
  269. #if (WINVER >= 0x401)
  270.     WCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1];
  271. #endif
  272. } RASCONNSTATUSW, *LPRASCONNSTATUSW;
  273.  
  274. typedef struct tagRASCONNSTATUSA {
  275.     DWORD dwSize;
  276.     RASCONNSTATE rasconnstate;
  277.     DWORD dwError;
  278.     CHAR szDeviceType[RAS_MaxDeviceType + 1];
  279.     CHAR szDeviceName[RAS_MaxDeviceName + 1];
  280. #if (WINVER >= 0x401)
  281.     CHAR szPhoneNumber[RAS_MaxPhoneNumber + 1];
  282. #endif
  283. } RASCONNSTATUSA, *LPRASCONNSTATUSA;
  284.  
  285. typedef struct tagRASDIALPARAMSW {
  286.     DWORD dwSize;
  287.     WCHAR szEntryName[RAS_MaxEntryName + 1];
  288.     WCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1];
  289.     WCHAR szCallbackNumber[RAS_MaxCallbackNumber + 1];
  290.     WCHAR szUserName[UNLEN + 1];
  291.     WCHAR szPassword[PWLEN + 1];
  292.     WCHAR szDomain[DNLEN + 1];
  293. #if (WINVER >= 0x401)
  294.     DWORD dwSubEntry;
  295.     ULONG_PTR dwCallbackId;
  296. #endif
  297. } RASDIALPARAMSW, *LPRASDIALPARAMSW;
  298.  
  299. typedef struct tagRASDIALPARAMSA {
  300.     DWORD dwSize;
  301.     CHAR szEntryName[RAS_MaxEntryName + 1];
  302.     CHAR szPhoneNumber[RAS_MaxPhoneNumber + 1];
  303.     CHAR szCallbackNumber[RAS_MaxCallbackNumber + 1];
  304.     CHAR szUserName[UNLEN + 1];
  305.     CHAR szPassword[PWLEN + 1];
  306.     CHAR szDomain[DNLEN + 1];
  307. #if (WINVER >= 0x401)
  308.     DWORD dwSubEntry;
  309.     ULONG_PTR dwCallbackId;
  310. #endif
  311. } RASDIALPARAMSA, *LPRASDIALPARAMSA;
  312.  
  313. #if (WINVER >= 0x500)
  314. typedef struct tagRASEAPINFO {
  315.     DWORD dwSizeofEapInfo;
  316.     BYTE *pbEapInfo;
  317. } RASEAPINFO;
  318. #endif
  319.  
  320. typedef struct tagRASDIALEXTENSIONS {
  321.     DWORD dwSize;
  322.     DWORD dwfOptions;
  323.     HWND hwndParent;
  324.     ULONG_PTR reserved;
  325. #if (WINVER >= 0x500)
  326.     ULONG_PTR reserved1;
  327.     RASEAPINFO RasEapInfo;
  328. #endif
  329. } RASDIALEXTENSIONS, *LPRASDIALEXTENSIONS;
  330.  
  331. typedef struct tagRASENTRYNAMEW {
  332.     DWORD dwSize;
  333.     WCHAR szEntryName[RAS_MaxEntryName + 1];
  334. #if (WINVER >= 0x500)
  335.     DWORD dwFlags;
  336.     WCHAR szPhonebookPath[MAX_PATH + 1];
  337. #endif
  338. } RASENTRYNAMEW, *LPRASENTRYNAMEW;
  339.  
  340. typedef struct tagRASENTRYNAMEA {
  341.     DWORD dwSize;
  342.     CHAR szEntryName[RAS_MaxEntryName + 1];
  343. #if (WINVER >= 0x500)
  344.     DWORD dwFlags;
  345.     CHAR szPhonebookPath[MAX_PATH + 1];
  346. #endif
  347. } RASENTRYNAMEA, *LPRASENTRYNAMEA;
  348.  
  349. typedef struct tagRASAMBW {
  350.     DWORD dwSize;
  351.     DWORD dwError;
  352.     WCHAR szNetBiosError[NETBIOS_NAME_LEN + 1];
  353.     BYTE bLana;
  354. } RASAMBW, *LPRASAMBW;
  355.  
  356. typedef struct tagRASAMBA {
  357.     DWORD dwSize;
  358.     DWORD dwError;
  359.     CHAR szNetBiosError[NETBIOS_NAME_LEN + 1];
  360.     BYTE bLana;
  361. } RASAMBA, *LPRASAMBA;
  362.  
  363. typedef struct tagRASPPPNBFW {
  364.     DWORD dwSize;
  365.     DWORD dwError;
  366.     DWORD dwNetBiosError;
  367.     WCHAR szNetBiosError[NETBIOS_NAME_LEN + 1];
  368.     WCHAR szWorkstationName[NETBIOS_NAME_LEN + 1];
  369.     BYTE bLana;
  370. } RASPPPNBFW, *LPRASPPPNBFW;
  371.  
  372. typedef struct tagRASPPPNBFA {
  373.     DWORD dwSize;
  374.     DWORD dwError;
  375.     DWORD dwNetBiosError;
  376.     CHAR szNetBiosError[NETBIOS_NAME_LEN + 1];
  377.     CHAR szWorkstationName[NETBIOS_NAME_LEN + 1];
  378.     BYTE bLana;
  379. } RASPPPNBFA, *LPRASPPPNBFA;
  380.  
  381. typedef struct tagRASIPXW {
  382.     DWORD dwSize;
  383.     DWORD dwError;
  384.     WCHAR szIpxAddress[RAS_MaxIpxAddress + 1];
  385. } RASPPPIPXW, *LPRASPPPIPXW;
  386.  
  387. typedef struct tagRASIPXA {
  388.     DWORD dwSize;
  389.     DWORD dwError;
  390.     CHAR szIpxAddress[RAS_MaxIpxAddress + 1];
  391. } RASPPPIPXA, *LPRASPPPIPXA;
  392.  
  393. typedef struct tagRASPPPIPW {
  394.     DWORD dwSize;
  395.     DWORD dwError;
  396.     WCHAR szIpAddress[RAS_MaxIpAddress + 1];
  397. #ifndef WINNT35COMPATIBLE
  398.     WCHAR szServerIpAddress[RAS_MaxIpAddress + 1];
  399. #endif
  400. #if (WINVER >= 0x500)
  401.     DWORD dwOptions;
  402.     DWORD dwServerOptions;
  403. #endif
  404. } RASPPPIPW, *LPRASPPPIPW;
  405.  
  406. typedef struct tagRASPPPIPA {
  407.     DWORD dwSize;
  408.     DWORD dwError;
  409.     CHAR szIpAddress[RAS_MaxIpAddress + 1];
  410. #ifndef WINNT35COMPATIBLE
  411.     CHAR szServerIpAddress[RAS_MaxIpAddress + 1];
  412. #endif
  413. #if (WINVER >= 0x500)
  414.     DWORD dwOptions;
  415.     DWORD dwServerOptions;
  416. #endif
  417. } RASPPPIPA, *LPRASPPPIPA;
  418.  
  419. typedef struct tagRASPPPLCPW {
  420.     DWORD dwSize;
  421.     BOOL fBundled;
  422. #if (WINVER >= 0x500)
  423.     DWORD dwError;
  424.     DWORD dwAuthenticationProtocol;
  425.     DWORD dwAuthenticationData;
  426.     DWORD dwEapTypeId;
  427.     DWORD dwServerAuthenticationProtocol;
  428.     DWORD dwServerAuthenticationData;
  429.     DWORD dwServerEapTypeId;
  430.     BOOL fMultilink;
  431.     DWORD dwTerminateReason;
  432.     DWORD dwServerTerminateReason;
  433.     WCHAR szReplyMessage[RAS_MaxReplyMessage];
  434.     DWORD dwOptions;
  435.     DWORD dwServerOptions;
  436. #endif
  437. } RASPPPLCPW, *LPRASPPPLCPW;
  438.  
  439. typedef struct tagRASPPPLCPA {
  440.     DWORD dwSize;
  441.     BOOL fBundled;
  442. #if (WINVER >= 0x500)
  443.     DWORD dwError;
  444.     DWORD dwAuthenticationProtocol;
  445.     DWORD dwAuthenticationData;
  446.     DWORD dwEapTypeId;
  447.     DWORD dwServerAuthenticationProtocol;
  448.     DWORD dwServerAuthenticationData;
  449.     DWORD dwServerEapTypeId;
  450.     BOOL fMultilink;
  451.     DWORD dwTerminateReason;
  452.     DWORD dwServerTerminateReason;
  453.     CHAR szReplyMessage[RAS_MaxReplyMessage];
  454.     DWORD dwOptions;
  455.     DWORD dwServerOptions;
  456. #endif
  457. } RASPPPLCPA, *LPRASPPPLCPA;
  458.  
  459. typedef struct tagRASSLIPW {
  460.     DWORD dwSize;
  461.     DWORD dwError;
  462.     WCHAR szIpAddress[RAS_MaxIpAddress + 1];
  463. } RASSLIPW, *LPRASSLIPW;
  464.  
  465.  
  466. typedef struct tagRASSLIPA {
  467.     DWORD dwSize;
  468.     DWORD dwError;
  469.     CHAR szIpAddress[RAS_MaxIpAddress + 1];
  470. } RASSLIPA, *LPRASSLIPA;
  471.  
  472. typedef struct tagRASDEVINFOW {
  473.     DWORD dwSize;
  474.     WCHAR szDeviceType[RAS_MaxDeviceType + 1];
  475.     WCHAR szDeviceName[RAS_MaxDeviceName + 1];
  476. } RASDEVINFOW, *LPRASDEVINFOW;
  477.  
  478. typedef struct tagRASDEVINFOA {
  479.     DWORD dwSize;
  480.     CHAR szDeviceType[RAS_MaxDeviceType + 1];
  481.     CHAR szDeviceName[RAS_MaxDeviceName + 1];
  482. } RASDEVINFOA, *LPRASDEVINFOA;
  483.  
  484. typedef struct tagRASCTRYINFO {
  485.     DWORD dwSize;
  486.     DWORD dwCountryID;
  487.     DWORD dwNextCountryID;
  488.     DWORD dwCountryCode;
  489.     DWORD dwCountryNameOffset;
  490. } RASCTRYINFO, *LPRASCTRYINFO;
  491.  
  492. typedef RASCTRYINFO  RASCTRYINFOW, *LPRASCTRYINFOW;
  493. typedef RASCTRYINFO  RASCTRYINFOA, *LPRASCTRYINFOA;
  494.  
  495. typedef struct tagRASIPADDR {
  496.     BYTE a;
  497.     BYTE b;
  498.     BYTE c;
  499.     BYTE d;
  500. } RASIPADDR;
  501.  
  502. typedef struct tagRASENTRYW {
  503.     DWORD dwSize;
  504.     DWORD dwfOptions;
  505.     DWORD dwCountryID;
  506.     DWORD dwCountryCode;
  507.     WCHAR szAreaCode[RAS_MaxAreaCode + 1];
  508.     WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1];
  509.     DWORD dwAlternateOffset;
  510.     RASIPADDR ipaddr;
  511.     RASIPADDR ipaddrDns;
  512.     RASIPADDR ipaddrDnsAlt;
  513.     RASIPADDR ipaddrWins;
  514.     RASIPADDR ipaddrWinsAlt;
  515.     DWORD dwFrameSize;
  516.     DWORD dwfNetProtocols;
  517.     DWORD dwFramingProtocol;
  518.     WCHAR szScript[MAX_PATH];
  519.     WCHAR szAutodialDll[MAX_PATH];
  520.     WCHAR szAutodialFunc[MAX_PATH];
  521.     WCHAR szDeviceType[RAS_MaxDeviceType + 1];
  522.     WCHAR szDeviceName[RAS_MaxDeviceName + 1];
  523.     WCHAR szX25PadType[RAS_MaxPadType + 1];
  524.     WCHAR szX25Address[RAS_MaxX25Address + 1];
  525.     WCHAR szX25Facilities[RAS_MaxFacilities + 1];
  526.     WCHAR szX25UserData[RAS_MaxUserData + 1];
  527.     DWORD dwChannels;
  528.     DWORD dwReserved1;
  529.     DWORD dwReserved2;
  530. #if (WINVER >= 0x401)
  531.     DWORD dwSubEntries;
  532.     DWORD dwDialMode;
  533.     DWORD dwDialExtraPercent;
  534.     DWORD dwDialExtraSampleSeconds;
  535.     DWORD dwHangUpExtraPercent;
  536.     DWORD dwHangUpExtraSampleSeconds;
  537.     DWORD dwIdleDisconnectSeconds;
  538. #endif
  539. #if (WINVER >= 0x500)
  540.     DWORD dwType;
  541.     DWORD dwEncryptionType;
  542.     DWORD dwCustomAuthKey;
  543.     GUID guidId;
  544.     WCHAR szCustomDialDll[MAX_PATH];
  545.     DWORD dwVpnStrategy;
  546. #endif
  547. } RASENTRYW, *LPRASENTRYW;
  548.  
  549. typedef struct tagRASENTRYA {
  550.     DWORD dwSize;
  551.     DWORD dwfOptions;
  552.     DWORD dwCountryID;
  553.     DWORD dwCountryCode;
  554.     CHAR szAreaCode[RAS_MaxAreaCode + 1];
  555.     CHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1];
  556.     DWORD dwAlternateOffset;
  557.     RASIPADDR ipaddr;
  558.     RASIPADDR ipaddrDns;
  559.     RASIPADDR ipaddrDnsAlt;
  560.     RASIPADDR ipaddrWins;
  561.     RASIPADDR ipaddrWinsAlt;
  562.     DWORD dwFrameSize;
  563.     DWORD dwfNetProtocols;
  564.     DWORD dwFramingProtocol;
  565.     CHAR szScript[MAX_PATH];
  566.     CHAR szAutodialDll[MAX_PATH];
  567.     CHAR szAutodialFunc[MAX_PATH];
  568.     CHAR szDeviceType[RAS_MaxDeviceType + 1];
  569.     CHAR szDeviceName[RAS_MaxDeviceName + 1];
  570.     CHAR szX25PadType[RAS_MaxPadType + 1];
  571.     CHAR szX25Address[RAS_MaxX25Address + 1];
  572.     CHAR szX25Facilities[RAS_MaxFacilities + 1];
  573.     CHAR szX25UserData[RAS_MaxUserData + 1];
  574.     DWORD dwChannels;
  575.     DWORD dwReserved1;
  576.     DWORD dwReserved2;
  577. #if (WINVER >= 0x401)
  578.     DWORD dwSubEntries;
  579.     DWORD dwDialMode;
  580.     DWORD dwDialExtraPercent;
  581.     DWORD dwDialExtraSampleSeconds;
  582.     DWORD dwHangUpExtraPercent;
  583.     DWORD dwHangUpExtraSampleSeconds;
  584.     DWORD dwIdleDisconnectSeconds;
  585. #endif
  586. #if (WINVER >= 0x500)
  587.     DWORD dwType;
  588.     DWORD dwEncryptionType;
  589.     DWORD dwCustomAuthKey;
  590.     GUID guidId;
  591.     CHAR szCustomDialDll[MAX_PATH];
  592.     DWORD dwVpnStrategy;
  593. #endif
  594. } RASENTRYA, *LPRASENTRYA;
  595.  
  596.  
  597. #if (WINVER >= 0x401)
  598. typedef struct tagRASADPARAMS {
  599.     DWORD dwSize;
  600.     HWND hwndOwner;
  601.     DWORD dwFlags;
  602.     LONG xDlg;
  603.     LONG yDlg;
  604. } RASADPARAMS, *LPRASADPARAMS;
  605.  
  606. typedef struct tagRASSUBENTRYW {
  607.     DWORD dwSize;
  608.     DWORD dwfFlags;
  609.     WCHAR szDeviceType[RAS_MaxDeviceType + 1];
  610.     WCHAR szDeviceName[RAS_MaxDeviceName + 1];
  611.     WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1];
  612.     DWORD dwAlternateOffset;
  613. } RASSUBENTRYW, *LPRASSUBENTRYW;
  614.  
  615. typedef struct tagRASSUBENTRYA {
  616.     DWORD dwSize;
  617.     DWORD dwfFlags;
  618.     CHAR szDeviceType[RAS_MaxDeviceType + 1];
  619.     CHAR szDeviceName[RAS_MaxDeviceName + 1];
  620.     CHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1];
  621.     DWORD dwAlternateOffset;
  622. } RASSUBENTRYA, *LPRASSUBENTRYA;
  623.  
  624. typedef struct tagRASCREDENTIALSW {
  625.     DWORD dwSize;
  626.     DWORD dwMask;
  627.     WCHAR szUserName[UNLEN + 1];
  628.     WCHAR szPassword[PWLEN + 1];
  629.     WCHAR szDomain[DNLEN + 1];
  630. } RASCREDENTIALSW, *LPRASCREDENTIALSW;
  631.  
  632. typedef struct tagRASCREDENTIALSA {
  633.     DWORD dwSize;
  634.     DWORD dwMask;
  635.     CHAR szUserName[UNLEN + 1];
  636.     CHAR szPassword[PWLEN + 1];
  637.     CHAR szDomain[DNLEN + 1];
  638. } RASCREDENTIALSA, *LPRASCREDENTIALSA;
  639.  
  640. typedef struct tagRASAUTODIALENTRYW {
  641.     DWORD dwSize;
  642.     DWORD dwFlags;
  643.     DWORD dwDialingLocation;
  644.     WCHAR szEntry[RAS_MaxEntryName + 1];
  645. } RASAUTODIALENTRYW, *LPRASAUTODIALENTRYW;
  646.  
  647. typedef struct tagRASAUTODIALENTRYA {
  648.     DWORD dwSize;
  649.     DWORD dwFlags;
  650.     DWORD dwDialingLocation;
  651.     CHAR szEntry[RAS_MaxEntryName + 1];
  652. } RASAUTODIALENTRYA, *LPRASAUTODIALENTRYA;
  653. #endif /* (WINVER >= 0x401) */
  654.  
  655. #if (WINVER >= 0x500)
  656. typedef struct tagRASPPPCCP {
  657.     DWORD dwSize;
  658.     DWORD dwError;
  659.     DWORD dwCompressionAlgorithm;
  660.     DWORD dwOptions;
  661.     DWORD dwServerCompressionAlgorithm;
  662.     DWORD dwServerOptions;
  663. } RASPPPCCP, *LPRASPPPCCP;
  664.  
  665. typedef struct tagRASEAPUSERIDENTITYW {
  666.     WCHAR szUserName[UNLEN + 1];
  667.     DWORD dwSizeofEapInfo;
  668.     BYTE pbEapInfo[1];
  669. } RASEAPUSERIDENTITYW, *LPRASEAPUSERIDENTITYW;
  670.  
  671. typedef struct tagRASEAPUSERIDENTITYA {
  672.     CHAR szUserName[UNLEN + 1];
  673.     DWORD dwSizeofEapInfo;
  674.     BYTE pbEapInfo[1];
  675. } RASEAPUSERIDENTITYA, *LPRASEAPUSERIDENTITYA;
  676.  
  677. typedef struct tagRAS_STATS {
  678.     DWORD dwSize;
  679.     DWORD dwBytesXmited;
  680.     DWORD dwBytesRcved;
  681.     DWORD dwFramesXmited;
  682.     DWORD dwFramesRcved;
  683.     DWORD dwCrcErr;
  684.     DWORD dwTimeoutErr;
  685.     DWORD dwAlignmentErr;
  686.     DWORD dwHardwareOverrunErr;
  687.     DWORD dwFramingErr;
  688.     DWORD dwBufferOverrunErr;
  689.     DWORD dwCompressionRatioIn;
  690.     DWORD dwCompressionRatioOut;
  691.     DWORD dwBps;
  692.     DWORD dwConnectDuration;
  693. } RAS_STATS, *PRAS_STATS;
  694. #endif /* (WINVER >= 0x500) */
  695.  
  696.  
  697. /* UNICODE typedefs for structures*/
  698. #ifdef UNICODE
  699. typedef RASCONNW RASCONN, *LPRASCONN;
  700. typedef RASENTRYW  RASENTRY, *LPRASENTRY;
  701. typedef RASCONNSTATUSW RASCONNSTATUS, *LPRASCONNSTATUS;
  702. typedef RASDIALPARAMSW RASDIALPARAMS, *LPRASDIALPARAMS;
  703. typedef RASAMBW RASAMB, *LPRASAM;
  704. typedef RASPPPNBFW RASPPPNBF, *LPRASPPPNBF;
  705. typedef RASPPPIPXW RASPPPIPX, *LPRASPPPIPX;
  706. typedef RASPPPIPW RASPPPIP, *LPRASPPPIP; 
  707. typedef RASPPPLCPW RASPPPLCP, *LPRASPPPLCP;
  708. typedef RASSLIPW RASSLIP, *LPRASSLIP;
  709. typedef RASDEVINFOW  RASDEVINFO, *LPRASDEVINFO;
  710. typedef RASENTRYNAMEW RASENTRYNAME, *LPRASENTRYNAME;
  711.  
  712. #if (WINVER >= 0x401)
  713. typedef RASSUBENTRYW RASSUBENTRY, *LPRASSUBENTRY;
  714. typedef RASCREDENTIALSW RASCREDENTIALS, *LPRASCREDENTIALS;
  715. typedef RASAUTODIALENTRYW RASAUTODIALENTRY, *LPRASAUTODIALENTRY;
  716. #endif /* (WINVER >= 0x401) */
  717.  
  718. #if (WINVER >= 0x500)
  719. typedef RASEAPUSERIDENTITYW RASEAPUSERIDENTITY, *LPRASEAPUSERIDENTITY;
  720. #endif /* (WINVER >= 0x500) */
  721.  
  722. #else  /* ! defined UNICODE */
  723. typedef RASCONNA RASCONN, *LPRASCONN;
  724. typedef RASENTRYA  RASENTRY, *LPRASENTRY;
  725. typedef RASCONNSTATUSA RASCONNSTATUS, *LPRASCONNSTATUS;
  726. typedef RASDIALPARAMSA RASDIALPARAMS, *LPRASDIALPARAMS;
  727. typedef RASAMBA RASAMB, *LPRASAM;
  728. typedef RASPPPNBFA RASPPPNBF, *LPRASPPPNBF;
  729. typedef RASPPPIPXA RASPPPIPX, *LPRASPPPIPX;
  730. typedef RASPPPIPA RASPPPIP, *LPRASPPPIP;
  731. typedef RASPPPLCPA RASPPPLCP, *LPRASPPPLCP;
  732. typedef RASSLIPA RASSLIP, *LPRASSLIP;
  733. typedef RASDEVINFOA  RASDEVINFO, *LPRASDEVINFO;
  734. typedef RASENTRYNAMEA RASENTRYNAME, *LPRASENTRYNAME;
  735.  
  736. #if (WINVER >= 0x401)
  737. typedef RASSUBENTRYA RASSUBENTRY, *LPRASSUBENTRY;
  738. typedef RASCREDENTIALSA RASCREDENTIALS, *LPRASCREDENTIALS;
  739. typedef RASAUTODIALENTRYA RASAUTODIALENTRY, *LPRASAUTODIALENTRY;
  740. #endif /*(WINVER >= 0x401)*/
  741. #if (WINVER >= 0x500)
  742. typedef RASEAPUSERIDENTITYA RASEAPUSERIDENTITY, *LPRASEAPUSERIDENTITY;
  743. #endif /* (WINVER >= 0x500) */
  744. #endif /* ! UNICODE */
  745.  
  746. /* Callback prototypes */
  747. typedef BOOL (WINAPI * ORASADFUNC) (HWND, LPSTR, DWORD, LPDWORD); /* deprecated */
  748. typedef VOID (WINAPI * RASDIALFUNC) (UINT, RASCONNSTATE, DWORD);
  749. typedef VOID (WINAPI * RASDIALFUNC1) (HRASCONN, UINT, RASCONNSTATE, DWORD,
  750.                     DWORD);
  751. typedef DWORD (WINAPI * RASDIALFUNC2) (ULONG_PTR, DWORD, HRASCONN, UINT,
  752.                     RASCONNSTATE, DWORD, DWORD);
  753.  
  754. /* External functions */
  755. DWORD APIENTRY RasDialA (LPRASDIALEXTENSIONS, LPCSTR, LPRASDIALPARAMSA,
  756.                 DWORD, LPVOID, LPHRASCONN);
  757. DWORD APIENTRY RasDialW (LPRASDIALEXTENSIONS, LPCWSTR, LPRASDIALPARAMSW,
  758.                 DWORD, LPVOID, LPHRASCONN);
  759. DWORD APIENTRY RasEnumConnectionsA (LPRASCONNA, LPDWORD, LPDWORD);
  760. DWORD APIENTRY RasEnumConnectionsW (LPRASCONNW, LPDWORD, LPDWORD);
  761. DWORD APIENTRY RasEnumEntriesA (LPCSTR, LPCSTR, LPRASENTRYNAMEA, LPDWORD,
  762.                 LPDWORD);
  763. DWORD APIENTRY RasEnumEntriesW (LPCWSTR, LPCWSTR, LPRASENTRYNAMEW, LPDWORD,
  764.                 LPDWORD);
  765. DWORD APIENTRY RasGetConnectStatusA (HRASCONN, LPRASCONNSTATUSA);
  766. DWORD APIENTRY RasGetConnectStatusW (HRASCONN, LPRASCONNSTATUSW);
  767. DWORD APIENTRY RasGetErrorStringA (UINT, LPSTR, DWORD);
  768. DWORD APIENTRY RasGetErrorStringW (UINT, LPWSTR, DWORD);
  769. DWORD APIENTRY RasHangUpA (HRASCONN);
  770. DWORD APIENTRY RasHangUpW (HRASCONN);
  771. DWORD APIENTRY RasGetProjectionInfoA (HRASCONN, RASPROJECTION, LPVOID,
  772.                  LPDWORD);
  773. DWORD APIENTRY RasGetProjectionInfoW (HRASCONN, RASPROJECTION, LPVOID,
  774.                 LPDWORD);
  775. DWORD APIENTRY RasCreatePhonebookEntryA (HWND, LPCSTR);
  776. DWORD APIENTRY RasCreatePhonebookEntryW (HWND, LPCWSTR);
  777. DWORD APIENTRY RasEditPhonebookEntryA (HWND, LPCSTR, LPCSTR);
  778. DWORD APIENTRY RasEditPhonebookEntryW (HWND, LPCWSTR, LPCWSTR);
  779. DWORD APIENTRY RasSetEntryDialParamsA (LPCSTR, LPRASDIALPARAMSA, BOOL);
  780. DWORD APIENTRY RasSetEntryDialParamsW (LPCWSTR, LPRASDIALPARAMSW, BOOL);
  781. DWORD APIENTRY RasGetEntryDialParamsA (LPCSTR, LPRASDIALPARAMSA, LPBOOL);
  782. DWORD APIENTRY RasGetEntryDialParamsW (LPCWSTR, LPRASDIALPARAMSW, LPBOOL);
  783. DWORD APIENTRY RasEnumDevicesA (LPRASDEVINFOA, LPDWORD, LPDWORD);
  784. DWORD APIENTRY RasEnumDevicesW (LPRASDEVINFOW, LPDWORD, LPDWORD);
  785. DWORD APIENTRY RasGetCountryInfoA (LPRASCTRYINFOA, LPDWORD);
  786. DWORD APIENTRY RasGetCountryInfoW (LPRASCTRYINFOW, LPDWORD);
  787. DWORD APIENTRY RasGetEntryPropertiesA (LPCSTR, LPCSTR, LPRASENTRYA, LPDWORD,
  788.                  LPBYTE, LPDWORD);
  789. DWORD APIENTRY RasGetEntryPropertiesW (LPCWSTR, LPCWSTR, LPRASENTRYW,
  790.                  LPDWORD, LPBYTE, LPDWORD);
  791. DWORD APIENTRY RasSetEntryPropertiesA (LPCSTR, LPCSTR, LPRASENTRYA, DWORD,
  792.                  LPBYTE, DWORD);
  793. DWORD APIENTRY RasSetEntryPropertiesW (LPCWSTR, LPCWSTR, LPRASENTRYW, DWORD,
  794.                  LPBYTE, DWORD);
  795. DWORD APIENTRY RasRenameEntryA (LPCSTR, LPCSTR, LPCSTR);
  796. DWORD APIENTRY RasRenameEntryW (LPCWSTR, LPCWSTR, LPCWSTR);
  797. DWORD APIENTRY RasDeleteEntryA (LPCSTR, LPCSTR);
  798. DWORD APIENTRY RasDeleteEntryW (LPCWSTR, LPCWSTR);
  799. DWORD APIENTRY RasValidateEntryNameA (LPCSTR, LPCSTR);
  800. DWORD APIENTRY RasValidateEntryNameW (LPCWSTR, LPCWSTR);
  801.  
  802. #if (WINVER >= 0x401)
  803. typedef BOOL (WINAPI * RASADFUNCA) (LPSTR, LPSTR, LPRASADPARAMS, LPDWORD);
  804. typedef BOOL (WINAPI * RASADFUNCW) (LPWSTR, LPWSTR, LPRASADPARAMS, LPDWORD);
  805.  
  806. DWORD APIENTRY RasGetSubEntryHandleA (HRASCONN, DWORD, LPHRASCONN);
  807. DWORD APIENTRY RasGetSubEntryHandleW (HRASCONN, DWORD, LPHRASCONN);
  808. DWORD APIENTRY RasGetCredentialsA (LPCSTR, LPCSTR, LPRASCREDENTIALSA);
  809. DWORD APIENTRY RasGetCredentialsW (LPCWSTR, LPCWSTR, LPRASCREDENTIALSW);
  810. DWORD APIENTRY RasSetCredentialsA (LPCSTR, LPCSTR, LPRASCREDENTIALSA, BOOL);
  811. DWORD APIENTRY RasSetCredentialsW (LPCWSTR, LPCWSTR, LPRASCREDENTIALSW, BOOL);
  812. DWORD APIENTRY RasConnectionNotificationA (HRASCONN, HANDLE, DWORD);
  813. DWORD APIENTRY RasConnectionNotificationW (HRASCONN, HANDLE, DWORD);
  814. DWORD APIENTRY RasGetSubEntryPropertiesA (LPCSTR, LPCSTR, DWORD,
  815.                     LPRASSUBENTRYA, LPDWORD, LPBYTE, LPDWORD);
  816. DWORD APIENTRY RasGetSubEntryPropertiesW (LPCWSTR, LPCWSTR, DWORD,
  817.                     LPRASSUBENTRYW, LPDWORD, LPBYTE, LPDWORD);
  818. DWORD APIENTRY RasSetSubEntryPropertiesA (LPCSTR, LPCSTR, DWORD,
  819.                     LPRASSUBENTRYA, DWORD, LPBYTE, DWORD);
  820. DWORD APIENTRY RasSetSubEntryPropertiesW (LPCWSTR, LPCWSTR, DWORD,
  821.                     LPRASSUBENTRYW, DWORD, LPBYTE, DWORD);
  822. DWORD APIENTRY RasGetAutodialAddressA (LPCSTR, LPDWORD, LPRASAUTODIALENTRYA,
  823.                     LPDWORD, LPDWORD);
  824. DWORD APIENTRY RasGetAutodialAddressW (LPCWSTR, LPDWORD,
  825.                     LPRASAUTODIALENTRYW, LPDWORD, LPDWORD);
  826. DWORD APIENTRY RasSetAutodialAddressA (LPCSTR, DWORD, LPRASAUTODIALENTRYA,
  827.                     DWORD, DWORD);
  828. DWORD APIENTRY RasSetAutodialAddressW (LPCWSTR, DWORD, LPRASAUTODIALENTRYW,
  829.                     DWORD, DWORD);
  830. DWORD APIENTRY RasEnumAutodialAddressesA (LPSTR *, LPDWORD, LPDWORD);
  831. DWORD APIENTRY RasEnumAutodialAddressesW (LPWSTR *, LPDWORD, LPDWORD);
  832. DWORD APIENTRY RasGetAutodialEnableA (DWORD, LPBOOL);
  833. DWORD APIENTRY RasGetAutodialEnableW (DWORD, LPBOOL);
  834. DWORD APIENTRY RasSetAutodialEnableA (DWORD, BOOL);
  835. DWORD APIENTRY RasSetAutodialEnableW (DWORD, BOOL);
  836. DWORD APIENTRY RasGetAutodialParamA (DWORD, LPVOID, LPDWORD);
  837. DWORD APIENTRY RasGetAutodialParamW (DWORD, LPVOID, LPDWORD);
  838. DWORD APIENTRY RasSetAutodialParamA (DWORD, LPVOID, DWORD);
  839. DWORD APIENTRY RasSetAutodialParamW (DWORD, LPVOID, DWORD);
  840. #endif
  841.  
  842. #if (WINVER >= 0x500)
  843. typedef DWORD (WINAPI * RasCustomHangUpFn) (HRASCONN);
  844. typedef DWORD (WINAPI * RasCustomDeleteEntryNotifyFn) (LPCTSTR,    LPCTSTR, DWORD);
  845. typedef DWORD (WINAPI * RasCustomDialFn) (HINSTANCE, LPRASDIALEXTENSIONS,
  846.                 LPCTSTR, LPRASDIALPARAMS, DWORD, LPVOID, LPHRASCONN, DWORD);
  847.  
  848. DWORD APIENTRY RasInvokeEapUI (HRASCONN, DWORD, LPRASDIALEXTENSIONS, HWND);
  849. DWORD APIENTRY RasGetLinkStatistics (HRASCONN, DWORD, RAS_STATS*);
  850. DWORD APIENTRY RasGetConnectionStatistics (HRASCONN, RAS_STATS*);
  851. DWORD APIENTRY RasClearLinkStatistics (HRASCONN, DWORD);
  852. DWORD APIENTRY RasClearConnectionStatistics (HRASCONN);
  853. DWORD APIENTRY RasGetEapUserDataA (HANDLE, LPCSTR, LPCSTR, BYTE*, DWORD*);
  854. DWORD APIENTRY RasGetEapUserDataW (HANDLE, LPCWSTR, LPCWSTR, BYTE*, DWORD*);
  855. DWORD APIENTRY RasSetEapUserDataA (HANDLE, LPCSTR, LPCSTR, BYTE*, DWORD);
  856. DWORD APIENTRY RasSetEapUserDataW (HANDLE, LPCWSTR, LPCWSTR, BYTE*, DWORD);
  857. DWORD APIENTRY RasGetCustomAuthDataA (LPCSTR,    LPCSTR,    BYTE*,    DWORD*);
  858. DWORD APIENTRY RasGetCustomAuthDataW (LPCWSTR, LPCWSTR, BYTE*, DWORD*);
  859. DWORD APIENTRY RasSetCustomAuthDataA (LPCSTR,    LPCSTR,    BYTE*,    DWORD);
  860. DWORD APIENTRY RasSetCustomAuthDataW (LPCWSTR, LPCWSTR, BYTE*, DWORD);
  861. DWORD APIENTRY RasGetEapUserIdentityW (LPCWSTR, LPCWSTR, DWORD, HWND, LPRASEAPUSERIDENTITYW*);
  862. DWORD APIENTRY RasGetEapUserIdentityA (LPCSTR, LPCSTR, DWORD, HWND, LPRASEAPUSERIDENTITYA*);
  863. VOID APIENTRY RasFreeEapUserIdentityW (LPRASEAPUSERIDENTITYW);
  864. VOID APIENTRY RasFreeEapUserIdentityA (LPRASEAPUSERIDENTITYA);
  865. #endif  /* (WINVER >= 0x500) */
  866.  
  867.  
  868. /* UNICODE defines for functions */
  869. #ifdef UNICODE
  870. #define RasDial RasDialW
  871. #define RasEnumConnections RasEnumConnectionsW
  872. #define RasEnumEntries RasEnumEntriesW
  873. #define RasGetConnectStatus RasGetConnectStatusW
  874. #define RasGetErrorString RasGetErrorStringW
  875. #define RasHangUp RasHangUpW
  876. #define RasGetProjectionInfo RasGetProjectionInfoW
  877. #define RasCreatePhonebookEntry RasCreatePhonebookEntryW
  878. #define RasEditPhonebookEntry RasEditPhonebookEntryW
  879. #define RasSetEntryDialParams RasSetEntryDialParamsW
  880. #define RasGetEntryDialParams RasGetEntryDialParamsW
  881. #define RasEnumDevices RasEnumDevicesW
  882. #define RasGetCountryInfo RasGetCountryInfoW
  883. #define RasGetEntryProperties RasGetEntryPropertiesW
  884. #define RasSetEntryProperties RasSetEntryPropertiesW
  885. #define RasRenameEntry RasRenameEntryW
  886. #define RasDeleteEntry RasDeleteEntryW
  887. #define RasValidateEntryName RasValidateEntryNameW
  888. #if (WINVER >= 0x401)
  889. #define RASADFUNC RASADFUNCW
  890. #define RasGetSubEntryHandle RasGetSubEntryHandleW
  891. #define RasConnectionNotification RasConnectionNotificationW
  892. #define RasGetSubEntryProperties RasGetSubEntryPropertiesW
  893. #define RasSetSubEntryProperties RasSetSubEntryPropertiesW
  894. #define RasGetCredentials RasGetCredentialsW
  895. #define RasSetCredentials RasSetCredentialsW
  896. #define RasGetAutodialAddress RasGetAutodialAddressW
  897. #define RasSetAutodialAddress RasSetAutodialAddressW
  898. #define RasEnumAutodialAddresses RasEnumAutodialAddressesW
  899. #define RasGetAutodialEnable RasGetAutodialEnableW
  900. #define RasSetAutodialEnable RasSetAutodialEnableW
  901. #define RasGetAutodialParam RasGetAutodialParamW
  902. #define RasSetAutodialParam RasSetAutodialParamW
  903. #endif /* (WINVER >= 0x401) */
  904. #if (WINVER >= 0x500)
  905. #define RasGetEapUserData RasGetEapUserDataW
  906. #define RasSetEapUserData RasSetEapUserDataW
  907. #define RasGetCustomAuthData RasGetCustomAuthDataW
  908. #define RasSetCustomAuthData RasSetCustomAuthDataW
  909. #define RasGetEapUserIdentity RasGetEapUserIdentityW
  910. #define RasFreeEapUserIdentity RasFreeEapUserIdentityW
  911. #endif /* (WINVER >= 0x500) */
  912.  
  913. #else  /* ! defined UNICODE */
  914. #define RasDial RasDialA
  915. #define RasEnumConnections RasEnumConnectionsA
  916. #define RasEnumEntries RasEnumEntriesA
  917. #define RasGetConnectStatus RasGetConnectStatusA
  918. #define RasGetErrorString RasGetErrorStringA
  919. #define RasHangUp RasHangUpA
  920. #define RasGetProjectionInfo RasGetProjectionInfoA
  921. #define RasCreatePhonebookEntry RasCreatePhonebookEntryA
  922. #define RasEditPhonebookEntry RasEditPhonebookEntryA
  923. #define RasSetEntryDialParams RasSetEntryDialParamsA
  924. #define RasGetEntryDialParams RasGetEntryDialParamsA
  925. #define RasEnumDevices RasEnumDevicesA
  926. #define RasGetCountryInfo RasGetCountryInfoA
  927. #define RasGetEntryProperties RasGetEntryPropertiesA
  928. #define RasSetEntryProperties RasSetEntryPropertiesA
  929. #define RasRenameEntry RasRenameEntryA
  930. #define RasDeleteEntry RasDeleteEntryA
  931. #define RasValidateEntryName RasValidateEntryNameA
  932.  
  933. #if (WINVER >= 0x401)
  934. #define RASADFUNC RASADFUNCA
  935. #define RasGetSubEntryHandle RasGetSubEntryHandleA
  936. #define RasConnectionNotification RasConnectionNotificationA
  937. #define RasGetSubEntryProperties RasGetSubEntryPropertiesA
  938. #define RasSetSubEntryProperties RasSetSubEntryPropertiesA
  939. #define RasGetCredentials RasGetCredentialsA
  940. #define RasSetCredentials RasSetCredentialsA
  941. #define RasGetAutodialAddress RasGetAutodialAddressA
  942. #define RasSetAutodialAddress RasSetAutodialAddressA
  943. #define RasEnumAutodialAddressesRasEnumAutodialAddressesA
  944. #define RasGetAutodialEnable RasGetAutodialEnableA
  945. #define RasSetAutodialEnable RasSetAutodialEnableA
  946. #define RasGetAutodialParam RasGetAutodialParamA
  947. #define RasSetAutodialParam RasSetAutodialParamA
  948. #endif /*(WINVER >= 0x401)*/
  949.  
  950. #if (WINVER >= 0x500)
  951. #define RasGetEapUserData RasGetEapUserDataA
  952. #define RasSetEapUserData RasSetEapUserDataA
  953. #define RasGetCustomAuthData RasGetCustomAuthDataA
  954. #define RasSetCustomAuthData RasSetCustomAuthDataA
  955. #define RasGetEapUserIdentity RasGetEapUserIdentityA
  956. #define RasFreeEapUserIdentity RasFreeEapUserIdentityA
  957. #endif /* (WINVER >= 0x500) */
  958. #endif /* ! UNICODE */
  959.  
  960. #ifdef __cplusplus
  961. }
  962. #endif
  963. #include <poppack.h>
  964. #endif /* _RAS_H */ 
  965.