the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 303 lines 17 kB view raw
1#include "stdafx.h" 2 3#include "DQRNetworkManager.h" 4#include "PartyController.h" 5#include <collection.h> 6#include <ppltasks.h> 7#include <ws2tcpip.h> 8#include "..\Minecraft.World\StringHelpers.h" 9#include "base64.h" 10 11#ifdef _DURANGO 12#include "..\Minecraft.World\DurangoStats.h" 13#endif 14 15#include "ChatIntegrationLayer.h" 16 17using namespace Concurrency; 18using namespace Windows::Foundation::Collections; 19 20void DQRNetworkManager::LogComment( Platform::String^ strText ) 21{ 22#ifndef _CONTENT_PACKAGE 23 static int64_t firstTime = 0; 24 wchar_t buf[64]; 25 26 int64_t currentTime = System::currentTimeMillis(); 27 if( firstTime != 0 ) 28 { 29 _i64tow_s(currentTime - firstTime, buf, 64, 10); 30 OutputDebugString(buf); 31 OutputDebugString(L" ms: "); 32 } 33 else 34 { 35 firstTime = currentTime; 36 } 37 OutputDebugString(strText->Data()); 38 OutputDebugString(L"\n"); 39#endif 40} 41 42void DQRNetworkManager::LogCommentFormat( LPCWSTR strMsg, ... ) 43{ 44 WCHAR strBuffer[2048]; 45 46 va_list args; 47 va_start(args, strMsg); 48 _vsnwprintf_s( strBuffer, 2048, _TRUNCATE, strMsg, args ); 49 strBuffer[2047] = L'\0'; 50 51 va_end(args); 52 53 LogComment(ref new Platform::String(strBuffer)); 54} 55 56void DQRNetworkManager::LogCommentWithError( Platform::String^ strTest, HRESULT hr ) 57{ 58 Platform::String^ final = strTest + GetErrorString(hr); 59 LogComment(final); 60} 61 62Platform::String^ DQRNetworkManager::GetErrorString( HRESULT hr ) 63{ 64 Platform::String^ str = FormatString(L" %s [0x%0.8x]", ConvertHResultToErrorName(hr)->Data(), hr ); 65 return str; 66} 67 68Platform::String^ DQRNetworkManager::FormatString( LPCWSTR strMsg, ... ) 69{ 70 WCHAR strBuffer[2048]; 71 72 va_list args; 73 va_start(args, strMsg); 74 _vsnwprintf_s( strBuffer, 2048, _TRUNCATE, strMsg, args ); 75 strBuffer[2047] = L'\0'; 76 77 va_end(args); 78 79 Platform::String^ str = ref new Platform::String(strBuffer); 80 return str; 81} 82 83Platform::String^ DQRNetworkManager::ConvertHResultToErrorName( HRESULT hr ) 84{ 85 switch( hr ) 86 { 87 // Generic errors 88 case S_OK: return L"S_OK"; 89 case S_FALSE: return L"S_FALSE"; 90 case E_OUTOFMEMORY: return L"E_OUTOFMEMORY"; 91 case E_ACCESSDENIED: return L"E_ACCESSDENIED"; 92 case E_INVALIDARG: return L"E_INVALIDARG"; 93 case E_UNEXPECTED: return L"E_UNEXPECTED"; 94 case E_ABORT: return L"E_ABORT"; 95 case E_FAIL: return L"E_FAIL"; 96 case E_NOTIMPL: return L"E_NOTIMPL"; 97 case E_ILLEGAL_METHOD_CALL: return L"E_ILLEGAL_METHOD_CALL"; 98 99 // Authentication specific errors 100 case 0x87DD0003: return L"AM_E_XASD_UNEXPECTED"; 101 case 0x87DD0004: return L"AM_E_XASU_UNEXPECTED"; 102 case 0x87DD0005: return L"AM_E_XAST_UNEXPECTED"; 103 case 0x87DD0006: return L"AM_E_XSTS_UNEXPECTED"; 104 case 0x87DD0007: return L"AM_E_XDEVICE_UNEXPECTED"; 105 case 0x87DD0008: return L"AM_E_DEVMODE_NOT_AUTHORIZED"; 106 case 0x87DD0009: return L"AM_E_NOT_AUTHORIZED"; 107 case 0x87DD000A: return L"AM_E_FORBIDDEN"; 108 case 0x87DD000B: return L"AM_E_UNKNOWN_TARGET"; 109 case 0x87DD000C: return L"AM_E_INVALID_NSAL_DATA"; 110 case 0x87DD000D: return L"AM_E_TITLE_NOT_AUTHENTICATED"; 111 case 0x87DD000E: return L"AM_E_TITLE_NOT_AUTHORIZED"; 112 case 0x87DD000F: return L"AM_E_DEVICE_NOT_AUTHENTICATED"; 113 case 0x87DD0010: return L"AM_E_INVALID_USER_INDEX"; 114 case 0x87DD0011: return L"AM_E_USER_HASH_MISSING"; 115 case 0x87DD0012: return L"AM_E_ACTOR_NOT_SPECIFIED"; 116 case 0x87DD0013: return L"AM_E_USER_NOT_FOUND"; 117 case 0x87DD0014: return L"AM_E_INVALID_SUBTOKEN"; 118 case 0x87DD0015: return L"AM_E_INVALID_ENVIRONMENT"; 119 case 0x87DD0016: return L"AM_E_XASD_TIMEOUT"; 120 case 0x87DD0017: return L"AM_E_XASU_TIMEOUT"; 121 case 0x87DD0018: return L"AM_E_XAST_TIMEOUT"; 122 case 0x87DD0019: return L"AM_E_XSTS_TIMEOUT"; 123 case 0x8015DC00: return L"XO_E_DEVMODE_NOT_AUTHORIZED"; 124 case 0x8015DC01: return L"XO_E_SYSTEM_UPDATE_REQUIRED"; 125 case 0x8015DC02: return L"XO_E_CONTENT_UPDATE_REQUIRED"; 126 case 0x8015DC03: return L"XO_E_ENFORCEMENT_BAN"; 127 case 0x8015DC04: return L"XO_E_THIRD_PARTY_BAN"; 128 case 0x8015DC05: return L"XO_E_ACCOUNT_PARENTALLY_RESTRICTED"; 129 case 0x8015DC06: return L"XO_E_DEVICE_SUBSCRIPTION_NOT_ACTIVATED"; 130 case 0x8015DC08: return L"XO_E_ACCOUNT_BILLING_MAINTENANCE_REQUIRED"; 131 case 0x8015DC09: return L"XO_E_ACCOUNT_CREATION_REQUIRED"; 132 case 0x8015DC0A: return L"XO_E_ACCOUNT_TERMS_OF_USE_NOT_ACCEPTED"; 133 case 0x8015DC0B: return L"XO_E_ACCOUNT_COUNTRY_NOT_AUTHORIZED"; 134 case 0x8015DC0C: return L"XO_E_ACCOUNT_AGE_VERIFICATION_REQUIRED"; 135 case 0x8015DC0D: return L"XO_E_ACCOUNT_CURFEW"; 136 case 0x8015DC0E: return L"XO_E_ACCOUNT_ZEST_MAINTENANCE_REQUIRED"; 137 case 0x8015DC0F: return L"XO_E_ACCOUNT_CSV_TRANSITION_REQUIRED"; 138 case 0x8015DC10: return L"XO_E_ACCOUNT_MAINTENANCE_REQUIRED"; 139 case 0x8015DC11: return L"XO_E_ACCOUNT_TYPE_NOT_ALLOWED"; 140 case 0x8015DC12: return L"XO_E_CONTENT_ISOLATION"; 141 case 0x8015DC13: return L"XO_E_ACCOUNT_NAME_CHANGE_REQUIRED"; 142 case 0x8015DC14: return L"XO_E_DEVICE_CHALLENGE_REQUIRED"; 143 case 0x8015DC20: return L"XO_E_EXPIRED_DEVICE_TOKEN"; 144 case 0x8015DC21: return L"XO_E_EXPIRED_TITLE_TOKEN"; 145 case 0x8015DC22: return L"XO_E_EXPIRED_USER_TOKEN"; 146 case 0x8015DC23: return L"XO_E_INVALID_DEVICE_TOKEN"; 147 case 0x8015DC24: return L"XO_E_INVALID_TITLE_TOKEN"; 148 case 0x8015DC25: return L"XO_E_INVALID_USER_TOKEN"; 149 150 // winsock errors 151 case MAKE_HRESULT(1,7,WSAEWOULDBLOCK) : return L"WSAEWOULDBLOCK"; 152 case MAKE_HRESULT(1,7,WSAEINPROGRESS) : return L"WSAEINPROGRESS"; 153 case MAKE_HRESULT(1,7,WSAEALREADY) : return L"WSAEALREADY"; 154 case MAKE_HRESULT(1,7,WSAENOTSOCK) : return L"WSAENOTSOCK"; 155 case MAKE_HRESULT(1,7,WSAEDESTADDRREQ) : return L"WSAEDESTADDRREQ"; 156 case MAKE_HRESULT(1,7,WSAEMSGSIZE) : return L"WSAEMSGSIZE"; 157 case MAKE_HRESULT(1,7,WSAEPROTOTYPE) : return L"WSAEPROTOTYPE"; 158 case MAKE_HRESULT(1,7,WSAENOPROTOOPT) : return L"WSAENOPROTOOPT"; 159 case MAKE_HRESULT(1,7,WSAEPROTONOSUPPORT) : return L"WSAEPROTONOSUPPORT"; 160 case MAKE_HRESULT(1,7,WSAESOCKTNOSUPPORT) : return L"WSAESOCKTNOSUPPORT"; 161 case MAKE_HRESULT(1,7,WSAEOPNOTSUPP) : return L"WSAEOPNOTSUPP"; 162 case MAKE_HRESULT(1,7,WSAEPFNOSUPPORT) : return L"WSAEPFNOSUPPORT"; 163 case MAKE_HRESULT(1,7,WSAEAFNOSUPPORT) : return L"WSAEAFNOSUPPORT"; 164 case MAKE_HRESULT(1,7,WSAEADDRINUSE) : return L"WSAEADDRINUSE"; 165 case MAKE_HRESULT(1,7,WSAEADDRNOTAVAIL) : return L"WSAEADDRNOTAVAIL"; 166 case MAKE_HRESULT(1,7,WSAENETDOWN) : return L"WSAENETDOWN"; 167 case MAKE_HRESULT(1,7,WSAENETUNREACH) : return L"WSAENETUNREACH"; 168 case MAKE_HRESULT(1,7,WSAENETRESET) : return L"WSAENETRESET"; 169 case MAKE_HRESULT(1,7,WSAECONNABORTED) : return L"WSAECONNABORTED"; 170 case MAKE_HRESULT(1,7,WSAECONNRESET) : return L"WSAECONNRESET"; 171 case MAKE_HRESULT(1,7,WSAENOBUFS) : return L"WSAENOBUFS"; 172 case MAKE_HRESULT(1,7,WSAEISCONN) : return L"WSAEISCONN"; 173 case MAKE_HRESULT(1,7,WSAENOTCONN) : return L"WSAENOTCONN"; 174 case MAKE_HRESULT(1,7,WSAESHUTDOWN) : return L"WSAESHUTDOWN"; 175 case MAKE_HRESULT(1,7,WSAETOOMANYREFS) : return L"WSAETOOMANYREFS"; 176 case MAKE_HRESULT(1,7,WSAETIMEDOUT) : return L"WSAETIMEDOUT"; 177 case MAKE_HRESULT(1,7,WSAECONNREFUSED) : return L"WSAECONNREFUSED"; 178 case MAKE_HRESULT(1,7,WSAELOOP) : return L"WSAELOOP"; 179 case MAKE_HRESULT(1,7,WSAENAMETOOLONG) : return L"WSAENAMETOOLONG"; 180 case MAKE_HRESULT(1,7,WSAEHOSTDOWN) : return L"WSAEHOSTDOWN"; 181 case MAKE_HRESULT(1,7,WSAEHOSTUNREACH) : return L"WSAEHOSTUNREACH"; 182 case MAKE_HRESULT(1,7,WSAENOTEMPTY) : return L"WSAENOTEMPTY"; 183 case MAKE_HRESULT(1,7,WSAEPROCLIM) : return L"WSAEPROCLIM"; 184 case MAKE_HRESULT(1,7,WSAEUSERS) : return L"WSAEUSERS"; 185 case MAKE_HRESULT(1,7,WSAEDQUOT) : return L"WSAEDQUOT"; 186 case MAKE_HRESULT(1,7,WSAESTALE) : return L"WSAESTALE"; 187 case MAKE_HRESULT(1,7,WSAEREMOTE) : return L"WSAEREMOTE"; 188 case MAKE_HRESULT(1,7,WSASYSNOTREADY) : return L"WSASYSNOTREADY"; 189 case MAKE_HRESULT(1,7,WSAVERNOTSUPPORTED) : return L"WSAVERNOTSUPPORTED"; 190 case MAKE_HRESULT(1,7,WSANOTINITIALISED) : return L"WSANOTINITIALISED"; 191 case MAKE_HRESULT(1,7,WSAEDISCON) : return L"WSAEDISCON"; 192 case MAKE_HRESULT(1,7,WSAENOMORE) : return L"WSAENOMORE"; 193 case MAKE_HRESULT(1,7,WSAECANCELLED) : return L"WSAECANCELLED"; 194 case MAKE_HRESULT(1,7,WSAEINVALIDPROCTABLE) : return L"WSAEINVALIDPROCTABLE"; 195 case MAKE_HRESULT(1,7,WSAEINVALIDPROVIDER) : return L"WSAEINVALIDPROVIDER"; 196 case MAKE_HRESULT(1,7,WSAEPROVIDERFAILEDINIT) : return L"WSAEPROVIDERFAILEDINIT"; 197 case MAKE_HRESULT(1,7,WSASYSCALLFAILURE) : return L"WSASYSCALLFAILURE"; 198 case MAKE_HRESULT(1,7,WSASERVICE_NOT_FOUND) : return L"WSASERVICE_NOT_FOUND"; 199 case MAKE_HRESULT(1,7,WSATYPE_NOT_FOUND) : return L"WSATYPE_NOT_FOUND"; 200 case MAKE_HRESULT(1,7,WSA_E_NO_MORE) : return L"WSA_E_NO_MORE"; 201 case MAKE_HRESULT(1,7,WSA_E_CANCELLED) : return L"WSA_E_CANCELLED"; 202 case MAKE_HRESULT(1,7,WSAEREFUSED) : return L"WSAEREFUSED"; 203 case MAKE_HRESULT(1,7,WSAHOST_NOT_FOUND) : return L"WSAHOST_NOT_FOUND"; 204 case MAKE_HRESULT(1,7,WSATRY_AGAIN) : return L"WSATRY_AGAIN"; 205 case MAKE_HRESULT(1,7,WSANO_RECOVERY) : return L"WSANO_RECOVERY"; 206 case MAKE_HRESULT(1,7,WSANO_DATA) : return L"WSANO_DATA"; 207 case MAKE_HRESULT(1,7,WSA_QOS_RECEIVERS) : return L"WSA_QOS_RECEIVERS"; 208 case MAKE_HRESULT(1,7,WSA_QOS_SENDERS) : return L"WSA_QOS_SENDERS"; 209 case MAKE_HRESULT(1,7,WSA_QOS_NO_SENDERS) : return L"WSA_QOS_NO_SENDERS"; 210 case MAKE_HRESULT(1,7,WSA_QOS_NO_RECEIVERS) : return L"WSA_QOS_NO_RECEIVERS"; 211 case MAKE_HRESULT(1,7,WSA_QOS_REQUEST_CONFIRMED) : return L"WSA_QOS_REQUEST_CONFIRMED"; 212 case MAKE_HRESULT(1,7,WSA_QOS_ADMISSION_FAILURE) : return L"WSA_QOS_ADMISSION_FAILURE"; 213 case MAKE_HRESULT(1,7,WSA_QOS_POLICY_FAILURE) : return L"WSA_QOS_POLICY_FAILURE"; 214 case MAKE_HRESULT(1,7,WSA_QOS_BAD_STYLE) : return L"WSA_QOS_BAD_STYLE"; 215 case MAKE_HRESULT(1,7,WSA_QOS_BAD_OBJECT) : return L"WSA_QOS_BAD_OBJECT"; 216 case MAKE_HRESULT(1,7,WSA_QOS_TRAFFIC_CTRL_ERROR) : return L"WSA_QOS_TRAFFIC_CTRL_ERROR"; 217 case MAKE_HRESULT(1,7,WSA_QOS_GENERIC_ERROR) : return L"WSA_QOS_GENERIC_ERROR"; 218 case MAKE_HRESULT(1,7,WSA_QOS_ESERVICETYPE) : return L"WSA_QOS_ESERVICETYPE"; 219 case MAKE_HRESULT(1,7,WSA_QOS_EFLOWSPEC) : return L"WSA_QOS_EFLOWSPEC"; 220 case MAKE_HRESULT(1,7,WSA_QOS_EPROVSPECBUF) : return L"WSA_QOS_EPROVSPECBUF"; 221 case MAKE_HRESULT(1,7,WSA_QOS_EFILTERSTYLE) : return L"WSA_QOS_EFILTERSTYLE"; 222 case MAKE_HRESULT(1,7,WSA_QOS_EFILTERTYPE) : return L"WSA_QOS_EFILTERTYPE"; 223 case MAKE_HRESULT(1,7,WSA_QOS_EFILTERCOUNT) : return L"WSA_QOS_EFILTERCOUNT"; 224 case MAKE_HRESULT(1,7,WSA_QOS_EOBJLENGTH) : return L"WSA_QOS_EOBJLENGTH"; 225 case MAKE_HRESULT(1,7,WSA_QOS_EFLOWCOUNT) : return L"WSA_QOS_EFLOWCOUNT"; 226 case MAKE_HRESULT(1,7,WSA_QOS_EUNKOWNPSOBJ) : return L"WSA_QOS_EUNKOWNPSOBJ"; 227 case MAKE_HRESULT(1,7,WSA_QOS_EPOLICYOBJ) : return L"WSA_QOS_EPOLICYOBJ"; 228 case MAKE_HRESULT(1,7,WSA_QOS_EFLOWDESC) : return L"WSA_QOS_EFLOWDESC"; 229 case MAKE_HRESULT(1,7,WSA_QOS_EPSFLOWSPEC) : return L"WSA_QOS_EPSFLOWSPEC"; 230 case MAKE_HRESULT(1,7,WSA_QOS_EPSFILTERSPEC) : return L"WSA_QOS_EPSFILTERSPEC"; 231 case MAKE_HRESULT(1,7,WSA_QOS_ESDMODEOBJ) : return L"WSA_QOS_ESDMODEOBJ"; 232 case MAKE_HRESULT(1,7,WSA_QOS_ESHAPERATEOBJ) : return L"WSA_QOS_ESHAPERATEOBJ"; 233 case MAKE_HRESULT(1,7,WSA_QOS_RESERVED_PETYPE) : return L"WSA_QOS_RESERVED_PETYPE"; 234 235 // HTTP specific errors 236 case WEB_E_UNSUPPORTED_FORMAT: return L"WEB_E_UNSUPPORTED_FORMAT"; 237 case WEB_E_INVALID_XML: return L"WEB_E_INVALID_XML"; 238 case WEB_E_MISSING_REQUIRED_ELEMENT: return L"WEB_E_MISSING_REQUIRED_ELEMENT"; 239 case WEB_E_MISSING_REQUIRED_ATTRIBUTE: return L"WEB_E_MISSING_REQUIRED_ATTRIBUTE"; 240 case WEB_E_UNEXPECTED_CONTENT: return L"WEB_E_UNEXPECTED_CONTENT"; 241 case WEB_E_RESOURCE_TOO_LARGE: return L"WEB_E_RESOURCE_TOO_LARGE"; 242 case WEB_E_INVALID_JSON_STRING: return L"WEB_E_INVALID_JSON_STRING"; 243 case WEB_E_INVALID_JSON_NUMBER: return L"WEB_E_INVALID_JSON_NUMBER"; 244 case WEB_E_JSON_VALUE_NOT_FOUND: return L"WEB_E_JSON_VALUE_NOT_FOUND"; 245 case HTTP_E_STATUS_UNEXPECTED: return L"HTTP_E_STATUS_UNEXPECTED"; 246 case HTTP_E_STATUS_UNEXPECTED_REDIRECTION: return L"HTTP_E_STATUS_UNEXPECTED_REDIRECTION"; 247 case HTTP_E_STATUS_UNEXPECTED_CLIENT_ERROR: return L"HTTP_E_STATUS_UNEXPECTED_CLIENT_ERROR"; 248 case HTTP_E_STATUS_UNEXPECTED_SERVER_ERROR: return L"HTTP_E_STATUS_UNEXPECTED_SERVER_ERROR"; 249 case HTTP_E_STATUS_AMBIGUOUS: return L"HTTP_E_STATUS_AMBIGUOUS"; 250 case HTTP_E_STATUS_MOVED: return L"HTTP_E_STATUS_MOVED"; 251 case HTTP_E_STATUS_REDIRECT: return L"HTTP_E_STATUS_REDIRECT"; 252 case HTTP_E_STATUS_REDIRECT_METHOD: return L"HTTP_E_STATUS_REDIRECT_METHOD"; 253 case HTTP_E_STATUS_NOT_MODIFIED: return L"HTTP_E_STATUS_NOT_MODIFIED"; 254 case HTTP_E_STATUS_USE_PROXY: return L"HTTP_E_STATUS_USE_PROXY"; 255 case HTTP_E_STATUS_REDIRECT_KEEP_VERB: return L"HTTP_E_STATUS_REDIRECT_KEEP_VERB"; 256 case HTTP_E_STATUS_BAD_REQUEST: return L"HTTP_E_STATUS_BAD_REQUEST"; 257 case HTTP_E_STATUS_DENIED: return L"HTTP_E_STATUS_DENIED"; 258 case HTTP_E_STATUS_PAYMENT_REQ: return L"HTTP_E_STATUS_PAYMENT_REQ"; 259 case HTTP_E_STATUS_FORBIDDEN: return L"HTTP_E_STATUS_FORBIDDEN"; 260 case HTTP_E_STATUS_NOT_FOUND: return L"HTTP_E_STATUS_NOT_FOUND"; 261 case HTTP_E_STATUS_BAD_METHOD: return L"HTTP_E_STATUS_BAD_METHOD"; 262 case HTTP_E_STATUS_NONE_ACCEPTABLE: return L"HTTP_E_STATUS_NONE_ACCEPTABLE"; 263 case HTTP_E_STATUS_PROXY_AUTH_REQ: return L"HTTP_E_STATUS_PROXY_AUTH_REQ"; 264 case HTTP_E_STATUS_REQUEST_TIMEOUT: return L"HTTP_E_STATUS_REQUEST_TIMEOUT"; 265 case HTTP_E_STATUS_CONFLICT: return L"HTTP_E_STATUS_CONFLICT"; 266 case HTTP_E_STATUS_GONE: return L"HTTP_E_STATUS_GONE"; 267 case HTTP_E_STATUS_LENGTH_REQUIRED: return L"HTTP_E_STATUS_LENGTH_REQUIRED"; 268 case HTTP_E_STATUS_PRECOND_FAILED: return L"HTTP_E_STATUS_PRECOND_FAILED"; 269 case HTTP_E_STATUS_REQUEST_TOO_LARGE: return L"HTTP_E_STATUS_REQUEST_TOO_LARGE"; 270 case HTTP_E_STATUS_URI_TOO_LONG: return L"HTTP_E_STATUS_URI_TOO_LONG"; 271 case HTTP_E_STATUS_UNSUPPORTED_MEDIA: return L"HTTP_E_STATUS_UNSUPPORTED_MEDIA"; 272 case HTTP_E_STATUS_RANGE_NOT_SATISFIABLE: return L"HTTP_E_STATUS_RANGE_NOT_SATISFIABLE"; 273 case HTTP_E_STATUS_EXPECTATION_FAILED: return L"HTTP_E_STATUS_EXPECTATION_FAILED"; 274 case HTTP_E_STATUS_SERVER_ERROR: return L"HTTP_E_STATUS_SERVER_ERROR"; 275 case HTTP_E_STATUS_NOT_SUPPORTED: return L"HTTP_E_STATUS_NOT_SUPPORTED"; 276 case HTTP_E_STATUS_BAD_GATEWAY: return L"HTTP_E_STATUS_BAD_GATEWAY"; 277 case HTTP_E_STATUS_SERVICE_UNAVAIL: return L"HTTP_E_STATUS_SERVICE_UNAVAIL"; 278 case HTTP_E_STATUS_GATEWAY_TIMEOUT: return L"HTTP_E_STATUS_GATEWAY_TIMEOUT"; 279 case HTTP_E_STATUS_VERSION_NOT_SUP: return L"HTTP_E_STATUS_VERSION_NOT_SUP"; 280 281 // WinINet specific errors 282 case INET_E_INVALID_URL: return L"INET_E_INVALID_URL"; 283 case INET_E_NO_SESSION: return L"INET_E_NO_SESSION"; 284 case INET_E_CANNOT_CONNECT: return L"INET_E_CANNOT_CONNECT"; 285 case INET_E_RESOURCE_NOT_FOUND: return L"INET_E_RESOURCE_NOT_FOUND"; 286 case INET_E_OBJECT_NOT_FOUND: return L"INET_E_OBJECT_NOT_FOUND"; 287 case INET_E_DATA_NOT_AVAILABLE: return L"INET_E_DATA_NOT_AVAILABLE"; 288 case INET_E_DOWNLOAD_FAILURE: return L"INET_E_DOWNLOAD_FAILURE"; 289 case INET_E_AUTHENTICATION_REQUIRED: return L"INET_E_AUTHENTICATION_REQUIRED"; 290 case INET_E_NO_VALID_MEDIA: return L"INET_E_NO_VALID_MEDIA"; 291 case INET_E_CONNECTION_TIMEOUT: return L"INET_E_CONNECTION_TIMEOUT"; 292 case INET_E_INVALID_REQUEST: return L"INET_E_INVALID_REQUEST"; 293 case INET_E_UNKNOWN_PROTOCOL: return L"INET_E_UNKNOWN_PROTOCOL"; 294 case INET_E_SECURITY_PROBLEM: return L"INET_E_SECURITY_PROBLEM"; 295 case INET_E_CANNOT_LOAD_DATA: return L"INET_E_CANNOT_LOAD_DATA"; 296 case INET_E_CANNOT_INSTANTIATE_OBJECT: return L"INET_E_CANNOT_INSTANTIATE_OBJECT"; 297 case INET_E_INVALID_CERTIFICATE: return L"INET_E_INVALID_CERTIFICATE"; 298 case INET_E_REDIRECT_FAILED: return L"INET_E_REDIRECT_FAILED"; 299 case INET_E_REDIRECT_TO_DIR: return L"INET_E_REDIRECT_TO_DIR"; 300 } 301 302 return L""; 303}