home *** CD-ROM | disk | FTP | other *** search
- /* Copyright (c) 1992-1995, Microsoft Corporation, all rights reserved
- **
- ** ras.h
- ** Remote Access external API
- ** Public header for external API clients
- */
-
- #ifndef _RAS_H_
- #define _RAS_H_
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #ifndef UNLEN
- #include <lmcons.h>
- #endif
-
- #include <pshpack4.h>
-
- #define RAS_MaxDeviceType 16
- #define RAS_MaxPhoneNumber 128
- #define RAS_MaxIpAddress 15
- #define RAS_MaxIpxAddress 21
-
- #if (WINVER >= 0x400)
- #define RAS_MaxEntryName 256
- #define RAS_MaxDeviceName 128
- #define RAS_MaxCallbackNumber RAS_MaxPhoneNumber
- #else
- #define RAS_MaxEntryName 20
- #define RAS_MaxDeviceName 32
- #define RAS_MaxCallbackNumber 48
- #endif
-
-
- DECLARE_HANDLE( HRASCONN );
- #define LPHRASCONN HRASCONN*
-
-
- /* Identifies an active RAS connection. (See RasEnumConnections)
- */
- #define RASCONNW struct tagRASCONNW
- RASCONNW
- {
- DWORD dwSize;
- HRASCONN hrasconn;
- WCHAR szEntryName[ RAS_MaxEntryName + 1 ];
-
- #if (WINVER >= 0x400)
- WCHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
- WCHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
- #endif
- };
-
- #define RASCONNA struct tagRASCONNA
- RASCONNA
- {
- DWORD dwSize;
- HRASCONN hrasconn;
- CHAR szEntryName[ RAS_MaxEntryName + 1 ];
-
- #if (WINVER >= 0x400)
- CHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
- CHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
- #endif
- };
-
- #ifdef UNICODE
- #define RASCONN RASCONNW
- #else
- #define RASCONN RASCONNA
- #endif
-
- #define LPRASCONNW RASCONNW*
- #define LPRASCONNA RASCONNA*
- #define LPRASCONN RASCONN*
-
-
- /* Enumerates intermediate states to a connection. (See RasDial)
- */
- #define RASCS_PAUSED 0x1000
- #define RASCS_DONE 0x2000
-
- #define RASCONNSTATE enum tagRASCONNSTATE
- RASCONNSTATE
- {
- RASCS_OpenPort = 0,
- RASCS_PortOpened,
- RASCS_ConnectDevice,
- RASCS_DeviceConnected,
- RASCS_AllDevicesConnected,
- RASCS_Authenticate,
- RASCS_AuthNotify,
- RASCS_AuthRetry,
- RASCS_AuthCallback,
- RASCS_AuthChangePassword,
- RASCS_AuthProject,
- RASCS_AuthLinkSpeed,
- RASCS_AuthAck,
- RASCS_ReAuthenticate,
- RASCS_Authenticated,
- RASCS_PrepareForCallback,
- RASCS_WaitForModemReset,
- RASCS_WaitForCallback,
- RASCS_Projected,
-
- #if (WINVER >= 0x400)
- RASCS_StartAuthentication,
- RASCS_CallbackComplete,
- RASCS_LogonNetwork,
- #endif
-
- RASCS_Interactive = RASCS_PAUSED,
- RASCS_RetryAuthentication,
- RASCS_CallbackSetByCaller,
- RASCS_PasswordExpired,
-
- RASCS_Connected = RASCS_DONE,
- RASCS_Disconnected
- };
-
- #define LPRASCONNSTATE RASCONNSTATE*
-
-
- /* Describes the status of a RAS connection. (See RasConnectionStatus)
- */
- #define RASCONNSTATUSW struct tagRASCONNSTATUSW
- RASCONNSTATUSW
- {
- DWORD dwSize;
- RASCONNSTATE rasconnstate;
- DWORD dwError;
- WCHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
- WCHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
- };
-
- #define RASCONNSTATUSA struct tagRASCONNSTATUSA
- RASCONNSTATUSA
- {
- DWORD dwSize;
- RASCONNSTATE rasconnstate;
- DWORD dwError;
- CHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
- CHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
- };
-
- #ifdef UNICODE
- #define RASCONNSTATUS RASCONNSTATUSW
- #else
- #define RASCONNSTATUS RASCONNSTATUSA
- #endif
-
- #define LPRASCONNSTATUSW RASCONNSTATUSW*
- #define LPRASCONNSTATUSA RASCONNSTATUSA*
- #define LPRASCONNSTATUS RASCONNSTATUS*
-
-
- /* Describes connection establishment parameters. (See RasDial)
- */
- #define RASDIALPARAMSW struct tagRASDIALPARAMSW
- RASDIALPARAMSW
- {
- DWORD dwSize;
- WCHAR szEntryName[ RAS_MaxEntryName + 1 ];
- WCHAR szPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
- WCHAR szCallbackNumber[ RAS_MaxCallbackNumber + 1 ];
- WCHAR szUserName[ UNLEN + 1 ];
- WCHAR szPassword[ PWLEN + 1 ];
- WCHAR szDomain[ DNLEN + 1 ];
- };
-
- #define RASDIALPARAMSA struct tagRASDIALPARAMSA
- RASDIALPARAMSA
- {
- DWORD dwSize;
- CHAR szEntryName[ RAS_MaxEntryName + 1 ];
- CHAR szPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
- CHAR szCallbackNumber[ RAS_MaxCallbackNumber + 1 ];
- CHAR szUserName[ UNLEN + 1 ];
- CHAR szPassword[ PWLEN + 1 ];
- CHAR szDomain[ DNLEN + 1 ];
- };
-
- #ifdef UNICODE
- #define RASDIALPARAMS RASDIALPARAMSW
- #else
- #define RASDIALPARAMS RASDIALPARAMSA
- #endif
-
- #define LPRASDIALPARAMSW RASDIALPARAMSW*
- #define LPRASDIALPARAMSA RASDIALPARAMSA*
- #define LPRASDIALPARAMS RASDIALPARAMS*
-
-
- /* Describes extended connection establishment options. (See RasDial)
- */
- #define RASDIALEXTENSIONS struct tagRASDIALEXTENSIONS
- RASDIALEXTENSIONS
- {
- DWORD dwSize;
- DWORD dwfOptions;
- HWND hwndParent;
- DWORD reserved;
- };
-
- #define LPRASDIALEXTENSIONS RASDIALEXTENSIONS*
-
- /* 'dwfOptions' bit flags.
- */
- #define RDEOPT_UsePrefixSuffix 0x00000001
- #define RDEOPT_PausedStates 0x00000002
- #define RDEOPT_IgnoreModemSpeaker 0x00000004
- #define RDEOPT_SetModemSpeaker 0x00000008
- #define RDEOPT_IgnoreSoftwareCompression 0x00000010
- #define RDEOPT_SetSoftwareCompression 0x00000020
-
-
- /* Describes an enumerated RAS phone book entry name. (See RasEntryEnum)
- */
- #define RASENTRYNAMEW struct tagRASENTRYNAMEW
- RASENTRYNAMEW
- {
- DWORD dwSize;
- WCHAR szEntryName[ RAS_MaxEntryName + 1 ];
- };
-
- #define RASENTRYNAMEA struct tagRASENTRYNAMEA
- RASENTRYNAMEA
- {
- DWORD dwSize;
- CHAR szEntryName[ RAS_MaxEntryName + 1 ];
- };
-
- #ifdef UNICODE
- #define RASENTRYNAME RASENTRYNAMEW
- #else
- #define RASENTRYNAME RASENTRYNAMEA
- #endif
-
- #define LPRASENTRYNAMEW RASENTRYNAMEW*
- #define LPRASENTRYNAMEA RASENTRYNAMEA*
- #define LPRASENTRYNAME RASENTRYNAME*
-
-
- /* Protocol code to projection data structure mapping.
- */
- #define RASPROJECTION enum tagRASPROJECTION
- RASPROJECTION
- {
- RASP_Amb = 0x10000,
- RASP_PppNbf = 0x803F,
- RASP_PppIpx = 0x802B,
- RASP_PppIp = 0x8021,
- };
-
- #define LPRASPROJECTION RASPROJECTION*
-
-
- /* Describes the result of a RAS AMB (Authentication Message Block)
- ** projection. This protocol is used with NT 3.1 and OS/2 1.3 downlevel
- ** RAS servers.
- */
- #define RASAMBW struct tagRASAMBW
- RASAMBW
- {
- DWORD dwSize;
- DWORD dwError;
- WCHAR szNetBiosError[ NETBIOS_NAME_LEN + 1 ];
- BYTE bLana;
- };
-
- #define RASAMBA struct tagRASAMBA
- RASAMBA
- {
- DWORD dwSize;
- DWORD dwError;
- CHAR szNetBiosError[ NETBIOS_NAME_LEN + 1 ];
- BYTE bLana;
- };
-
- #ifdef UNICODE
- #define RASAMB RASAMBW
- #else
- #define RASAMB RASAMBA
- #endif
-
- #define LPRASAMBW RASAMBW*
- #define LPRASAMBA RASAMBA*
- #define LPRASAMB RASAMB*
-
-
- /* Describes the result of a PPP NBF (NetBEUI) projection.
- */
- #define RASPPPNBFW struct tagRASPPPNBFW
- RASPPPNBFW
- {
- DWORD dwSize;
- DWORD dwError;
- DWORD dwNetBiosError;
- WCHAR szNetBiosError[ NETBIOS_NAME_LEN + 1 ];
- WCHAR szWorkstationName[ NETBIOS_NAME_LEN + 1 ];
- BYTE bLana;
- };
-
- #define RASPPPNBFA struct tagRASPPPNBFA
- RASPPPNBFA
- {
- DWORD dwSize;
- DWORD dwError;
- DWORD dwNetBiosError;
- CHAR szNetBiosError[ NETBIOS_NAME_LEN + 1 ];
- CHAR szWorkstationName[ NETBIOS_NAME_LEN + 1 ];
- BYTE bLana;
- };
-
- #ifdef UNICODE
- #define RASPPPNBF RASPPPNBFW
- #else
- #define RASPPPNBF RASPPPNBFA
- #endif
-
- #define LPRASPPPNBFW RASPPPNBFW*
- #define LPRASPPPNBFA RASPPPNBFA*
- #define LPRASPPPNBF RASPPPNBF*
-
-
- /* Describes the results of a PPP IPX (Internetwork Packet Exchange)
- ** projection.
- */
- #define RASPPPIPXW struct tagRASIPXW
- RASPPPIPXW
- {
- DWORD dwSize;
- DWORD dwError;
- WCHAR szIpxAddress[ RAS_MaxIpxAddress + 1 ];
- };
-
-
- #define RASPPPIPXA struct tagRASPPPIPXA
- RASPPPIPXA
- {
- DWORD dwSize;
- DWORD dwError;
- CHAR szIpxAddress[ RAS_MaxIpxAddress + 1 ];
- };
-
- #ifdef UNICODE
- #define RASPPPIPX RASPPPIPXW
- #else
- #define RASPPPIPX RASPPPIPXA
- #endif
-
- #define LPRASPPPIPXW RASPPPIPXW*
- #define LPRASPPPIPXA RASPPPIPXA*
- #define LPRASPPPIPX RASPPPIPX*
-
-
- /* Describes the results of a PPP IP (Internet) projection.
- */
- #define RASPPPIPW struct tagRASPPPIPW
- RASPPPIPW
- {
- DWORD dwSize;
- DWORD dwError;
- WCHAR szIpAddress[ RAS_MaxIpAddress + 1 ];
-
- #ifndef WINNT35COMPATIBLE
-
- /* This field was added between Windows NT 3.51 beta and Windows NT 3.51
- ** final, and between Windows 95 M8 beta and Windows 95 final. If you do
- ** not require the server address and wish to retrieve PPP IP information
- ** from Windows NT 3.5 or early Windows NT 3.51 betas, or on early Windows
- ** 95 betas, define WINNT35COMPATIBLE.
- **
- ** The server IP address is not provided by all PPP implementations,
- ** though Windows NT server's do provide it.
- */
- WCHAR szServerIpAddress[ RAS_MaxIpAddress + 1 ];
-
- #endif
- };
-
- #define RASPPPIPA struct tagRASPPPIPA
- RASPPPIPA
- {
- DWORD dwSize;
- DWORD dwError;
- CHAR szIpAddress[ RAS_MaxIpAddress + 1 ];
-
- #ifndef WINNT35COMPATIBLE
-
- /* See RASPPPIPW comment.
- */
- CHAR szServerIpAddress[ RAS_MaxIpAddress + 1 ];
-
- #endif
- };
-
- #ifdef UNICODE
- #define RASPPPIP RASPPPIPW
- #else
- #define RASPPPIP RASPPPIPA
- #endif
-
- #define LPRASPPPIPW RASPPPIPW*
- #define LPRASPPPIPA RASPPPIPA*
- #define LPRASPPPIP RASPPPIP*
-
- /* If using RasDial message notifications, get the notification message code
- ** by passing this string to the RegisterWindowMessageA() API.
- ** WM_RASDIALEVENT is used only if a unique message cannot be registered.
- */
- #define RASDIALEVENT "RasDialEvent"
- #define WM_RASDIALEVENT 0xCCCD
-
- /* Prototypes for caller's RasDial callback handler. Arguments are the
- ** message ID (currently always WM_RASDIALEVENT), the current RASCONNSTATE and
- ** the error that has occurred (or 0 if none). Extended arguments are the
- ** handle of the RAS connection and an extended error code.
- */
- typedef VOID (WINAPI *RASDIALFUNC)( UINT, RASCONNSTATE, DWORD );
- typedef VOID (WINAPI *RASDIALFUNC1)( HRASCONN, UINT, RASCONNSTATE, DWORD, DWORD );
-
-
- /* External RAS API function prototypes.
- */
- DWORD APIENTRY RasDialA( LPRASDIALEXTENSIONS, LPSTR, LPRASDIALPARAMSA, DWORD,
- LPVOID, LPHRASCONN );
-
- DWORD APIENTRY RasDialW( LPRASDIALEXTENSIONS, LPWSTR, LPRASDIALPARAMSW, DWORD,
- LPVOID, LPHRASCONN );
-
- DWORD APIENTRY RasEnumConnectionsA( LPRASCONNA, LPDWORD, LPDWORD );
-
- DWORD APIENTRY RasEnumConnectionsW( LPRASCONNW, LPDWORD, LPDWORD );
-
- DWORD APIENTRY RasEnumEntriesA( LPSTR, LPSTR, LPRASENTRYNAMEA, LPDWORD,
- LPDWORD );
-
- DWORD APIENTRY RasEnumEntriesW( LPWSTR, LPWSTR, LPRASENTRYNAMEW, LPDWORD,
- LPDWORD );
-
- DWORD APIENTRY RasGetConnectStatusA( HRASCONN, LPRASCONNSTATUSA );
-
- DWORD APIENTRY RasGetConnectStatusW( HRASCONN, LPRASCONNSTATUSW );
-
- DWORD APIENTRY RasGetErrorStringA( UINT, LPSTR, DWORD );
-
- DWORD APIENTRY RasGetErrorStringW( UINT, LPWSTR, DWORD );
-
- DWORD APIENTRY RasHangUpA( HRASCONN );
-
- DWORD APIENTRY RasHangUpW( HRASCONN );
-
- DWORD APIENTRY RasGetProjectionInfoA( HRASCONN, RASPROJECTION, LPVOID,
- LPDWORD );
-
- DWORD APIENTRY RasGetProjectionInfoW( HRASCONN, RASPROJECTION, LPVOID,
- LPDWORD );
-
- DWORD APIENTRY RasCreatePhonebookEntryA( HWND, LPSTR );
-
- DWORD APIENTRY RasCreatePhonebookEntryW( HWND, LPWSTR );
-
- DWORD APIENTRY RasEditPhonebookEntryA( HWND, LPSTR, LPSTR );
-
- DWORD APIENTRY RasEditPhonebookEntryW( HWND, LPWSTR, LPWSTR );
-
- DWORD APIENTRY RasSetEntryDialParamsA( LPSTR, LPRASDIALPARAMSA, BOOL );
-
- DWORD APIENTRY RasSetEntryDialParamsW( LPWSTR, LPRASDIALPARAMSW, BOOL );
-
- DWORD APIENTRY RasGetEntryDialParamsA( LPSTR, LPRASDIALPARAMSA, LPBOOL );
-
- DWORD APIENTRY RasGetEntryDialParamsW( LPWSTR, LPRASDIALPARAMSW, LPBOOL );
-
- #ifdef UNICODE
- #define RasDial RasDialW
- #define RasEnumConnections RasEnumConnectionsW
- #define RasEnumEntries RasEnumEntriesW
- #define RasGetConnectStatus RasGetConnectStatusW
- #define RasGetErrorString RasGetErrorStringW
- #define RasHangUp RasHangUpW
- #define RasGetProjectionInfo RasGetProjectionInfoW
- #define RasCreatePhonebookEntry RasCreatePhonebookEntryW
- #define RasEditPhonebookEntry RasEditPhonebookEntryW
- #define RasSetEntryDialParams RasSetEntryDialParamsW
- #define RasGetEntryDialParams RasGetEntryDialParamsW
- #else
- #define RasDial RasDialA
- #define RasEnumConnections RasEnumConnectionsA
- #define RasEnumEntries RasEnumEntriesA
- #define RasGetConnectStatus RasGetConnectStatusA
- #define RasGetErrorString RasGetErrorStringA
- #define RasHangUp RasHangUpA
- #define RasGetProjectionInfo RasGetProjectionInfoA
- #define RasCreatePhonebookEntry RasCreatePhonebookEntryA
- #define RasEditPhonebookEntry RasEditPhonebookEntryA
- #define RasSetEntryDialParams RasSetEntryDialParamsA
- #define RasGetEntryDialParams RasGetEntryDialParamsA
- #endif
-
- #ifdef __cplusplus
- }
- #endif
-
- #include <poppack.h>
-
- #endif // _RAS_H_
-