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