Ras.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:50k
源码类别:

模拟服务器

开发平台:

C/C++

  1. /*++
  2. Copyright (c) Microsoft Corporation. All rights reserved.
  3. Module Name:
  4.     ras.h
  5. Abstract:
  6.     Remote Access external API
  7.     WINVER values in this file:
  8.         WINVER < 0x400 = Windows NT 3.5, Windows NT 3.51
  9.         WINVER = 0x400 = Windows 95, Windows98, Windows NT4 (default)
  10.         WINVER > 0x400 = Windows NT4 enhancements
  11.         WINVER = 0x500 = Windows 2000
  12. --*/
  13. #ifndef _RAS_H_
  14. #define _RAS_H_
  15. #if _MSC_VER > 1000
  16. #pragma once
  17. #endif
  18. #ifdef __cplusplus
  19. extern "C" {
  20. #endif
  21. #ifndef UNLEN
  22. #include <lmcons.h>
  23. #endif
  24. #include <pshpack4.h>
  25. #define RAS_MaxDeviceType     16
  26. #define RAS_MaxPhoneNumber    128
  27. #define RAS_MaxIpAddress      15
  28. #define RAS_MaxIpxAddress     21
  29. #if (WINVER >= 0x400)
  30. #define RAS_MaxEntryName      256
  31. #define RAS_MaxDeviceName     128
  32. #define RAS_MaxCallbackNumber RAS_MaxPhoneNumber
  33. #else
  34. #define RAS_MaxEntryName      20
  35. #define RAS_MaxDeviceName     32
  36. #define RAS_MaxCallbackNumber 48
  37. #endif
  38. #define RAS_MaxAreaCode       10
  39. #define RAS_MaxPadType        32
  40. #define RAS_MaxX25Address     200
  41. #define RAS_MaxFacilities     200
  42. #define RAS_MaxUserData       200
  43. #define RAS_MaxReplyMessage   1024
  44. #define RAS_MaxDnsSuffix      256
  45. DECLARE_HANDLE( HRASCONN );
  46. #define LPHRASCONN HRASCONN*
  47. #if (WINVER >= 0x501)
  48. #define RASCF_AllUsers 0x00000001
  49. #define RASCF_GlobalCreds 0x00000002
  50. #endif
  51. /* Identifies an active RAS connection.  (See RasEnumConnections)
  52. */
  53. #define RASCONNW struct tagRASCONNW
  54. RASCONNW
  55. {
  56.     DWORD    dwSize;
  57.     HRASCONN hrasconn;
  58.     WCHAR    szEntryName[ RAS_MaxEntryName + 1 ];
  59. #if (WINVER >= 0x400)
  60.     WCHAR    szDeviceType[ RAS_MaxDeviceType + 1 ];
  61.     WCHAR    szDeviceName[ RAS_MaxDeviceName + 1 ];
  62. #endif
  63. #if (WINVER >= 0x401)
  64.     WCHAR    szPhonebook [ MAX_PATH ];
  65.     DWORD    dwSubEntry;
  66. #endif
  67. #if (WINVER >= 0x500)
  68.     GUID    guidEntry;
  69. #endif
  70. #if (WINVER >= 0x501)
  71. DWORD dwFlags;
  72. LUID    luid;
  73. #endif
  74. };
  75. #define RASCONNA struct tagRASCONNA
  76. RASCONNA
  77. {
  78.     DWORD    dwSize;
  79.     HRASCONN hrasconn;
  80.     CHAR     szEntryName[ RAS_MaxEntryName + 1 ];
  81. #if (WINVER >= 0x400)
  82.     CHAR     szDeviceType[ RAS_MaxDeviceType + 1 ];
  83.     CHAR     szDeviceName[ RAS_MaxDeviceName + 1 ];
  84. #endif
  85. #if (WINVER >= 0x401)
  86.     CHAR     szPhonebook [ MAX_PATH ];
  87.     DWORD    dwSubEntry;
  88. #endif
  89. #if (WINVER >= 0x500)
  90.     GUID     guidEntry;
  91. #endif
  92. #if (WINVER >= 0x501)
  93. DWORD dwFlags;
  94. LUID    luid;
  95. #endif
  96. };
  97. #ifdef UNICODE
  98. #define RASCONN RASCONNW
  99. #else
  100. #define RASCONN RASCONNA
  101. #endif
  102. #define LPRASCONNW RASCONNW*
  103. #define LPRASCONNA RASCONNA*
  104. #define LPRASCONN  RASCONN*
  105. /* Enumerates intermediate states to a connection.  (See RasDial)
  106. */
  107. #define RASCS_PAUSED 0x1000
  108. #define RASCS_DONE   0x2000
  109. #define RASCONNSTATE enum tagRASCONNSTATE
  110. RASCONNSTATE
  111. {
  112.     RASCS_OpenPort = 0,
  113.     RASCS_PortOpened,
  114.     RASCS_ConnectDevice,
  115.     RASCS_DeviceConnected,
  116.     RASCS_AllDevicesConnected,
  117.     RASCS_Authenticate,
  118.     RASCS_AuthNotify,
  119.     RASCS_AuthRetry,
  120.     RASCS_AuthCallback,
  121.     RASCS_AuthChangePassword,
  122.     RASCS_AuthProject,
  123.     RASCS_AuthLinkSpeed,
  124.     RASCS_AuthAck,
  125.     RASCS_ReAuthenticate,
  126.     RASCS_Authenticated,
  127.     RASCS_PrepareForCallback,
  128.     RASCS_WaitForModemReset,
  129.     RASCS_WaitForCallback,
  130.     RASCS_Projected,
  131. #if (WINVER >= 0x400)
  132.     RASCS_StartAuthentication,
  133.     RASCS_CallbackComplete,
  134.     RASCS_LogonNetwork,
  135. #endif
  136.     RASCS_SubEntryConnected,
  137.     RASCS_SubEntryDisconnected,
  138.     RASCS_Interactive = RASCS_PAUSED,
  139.     RASCS_RetryAuthentication,
  140.     RASCS_CallbackSetByCaller,
  141.     RASCS_PasswordExpired,
  142. #if (WINVER >= 0x500)
  143.     RASCS_InvokeEapUI,
  144. #endif
  145.     RASCS_Connected = RASCS_DONE,
  146.     RASCS_Disconnected
  147. };
  148. #define LPRASCONNSTATE RASCONNSTATE*
  149. /* Describes the status of a RAS connection.  (See RasConnectionStatus)
  150. */
  151. #define RASCONNSTATUSW struct tagRASCONNSTATUSW
  152. RASCONNSTATUSW
  153. {
  154.     DWORD        dwSize;
  155.     RASCONNSTATE rasconnstate;
  156.     DWORD        dwError;
  157.     WCHAR        szDeviceType[ RAS_MaxDeviceType + 1 ];
  158.     WCHAR        szDeviceName[ RAS_MaxDeviceName + 1 ];
  159. #if (WINVER >= 0x401)
  160.     WCHAR        szPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
  161. #endif
  162. };
  163. #define RASCONNSTATUSA struct tagRASCONNSTATUSA
  164. RASCONNSTATUSA
  165. {
  166.     DWORD        dwSize;
  167.     RASCONNSTATE rasconnstate;
  168.     DWORD        dwError;
  169.     CHAR         szDeviceType[ RAS_MaxDeviceType + 1 ];
  170.     CHAR         szDeviceName[ RAS_MaxDeviceName + 1 ];
  171. #if (WINVER >= 0x401)
  172.     CHAR         szPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
  173. #endif
  174. };
  175. #ifdef UNICODE
  176. #define RASCONNSTATUS RASCONNSTATUSW
  177. #else
  178. #define RASCONNSTATUS RASCONNSTATUSA
  179. #endif
  180. #define LPRASCONNSTATUSW RASCONNSTATUSW*
  181. #define LPRASCONNSTATUSA RASCONNSTATUSA*
  182. #define LPRASCONNSTATUS  RASCONNSTATUS*
  183. /* Describes connection establishment parameters.  (See RasDial)
  184. */
  185. #define RASDIALPARAMSW struct tagRASDIALPARAMSW
  186. RASDIALPARAMSW
  187. {
  188.     DWORD dwSize;
  189.     WCHAR szEntryName[ RAS_MaxEntryName + 1 ];
  190.     WCHAR szPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
  191.     WCHAR szCallbackNumber[ RAS_MaxCallbackNumber + 1 ];
  192.     WCHAR szUserName[ UNLEN + 1 ];
  193.     WCHAR szPassword[ PWLEN + 1 ];
  194.     WCHAR szDomain[ DNLEN + 1 ];
  195. #if (WINVER >= 0x401)
  196.     DWORD dwSubEntry;
  197.     ULONG_PTR dwCallbackId;
  198. #endif
  199. };
  200. #define RASDIALPARAMSA struct tagRASDIALPARAMSA
  201. RASDIALPARAMSA
  202. {
  203.     DWORD dwSize;
  204.     CHAR  szEntryName[ RAS_MaxEntryName + 1 ];
  205.     CHAR  szPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
  206.     CHAR  szCallbackNumber[ RAS_MaxCallbackNumber + 1 ];
  207.     CHAR  szUserName[ UNLEN + 1 ];
  208.     CHAR  szPassword[ PWLEN + 1 ];
  209.     CHAR  szDomain[ DNLEN + 1 ];
  210. #if (WINVER >= 0x401)
  211.     DWORD dwSubEntry;
  212.     ULONG_PTR dwCallbackId;
  213. #endif
  214. };
  215. #ifdef UNICODE
  216. #define RASDIALPARAMS RASDIALPARAMSW
  217. #else
  218. #define RASDIALPARAMS RASDIALPARAMSA
  219. #endif
  220. #define LPRASDIALPARAMSW RASDIALPARAMSW*
  221. #define LPRASDIALPARAMSA RASDIALPARAMSA*
  222. #define LPRASDIALPARAMS  RASDIALPARAMS*
  223. #if (WINVER >= 0x500)
  224. #define RASEAPINFO struct tagRASEAPINFO
  225. RASEAPINFO
  226. {
  227.     DWORD dwSizeofEapInfo;
  228.     BYTE  *pbEapInfo;
  229. };
  230. #endif
  231. /* Describes extended connection establishment options.  (See RasDial)
  232. */
  233. #define RASDIALEXTENSIONS struct tagRASDIALEXTENSIONS
  234. RASDIALEXTENSIONS
  235. {
  236.     DWORD     dwSize;
  237.     DWORD     dwfOptions;
  238.     HWND      hwndParent;
  239.     ULONG_PTR reserved;
  240. #if (WINVER >= 0x500)
  241.     ULONG_PTR reserved1;
  242.     RASEAPINFO RasEapInfo;
  243. #endif
  244. };
  245. #define LPRASDIALEXTENSIONS RASDIALEXTENSIONS*
  246. /* 'dwfOptions' bit flags.
  247. */
  248. #define RDEOPT_UsePrefixSuffix           0x00000001
  249. #define RDEOPT_PausedStates              0x00000002
  250. #define RDEOPT_IgnoreModemSpeaker        0x00000004
  251. #define RDEOPT_SetModemSpeaker           0x00000008
  252. #define RDEOPT_IgnoreSoftwareCompression 0x00000010
  253. #define RDEOPT_SetSoftwareCompression    0x00000020
  254. #define RDEOPT_DisableConnectedUI        0x00000040
  255. #define RDEOPT_DisableReconnectUI        0x00000080
  256. #define RDEOPT_DisableReconnect          0x00000100
  257. #define RDEOPT_NoUser                    0x00000200
  258. #define RDEOPT_PauseOnScript             0x00000400
  259. #define RDEOPT_Router                    0x00000800
  260. #if (WINVER >= 0x500)
  261. #define RDEOPT_CustomDial                0x00001000
  262. #endif
  263. #if (WINVER >= 0x501)
  264. #define RDEOPT_UseCustomScripting        0x00002000
  265. #endif
  266. //
  267. // This flag when set in the RASENTRYNAME structure
  268. // indicates that the phonebook to which this entry
  269. // belongs is a system phonebook.
  270. //
  271. #define REN_User                         0x00000000
  272. #define REN_AllUsers                     0x00000001
  273. /* Describes an enumerated RAS phone book entry name.  (See RasEntryEnum)
  274. */
  275. #define RASENTRYNAMEW struct tagRASENTRYNAMEW
  276. RASENTRYNAMEW
  277. {
  278.     DWORD dwSize;
  279.     WCHAR szEntryName[ RAS_MaxEntryName + 1 ];
  280. #if (WINVER >= 0x500)
  281.     //
  282.     // If this flag is REN_AllUsers then its a
  283.     // system phonebook.
  284.     //
  285.     DWORD dwFlags;
  286.     WCHAR szPhonebookPath[MAX_PATH + 1];
  287. #endif
  288. };
  289. #define RASENTRYNAMEA struct tagRASENTRYNAMEA
  290. RASENTRYNAMEA
  291. {
  292.     DWORD dwSize;
  293.     CHAR  szEntryName[ RAS_MaxEntryName + 1 ];
  294. #if (WINVER >= 0x500)
  295.     DWORD dwFlags;
  296.     CHAR  szPhonebookPath[MAX_PATH + 1];
  297. #endif
  298. };
  299. #ifdef UNICODE
  300. #define RASENTRYNAME RASENTRYNAMEW
  301. #else
  302. #define RASENTRYNAME RASENTRYNAMEA
  303. #endif
  304. #define LPRASENTRYNAMEW RASENTRYNAMEW*
  305. #define LPRASENTRYNAMEA RASENTRYNAMEA*
  306. #define LPRASENTRYNAME  RASENTRYNAME*
  307. /* Protocol code to projection data structure mapping.
  308. */
  309. #define RASPROJECTION enum tagRASPROJECTION
  310. RASPROJECTION
  311. {
  312.     RASP_Amb = 0x10000,
  313.     RASP_PppNbf = 0x803F,
  314.     RASP_PppIpx = 0x802B,
  315.     RASP_PppIp = 0x8021,
  316. #if (WINVER >= 0x500)
  317.     RASP_PppCcp = 0x80FD,
  318. #endif
  319.     RASP_PppLcp = 0xC021,
  320.     RASP_Slip = 0x20000
  321. };
  322. #define LPRASPROJECTION RASPROJECTION*
  323. /* Describes the result of a RAS AMB (Authentication Message Block)
  324. ** projection.  This protocol is used with NT 3.1 and OS/2 1.3 downlevel
  325. ** RAS servers.
  326. */
  327. #define RASAMBW struct tagRASAMBW
  328. RASAMBW
  329. {
  330.     DWORD dwSize;
  331.     DWORD dwError;
  332.     WCHAR szNetBiosError[ NETBIOS_NAME_LEN + 1 ];
  333.     BYTE  bLana;
  334. };
  335. #define RASAMBA struct tagRASAMBA
  336. RASAMBA
  337. {
  338.     DWORD dwSize;
  339.     DWORD dwError;
  340.     CHAR  szNetBiosError[ NETBIOS_NAME_LEN + 1 ];
  341.     BYTE  bLana;
  342. };
  343. #ifdef UNICODE
  344. #define RASAMB RASAMBW
  345. #else
  346. #define RASAMB RASAMBA
  347. #endif
  348. #define LPRASAMBW RASAMBW*
  349. #define LPRASAMBA RASAMBA*
  350. #define LPRASAMB  RASAMB*
  351. /* Describes the result of a PPP NBF (NetBEUI) projection.
  352. */
  353. #define RASPPPNBFW struct tagRASPPPNBFW
  354. RASPPPNBFW
  355. {
  356.     DWORD dwSize;
  357.     DWORD dwError;
  358.     DWORD dwNetBiosError;
  359.     WCHAR szNetBiosError[ NETBIOS_NAME_LEN + 1 ];
  360.     WCHAR szWorkstationName[ NETBIOS_NAME_LEN + 1 ];
  361.     BYTE  bLana;
  362. };
  363. #define RASPPPNBFA struct tagRASPPPNBFA
  364. RASPPPNBFA
  365. {
  366.     DWORD dwSize;
  367.     DWORD dwError;
  368.     DWORD dwNetBiosError;
  369.     CHAR  szNetBiosError[ NETBIOS_NAME_LEN + 1 ];
  370.     CHAR  szWorkstationName[ NETBIOS_NAME_LEN + 1 ];
  371.     BYTE  bLana;
  372. };
  373. #ifdef UNICODE
  374. #define RASPPPNBF RASPPPNBFW
  375. #else
  376. #define RASPPPNBF RASPPPNBFA
  377. #endif
  378. #define LPRASPPPNBFW RASPPPNBFW*
  379. #define LPRASPPPNBFA RASPPPNBFA*
  380. #define LPRASPPPNBF  RASPPPNBF*
  381. /* Describes the results of a PPP IPX (Internetwork Packet Exchange)
  382. ** projection.
  383. */
  384. #define RASPPPIPXW struct tagRASIPXW
  385. RASPPPIPXW
  386. {
  387.     DWORD dwSize;
  388.     DWORD dwError;
  389.     WCHAR szIpxAddress[ RAS_MaxIpxAddress + 1 ];
  390. };
  391. #define RASPPPIPXA struct tagRASPPPIPXA
  392. RASPPPIPXA
  393. {
  394.     DWORD dwSize;
  395.     DWORD dwError;
  396.     CHAR  szIpxAddress[ RAS_MaxIpxAddress + 1 ];
  397. };
  398. #ifdef UNICODE
  399. #define RASPPPIPX RASPPPIPXW
  400. #else
  401. #define RASPPPIPX RASPPPIPXA
  402. #endif
  403. #define LPRASPPPIPXW RASPPPIPXW*
  404. #define LPRASPPPIPXA RASPPPIPXA*
  405. #define LPRASPPPIPX  RASPPPIPX*
  406. /* Describes the results of a PPP IP (Internet) projection.
  407. */
  408. #if (WINVER >= 0x500)
  409. /* RASPPPIP 'dwOptions' and 'dwServerOptions' flags.
  410. */
  411. #define RASIPO_VJ       0x00000001
  412. #endif
  413. #define RASPPPIPW struct tagRASPPPIPW
  414. RASPPPIPW
  415. {
  416.     DWORD dwSize;
  417.     DWORD dwError;
  418.     WCHAR szIpAddress[ RAS_MaxIpAddress + 1 ];
  419. #ifndef WINNT35COMPATIBLE
  420.     /* This field was added between Windows NT 3.51 beta and Windows NT 3.51
  421.     ** final, and between Windows 95 M8 beta and Windows 95 final.  If you do
  422.     ** not require the server address and wish to retrieve PPP IP information
  423.     ** from Windows NT 3.5 or early Windows NT 3.51 betas, or on early Windows
  424.     ** 95 betas, define WINNT35COMPATIBLE.
  425.     **
  426.     ** The server IP address is not provided by all PPP implementations,
  427.     ** though Windows NT server's do provide it.
  428.     */
  429.     WCHAR szServerIpAddress[ RAS_MaxIpAddress + 1 ];
  430. #endif
  431. #if (WINVER >= 0x500)
  432.     DWORD dwOptions;
  433.     DWORD dwServerOptions;
  434. #endif
  435. };
  436. #define RASPPPIPA struct tagRASPPPIPA
  437. RASPPPIPA
  438. {
  439.     DWORD dwSize;
  440.     DWORD dwError;
  441.     CHAR  szIpAddress[ RAS_MaxIpAddress + 1 ];
  442. #ifndef WINNT35COMPATIBLE
  443.     /* See RASPPPIPW comment.
  444.     */
  445.     CHAR  szServerIpAddress[ RAS_MaxIpAddress + 1 ];
  446. #endif
  447. #if (WINVER >= 0x500)
  448.     DWORD dwOptions;
  449.     DWORD dwServerOptions;
  450. #endif
  451. };
  452. #ifdef UNICODE
  453. #define RASPPPIP RASPPPIPW
  454. #else
  455. #define RASPPPIP RASPPPIPA
  456. #endif
  457. #define LPRASPPPIPW RASPPPIPW*
  458. #define LPRASPPPIPA RASPPPIPA*
  459. #define LPRASPPPIP  RASPPPIP*
  460. /* Describes the results of a PPP LCP/multi-link negotiation.
  461. */
  462. #if (WINVER >= 0x500)
  463. /* RASPPPLCP 'dwAuthenticatonProtocol' values.
  464. */
  465. #define RASLCPAP_PAP          0xC023
  466. #define RASLCPAP_SPAP         0xC027
  467. #define RASLCPAP_CHAP         0xC223
  468. #define RASLCPAP_EAP          0xC227
  469. /* RASPPPLCP 'dwAuthenticatonData' values.
  470. */
  471. #define RASLCPAD_CHAP_MD5     0x05
  472. #define RASLCPAD_CHAP_MS      0x80
  473. #define RASLCPAD_CHAP_MSV2    0x81
  474. /* RASPPPLCP 'dwOptions' and 'dwServerOptions' flags.
  475. */
  476. #define RASLCPO_PFC           0x00000001
  477. #define RASLCPO_ACFC          0x00000002
  478. #define RASLCPO_SSHF          0x00000004
  479. #define RASLCPO_DES_56        0x00000008
  480. #define RASLCPO_3_DES         0x00000010
  481. #endif
  482. #define RASPPPLCPW struct tagRASPPPLCPW
  483. RASPPPLCPW
  484. {
  485.     DWORD dwSize;
  486.     BOOL  fBundled;
  487. #if (WINVER >= 0x500)
  488.     DWORD dwError;
  489.     DWORD dwAuthenticationProtocol;
  490.     DWORD dwAuthenticationData;
  491.     DWORD dwEapTypeId;
  492.     DWORD dwServerAuthenticationProtocol;
  493.     DWORD dwServerAuthenticationData;
  494.     DWORD dwServerEapTypeId;
  495.     BOOL  fMultilink;
  496.     DWORD dwTerminateReason;
  497.     DWORD dwServerTerminateReason;
  498.     WCHAR szReplyMessage[RAS_MaxReplyMessage];
  499.     DWORD dwOptions;
  500.     DWORD dwServerOptions;
  501. #endif
  502. };
  503. #define RASPPPLCPA struct tagRASPPPLCPA
  504. RASPPPLCPA
  505. {
  506.     DWORD dwSize;
  507.     BOOL  fBundled;
  508. #if (WINVER >= 0x500)
  509.     DWORD dwError;
  510.     DWORD dwAuthenticationProtocol;
  511.     DWORD dwAuthenticationData;
  512.     DWORD dwEapTypeId;
  513.     DWORD dwServerAuthenticationProtocol;
  514.     DWORD dwServerAuthenticationData;
  515.     DWORD dwServerEapTypeId;
  516.     BOOL  fMultilink;
  517.     DWORD dwTerminateReason;
  518.     DWORD dwServerTerminateReason;
  519.     CHAR  szReplyMessage[RAS_MaxReplyMessage];
  520.     DWORD dwOptions;
  521.     DWORD dwServerOptions;
  522. #endif
  523. };
  524. #ifdef UNICODE
  525. #define RASPPPLCP RASPPPLCPW
  526. #else
  527. #define RASPPPLCP RASPPPLCPA
  528. #endif
  529. #define LPRASPPPLCPW RASPPPLCPW*
  530. #define LPRASPPPLCPA RASPPPLCPA*
  531. #define LPRASPPPLCP  RASPPPLCP*
  532. /* Describes the results of a SLIP (Serial Line IP) projection.
  533. */
  534. #define RASSLIPW struct tagRASSLIPW
  535. RASSLIPW
  536. {
  537.     DWORD dwSize;
  538.     DWORD dwError;
  539.     WCHAR szIpAddress[ RAS_MaxIpAddress + 1 ];
  540. };
  541. #define RASSLIPA struct tagRASSLIPA
  542. RASSLIPA
  543. {
  544.     DWORD dwSize;
  545.     DWORD dwError;
  546.     CHAR  szIpAddress[ RAS_MaxIpAddress + 1 ];
  547. };
  548. #ifdef UNICODE
  549. #define RASSLIP RASSLIPW
  550. #else
  551. #define RASSLIP RASSLIPA
  552. #endif
  553. #define LPRASSLIPW RASSLIPW*
  554. #define LPRASSLIPA RASSLIPA*
  555. #define LPRASSLIP  RASSLIP*
  556. #if (WINVER >= 0x500)
  557. /* Describes the results of a PPP CCP (Compression Control Protocol)
  558. projection.
  559. */
  560. /* RASPPPCCP 'dwCompressionAlgorithm' values.
  561. */
  562. #define RASCCPCA_MPPC         0x00000006
  563. #define RASCCPCA_STAC         0x00000005
  564. /* RASPPPCCP 'dwOptions' values.
  565. */
  566. #define RASCCPO_Compression       0x00000001
  567. #define RASCCPO_HistoryLess       0x00000002
  568. #define RASCCPO_Encryption56bit   0x00000010
  569. #define RASCCPO_Encryption40bit   0x00000020
  570. #define RASCCPO_Encryption128bit  0x00000040
  571. #define RASPPPCCP struct tagRASPPPCCP
  572. RASPPPCCP
  573. {
  574.     DWORD dwSize;
  575.     DWORD dwError;
  576.     DWORD dwCompressionAlgorithm;
  577.     DWORD dwOptions;
  578.     DWORD dwServerCompressionAlgorithm;
  579.     DWORD dwServerOptions;
  580. };
  581. #define LPRASPPPCCP  RASPPPCCP*
  582. #endif
  583. /* If using RasDial message notifications, get the notification message code
  584. ** by passing this string to the RegisterWindowMessageA() API.
  585. ** WM_RASDIALEVENT is used only if a unique message cannot be registered.
  586. */
  587. #define RASDIALEVENT    "RasDialEvent"
  588. #define WM_RASDIALEVENT 0xCCCD
  589. /* Prototypes for caller's RasDial callback handler.  Arguments are the
  590. ** message ID (currently always WM_RASDIALEVENT), the current RASCONNSTATE and
  591. ** the error that has occurred (or 0 if none).  Extended arguments are the
  592. ** handle of the RAS connection and an extended error code.
  593. **
  594. ** For RASDIALFUNC2, subsequent callback notifications for all
  595. ** subentries can be cancelled by returning FALSE.
  596. */
  597. typedef VOID (WINAPI *RASDIALFUNC)( UINT, RASCONNSTATE, DWORD );
  598. typedef VOID (WINAPI *RASDIALFUNC1)( HRASCONN, UINT, RASCONNSTATE, DWORD, DWORD );
  599. typedef DWORD (WINAPI *RASDIALFUNC2)( ULONG_PTR, DWORD, HRASCONN, UINT, RASCONNSTATE, DWORD, DWORD );
  600. /* Information describing a RAS-capable device.
  601. */
  602. #define RASDEVINFOW struct tagRASDEVINFOW
  603. RASDEVINFOW
  604. {
  605.     DWORD    dwSize;
  606.     WCHAR    szDeviceType[ RAS_MaxDeviceType + 1 ];
  607.     WCHAR    szDeviceName[ RAS_MaxDeviceName + 1 ];
  608. };
  609. #define RASDEVINFOA struct tagRASDEVINFOA
  610. RASDEVINFOA
  611. {
  612.     DWORD    dwSize;
  613.     CHAR     szDeviceType[ RAS_MaxDeviceType + 1 ];
  614.     CHAR     szDeviceName[ RAS_MaxDeviceName + 1 ];
  615. };
  616. #ifdef UNICODE
  617. #define RASDEVINFO RASDEVINFOW
  618. #else
  619. #define RASDEVINFO RASDEVINFOA
  620. #endif
  621. #define LPRASDEVINFOW RASDEVINFOW*
  622. #define LPRASDEVINFOA RASDEVINFOA*
  623. #define LPRASDEVINFO  RASDEVINFO*
  624. /* RAS country information (currently retrieved from TAPI).
  625. */
  626. #define RASCTRYINFO struct RASCTRYINFO
  627. RASCTRYINFO
  628. {
  629.     DWORD   dwSize;
  630.     DWORD   dwCountryID;
  631.     DWORD   dwNextCountryID;
  632.     DWORD   dwCountryCode;
  633.     DWORD   dwCountryNameOffset;
  634. };
  635. /* There is currently no difference between
  636. ** RASCTRYINFOA and RASCTRYINFOW.  This may
  637. ** change in the future.
  638. */
  639. #define RASCTRYINFOW   RASCTRYINFO
  640. #define RASCTRYINFOA   RASCTRYINFO
  641. #define LPRASCTRYINFOW RASCTRYINFOW*
  642. #define LPRASCTRYINFOA RASCTRYINFOW*
  643. #define LPRASCTRYINFO  RASCTRYINFO*
  644. /* A RAS IP address.
  645. */
  646. #define RASIPADDR struct RASIPADDR
  647. RASIPADDR
  648. {
  649.     BYTE a;
  650.     BYTE b;
  651.     BYTE c;
  652.     BYTE d;
  653. };
  654. #if (WINVER >= 0x500)
  655. #define ET_None         0  // No encryption
  656. #define ET_Require      1  // Require Encryption
  657. #define ET_RequireMax   2  // Require max encryption
  658. #define ET_Optional     3  // Do encryption if possible. None Ok.
  659. #endif
  660. #define VS_Default 0   // default (PPTP for now)
  661. #define VS_PptpOnly     1 // Only PPTP is attempted.
  662. #define VS_PptpFirst 2   // PPTP is tried first.
  663. #define VS_L2tpOnly  3 // Only L2TP is attempted.
  664. #define VS_L2tpFirst 4 // L2TP is tried first.
  665. /* A RAS phone book entry.
  666. */
  667. #define RASENTRYA struct tagRASENTRYA
  668. RASENTRYA
  669. {
  670.     DWORD       dwSize;
  671.     DWORD       dwfOptions;
  672.     //
  673.     // Location/phone number.
  674.     //
  675.     DWORD       dwCountryID;
  676.     DWORD       dwCountryCode;
  677.     CHAR        szAreaCode[ RAS_MaxAreaCode + 1 ];
  678.     CHAR        szLocalPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
  679.     DWORD       dwAlternateOffset;
  680.     //
  681.     // PPP/Ip
  682.     //
  683.     RASIPADDR   ipaddr;
  684.     RASIPADDR   ipaddrDns;
  685.     RASIPADDR   ipaddrDnsAlt;
  686.     RASIPADDR   ipaddrWins;
  687.     RASIPADDR   ipaddrWinsAlt;
  688.     //
  689.     // Framing
  690.     //
  691.     DWORD       dwFrameSize;
  692.     DWORD       dwfNetProtocols;
  693.     DWORD       dwFramingProtocol;
  694.     //
  695.     // Scripting
  696.     //
  697.     CHAR        szScript[ MAX_PATH ];
  698.     //
  699.     // AutoDial
  700.     //
  701.     CHAR        szAutodialDll[ MAX_PATH ];
  702.     CHAR        szAutodialFunc[ MAX_PATH ];
  703.     //
  704.     // Device
  705.     //
  706.     CHAR        szDeviceType[ RAS_MaxDeviceType + 1 ];
  707.     CHAR        szDeviceName[ RAS_MaxDeviceName + 1 ];
  708.     //
  709.     // X.25
  710.     //
  711.     CHAR        szX25PadType[ RAS_MaxPadType + 1 ];
  712.     CHAR        szX25Address[ RAS_MaxX25Address + 1 ];
  713.     CHAR        szX25Facilities[ RAS_MaxFacilities + 1 ];
  714.     CHAR        szX25UserData[ RAS_MaxUserData + 1 ];
  715.     DWORD       dwChannels;
  716.     //
  717.     // Reserved
  718.     //
  719.     DWORD       dwReserved1;
  720.     DWORD       dwReserved2;
  721. #if (WINVER >= 0x401)
  722.     //
  723.     // Multilink
  724.     //
  725.     DWORD       dwSubEntries;
  726.     DWORD       dwDialMode;
  727.     DWORD       dwDialExtraPercent;
  728.     DWORD       dwDialExtraSampleSeconds;
  729.     DWORD       dwHangUpExtraPercent;
  730.     DWORD       dwHangUpExtraSampleSeconds;
  731.     //
  732.     // Idle timeout
  733.     //
  734.     DWORD       dwIdleDisconnectSeconds;
  735. #endif
  736. #if (WINVER >= 0x500)
  737.     //
  738.     // Entry Type
  739.     //
  740.     DWORD       dwType;
  741.     //
  742.     // Encryption type
  743.     //
  744.     DWORD       dwEncryptionType;
  745.     //
  746.     // CustomAuthKey to be used for EAP
  747.     //
  748.     DWORD       dwCustomAuthKey;
  749.     //
  750.     // Guid of the connection
  751.     //
  752.     GUID        guidId;
  753.     //
  754.     // Custom Dial Dll
  755.     //
  756.     CHAR        szCustomDialDll[MAX_PATH];
  757.     //
  758.     // DwVpnStrategy
  759.     //
  760.     DWORD       dwVpnStrategy;
  761. #endif
  762. #if (WINVER >= 0x501)
  763. //
  764. // More RASEO_* options
  765. //
  766. DWORD dwfOptions2;
  767. //
  768. // For future use
  769. //
  770. DWORD       dwfOptions3;
  771. CHAR szDnsSuffix[RAS_MaxDnsSuffix];
  772. DWORD       dwTcpWindowSize;
  773. CHAR        szPrerequisitePbk[MAX_PATH];
  774. CHAR        szPrerequisiteEntry[RAS_MaxEntryName + 1];
  775. DWORD       dwRedialCount;
  776. DWORD       dwRedialPause;
  777. #endif
  778. };
  779. #define RASENTRYW struct tagRASENTRYW
  780. RASENTRYW
  781. {
  782.     DWORD       dwSize;
  783.     DWORD       dwfOptions;
  784.     //
  785.     // Location/phone number
  786.     //
  787.     DWORD       dwCountryID;
  788.     DWORD       dwCountryCode;
  789.     WCHAR       szAreaCode[ RAS_MaxAreaCode + 1 ];
  790.     WCHAR       szLocalPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
  791.     DWORD       dwAlternateOffset;
  792.     //
  793.     // PPP/Ip
  794.     //
  795.     RASIPADDR   ipaddr;
  796.     RASIPADDR   ipaddrDns;
  797.     RASIPADDR   ipaddrDnsAlt;
  798.     RASIPADDR   ipaddrWins;
  799.     RASIPADDR   ipaddrWinsAlt;
  800.     //
  801.     // Framing
  802.     //
  803.     DWORD       dwFrameSize;
  804.     DWORD       dwfNetProtocols;
  805.     DWORD       dwFramingProtocol;
  806.     //
  807.     // Scripting
  808.     //
  809.     WCHAR       szScript[ MAX_PATH ];
  810.     //
  811.     // AutoDial
  812.     //
  813.     WCHAR       szAutodialDll[ MAX_PATH ];
  814.     WCHAR       szAutodialFunc[ MAX_PATH ];
  815.     //
  816.     // Device
  817.     //
  818.     WCHAR       szDeviceType[ RAS_MaxDeviceType + 1 ];
  819.     WCHAR       szDeviceName[ RAS_MaxDeviceName + 1 ];
  820.     //
  821.     // X.25
  822.     //
  823.     WCHAR       szX25PadType[ RAS_MaxPadType + 1 ];
  824.     WCHAR       szX25Address[ RAS_MaxX25Address + 1 ];
  825.     WCHAR       szX25Facilities[ RAS_MaxFacilities + 1 ];
  826.     WCHAR       szX25UserData[ RAS_MaxUserData + 1 ];
  827.     DWORD       dwChannels;
  828.     //
  829.     // Reserved
  830.     //
  831.     DWORD       dwReserved1;
  832.     DWORD       dwReserved2;
  833. #if (WINVER >= 0x401)
  834.     //
  835.     // Multilink
  836.     //
  837.     DWORD       dwSubEntries;
  838.     DWORD       dwDialMode;
  839.     DWORD       dwDialExtraPercent;
  840.     DWORD       dwDialExtraSampleSeconds;
  841.     DWORD       dwHangUpExtraPercent;
  842.     DWORD       dwHangUpExtraSampleSeconds;
  843.     //
  844.     // Idle timeout
  845.     //
  846.     DWORD       dwIdleDisconnectSeconds;
  847. #endif
  848. #if (WINVER >= 0x500)
  849.     //
  850.     // Entry Type
  851.     //
  852.     DWORD       dwType;
  853.     //
  854.     // EncryptionType
  855.     //
  856.     DWORD       dwEncryptionType;
  857.     //
  858.     // CustomAuthKey to be used for EAP
  859.     //
  860.     DWORD       dwCustomAuthKey;
  861.     //
  862.     // Guid of the connection
  863.     //
  864.     GUID        guidId;
  865.     //
  866.     // Custom Dial Dll
  867.     //
  868.     WCHAR       szCustomDialDll[MAX_PATH];
  869.     //
  870.     // Vpn Strategy
  871.     //
  872.     DWORD       dwVpnStrategy;
  873. #endif
  874. #if (WINVER >= 0x501)
  875. //
  876. // More RASEO_* options
  877. //
  878. DWORD dwfOptions2;
  879. //
  880. // For future use
  881. //
  882. DWORD       dwfOptions3;
  883. WCHAR szDnsSuffix[RAS_MaxDnsSuffix];
  884. DWORD       dwTcpWindowSize;
  885. WCHAR       szPrerequisitePbk[MAX_PATH];
  886. WCHAR       szPrerequisiteEntry[RAS_MaxEntryName + 1];
  887. DWORD       dwRedialCount;
  888. DWORD       dwRedialPause;
  889. #endif
  890. };
  891. #ifdef UNICODE
  892. #define RASENTRY RASENTRYW
  893. #else
  894. #define RASENTRY RASENTRYA
  895. #endif
  896. #define LPRASENTRYW RASENTRYW*
  897. #define LPRASENTRYA RASENTRYA*
  898. #define LPRASENTRY  RASENTRY*
  899. /* RASENTRY 'dwfOptions' bit flags.
  900. */
  901. #define RASEO_UseCountryAndAreaCodes    0x00000001
  902. #define RASEO_SpecificIpAddr            0x00000002
  903. #define RASEO_SpecificNameServers       0x00000004
  904. #define RASEO_IpHeaderCompression       0x00000008
  905. #define RASEO_RemoteDefaultGateway      0x00000010
  906. #define RASEO_DisableLcpExtensions      0x00000020
  907. #define RASEO_TerminalBeforeDial        0x00000040
  908. #define RASEO_TerminalAfterDial         0x00000080
  909. #define RASEO_ModemLights               0x00000100
  910. #define RASEO_SwCompression             0x00000200
  911. #define RASEO_RequireEncryptedPw        0x00000400
  912. #define RASEO_RequireMsEncryptedPw      0x00000800
  913. #define RASEO_RequireDataEncryption     0x00001000
  914. #define RASEO_NetworkLogon              0x00002000
  915. #define RASEO_UseLogonCredentials       0x00004000
  916. #define RASEO_PromoteAlternates         0x00008000
  917. #if (WINVER >= 0x401)
  918. #define RASEO_SecureLocalFiles          0x00010000
  919. #endif
  920. #if (WINVER >= 0x500)
  921. #define RASEO_RequireEAP                0x00020000
  922. #define RASEO_RequirePAP                0x00040000
  923. #define RASEO_RequireSPAP               0x00080000
  924. #define RASEO_Custom                    0x00100000
  925. #define RASEO_PreviewPhoneNumber        0x00200000
  926. #define RASEO_SharedPhoneNumbers        0x00800000
  927. #define RASEO_PreviewUserPw             0x01000000
  928. #define RASEO_PreviewDomain             0x02000000
  929. #define RASEO_ShowDialingProgress       0x04000000
  930. #define RASEO_RequireCHAP               0x08000000
  931. #define RASEO_RequireMsCHAP             0x10000000
  932. #define RASEO_RequireMsCHAP2            0x20000000
  933. #define RASEO_RequireW95MSCHAP          0x40000000
  934. #define RASEO_CustomScript              0x80000000
  935. #endif
  936. #if (WINVER >= 0x501)
  937. //
  938. // RASENTRY dwfOptions2 bit flags
  939. //
  940. #define RASEO2_SecureFileAndPrint       0x00000001
  941. #define RASEO2_SecureClientForMSNet     0x00000002
  942. #define RASEO2_DontNegotiateMultilink   0x00000004
  943. #define RASEO2_DontUseRasCredentials    0x00000008
  944. #define RASEO2_UsePreSharedKey          0x00000010
  945. #define RASEO2_Internet                 0x00000020
  946. #define RASEO2_DisableNbtOverIP         0x00000040
  947. #define RASEO2_UseGlobalDeviceSettings  0x00000080
  948. #define RASEO2_ReconnectIfDropped       0x00000100
  949. #define RASEO2_SharePhoneNumbers        0x00000200
  950. #endif
  951. /* RASENTRY 'dwProtocols' bit flags.
  952. */
  953. #define RASNP_NetBEUI                   0x00000001
  954. #define RASNP_Ipx                       0x00000002
  955. #define RASNP_Ip                        0x00000004
  956. /* RASENTRY 'dwFramingProtocols' bit flags.
  957. */
  958. #define RASFP_Ppp                       0x00000001
  959. #define RASFP_Slip                      0x00000002
  960. #define RASFP_Ras                       0x00000004
  961. /* RASENTRY 'szDeviceType' default strings.
  962. */
  963. #define RASDT_Modem                     TEXT("modem")
  964. #define RASDT_Isdn                      TEXT("isdn")
  965. #define RASDT_X25                       TEXT("x25")
  966. #define RASDT_Vpn                       TEXT("vpn")
  967. #define RASDT_Pad                       TEXT("pad")
  968. #define RASDT_Generic                   TEXT("GENERIC")
  969. #define RASDT_Serial         TEXT("SERIAL")
  970. #define RASDT_FrameRelay                TEXT("FRAMERELAY")
  971. #define RASDT_Atm                       TEXT("ATM")
  972. #define RASDT_Sonet                     TEXT("SONET")
  973. #define RASDT_SW56                      TEXT("SW56")
  974. #define RASDT_Irda                      TEXT("IRDA")
  975. #define RASDT_Parallel                  TEXT("PARALLEL")
  976. #if (WINVER >= 0x501)
  977. #define RASDT_PPPoE                     TEXT("PPPoE")
  978. #endif
  979. // The entry type used to determine which UI properties
  980. // are to be presented to user.  This generally corresponds
  981. // to a Connections "add" wizard selection.
  982. //
  983. #define RASET_Phone     1  // Phone lines: modem, ISDN, X.25, etc
  984. #define RASET_Vpn       2  // Virtual private network
  985. #define RASET_Direct    3  // Direct connect: serial, parallel
  986. #define RASET_Internet  4  // BaseCamp internet
  987. #if (WINVER >= 0x501)
  988. #define RASET_Broadband 5  // Broadband
  989. #endif
  990. /* Old AutoDial DLL function prototype.
  991. **
  992. ** This prototype is documented for backward-compatibility
  993. ** purposes only.  It is superceded by the RASADFUNCA
  994. ** and RASADFUNCW definitions below.  DO NOT USE THIS
  995. ** PROTOTYPE IN NEW CODE.  SUPPORT FOR IT MAY BE REMOVED
  996. ** IN FUTURE VERSIONS OF RAS.
  997. */
  998. typedef BOOL (WINAPI *ORASADFUNC)( HWND, LPSTR, DWORD, LPDWORD );
  999. #if (WINVER >= 0x400)
  1000. /* Flags for RasConnectionNotification().
  1001. */
  1002. #define RASCN_Connection        0x00000001
  1003. #define RASCN_Disconnection     0x00000002
  1004. #define RASCN_BandwidthAdded    0x00000004
  1005. #define RASCN_BandwidthRemoved  0x00000008
  1006. #endif
  1007. #if (WINVER >= 0x401)
  1008. /* RASENTRY 'dwDialMode' values.
  1009. */
  1010. #define RASEDM_DialAll                  1
  1011. #define RASEDM_DialAsNeeded             2
  1012. /* RASENTRY 'dwIdleDisconnectSeconds' constants.
  1013. */
  1014. #define RASIDS_Disabled                 0xffffffff
  1015. #define RASIDS_UseGlobalValue           0
  1016. /* AutoDial DLL function parameter block.
  1017. */
  1018. #define RASADPARAMS struct tagRASADPARAMS
  1019. RASADPARAMS
  1020. {
  1021.     DWORD       dwSize;
  1022.     HWND        hwndOwner;
  1023.     DWORD       dwFlags;
  1024.     LONG        xDlg;
  1025.     LONG        yDlg;
  1026. };
  1027. #define LPRASADPARAMS RASADPARAMS*
  1028. /* AutoDial DLL function parameter block 'dwFlags.'
  1029. */
  1030. #define RASADFLG_PositionDlg            0x00000001
  1031. /* Prototype AutoDial DLL function.
  1032. */
  1033. typedef BOOL (WINAPI *RASADFUNCA)( LPSTR, LPSTR, LPRASADPARAMS, LPDWORD );
  1034. typedef BOOL (WINAPI *RASADFUNCW)( LPWSTR, LPWSTR, LPRASADPARAMS, LPDWORD );
  1035. #ifdef UNICODE
  1036. #define RASADFUNC RASADFUNCW
  1037. #else
  1038. #define RASADFUNC RASADFUNCA
  1039. #endif
  1040. /* A RAS phone book multilinked sub-entry.
  1041. */
  1042. #define RASSUBENTRYA struct tagRASSUBENTRYA
  1043. RASSUBENTRYA
  1044. {
  1045.     DWORD       dwSize;
  1046.     DWORD       dwfFlags;
  1047.     //
  1048.     // Device
  1049.     //
  1050.     CHAR        szDeviceType[ RAS_MaxDeviceType + 1 ];
  1051.     CHAR        szDeviceName[ RAS_MaxDeviceName + 1 ];
  1052.     //
  1053.     // Phone numbers
  1054.     //
  1055.     CHAR        szLocalPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
  1056.     DWORD       dwAlternateOffset;
  1057. };
  1058. #define RASSUBENTRYW struct tagRASSUBENTRYW
  1059. RASSUBENTRYW
  1060. {
  1061.     DWORD       dwSize;
  1062.     DWORD       dwfFlags;
  1063.     //
  1064.     // Device
  1065.     //
  1066.     WCHAR       szDeviceType[ RAS_MaxDeviceType + 1 ];
  1067.     WCHAR       szDeviceName[ RAS_MaxDeviceName + 1 ];
  1068.     //
  1069.     // Phone numbers
  1070.     //
  1071.     WCHAR       szLocalPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
  1072.     DWORD       dwAlternateOffset;
  1073. };
  1074. #ifdef UNICODE
  1075. #define RASSUBENTRY RASSUBENTRYW
  1076. #else
  1077. #define RASSUBENTRY RASSUBENTRYA
  1078. #endif
  1079. #define LPRASSUBENTRYW RASSUBENTRYW*
  1080. #define LPRASSUBENTRYA RASSUBENTRYA*
  1081. #define LPRASSUBENTRY  RASSUBENTRY*
  1082. /* Ras{Get,Set}Credentials structure.  These calls
  1083. ** supercede Ras{Get,Set}EntryDialParams.
  1084. */
  1085. #define RASCREDENTIALSA struct tagRASCREDENTIALSA
  1086. RASCREDENTIALSA
  1087. {
  1088.     DWORD dwSize;
  1089.     DWORD dwMask;
  1090.     CHAR szUserName[ UNLEN + 1 ];
  1091.     CHAR szPassword[ PWLEN + 1 ];
  1092.     CHAR szDomain[ DNLEN + 1 ];
  1093. };
  1094. #define RASCREDENTIALSW struct tagRASCREDENTIALSW
  1095. RASCREDENTIALSW
  1096. {
  1097.     DWORD dwSize;
  1098.     DWORD dwMask;
  1099.     WCHAR szUserName[ UNLEN + 1 ];
  1100.     WCHAR szPassword[ PWLEN + 1 ];
  1101.     WCHAR szDomain[ DNLEN + 1 ];
  1102. };
  1103. #ifdef UNICODE
  1104. #define RASCREDENTIALS RASCREDENTIALSW
  1105. #else
  1106. #define RASCREDENTIALS RASCREDENTIALSA
  1107. #endif
  1108. #define LPRASCREDENTIALSW RASCREDENTIALSW*
  1109. #define LPRASCREDENTIALSA RASCREDENTIALSA*
  1110. #define LPRASCREDENTIALS  RASCREDENTIALS*
  1111. /* RASCREDENTIALS 'dwMask' values.
  1112. */
  1113. #define RASCM_UserName          0x00000001
  1114. #define RASCM_Password          0x00000002
  1115. #define RASCM_Domain            0x00000004
  1116. #if (WINVER >= 501)
  1117. #define RASCM_DefaultCreds       0x00000008
  1118. #define RASCM_PreSharedKey       0x00000010
  1119. #define RASCM_ServerPreSharedKey 0x00000020
  1120. #define RASCM_DDMPreSharedKey    0x00000040
  1121. #endif
  1122. /* AutoDial address properties.
  1123. */
  1124. #define RASAUTODIALENTRYA struct tagRASAUTODIALENTRYA
  1125. RASAUTODIALENTRYA
  1126. {
  1127.     DWORD dwSize;
  1128.     DWORD dwFlags;
  1129.     DWORD dwDialingLocation;
  1130.     CHAR szEntry[ RAS_MaxEntryName + 1];
  1131. };
  1132. #define RASAUTODIALENTRYW struct tagRASAUTODIALENTRYW
  1133. RASAUTODIALENTRYW
  1134. {
  1135.     DWORD dwSize;
  1136.     DWORD dwFlags;
  1137.     DWORD dwDialingLocation;
  1138.     WCHAR szEntry[ RAS_MaxEntryName + 1];
  1139. };
  1140. #ifdef UNICODE
  1141. #define RASAUTODIALENTRY RASAUTODIALENTRYW
  1142. #else
  1143. #define RASAUTODIALENTRY RASAUTODIALENTRYA
  1144. #endif
  1145. #define LPRASAUTODIALENTRYW RASAUTODIALENTRYW*
  1146. #define LPRASAUTODIALENTRYA RASAUTODIALENTRYA*
  1147. #define LPRASAUTODIALENTRY  RASAUTODIALENTRY*
  1148. /* AutoDial control parameter values for
  1149. ** Ras{Get,Set}AutodialParam.
  1150. */
  1151. #define RASADP_DisableConnectionQuery           0
  1152. #define RASADP_LoginSessionDisable              1
  1153. #define RASADP_SavedAddressesLimit              2
  1154. #define RASADP_FailedConnectionTimeout          3
  1155. #define RASADP_ConnectionQueryTimeout           4
  1156. #endif // (WINVER >= 0x401)
  1157. #if (WINVER >= 0x500)
  1158. /* RasGetEapUserIdentity bit flags.
  1159. ** These have the same values as the RAS_EAP_FLAG_ flags in raseapif.h
  1160. */
  1161. #define RASEAPF_NonInteractive          0x00000002
  1162. #define RASEAPF_Logon                   0x00000004
  1163. #define RASEAPF_Preview                 0x00000008
  1164. /* RasGetEapUserIdentity structure.
  1165. */
  1166. #define RASEAPUSERIDENTITYA struct tagRASEAPUSERIDENTITYA
  1167. RASEAPUSERIDENTITYA
  1168. {
  1169.     CHAR        szUserName[ UNLEN + 1 ];
  1170.     DWORD       dwSizeofEapInfo;
  1171.     BYTE        pbEapInfo[ 1 ];
  1172. };
  1173. #define RASEAPUSERIDENTITYW struct tagRASEAPUSERIDENTITYW
  1174. RASEAPUSERIDENTITYW
  1175. {
  1176.     WCHAR       szUserName[ UNLEN + 1 ];
  1177.     DWORD       dwSizeofEapInfo;
  1178.     BYTE        pbEapInfo[ 1 ];
  1179. };
  1180. #ifdef UNICODE
  1181. #define RASEAPUSERIDENTITY RASEAPUSERIDENTITYW
  1182. #else
  1183. #define RASEAPUSERIDENTITY RASEAPUSERIDENTITYA
  1184. #endif
  1185. #define LPRASEAPUSERIDENTITYW RASEAPUSERIDENTITYW*
  1186. #define LPRASEAPUSERIDENTITYA RASEAPUSERIDENTITYA*
  1187. typedef DWORD (WINAPI *PFNRASGETBUFFER) (
  1188.                             PBYTE *ppBuffer,
  1189.                             PDWORD pdwSize
  1190.                             );
  1191. typedef DWORD (WINAPI *PFNRASFREEBUFFER) (
  1192.                             PBYTE pBufer);
  1193. typedef DWORD (WINAPI *PFNRASSENDBUFFER) (
  1194.                             HANDLE hPort,
  1195.                             PBYTE  pBuffer,
  1196.                             DWORD  dwSize
  1197.                             );
  1198. typedef DWORD (WINAPI *PFNRASRECEIVEBUFFER) (
  1199.                             HANDLE hPort,
  1200.                             PBYTE pBuffer,
  1201.                             PDWORD pdwSize,
  1202.                             DWORD  dwTimeOut,
  1203.                             HANDLE hEvent
  1204.                             );
  1205. typedef DWORD (WINAPI *PFNRASRETRIEVEBUFFER) (
  1206.                             HANDLE hPort,
  1207.                             PBYTE pBuffer,
  1208.                             PDWORD pdwSize
  1209.                             );
  1210. typedef  DWORD (WINAPI *RasCustomScriptExecuteFn) (
  1211.                             HANDLE hPort,
  1212.                             LPCWSTR lpszPhonebook,
  1213.                             LPCWSTR lpszEntryName,
  1214.                             PFNRASGETBUFFER pfnRasGetBuffer,
  1215.                             PFNRASFREEBUFFER pfnRasFreeBuffer,
  1216.                             PFNRASSENDBUFFER pfnRasSendBuffer,
  1217.                             PFNRASRECEIVEBUFFER pfnRasReceiveBuffer,
  1218.                             PFNRASRETRIEVEBUFFER pfnRasRetrieveBuffer,
  1219.                             HWND hWnd,
  1220.                             RASDIALPARAMS *pRasDialParams,
  1221.                             PVOID pvReserved
  1222.                             );
  1223.                             
  1224.                             
  1225.                             
  1226.                             
  1227. #endif // (WINVER >= 0x500)
  1228. #if (WINVER >= 0x0501)
  1229. #define RASCOMMSETTINGS struct tagRASCOMMSETTINGS
  1230. RASCOMMSETTINGS
  1231. {
  1232.     DWORD     dwSize;
  1233.     BYTE      bParity;
  1234.     BYTE      bStop;
  1235.     BYTE      bByteSize;
  1236.     BYTE      bAlign;
  1237. };
  1238. typedef DWORD (WINAPI *PFNRASSETCOMMSETTINGS) (
  1239.                             HANDLE hPort,
  1240.                             RASCOMMSETTINGS *pRasCommSettings,
  1241.                             PVOID  pvReserved
  1242.                             );
  1243. #define RASCUSTOMSCRIPTEXTENSIONS struct tagRASCUSTOMSCRIPTEXTENSIONS
  1244. RASCUSTOMSCRIPTEXTENSIONS
  1245. {
  1246.     DWORD                    dwSize;                  
  1247.     PFNRASSETCOMMSETTINGS    pfnRasSetCommSettings;
  1248. };
  1249. #endif
  1250. /* External RAS API function prototypes.
  1251. */
  1252. DWORD APIENTRY RasDialA( LPRASDIALEXTENSIONS, LPCSTR, LPRASDIALPARAMSA, DWORD,
  1253.                    LPVOID, LPHRASCONN );
  1254. DWORD APIENTRY RasDialW( LPRASDIALEXTENSIONS, LPCWSTR, LPRASDIALPARAMSW, DWORD,
  1255.                    LPVOID, LPHRASCONN );
  1256. DWORD APIENTRY RasEnumConnectionsA( LPRASCONNA, LPDWORD, LPDWORD );
  1257. DWORD APIENTRY RasEnumConnectionsW( LPRASCONNW, LPDWORD, LPDWORD );
  1258. DWORD APIENTRY RasEnumEntriesA( LPCSTR, LPCSTR, LPRASENTRYNAMEA, LPDWORD,
  1259.                    LPDWORD );
  1260. DWORD APIENTRY RasEnumEntriesW( LPCWSTR, LPCWSTR, LPRASENTRYNAMEW, LPDWORD,
  1261.                    LPDWORD );
  1262. DWORD APIENTRY RasGetConnectStatusA( HRASCONN, LPRASCONNSTATUSA );
  1263. DWORD APIENTRY RasGetConnectStatusW( HRASCONN, LPRASCONNSTATUSW );
  1264. DWORD APIENTRY RasGetErrorStringA( UINT, LPSTR, DWORD );
  1265. DWORD APIENTRY RasGetErrorStringW( UINT, LPWSTR, DWORD );
  1266. DWORD APIENTRY RasHangUpA( HRASCONN );
  1267. DWORD APIENTRY RasHangUpW( HRASCONN );
  1268. DWORD APIENTRY RasGetProjectionInfoA( HRASCONN, RASPROJECTION, LPVOID,
  1269.                    LPDWORD );
  1270. DWORD APIENTRY RasGetProjectionInfoW( HRASCONN, RASPROJECTION, LPVOID,
  1271.                    LPDWORD );
  1272. DWORD APIENTRY RasCreatePhonebookEntryA( HWND, LPCSTR );
  1273. DWORD APIENTRY RasCreatePhonebookEntryW( HWND, LPCWSTR );
  1274. DWORD APIENTRY RasEditPhonebookEntryA( HWND, LPCSTR, LPCSTR );
  1275. DWORD APIENTRY RasEditPhonebookEntryW( HWND, LPCWSTR, LPCWSTR );
  1276. DWORD APIENTRY RasSetEntryDialParamsA( LPCSTR, LPRASDIALPARAMSA, BOOL );
  1277. DWORD APIENTRY RasSetEntryDialParamsW( LPCWSTR, LPRASDIALPARAMSW, BOOL );
  1278. DWORD APIENTRY RasGetEntryDialParamsA( LPCSTR, LPRASDIALPARAMSA, LPBOOL );
  1279. DWORD APIENTRY RasGetEntryDialParamsW( LPCWSTR, LPRASDIALPARAMSW, LPBOOL );
  1280. DWORD APIENTRY RasEnumDevicesA( LPRASDEVINFOA, LPDWORD, LPDWORD );
  1281. DWORD APIENTRY RasEnumDevicesW( LPRASDEVINFOW, LPDWORD, LPDWORD );
  1282. DWORD APIENTRY RasGetCountryInfoA( LPRASCTRYINFOA, LPDWORD );
  1283. DWORD APIENTRY RasGetCountryInfoW( LPRASCTRYINFOW, LPDWORD );
  1284. DWORD APIENTRY RasGetEntryPropertiesA( LPCSTR, LPCSTR, LPRASENTRYA, LPDWORD, LPBYTE, LPDWORD );
  1285. DWORD APIENTRY RasGetEntryPropertiesW( LPCWSTR, LPCWSTR, LPRASENTRYW, LPDWORD, LPBYTE, LPDWORD );
  1286. DWORD APIENTRY RasSetEntryPropertiesA( LPCSTR, LPCSTR, LPRASENTRYA, DWORD, LPBYTE, DWORD );
  1287. DWORD APIENTRY RasSetEntryPropertiesW( LPCWSTR, LPCWSTR, LPRASENTRYW, DWORD, LPBYTE, DWORD );
  1288. DWORD APIENTRY RasRenameEntryA( LPCSTR, LPCSTR, LPCSTR );
  1289. DWORD APIENTRY RasRenameEntryW( LPCWSTR, LPCWSTR, LPCWSTR );
  1290. DWORD APIENTRY RasDeleteEntryA( LPCSTR, LPCSTR );
  1291. DWORD APIENTRY RasDeleteEntryW( LPCWSTR, LPCWSTR );
  1292. DWORD APIENTRY RasValidateEntryNameA( LPCSTR, LPCSTR );
  1293. DWORD APIENTRY RasValidateEntryNameW( LPCWSTR, LPCWSTR );
  1294. DWORD APIENTRY RasConnectionNotificationA( HRASCONN, HANDLE, DWORD );
  1295. DWORD APIENTRY RasConnectionNotificationW( HRASCONN, HANDLE, DWORD );
  1296. #if (WINVER >= 0x401)
  1297. DWORD APIENTRY RasGetSubEntryHandleA( HRASCONN, DWORD, LPHRASCONN );
  1298. DWORD APIENTRY RasGetSubEntryHandleW( HRASCONN, DWORD, LPHRASCONN );
  1299. DWORD APIENTRY RasGetCredentialsA( LPCSTR, LPCSTR, LPRASCREDENTIALSA);
  1300. DWORD APIENTRY RasGetCredentialsW( LPCWSTR, LPCWSTR, LPRASCREDENTIALSW );
  1301. DWORD APIENTRY RasSetCredentialsA( LPCSTR, LPCSTR, LPRASCREDENTIALSA, BOOL );
  1302. DWORD APIENTRY RasSetCredentialsW( LPCWSTR, LPCWSTR, LPRASCREDENTIALSW, BOOL );
  1303. DWORD APIENTRY RasGetSubEntryPropertiesA( LPCSTR, LPCSTR, DWORD,
  1304.                     LPRASSUBENTRYA, LPDWORD, LPBYTE, LPDWORD );
  1305. DWORD APIENTRY RasGetSubEntryPropertiesW( LPCWSTR, LPCWSTR, DWORD,
  1306.                     LPRASSUBENTRYW, LPDWORD, LPBYTE, LPDWORD );
  1307. DWORD APIENTRY RasSetSubEntryPropertiesA( LPCSTR, LPCSTR, DWORD,
  1308.                     LPRASSUBENTRYA, DWORD, LPBYTE, DWORD );
  1309. DWORD APIENTRY RasSetSubEntryPropertiesW( LPCWSTR, LPCWSTR, DWORD,
  1310.                     LPRASSUBENTRYW, DWORD, LPBYTE, DWORD );
  1311. DWORD APIENTRY RasGetAutodialAddressA( LPCSTR, LPDWORD, LPRASAUTODIALENTRYA,
  1312.                     LPDWORD, LPDWORD );
  1313. DWORD APIENTRY RasGetAutodialAddressW( LPCWSTR, LPDWORD, LPRASAUTODIALENTRYW,
  1314.                     LPDWORD, LPDWORD);
  1315. DWORD APIENTRY RasSetAutodialAddressA( LPCSTR, DWORD, LPRASAUTODIALENTRYA,
  1316.                     DWORD, DWORD );
  1317. DWORD APIENTRY RasSetAutodialAddressW( LPCWSTR, DWORD, LPRASAUTODIALENTRYW,
  1318.                     DWORD, DWORD );
  1319. DWORD APIENTRY RasEnumAutodialAddressesA( LPSTR *, LPDWORD, LPDWORD );
  1320. DWORD APIENTRY RasEnumAutodialAddressesW( LPWSTR *, LPDWORD, LPDWORD );
  1321. DWORD APIENTRY RasGetAutodialEnableA( DWORD, LPBOOL );
  1322. DWORD APIENTRY RasGetAutodialEnableW( DWORD, LPBOOL );
  1323. DWORD APIENTRY RasSetAutodialEnableA( DWORD, BOOL );
  1324. DWORD APIENTRY RasSetAutodialEnableW( DWORD, BOOL );
  1325. DWORD APIENTRY RasGetAutodialParamA( DWORD, LPVOID, LPDWORD );
  1326. DWORD APIENTRY RasGetAutodialParamW( DWORD, LPVOID, LPDWORD );
  1327. DWORD APIENTRY RasSetAutodialParamA( DWORD, LPVOID, DWORD );
  1328. DWORD APIENTRY RasSetAutodialParamW( DWORD, LPVOID, DWORD );
  1329. #endif
  1330. #if (WINVER >= 0x500)
  1331. typedef struct _RAS_STATS
  1332. {
  1333.     DWORD   dwSize;
  1334.     DWORD   dwBytesXmited;
  1335.     DWORD   dwBytesRcved;
  1336.     DWORD   dwFramesXmited;
  1337.     DWORD   dwFramesRcved;
  1338.     DWORD   dwCrcErr;
  1339.     DWORD   dwTimeoutErr;
  1340.     DWORD   dwAlignmentErr;
  1341.     DWORD   dwHardwareOverrunErr;
  1342.     DWORD   dwFramingErr;
  1343.     DWORD   dwBufferOverrunErr;
  1344.     DWORD   dwCompressionRatioIn;
  1345.     DWORD   dwCompressionRatioOut;
  1346.     DWORD   dwBps;
  1347.     DWORD   dwConnectDuration;
  1348. } RAS_STATS, *PRAS_STATS;
  1349. typedef DWORD (WINAPI *RasCustomHangUpFn) (
  1350.                             HRASCONN hRasConn
  1351.                             );
  1352. typedef DWORD (WINAPI *RasCustomDialFn) (
  1353. HINSTANCE           hInstDll,
  1354. LPRASDIALEXTENSIONS lpRasDialExtensions,
  1355. LPCTSTR              lpszPhonebook,
  1356. LPRASDIALPARAMS     lpRasDialParams,
  1357. DWORD               dwNotifierType,
  1358. LPVOID              lpvNotifier,
  1359. LPHRASCONN          lphRasConn,
  1360. DWORD               dwFlags
  1361.         );
  1362. typedef DWORD (WINAPI *RasCustomDeleteEntryNotifyFn) (
  1363.         LPCTSTR             lpszPhonebook,
  1364.         LPCTSTR             lpszEntry,
  1365.         DWORD               dwFlags);
  1366. #define RCD_SingleUser  0
  1367. #define RCD_AllUsers    0x00000001
  1368. #define RCD_Eap         0x00000002
  1369. #define RCD_Logon       0x00000004
  1370. DWORD APIENTRY RasInvokeEapUI( HRASCONN, DWORD, LPRASDIALEXTENSIONS, HWND);
  1371. DWORD APIENTRY RasGetLinkStatistics(HRASCONN hRasConn,
  1372.                                     DWORD dwSubEntry,
  1373.                                     RAS_STATS *lpStatistics);
  1374. DWORD APIENTRY RasGetConnectionStatistics(HRASCONN hRasConn,
  1375.                                           RAS_STATS *lpStatistics);
  1376. DWORD APIENTRY RasClearLinkStatistics(HRASCONN hRasConn,
  1377.                                       DWORD dwSubEntry);
  1378. DWORD APIENTRY RasClearConnectionStatistics(HRASCONN hRasConn);
  1379. DWORD APIENTRY RasGetEapUserDataA(
  1380.                    HANDLE hToken,
  1381.                    LPCSTR pszPhonebook,
  1382.                    LPCSTR pszEntry,
  1383.                    BYTE   *pbEapData,
  1384.                    DWORD  *pdwSizeofEapData);
  1385. DWORD APIENTRY RasGetEapUserDataW(
  1386.                    HANDLE  hToken,
  1387.                    LPCWSTR pszPhonebook,
  1388.                    LPCWSTR pszEntry,
  1389.                    BYTE    *pbEapData,
  1390.                    DWORD   *pdwSizeofEapData);
  1391. DWORD APIENTRY RasSetEapUserDataA(
  1392.                    HANDLE hToken,
  1393.                    LPCSTR pszPhonebook,
  1394.                    LPCSTR pszEntry,
  1395.                    BYTE   *pbEapData,
  1396.                    DWORD  dwSizeofEapData);
  1397. DWORD APIENTRY RasSetEapUserDataW(
  1398.                    HANDLE  hToken,
  1399.                    LPCWSTR pszPhonebook,
  1400.                    LPCWSTR pszEntry,
  1401.                    BYTE    *pbEapData,
  1402.                    DWORD   dwSizeofEapData);
  1403. DWORD APIENTRY RasGetCustomAuthDataA(
  1404.                    LPCSTR pszPhonebook,
  1405.                    LPCSTR pszEntry,
  1406.                    BYTE   *pbCustomAuthData,
  1407.                    DWORD  *pdwSizeofCustomAuthData);
  1408. DWORD APIENTRY RasGetCustomAuthDataW(
  1409.                    LPCWSTR pszPhonebook,
  1410.                    LPCWSTR pszEntry,
  1411.                    BYTE    *pbCustomAuthData,
  1412.                    DWORD   *pdwSizeofCustomAuthData);
  1413. DWORD APIENTRY RasSetCustomAuthDataA(
  1414.                    LPCSTR pszPhonebook,
  1415.                    LPCSTR pszEntry,
  1416.                    BYTE   *pbCustomAuthData,
  1417.                    DWORD  dwSizeofCustomAuthData
  1418.                    );
  1419. DWORD APIENTRY RasSetCustomAuthDataW(
  1420.                    LPCWSTR pszPhonebook,
  1421.                    LPCWSTR pszEntry,
  1422.                    BYTE    *pbCustomAuthData,
  1423.                    DWORD   dwSizeofCustomAuthData
  1424.                    );
  1425. DWORD APIENTRY RasGetEapUserIdentityW(
  1426.                    LPCWSTR                  pszPhonebook,
  1427.                    LPCWSTR                  pszEntry,
  1428.                    DWORD                    dwFlags,
  1429.                    HWND                     hwnd,
  1430.                    LPRASEAPUSERIDENTITYW*   ppRasEapUserIdentity
  1431. );
  1432. DWORD APIENTRY RasGetEapUserIdentityA(
  1433.                    LPCSTR                   pszPhonebook,
  1434.                    LPCSTR                   pszEntry,
  1435.                    DWORD                    dwFlags,
  1436.                    HWND                     hwnd,
  1437.                    LPRASEAPUSERIDENTITYA*   ppRasEapUserIdentity
  1438. );
  1439. VOID APIENTRY RasFreeEapUserIdentityW(
  1440.                    LPRASEAPUSERIDENTITYW    pRasEapUserIdentity
  1441. );
  1442. VOID APIENTRY RasFreeEapUserIdentityA(
  1443.                    LPRASEAPUSERIDENTITYA    pRasEapUserIdentity
  1444. );
  1445. #endif
  1446. #if (WINVER >= 0x501)
  1447. DWORD APIENTRY  RasDeleteSubEntryA(
  1448.                 LPCSTR pszPhonebook,
  1449.                 LPCSTR pszEntry,
  1450.                 DWORD  dwSubentryId);
  1451. DWORD APIENTRY  RasDeleteSubEntryW(
  1452.                 LPCWSTR pszPhonebook,
  1453.                 LPCWSTR pszEntry,
  1454.                 DWORD   dwSubEntryId);
  1455. #endif
  1456. #ifdef UNICODE
  1457. #define RasDial                 RasDialW
  1458. #define RasEnumConnections      RasEnumConnectionsW
  1459. #define RasEnumEntries          RasEnumEntriesW
  1460. #define RasGetConnectStatus     RasGetConnectStatusW
  1461. #define RasGetErrorString       RasGetErrorStringW
  1462. #define RasHangUp               RasHangUpW
  1463. #define RasGetProjectionInfo    RasGetProjectionInfoW
  1464. #define RasCreatePhonebookEntry RasCreatePhonebookEntryW
  1465. #define RasEditPhonebookEntry   RasEditPhonebookEntryW
  1466. #define RasSetEntryDialParams   RasSetEntryDialParamsW
  1467. #define RasGetEntryDialParams   RasGetEntryDialParamsW
  1468. #define RasEnumDevices          RasEnumDevicesW
  1469. #define RasGetCountryInfo       RasGetCountryInfoW
  1470. #define RasGetEntryProperties   RasGetEntryPropertiesW
  1471. #define RasSetEntryProperties   RasSetEntryPropertiesW
  1472. #define RasRenameEntry          RasRenameEntryW
  1473. #define RasDeleteEntry          RasDeleteEntryW
  1474. #define RasValidateEntryName    RasValidateEntryNameW
  1475. #if (WINVER >= 0x401)
  1476. #define RasGetSubEntryHandle        RasGetSubEntryHandleW
  1477. #define RasConnectionNotification   RasConnectionNotificationW
  1478. #define RasGetSubEntryProperties    RasGetSubEntryPropertiesW
  1479. #define RasSetSubEntryProperties    RasSetSubEntryPropertiesW
  1480. #define RasGetCredentials           RasGetCredentialsW
  1481. #define RasSetCredentials           RasSetCredentialsW
  1482. #define RasGetAutodialAddress       RasGetAutodialAddressW
  1483. #define RasSetAutodialAddress       RasSetAutodialAddressW
  1484. #define RasEnumAutodialAddresses    RasEnumAutodialAddressesW
  1485. #define RasGetAutodialEnable        RasGetAutodialEnableW
  1486. #define RasSetAutodialEnable        RasSetAutodialEnableW
  1487. #define RasGetAutodialParam         RasGetAutodialParamW
  1488. #define RasSetAutodialParam         RasSetAutodialParamW
  1489. #endif
  1490. #if (WINVER >= 0x500)
  1491. #define RasGetEapUserData           RasGetEapUserDataW
  1492. #define RasSetEapUserData           RasSetEapUserDataW
  1493. #define RasGetCustomAuthData        RasGetCustomAuthDataW
  1494. #define RasSetCustomAuthData        RasSetCustomAuthDataW
  1495. #define RasGetEapUserIdentity       RasGetEapUserIdentityW
  1496. #define RasFreeEapUserIdentity      RasFreeEapUserIdentityW
  1497. #endif
  1498. #if(WINVER >= 0x501)
  1499. #define RasDeleteSubEntry           RasDeleteSubEntryW
  1500. #endif
  1501. #else
  1502. #define RasDial                 RasDialA
  1503. #define RasEnumConnections      RasEnumConnectionsA
  1504. #define RasEnumEntries          RasEnumEntriesA
  1505. #define RasGetConnectStatus     RasGetConnectStatusA
  1506. #define RasGetErrorString       RasGetErrorStringA
  1507. #define RasHangUp               RasHangUpA
  1508. #define RasGetProjectionInfo    RasGetProjectionInfoA
  1509. #define RasCreatePhonebookEntry RasCreatePhonebookEntryA
  1510. #define RasEditPhonebookEntry   RasEditPhonebookEntryA
  1511. #define RasSetEntryDialParams   RasSetEntryDialParamsA
  1512. #define RasGetEntryDialParams   RasGetEntryDialParamsA
  1513. #define RasEnumDevices          RasEnumDevicesA
  1514. #define RasGetCountryInfo       RasGetCountryInfoA
  1515. #define RasGetEntryProperties   RasGetEntryPropertiesA
  1516. #define RasSetEntryProperties   RasSetEntryPropertiesA
  1517. #define RasRenameEntry          RasRenameEntryA
  1518. #define RasDeleteEntry          RasDeleteEntryA
  1519. #define RasValidateEntryName    RasValidateEntryNameA
  1520. #if (WINVER >= 0x401)
  1521. #define RasGetSubEntryHandle        RasGetSubEntryHandleA
  1522. #define RasConnectionNotification   RasConnectionNotificationA
  1523. #define RasGetSubEntryProperties    RasGetSubEntryPropertiesA
  1524. #define RasSetSubEntryProperties    RasSetSubEntryPropertiesA
  1525. #define RasGetCredentials           RasGetCredentialsA
  1526. #define RasSetCredentials           RasSetCredentialsA
  1527. #define RasGetAutodialAddress       RasGetAutodialAddressA
  1528. #define RasSetAutodialAddress       RasSetAutodialAddressA
  1529. #define RasEnumAutodialAddresses    RasEnumAutodialAddressesA
  1530. #define RasGetAutodialEnable        RasGetAutodialEnableA
  1531. #define RasSetAutodialEnable        RasSetAutodialEnableA
  1532. #define RasGetAutodialParam         RasGetAutodialParamA
  1533. #define RasSetAutodialParam         RasSetAutodialParamA
  1534. #endif
  1535. #if (WINVER >= 0x500)
  1536. #define RasGetEapUserData           RasGetEapUserDataA
  1537. #define RasSetEapUserData           RasSetEapUserDataA
  1538. #define RasGetCustomAuthData        RasGetCustomAuthDataA
  1539. #define RasSetCustomAuthData        RasSetCustomAuthDataA
  1540. #define RasGetEapUserIdentity       RasGetEapUserIdentityA
  1541. #define RasFreeEapUserIdentity      RasFreeEapUserIdentityA
  1542. #endif
  1543. #if (WINVER >= 0x501)
  1544. #define RasDeleteSubEntry           RasDeleteSubEntryA
  1545. #endif
  1546. #endif
  1547. #ifdef __cplusplus
  1548. }
  1549. #endif
  1550. #include <poppack.h>
  1551. #endif // _RAS_H_