the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
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}