mingw-5.1.4/win32/include/ras.h
changeset 0 76b1f169d9fe
equal deleted inserted replaced
-1:000000000000 0:76b1f169d9fe
       
     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 */