2 * Copyright 2011 Piotr Caban for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
29 #include "wine/debug.h"
30 WINE_DEFAULT_DEBUG_CHANNEL(msvcp);
32 /* ?_Index@ios_base@std@@0HA */
33 int ios_base_Index = 0;
34 /* ?_Sync@ios_base@std@@0_NA */
35 MSVCP_bool ios_base_Sync = FALSE;
39 __int64 DECLSPEC_ALIGN(8) pos;
43 static inline const char* debugstr_fpos_int(fpos_int *fpos)
45 return wine_dbg_sprintf("fpos(%ld %s %d)", fpos->off, wine_dbgstr_longlong(fpos->pos), fpos->state);
49 void (__cdecl *pfunc)(ios_base*, streamsize);
54 void (__cdecl *pfunc)(ios_base*, int);
62 } basic_filebuf__Initfl;
65 basic_streambuf_char base;
75 basic_streambuf_wchar base;
82 } basic_filebuf_wchar;
85 STRINGBUF_allocated = 1,
86 STRINGBUF_no_write = 2,
87 STRINGBUF_no_read = 4,
90 } basic_stringbuf_state;
93 basic_streambuf_char base;
96 char allocator; /* empty struct */
97 } basic_stringbuf_char;
100 basic_streambuf_wchar base;
103 char allocator; /* empty struct */
104 } basic_stringbuf_wchar;
108 basic_streambuf_char *strbuf;
109 struct _basic_ostream_char *stream;
115 basic_streambuf_wchar *strbuf;
116 struct _basic_ostream_wchar *stream;
120 typedef struct _basic_ostream_char {
122 /* virtual inheritance
123 * basic_ios_char basic_ios;
125 } basic_ostream_char;
127 typedef struct _basic_ostream_wchar {
129 /* virtual inheritance
130 * basic_ios_wchar basic_ios;
132 } basic_ostream_wchar;
137 /* virtual inheritance
138 * basic_ios_char basic_ios;
140 } basic_istream_char;
145 /* virtual inheritance
146 * basic_ios_wchar basic_ios;
148 } basic_istream_wchar;
151 basic_istream_char base1;
152 basic_ostream_char base2;
153 /* virtual inheritance
154 * basic_ios_char basic_ios;
156 } basic_iostream_char;
159 basic_istream_wchar base1;
160 basic_ostream_wchar base2;
161 /* virtual inheritance
162 * basic_ios_wchar basic_ios;
164 } basic_iostream_wchar;
167 basic_ostream_char base;
168 basic_filebuf_char filebuf;
169 /* virtual inheritance
170 * basic_ios_char basic_ios;
172 } basic_ofstream_char;
175 basic_ostream_wchar base;
176 basic_filebuf_wchar filebuf;
177 /* virtual inheritance
178 * basic_ios_wchar basic_ios;
180 } basic_ofstream_wchar;
183 basic_istream_char base;
184 basic_filebuf_char filebuf;
185 /* virtual inheritance
186 * basic_ios_char basic_ios;
188 } basic_ifstream_char;
191 basic_istream_wchar base;
192 basic_filebuf_wchar filebuf;
193 /* virtual inheritance
194 * basic_ios_wchar basic_ios;
196 } basic_ifstream_wchar;
199 basic_iostream_char base;
200 basic_filebuf_char filebuf;
201 /* virtual inheritance
202 * basic_ios_char basic_ios;
204 } basic_fstream_char;
207 basic_iostream_wchar base;
208 basic_filebuf_wchar filebuf;
209 /* virtual inheritance
210 * basic_ios_char basic_ios;
212 } basic_fstream_wchar;
215 basic_ostream_char base;
216 basic_stringbuf_char strbuf;
217 /* virtual inheritance
218 * basic_ios_char basic_ios;
220 } basic_ostringstream_char;
223 basic_ostream_wchar base;
224 basic_stringbuf_wchar strbuf;
225 /* virtual inheritance
226 * basic_ios_wchar basic_ios;
228 } basic_ostringstream_wchar;
231 basic_istream_char base;
232 basic_stringbuf_char strbuf;
233 /* virtual inheritance
234 * basic_ios_char basic_ios;
236 } basic_istringstream_char;
239 basic_istream_wchar base;
240 basic_stringbuf_wchar strbuf;
241 /* virtual inheritance
242 * basic_ios_wchar basic_ios;
244 } basic_istringstream_wchar;
247 basic_iostream_char base;
248 basic_stringbuf_char strbuf;
249 /* virtual inheritance
250 * basic_ios_char basic_ios;
252 } basic_stringstream_char;
255 basic_iostream_wchar base;
256 basic_stringbuf_wchar strbuf;
257 /* virtual inheritance
258 * basic_ios_wchar basic_ios;
260 } basic_stringstream_wchar;
263 STRSTATE_Allocated = 1,
264 STRSTATE_Constant = 2,
265 STRSTATE_Dynamic = 4,
267 } strstreambuf__Strstate;
270 basic_streambuf_char base;
275 void* (__cdecl *palloc)(MSVCP_size_t);
276 void (__cdecl *pfree)(void*);
279 extern const vtable_ptr MSVCP_iosb_vtable;
281 /* ??_7ios_base@std@@6B@ */
282 extern const vtable_ptr MSVCP_ios_base_vtable;
284 /* ??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@ */
285 extern const vtable_ptr MSVCP_basic_ios_char_vtable;
287 /* ??_7?$basic_ios@_WU?$char_traits@_W@std@@@std@@6B@ */
288 extern const vtable_ptr MSVCP_basic_ios_wchar_vtable;
290 /* ??_7?$basic_ios@GU?$char_traits@G@std@@@std@@6B@ */
291 extern const vtable_ptr MSVCP_basic_ios_short_vtable;
293 /* ??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@ */
294 extern const vtable_ptr MSVCP_basic_streambuf_char_vtable;
296 /* ??_7?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@6B@ */
297 extern const vtable_ptr MSVCP_basic_streambuf_wchar_vtable;
299 /* ??_7?$basic_streambuf@GU?$char_traits@G@std@@@std@@6B@ */
300 extern const vtable_ptr MSVCP_basic_streambuf_short_vtable;
302 /* ??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ */
303 extern const vtable_ptr MSVCP_basic_filebuf_char_vtable;
305 /* ??_7?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@6B@ */
306 extern const vtable_ptr MSVCP_basic_filebuf_wchar_vtable;
308 /* ??_7?$basic_filebuf@GU?$char_traits@G@std@@@std@@6B@ */
309 extern const vtable_ptr MSVCP_basic_filebuf_short_vtable;
311 /* ??_7?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
312 extern const vtable_ptr MSVCP_basic_stringbuf_char_vtable;
314 /* ??_7?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
315 extern const vtable_ptr MSVCP_basic_stringbuf_wchar_vtable;
317 /* ??_7?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
318 extern const vtable_ptr MSVCP_basic_stringbuf_short_vtable;
320 /* ??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@ */
321 const int basic_ostream_char_vbtable[] = {0, sizeof(basic_ostream_char)};
322 /* ??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@ */
323 extern const vtable_ptr MSVCP_basic_ostream_char_vtable;
325 /* ??_8?$basic_ostream@_WU?$char_traits@_W@std@@@std@@7B@ */
326 const int basic_ostream_wchar_vbtable[] = {0, sizeof(basic_ostream_wchar)};
327 /* ??_7?$basic_ostream@_WU?$char_traits@_W@std@@@std@@6B@ */
328 extern const vtable_ptr MSVCP_basic_ostream_wchar_vtable;
330 /* ??_8?$basic_ostream@GU?$char_traits@G@std@@@std@@7B@ */
331 const int basic_ostream_short_vbtable[] = {0, sizeof(basic_ostream_wchar)};
332 /* ??_7?$basic_ostream@GU?$char_traits@G@std@@@std@@6B@ */
333 extern const vtable_ptr MSVCP_basic_ostream_short_vtable;
335 /* ??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@ */
336 const int basic_istream_char_vbtable[] = {0, sizeof(basic_istream_char)};
337 /* ??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@ */
338 extern const vtable_ptr MSVCP_basic_istream_char_vtable;
340 /* ??_8?$basic_istream@_WU?$char_traits@_W@std@@@std@@7B@ */
341 const int basic_istream_wchar_vbtable[] = {0, sizeof(basic_istream_wchar)};
342 /* ??_7?$basic_istream@_WU?$char_traits@_W@std@@@std@@6B@ */
343 extern const vtable_ptr MSVCP_basic_istream_wchar_vtable;
345 /* ??_8?$basic_istream@GU?$char_traits@G@std@@@std@@7B@ */
346 const int basic_istream_short_vbtable[] = {0, sizeof(basic_istream_wchar)};
347 /* ??_7?$basic_istream@GU?$char_traits@G@std@@@std@@6B@ */
348 extern const vtable_ptr MSVCP_basic_istream_short_vtable;
350 /* ??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
351 const int basic_iostream_char_vbtable1[] = {0, sizeof(basic_iostream_char)};
352 /* ??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
353 const int basic_iostream_char_vbtable2[] = {0, sizeof(basic_iostream_char)-FIELD_OFFSET(basic_iostream_char, base2)};
354 /* ??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@ */
355 extern const vtable_ptr MSVCP_basic_iostream_char_vtable;
357 /* ??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
358 /* ??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
359 const int basic_iostream_wchar_vbtable1[] = {0, sizeof(basic_iostream_wchar)};
360 /* ??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
361 /* ??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
362 const int basic_iostream_wchar_vbtable2[] = {0, sizeof(basic_iostream_wchar)-FIELD_OFFSET(basic_iostream_wchar, base2)};
363 /* ??_7?$basic_iostream@_WU?$char_traits@_W@std@@@std@@6B@ */
364 extern const vtable_ptr MSVCP_basic_iostream_wchar_vtable;
365 /* ??_7?$basic_iostream@GU?$char_traits@G@std@@@std@@6B@ */
366 extern const vtable_ptr MSVCP_basic_iostream_short_vtable;
368 /* ??_8?$basic_ofstream@DU?$char_traits@D@std@@@std@@7B@ */
369 const int basic_ofstream_char_vbtable[] = {0, sizeof(basic_ofstream_char)};
370 /* ??_7?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ */
371 extern const vtable_ptr MSVCP_basic_ofstream_char_vtable;
373 /* ??_8?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@7B@ */
374 const int basic_ofstream_wchar_vbtable[] = {0, sizeof(basic_ofstream_wchar)};
375 /* ??_7?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@6B@ */
376 extern const vtable_ptr MSVCP_basic_ofstream_wchar_vtable;
378 /* ??_8?$basic_ofstream@GU?$char_traits@G@std@@@std@@7B@ */
379 const int basic_ofstream_short_vbtable[] = {0, sizeof(basic_ofstream_wchar)};
380 /* ??_7?$basic_ofstream@GU?$char_traits@G@std@@@std@@6B@ */
381 extern const vtable_ptr MSVCP_basic_ofstream_short_vtable;
383 /* ??_8?$basic_ifstream@DU?$char_traits@D@std@@@std@@7B@ */
384 const int basic_ifstream_char_vbtable[] = {0, sizeof(basic_ifstream_char)};
385 /* ??_7?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@ */
386 extern const vtable_ptr MSVCP_basic_ifstream_char_vtable;
388 /* ??_8?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@7B@ */
389 const int basic_ifstream_wchar_vbtable[] = {0, sizeof(basic_ifstream_wchar)};
390 /* ??_7?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@6B@ */
391 extern const vtable_ptr MSVCP_basic_ifstream_wchar_vtable;
393 /* ??_8?$basic_ifstream@GU?$char_traits@G@std@@@std@@7B@ */
394 const int basic_ifstream_short_vbtable[] = {0, sizeof(basic_ifstream_wchar)};
395 /* ??_7?$basic_ifstream@GU?$char_traits@G@std@@@std@@6B@ */
396 extern const vtable_ptr MSVCP_basic_ifstream_short_vtable;
398 /* ??_8?$basic_fstream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
399 const int basic_fstream_char_vbtable1[] = {0, sizeof(basic_fstream_char)};
400 /* ??_8?$basic_fstream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
401 const int basic_fstream_char_vbtable2[] = {0, sizeof(basic_fstream_char)-FIELD_OFFSET(basic_fstream_char, base.base2)};
402 /* ??_7?$basic_fstream@DU?$char_traits@D@std@@@std@@6B@ */
403 extern const vtable_ptr MSVCP_basic_fstream_char_vtable;
405 /* ??_8?$basic_fstream@_WU?$char_traits@_W@std@@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
406 /* ??_8?$basic_fstream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
407 const int basic_fstream_wchar_vbtable1[] = {0, sizeof(basic_fstream_wchar)};
408 /* ??_8?$basic_fstream@_WU?$char_traits@_W@std@@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
409 /* ??_8?$basic_fstream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
410 const int basic_fstream_wchar_vbtable2[] = {0, sizeof(basic_fstream_wchar)-FIELD_OFFSET(basic_fstream_wchar, base.base2)};
411 /* ??_7?$basic_fstream@_WU?$char_traits@_W@std@@@std@@6B@ */
412 extern const vtable_ptr MSVCP_basic_fstream_wchar_vtable;
413 /* ??_7?$basic_fstream@GU?$char_traits@G@std@@@std@@6B@ */
414 extern const vtable_ptr MSVCP_basic_fstream_short_vtable;
416 /* ??_8?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B@ */
417 const int basic_ostringstream_char_vbtable[] = {0, sizeof(basic_ostringstream_char)};
418 /* ??_7?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
419 extern const vtable_ptr MSVCP_basic_ostringstream_char_vtable;
421 /* ??_8?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B@ */
422 const int basic_ostringstream_wchar_vbtable[] = {0, sizeof(basic_ostringstream_wchar)};
423 /* ??_7?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
424 extern const vtable_ptr MSVCP_basic_ostringstream_wchar_vtable;
426 /* ??_8?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B@ */
427 const int basic_ostringstream_short_vbtable[] = {0, sizeof(basic_ostringstream_wchar)};
428 /* ??_7?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
429 extern const vtable_ptr MSVCP_basic_ostringstream_short_vtable;
431 /* ??_8?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B@ */
432 const int basic_istringstream_char_vbtable[] = {0, sizeof(basic_istringstream_char)};
433 /* ??_7?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
434 extern const vtable_ptr MSVCP_basic_istringstream_char_vtable;
436 /* ??_8?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B@ */
437 const int basic_istringstream_wchar_vbtable[] = {0, sizeof(basic_istringstream_wchar)};
438 /* ??_7?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
439 extern const vtable_ptr MSVCP_basic_istringstream_wchar_vtable;
441 /* ??_8?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B@ */
442 const int basic_istringstream_short_vbtable[] = {0, sizeof(basic_istringstream_wchar)};
443 /* ??_7?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
444 extern const vtable_ptr MSVCP_basic_istringstream_short_vtable;
446 /* ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
447 const int basic_stringstream_char_vbtable1[] = {0, sizeof(basic_stringstream_char)};
448 /* ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
449 const int basic_stringstream_char_vbtable2[] = {0, sizeof(basic_stringstream_char)-FIELD_OFFSET(basic_stringstream_char, base.base2)};
450 /* ??_7?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
451 extern const vtable_ptr MSVCP_basic_stringstream_char_vtable;
453 /* ??_8?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
454 const int basic_stringstream_wchar_vbtable1[] = {0, sizeof(basic_stringstream_wchar)};
455 /* ??_8?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
456 const int basic_stringstream_wchar_vbtable2[] = {0, sizeof(basic_stringstream_wchar)-FIELD_OFFSET(basic_stringstream_wchar, base.base2)};
457 /* ??_7?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
458 extern const vtable_ptr MSVCP_basic_stringstream_wchar_vtable;
460 /* ??_8?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
461 const int basic_stringstream_short_vbtable1[] = {0, sizeof(basic_stringstream_wchar)};
462 /* ??_8?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
463 const int basic_stringstream_short_vbtable2[] = {0, sizeof(basic_stringstream_wchar)-FIELD_OFFSET(basic_stringstream_wchar, base.base2)};
464 /* ??_7?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
465 extern const vtable_ptr MSVCP_basic_stringstream_short_vtable;
467 /* ??_7strstreambuf@std@@6B */
468 extern const vtable_ptr MSVCP_strstreambuf_vtable;
470 DEFINE_RTTI_DATA0(iosb, 0, ".?AV?$_Iosb@H@std@@");
471 DEFINE_RTTI_DATA1(ios_base, 0, &iosb_rtti_base_descriptor, ".?AV?$_Iosb@H@std@@");
472 DEFINE_RTTI_DATA2(basic_ios_char, 0, &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
473 ".?AV?$basic_ios@DU?$char_traits@D@std@@@std@@");
474 DEFINE_RTTI_DATA2(basic_ios_wchar, 0, &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
475 ".?AV?$basic_ios@_WU?$char_traits@_W@std@@@std@@");
476 DEFINE_RTTI_DATA2(basic_ios_short, 0, &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
477 ".?AV?$basic_ios@GU?$char_traits@G@std@@@std@@");
478 DEFINE_RTTI_DATA0(basic_streambuf_char, 0,
479 ".?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@");
480 DEFINE_RTTI_DATA0(basic_streambuf_wchar, 0,
481 ".?AV?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@");
482 DEFINE_RTTI_DATA0(basic_streambuf_short, 0,
483 ".?AV?$basic_streambuf@GU?$char_traits@G@std@@@std@@");
484 DEFINE_RTTI_DATA1(basic_filebuf_char, 0, &basic_streambuf_char_rtti_base_descriptor,
485 ".?AV?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@");
486 DEFINE_RTTI_DATA1(basic_filebuf_wchar, 0, &basic_streambuf_wchar_rtti_base_descriptor,
487 ".?AV?$basic_filebuf@GU?$char_traits@G@std@@@std@@");
488 DEFINE_RTTI_DATA1(basic_filebuf_short, 0, &basic_streambuf_short_rtti_base_descriptor,
489 ".?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@");
490 DEFINE_RTTI_DATA1(basic_stringbuf_char, 0, &basic_streambuf_char_rtti_base_descriptor,
491 ".?AV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@");
492 DEFINE_RTTI_DATA1(basic_stringbuf_wchar, 0, &basic_streambuf_wchar_rtti_base_descriptor,
493 ".?AV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@");
494 DEFINE_RTTI_DATA1(basic_stringbuf_short, 0, &basic_streambuf_short_rtti_base_descriptor,
495 ".?AV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@");
496 DEFINE_RTTI_DATA3(basic_ostream_char, sizeof(basic_ostream_char), &basic_ios_char_rtti_base_descriptor,
497 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
498 ".?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@");
499 DEFINE_RTTI_DATA3(basic_ostream_wchar, sizeof(basic_ostream_wchar), &basic_ios_wchar_rtti_base_descriptor,
500 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
501 ".?AV?$basic_ostream@_WU?$char_traits@_W@std@@@std@@");
502 DEFINE_RTTI_DATA3(basic_ostream_short, sizeof(basic_ostream_wchar), &basic_ios_short_rtti_base_descriptor,
503 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
504 ".?AV?$basic_ostream@GU?$char_traits@G@std@@@std@@");
505 DEFINE_RTTI_DATA3(basic_istream_char, sizeof(basic_istream_char), &basic_ios_char_rtti_base_descriptor,
506 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
507 ".?AV?$basic_istream@DU?$char_traits@D@std@@@std@@");
508 DEFINE_RTTI_DATA3(basic_istream_wchar, sizeof(basic_istream_wchar), &basic_ios_wchar_rtti_base_descriptor,
509 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
510 ".?AV?$basic_istream@_WU?$char_traits@_W@std@@@std@@");
511 DEFINE_RTTI_DATA3(basic_istream_short, sizeof(basic_istream_wchar), &basic_ios_short_rtti_base_descriptor,
512 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
513 ".?AV?$basic_istream@GU?$char_traits@G@std@@@std@@");
514 DEFINE_RTTI_DATA8(basic_iostream_char, sizeof(basic_iostream_char),
515 &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
516 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
517 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
518 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
519 ".?AV?$basic_iostream@DU?$char_traits@D@std@@@std@@");
520 DEFINE_RTTI_DATA8(basic_iostream_wchar, sizeof(basic_iostream_wchar),
521 &basic_istream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
522 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
523 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
524 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
525 ".?AV?$basic_iostream@_WU?$char_traits@_W@std@@@std@@");
526 DEFINE_RTTI_DATA8(basic_iostream_short, sizeof(basic_iostream_wchar),
527 &basic_istream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
528 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
529 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
530 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
531 ".?AV?$basic_iostream@GU?$char_traits@G@std@@@std@@");
532 DEFINE_RTTI_DATA4(basic_ofstream_char, sizeof(basic_ofstream_char),
533 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
534 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
535 ".?AV?$basic_ofstream@DU?$char_traits@D@std@@@std@@");
536 DEFINE_RTTI_DATA4(basic_ofstream_wchar, sizeof(basic_ofstream_wchar),
537 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
538 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
539 ".?AV?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@");
540 DEFINE_RTTI_DATA4(basic_ofstream_short, sizeof(basic_ofstream_wchar),
541 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
542 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
543 ".?AV?$basic_ofstream@GU?$char_traits@G@std@@@std@@");
544 DEFINE_RTTI_DATA4(basic_ifstream_char, sizeof(basic_ifstream_char),
545 &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
546 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
547 ".?AV?$basic_ifstream@DU?$char_traits@D@std@@@std@@");
548 DEFINE_RTTI_DATA4(basic_ifstream_wchar, sizeof(basic_ifstream_wchar),
549 &basic_istream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
550 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
551 ".?AV?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@");
552 DEFINE_RTTI_DATA4(basic_ifstream_short, sizeof(basic_ifstream_wchar),
553 &basic_istream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
554 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
555 ".?AV?$basic_ifstream@GU?$char_traits@G@std@@@std@@");
556 DEFINE_RTTI_DATA8(basic_fstream_char, sizeof(basic_fstream_char),
557 &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
558 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
559 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
560 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
561 ".?AV?$basic_fstream@DU?$char_traits@D@std@@@std@@");
562 DEFINE_RTTI_DATA8(basic_fstream_wchar, sizeof(basic_fstream_wchar),
563 &basic_istream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
564 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
565 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
566 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
567 ".?AV?$basic_fstream@_WU?$char_traits@_W@std@@@std@@");
568 DEFINE_RTTI_DATA8(basic_fstream_short, sizeof(basic_fstream_wchar),
569 &basic_istream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
570 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
571 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
572 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
573 ".?AV?$basic_fstream@GU?$char_traits@G@std@@@std@@");
574 DEFINE_RTTI_DATA4(basic_ostringstream_char, sizeof(basic_ostringstream_char),
575 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
576 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
577 ".?AV?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@");
578 DEFINE_RTTI_DATA4(basic_ostringstream_wchar, sizeof(basic_ostringstream_wchar),
579 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
580 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
581 ".?AV?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@");
582 DEFINE_RTTI_DATA4(basic_ostringstream_short, sizeof(basic_ostringstream_wchar),
583 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
584 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
585 ".?AV?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@");
586 DEFINE_RTTI_DATA4(basic_istringstream_char, sizeof(basic_istringstream_char),
587 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
588 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
589 ".?AV?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@");
590 DEFINE_RTTI_DATA4(basic_istringstream_wchar, sizeof(basic_istringstream_wchar),
591 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
592 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
593 ".?AV?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@");
594 DEFINE_RTTI_DATA4(basic_istringstream_short, sizeof(basic_istringstream_wchar),
595 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
596 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
597 ".?AV?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@");
598 DEFINE_RTTI_DATA8(basic_stringstream_char, sizeof(basic_stringstream_char),
599 &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
600 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
601 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
602 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
603 ".?AV?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@");
604 DEFINE_RTTI_DATA8(basic_stringstream_wchar, sizeof(basic_stringstream_wchar),
605 &basic_istream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
606 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
607 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
608 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
609 ".?AV?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@");
610 DEFINE_RTTI_DATA8(basic_stringstream_short, sizeof(basic_stringstream_wchar),
611 &basic_istream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
612 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
613 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
614 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
615 ".?AV?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@");
616 DEFINE_RTTI_DATA1(strstreambuf, sizeof(strstreambuf),
617 &basic_streambuf_char_rtti_base_descriptor, ".?AVstrstreambuf@std@@");
620 void __asm_dummy_vtables(void) {
623 VTABLE_ADD_FUNC(iosb_vector_dtor));
624 __ASM_VTABLE(ios_base,
625 VTABLE_ADD_FUNC(ios_base_vector_dtor));
626 __ASM_VTABLE(basic_ios_char,
627 VTABLE_ADD_FUNC(basic_ios_char_vector_dtor));
628 __ASM_VTABLE(basic_ios_wchar,
629 VTABLE_ADD_FUNC(basic_ios_wchar_vector_dtor));
630 __ASM_VTABLE(basic_ios_short,
631 VTABLE_ADD_FUNC(basic_ios_wchar_vector_dtor));
632 __ASM_VTABLE(basic_streambuf_char,
633 VTABLE_ADD_FUNC(basic_streambuf_char_vector_dtor)
634 VTABLE_ADD_FUNC(basic_streambuf_char_overflow)
635 VTABLE_ADD_FUNC(basic_streambuf_char_pbackfail)
636 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
637 VTABLE_ADD_FUNC(basic_streambuf_char_underflow)
638 VTABLE_ADD_FUNC(basic_streambuf_char_uflow)
639 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
640 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
641 VTABLE_ADD_FUNC(basic_streambuf_char_seekoff)
642 VTABLE_ADD_FUNC(basic_streambuf_char_seekpos)
643 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf)
644 VTABLE_ADD_FUNC(basic_streambuf_char_sync)
645 VTABLE_ADD_FUNC(basic_streambuf_char_imbue));
646 __ASM_VTABLE(basic_streambuf_wchar,
647 VTABLE_ADD_FUNC(basic_streambuf_wchar_vector_dtor)
648 VTABLE_ADD_FUNC(basic_streambuf_wchar_overflow)
649 VTABLE_ADD_FUNC(basic_streambuf_wchar_pbackfail)
650 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
651 VTABLE_ADD_FUNC(basic_streambuf_wchar_underflow)
652 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
653 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
654 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s)
655 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
656 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff)
657 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos)
658 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
659 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
660 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
661 __ASM_VTABLE(basic_streambuf_short,
662 VTABLE_ADD_FUNC(basic_streambuf_wchar_vector_dtor)
663 VTABLE_ADD_FUNC(basic_streambuf_wchar_overflow)
664 VTABLE_ADD_FUNC(basic_streambuf_wchar_pbackfail)
665 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
666 VTABLE_ADD_FUNC(basic_streambuf_wchar_underflow)
667 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
668 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
669 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s)
670 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
671 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff)
672 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos)
673 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
674 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
675 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
676 __ASM_VTABLE(basic_filebuf_char,
677 VTABLE_ADD_FUNC(basic_filebuf_char_vector_dtor)
678 VTABLE_ADD_FUNC(basic_filebuf_char_overflow)
679 VTABLE_ADD_FUNC(basic_filebuf_char_pbackfail)
680 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
681 VTABLE_ADD_FUNC(basic_filebuf_char_underflow)
682 VTABLE_ADD_FUNC(basic_filebuf_char_uflow)
683 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
684 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
685 VTABLE_ADD_FUNC(basic_filebuf_char_seekoff)
686 VTABLE_ADD_FUNC(basic_filebuf_char_seekpos)
687 VTABLE_ADD_FUNC(basic_filebuf_char_setbuf)
688 VTABLE_ADD_FUNC(basic_filebuf_char_sync)
689 VTABLE_ADD_FUNC(basic_filebuf_char_imbue));
690 __ASM_VTABLE(basic_filebuf_wchar,
691 VTABLE_ADD_FUNC(basic_filebuf_wchar_vector_dtor)
692 VTABLE_ADD_FUNC(basic_filebuf_wchar_overflow)
693 VTABLE_ADD_FUNC(basic_filebuf_wchar_pbackfail)
694 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
695 VTABLE_ADD_FUNC(basic_filebuf_wchar_underflow)
696 VTABLE_ADD_FUNC(basic_filebuf_wchar_uflow)
697 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
698 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s)
699 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
700 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekoff)
701 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekpos)
702 VTABLE_ADD_FUNC(basic_filebuf_wchar_setbuf)
703 VTABLE_ADD_FUNC(basic_filebuf_wchar_sync)
704 VTABLE_ADD_FUNC(basic_filebuf_wchar_imbue));
705 __ASM_VTABLE(basic_filebuf_short,
706 VTABLE_ADD_FUNC(basic_filebuf_wchar_vector_dtor)
707 VTABLE_ADD_FUNC(basic_filebuf_wchar_overflow)
708 VTABLE_ADD_FUNC(basic_filebuf_wchar_pbackfail)
709 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
710 VTABLE_ADD_FUNC(basic_filebuf_wchar_underflow)
711 VTABLE_ADD_FUNC(basic_filebuf_wchar_uflow)
712 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
713 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s)
714 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
715 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekoff)
716 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekpos)
717 VTABLE_ADD_FUNC(basic_filebuf_short_setbuf)
718 VTABLE_ADD_FUNC(basic_filebuf_wchar_sync)
719 VTABLE_ADD_FUNC(basic_filebuf_short_imbue));
720 __ASM_VTABLE(basic_stringbuf_char,
721 VTABLE_ADD_FUNC(basic_stringbuf_char_vector_dtor)
722 VTABLE_ADD_FUNC(basic_stringbuf_char_overflow)
723 VTABLE_ADD_FUNC(basic_stringbuf_char_pbackfail)
724 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
725 VTABLE_ADD_FUNC(basic_stringbuf_char_underflow)
726 VTABLE_ADD_FUNC(basic_streambuf_char_uflow)
727 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
728 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
729 VTABLE_ADD_FUNC(basic_stringbuf_char_seekoff)
730 VTABLE_ADD_FUNC(basic_stringbuf_char_seekpos)
731 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf)
732 VTABLE_ADD_FUNC(basic_streambuf_char_sync)
733 VTABLE_ADD_FUNC(basic_streambuf_char_imbue));
734 __ASM_VTABLE(basic_stringbuf_wchar,
735 VTABLE_ADD_FUNC(basic_stringbuf_wchar_vector_dtor)
736 VTABLE_ADD_FUNC(basic_stringbuf_wchar_overflow)
737 VTABLE_ADD_FUNC(basic_stringbuf_wchar_pbackfail)
738 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
739 VTABLE_ADD_FUNC(basic_stringbuf_wchar_underflow)
740 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
741 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
742 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s)
743 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
744 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekoff)
745 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekpos)
746 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
747 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
748 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
749 __ASM_VTABLE(basic_stringbuf_short,
750 VTABLE_ADD_FUNC(basic_stringbuf_wchar_vector_dtor)
751 VTABLE_ADD_FUNC(basic_stringbuf_wchar_overflow)
752 VTABLE_ADD_FUNC(basic_stringbuf_wchar_pbackfail)
753 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
754 VTABLE_ADD_FUNC(basic_stringbuf_wchar_underflow)
755 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
756 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
757 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s)
758 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
759 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekoff)
760 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekpos)
761 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
762 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
763 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
764 __ASM_VTABLE(basic_ostream_char,
765 VTABLE_ADD_FUNC(basic_ostream_char_vector_dtor));
766 __ASM_VTABLE(basic_ostream_wchar,
767 VTABLE_ADD_FUNC(basic_ostream_wchar_vector_dtor));
768 __ASM_VTABLE(basic_ostream_short,
769 VTABLE_ADD_FUNC(basic_ostream_wchar_vector_dtor));
770 __ASM_VTABLE(basic_istream_char,
771 VTABLE_ADD_FUNC(basic_istream_char_vector_dtor));
772 __ASM_VTABLE(basic_istream_wchar,
773 VTABLE_ADD_FUNC(basic_istream_wchar_vector_dtor));
774 __ASM_VTABLE(basic_istream_short,
775 VTABLE_ADD_FUNC(basic_istream_wchar_vector_dtor));
776 __ASM_VTABLE(basic_iostream_char,
777 VTABLE_ADD_FUNC(basic_iostream_char_vector_dtor));
778 __ASM_VTABLE(basic_iostream_wchar,
779 VTABLE_ADD_FUNC(basic_iostream_wchar_vector_dtor));
780 __ASM_VTABLE(basic_iostream_short,
781 VTABLE_ADD_FUNC(basic_iostream_wchar_vector_dtor));
782 __ASM_VTABLE(basic_ofstream_char,
783 VTABLE_ADD_FUNC(basic_ofstream_char_vector_dtor));
784 __ASM_VTABLE(basic_ofstream_wchar,
785 VTABLE_ADD_FUNC(basic_ofstream_wchar_vector_dtor));
786 __ASM_VTABLE(basic_ofstream_short,
787 VTABLE_ADD_FUNC(basic_ofstream_wchar_vector_dtor));
788 __ASM_VTABLE(basic_ifstream_char,
789 VTABLE_ADD_FUNC(basic_ifstream_char_vector_dtor));
790 __ASM_VTABLE(basic_ifstream_wchar,
791 VTABLE_ADD_FUNC(basic_ifstream_wchar_vector_dtor));
792 __ASM_VTABLE(basic_ifstream_short,
793 VTABLE_ADD_FUNC(basic_ifstream_wchar_vector_dtor));
794 __ASM_VTABLE(basic_fstream_char,
795 VTABLE_ADD_FUNC(basic_fstream_char_vector_dtor));
796 __ASM_VTABLE(basic_fstream_wchar,
797 VTABLE_ADD_FUNC(basic_fstream_wchar_vector_dtor));
798 __ASM_VTABLE(basic_fstream_short,
799 VTABLE_ADD_FUNC(basic_fstream_wchar_vector_dtor));
800 __ASM_VTABLE(basic_ostringstream_char,
801 VTABLE_ADD_FUNC(basic_ostringstream_char_vector_dtor));
802 __ASM_VTABLE(basic_ostringstream_wchar,
803 VTABLE_ADD_FUNC(basic_ostringstream_wchar_vector_dtor));
804 __ASM_VTABLE(basic_ostringstream_short,
805 VTABLE_ADD_FUNC(basic_ostringstream_wchar_vector_dtor));
806 __ASM_VTABLE(basic_istringstream_char,
807 VTABLE_ADD_FUNC(basic_istringstream_char_vector_dtor));
808 __ASM_VTABLE(basic_istringstream_wchar,
809 VTABLE_ADD_FUNC(basic_istringstream_wchar_vector_dtor));
810 __ASM_VTABLE(basic_istringstream_short,
811 VTABLE_ADD_FUNC(basic_istringstream_wchar_vector_dtor));
812 __ASM_VTABLE(basic_stringstream_char,
813 VTABLE_ADD_FUNC(basic_stringstream_char_vector_dtor));
814 __ASM_VTABLE(basic_stringstream_wchar,
815 VTABLE_ADD_FUNC(basic_stringstream_wchar_vector_dtor));
816 __ASM_VTABLE(basic_stringstream_short,
817 VTABLE_ADD_FUNC(basic_stringstream_wchar_vector_dtor));
818 __ASM_VTABLE(strstreambuf,
819 VTABLE_ADD_FUNC(strstreambuf_vector_dtor)
820 VTABLE_ADD_FUNC(strstreambuf_overflow)
821 VTABLE_ADD_FUNC(strstreambuf_pbackfail)
822 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
823 VTABLE_ADD_FUNC(strstreambuf_underflow)
824 VTABLE_ADD_FUNC(basic_streambuf_char_uflow)
825 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
826 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
827 VTABLE_ADD_FUNC(strstreambuf_seekoff)
828 VTABLE_ADD_FUNC(strstreambuf_seekpos)
829 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf)
830 VTABLE_ADD_FUNC(basic_streambuf_char_sync)
831 VTABLE_ADD_FUNC(basic_streambuf_char_imbue));
836 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
837 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
838 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp_next, 16)
839 void __thiscall basic_streambuf_char_setp_next(basic_streambuf_char *this, char *first, char *next, char *last)
841 TRACE("(%p %p %p %p)\n", this, first, next, last);
845 this->wsize = last-next;
848 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z */
849 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z */
850 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp, 12)
851 void __thiscall basic_streambuf_char_setp(basic_streambuf_char *this, char *first, char *last)
853 basic_streambuf_char_setp_next(this, first, first, last);
856 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
857 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
858 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setg, 16)
859 void __thiscall basic_streambuf_char_setg(basic_streambuf_char *this, char *first, char *next, char *last)
861 TRACE("(%p %p %p %p)\n", this, first, next, last);
865 this->rsize = last-next;
868 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ */
869 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ */
870 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init_empty, 4)
871 void __thiscall basic_streambuf_char__Init_empty(basic_streambuf_char *this)
873 TRACE("(%p)\n", this);
875 this->prbuf = &this->rbuf;
876 this->pwbuf = &this->wbuf;
877 this->prpos = &this->rpos;
878 this->pwpos = &this->wpos;
879 this->prsize = &this->rsize;
880 this->pwsize = &this->wsize;
882 basic_streambuf_char_setp(this, NULL, NULL);
883 basic_streambuf_char_setg(this, NULL, NULL, NULL);
886 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@W4_Uninitialized@1@@Z */
887 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
888 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor_uninitialized, 8)
889 basic_streambuf_char* __thiscall basic_streambuf_char_ctor_uninitialized(basic_streambuf_char *this, int uninitialized)
891 TRACE("(%p %d)\n", this, uninitialized);
892 this->vtable = &MSVCP_basic_streambuf_char_vtable;
893 mutex_ctor(&this->lock);
897 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ */
898 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ */
899 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor, 4)
900 basic_streambuf_char* __thiscall basic_streambuf_char_ctor(basic_streambuf_char *this)
902 TRACE("(%p)\n", this);
904 this->vtable = &MSVCP_basic_streambuf_char_vtable;
905 mutex_ctor(&this->lock);
906 this->loc = MSVCRT_operator_new(sizeof(locale));
907 locale_ctor(this->loc);
908 basic_streambuf_char__Init_empty(this);
913 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
914 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
915 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_dtor, 4)
916 void __thiscall basic_streambuf_char_dtor(basic_streambuf_char *this)
918 TRACE("(%p)\n", this);
920 mutex_dtor(&this->lock);
921 locale_dtor(this->loc);
922 MSVCRT_operator_delete(this->loc);
925 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_vector_dtor, 8)
926 basic_streambuf_char* __thiscall basic_streambuf_char_vector_dtor(basic_streambuf_char *this, unsigned int flags)
928 TRACE("(%p %x)\n", this, flags);
930 /* we have an array, with the number of elements stored before the first object */
931 INT_PTR i, *ptr = (INT_PTR *)this-1;
933 for(i=*ptr-1; i>=0; i--)
934 basic_streambuf_char_dtor(this+i);
935 MSVCRT_operator_delete(ptr);
937 basic_streambuf_char_dtor(this);
939 MSVCRT_operator_delete(this);
945 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
946 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
947 static streamsize basic_streambuf_char__Gnavail(const basic_streambuf_char *this)
949 TRACE("(%p)\n", this);
950 return *this->prpos ? *this->prsize : 0;
953 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
954 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
955 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gndec, 4)
956 char* __thiscall basic_streambuf_char__Gndec(basic_streambuf_char *this)
958 TRACE("(%p)\n", this);
964 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
965 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
966 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gninc, 4)
967 char* __thiscall basic_streambuf_char__Gninc(basic_streambuf_char *this)
969 TRACE("(%p)\n", this);
971 return (*this->prpos)++;
974 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
975 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
976 static char* basic_streambuf_char__Gnpreinc(basic_streambuf_char *this)
978 TRACE("(%p)\n", this);
984 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z */
985 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAPEAD0PEAH001@Z */
986 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init, 28)
987 void __thiscall basic_streambuf_char__Init(basic_streambuf_char *this, char **gf, char **gn, int *gc, char **pf, char **pn, int *pc)
989 TRACE("(%p %p %p %p %p %p %p)\n", this, gf, gn, gc, pf, pn, pc);
999 /* ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1000 /* ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1001 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Lock, 4)
1002 void __thiscall basic_streambuf_char__Lock(basic_streambuf_char *this)
1004 TRACE("(%p)\n", this);
1005 mutex_lock(&this->lock);
1008 /* ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
1009 /* ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
1010 static streamsize basic_streambuf_char__Pnavail(const basic_streambuf_char *this)
1012 TRACE("(%p)\n", this);
1013 return *this->pwpos ? *this->pwsize : 0;
1016 /* ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
1017 /* ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
1018 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Pninc, 4)
1019 char* __thiscall basic_streambuf_char__Pninc(basic_streambuf_char *this)
1021 TRACE("(%p)\n", this);
1023 return (*this->pwpos)++;
1026 /* ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1027 /* ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1028 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_underflow, 4)
1029 #define call_basic_streambuf_char_underflow(this) CALL_VTBL_FUNC(this, 16, \
1030 int, (basic_streambuf_char*), (this))
1031 int __thiscall basic_streambuf_char_underflow(basic_streambuf_char *this)
1033 TRACE("(%p)\n", this);
1037 /* ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1038 /* ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1039 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_uflow, 4)
1040 #define call_basic_streambuf_char_uflow(this) CALL_VTBL_FUNC(this, 20, \
1041 int, (basic_streambuf_char*), (this))
1042 int __thiscall basic_streambuf_char_uflow(basic_streambuf_char *this)
1046 TRACE("(%p)\n", this);
1048 if(call_basic_streambuf_char_underflow(this)==EOF)
1051 ret = **this->prpos;
1057 /* ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADIH@Z */
1058 /* ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_K_J@Z */
1059 static streamsize basic_streambuf_char__Xsgetn_s(basic_streambuf_char *this, char *ptr, MSVCP_size_t size, streamsize count)
1061 streamsize copied, chunk;
1064 TRACE("(%p %p %lu %ld)\n", this, ptr, size, count);
1066 for(copied=0; copied<count && size;) {
1067 chunk = basic_streambuf_char__Gnavail(this);
1068 if(chunk > count-copied)
1069 chunk = count-copied;
1072 memcpy_s(ptr+copied, size, *this->prpos, chunk);
1073 *this->prpos += chunk;
1074 *this->prsize -= chunk;
1077 }else if((c = call_basic_streambuf_char_uflow(this)) != EOF) {
1089 /* ?_Sgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADIH@Z */
1090 /* ?_Sgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_K_J@Z */
1091 static streamsize basic_streambuf_char__Sgetn_s(basic_streambuf_char *this, char *ptr, MSVCP_size_t size, streamsize count)
1093 TRACE("(%p %p %lu %ld)\n", this, ptr, size, count);
1094 return basic_streambuf_char__Xsgetn_s(this, ptr, size, count);
1097 /* ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1098 /* ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1099 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Unlock, 4)
1100 void __thiscall basic_streambuf_char__Unlock(basic_streambuf_char *this)
1102 TRACE("(%p)\n", this);
1103 mutex_unlock(&this->lock);
1106 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1107 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1108 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_eback, 4)
1109 char* __thiscall basic_streambuf_char_eback(const basic_streambuf_char *this)
1111 TRACE("(%p)\n", this);
1112 return *this->prbuf;
1115 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1116 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1117 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gptr, 4)
1118 char* __thiscall basic_streambuf_char_gptr(const basic_streambuf_char *this)
1120 TRACE("(%p)\n", this);
1121 return *this->prpos;
1124 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1125 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1126 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_egptr, 4)
1127 char* __thiscall basic_streambuf_char_egptr(const basic_streambuf_char *this)
1129 TRACE("(%p)\n", this);
1130 return *this->prpos+*this->prsize;
1133 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1134 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1135 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_epptr, 4)
1136 char* __thiscall basic_streambuf_char_epptr(const basic_streambuf_char *this)
1138 TRACE("(%p)\n", this);
1139 return *this->pwpos+*this->pwsize;
1142 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
1143 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
1144 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gbump, 8)
1145 void __thiscall basic_streambuf_char_gbump(basic_streambuf_char *this, int off)
1147 TRACE("(%p %d)\n", this, off);
1148 *this->prpos += off;
1149 *this->prsize -= off;
1152 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ */
1153 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?AVlocale@2@XZ */
1154 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_getloc, 8)
1155 locale* __thiscall basic_streambuf_char_getloc(const basic_streambuf_char *this, locale *ret)
1157 TRACE("(%p)\n", this);
1158 return locale_copy_ctor(ret, this->loc);
1161 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z */
1162 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z */
1163 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_imbue, 8)
1164 #define call_basic_streambuf_char_imbue(this, loc) CALL_VTBL_FUNC(this, 48, \
1165 void, (basic_streambuf_char*, const locale*), (this, loc))
1166 void __thiscall basic_streambuf_char_imbue(basic_streambuf_char *this, const locale *loc)
1168 TRACE("(%p %p)\n", this, loc);
1171 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
1172 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
1173 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_overflow, 8)
1174 #define call_basic_streambuf_char_overflow(this, ch) CALL_VTBL_FUNC(this, 4, \
1175 int, (basic_streambuf_char*, int), (this, ch))
1176 int __thiscall basic_streambuf_char_overflow(basic_streambuf_char *this, int ch)
1178 TRACE("(%p %d)\n", this, ch);
1182 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
1183 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
1184 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbackfail, 8)
1185 #define call_basic_streambuf_char_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, \
1186 int, (basic_streambuf_char*, int), (this, ch))
1187 int __thiscall basic_streambuf_char_pbackfail(basic_streambuf_char *this, int ch)
1189 TRACE("(%p %d)\n", this, ch);
1193 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1194 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1195 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbase, 4)
1196 char* __thiscall basic_streambuf_char_pbase(const basic_streambuf_char *this)
1198 TRACE("(%p)\n", this);
1199 return *this->pwbuf;
1202 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
1203 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
1204 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbump, 8)
1205 void __thiscall basic_streambuf_char_pbump(basic_streambuf_char *this, int off)
1207 TRACE("(%p %d)\n", this, off);
1208 *this->pwpos += off;
1209 *this->pwsize -= off;
1212 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1213 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1214 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pptr, 4)
1215 char* __thiscall basic_streambuf_char_pptr(const basic_streambuf_char *this)
1217 TRACE("(%p)\n", this);
1218 return *this->pwpos;
1221 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
1222 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
1223 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubimbue, 12)
1224 locale* __thiscall basic_streambuf_char_pubimbue(basic_streambuf_char *this, locale *ret, const locale *loc)
1226 TRACE("(%p %p)\n", this, loc);
1227 memcpy(ret, this->loc, sizeof(locale));
1228 call_basic_streambuf_char_imbue(this, loc);
1229 locale_copy_ctor(this->loc, loc);
1233 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
1234 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
1235 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekoff, 20)
1236 #define call_basic_streambuf_char_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 32, \
1237 fpos_int*, (basic_streambuf_char*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
1238 fpos_int* __thiscall basic_streambuf_char_seekoff(basic_streambuf_char *this,
1239 fpos_int *ret, streamoff off, int way, int mode)
1241 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
1248 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
1249 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
1250 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff, 20)
1251 fpos_int* __thiscall basic_streambuf_char_pubseekoff(basic_streambuf_char *this,
1252 fpos_int *ret, streamoff off, int way, int mode)
1254 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
1255 return call_basic_streambuf_char_seekoff(this, ret, off, way, mode);
1258 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
1259 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
1260 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff_old, 20)
1261 fpos_int* __thiscall basic_streambuf_char_pubseekoff_old(basic_streambuf_char *this,
1262 fpos_int *ret, streamoff off, unsigned int way, unsigned int mode)
1264 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
1265 return basic_streambuf_char_pubseekoff(this, ret, off, way, mode);
1268 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
1269 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
1270 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekpos, 36)
1271 #define call_basic_streambuf_char_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 36, \
1272 fpos_int*, (basic_streambuf_char*, fpos_int*, fpos_int, int), (this, ret, pos, mode))
1273 fpos_int* __thiscall basic_streambuf_char_seekpos(basic_streambuf_char *this,
1274 fpos_int *ret, fpos_int pos, int mode)
1276 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
1283 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
1284 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
1285 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos, 36)
1286 fpos_int* __thiscall basic_streambuf_char_pubseekpos(basic_streambuf_char *this,
1287 fpos_int *ret, fpos_int pos, int mode)
1289 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
1290 return call_basic_streambuf_char_seekpos(this, ret, pos, mode);
1293 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
1294 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
1295 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos_old, 36)
1296 fpos_int* __thiscall basic_streambuf_char_pubseekpos_old(basic_streambuf_char *this,
1297 fpos_int *ret, fpos_int pos, unsigned int mode)
1299 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
1300 return basic_streambuf_char_pubseekpos(this, ret, pos, mode);
1303 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z */
1304 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@PEAD_J@Z */
1305 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setbuf, 12)
1306 #define call_basic_streambuf_char_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 40, \
1307 basic_streambuf_char*, (basic_streambuf_char*, char*, streamsize), (this, buf, count))
1308 basic_streambuf_char* __thiscall basic_streambuf_char_setbuf(basic_streambuf_char *this, char *buf, streamsize count)
1310 TRACE("(%p %p %ld)\n", this, buf, count);
1314 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PADH@Z */
1315 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEAD_J@Z */
1316 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsetbuf, 12)
1317 basic_streambuf_char* __thiscall basic_streambuf_char_pubsetbuf(basic_streambuf_char *this, char *buf, streamsize count)
1319 TRACE("(%p %p %ld)\n", this, buf, count);
1320 return call_basic_streambuf_char_setbuf(this, buf, count);
1323 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1324 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1325 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sync, 4)
1326 #define call_basic_streambuf_char_sync(this) CALL_VTBL_FUNC(this, 44, \
1327 int, (basic_streambuf_char*), (this))
1328 int __thiscall basic_streambuf_char_sync(basic_streambuf_char *this)
1330 TRACE("(%p)\n", this);
1334 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1335 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1336 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsync, 4)
1337 int __thiscall basic_streambuf_char_pubsync(basic_streambuf_char *this)
1339 TRACE("(%p)\n", this);
1340 return call_basic_streambuf_char_sync(this);
1343 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADH@Z */
1344 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z */
1345 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetn, 12)
1346 streamsize __thiscall basic_streambuf_char_sgetn(basic_streambuf_char *this, char *ptr, streamsize count)
1348 TRACE("(%p %p %ld)\n", this, ptr, count);
1349 return basic_streambuf_char__Xsgetn_s(this, ptr, -1, count);
1352 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1353 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ */
1354 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_showmanyc, 4)
1355 #define call_basic_streambuf_char_showmanyc(this) CALL_VTBL_FUNC(this, 12, \
1356 streamsize, (basic_streambuf_char*), (this))
1357 streamsize __thiscall basic_streambuf_char_showmanyc(basic_streambuf_char *this)
1359 TRACE("(%p)\n", this);
1363 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1364 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JXZ */
1365 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_in_avail, 4)
1366 streamsize __thiscall basic_streambuf_char_in_avail(basic_streambuf_char *this)
1370 TRACE("(%p)\n", this);
1372 ret = basic_streambuf_char__Gnavail(this);
1373 return ret ? ret : call_basic_streambuf_char_showmanyc(this);
1376 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
1377 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
1378 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputbackc, 8)
1379 int __thiscall basic_streambuf_char_sputbackc(basic_streambuf_char *this, char ch)
1381 TRACE("(%p %d)\n", this, ch);
1382 if(*this->prpos && *this->prpos>*this->prbuf && (*this->prpos)[-1]==ch) {
1388 return call_basic_streambuf_char_pbackfail(this, ch);
1391 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
1392 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
1393 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputc, 8)
1394 int __thiscall basic_streambuf_char_sputc(basic_streambuf_char *this, char ch)
1396 TRACE("(%p %d)\n", this, ch);
1397 return basic_streambuf_char__Pnavail(this) ?
1398 (*basic_streambuf_char__Pninc(this) = ch) :
1399 call_basic_streambuf_char_overflow(this, ch);
1402 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1403 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1404 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sungetc, 4)
1405 int __thiscall basic_streambuf_char_sungetc(basic_streambuf_char *this)
1407 TRACE("(%p)\n", this);
1408 if(*this->prpos && *this->prpos>*this->prbuf) {
1411 return **this->prpos;
1414 return call_basic_streambuf_char_pbackfail(this, EOF);
1417 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1418 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1419 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_stossc, 4)
1420 void __thiscall basic_streambuf_char_stossc(basic_streambuf_char *this)
1422 TRACE("(%p)\n", this);
1423 if(basic_streambuf_char__Gnavail(this))
1424 basic_streambuf_char__Gninc(this);
1426 call_basic_streambuf_char_uflow(this);
1429 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1430 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1431 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sbumpc, 4)
1432 int __thiscall basic_streambuf_char_sbumpc(basic_streambuf_char *this)
1434 TRACE("(%p)\n", this);
1435 return basic_streambuf_char__Gnavail(this) ?
1436 *basic_streambuf_char__Gninc(this) : call_basic_streambuf_char_uflow(this);
1439 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1440 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1441 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetc, 4)
1442 int __thiscall basic_streambuf_char_sgetc(basic_streambuf_char *this)
1444 TRACE("(%p)\n", this);
1445 return basic_streambuf_char__Gnavail(this) ?
1446 *basic_streambuf_char_gptr(this) : call_basic_streambuf_char_underflow(this);
1449 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1450 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1451 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_snextc, 4)
1452 int __thiscall basic_streambuf_char_snextc(basic_streambuf_char *this)
1454 TRACE("(%p)\n", this);
1456 if(basic_streambuf_char__Gnavail(this) > 1)
1457 return *basic_streambuf_char__Gnpreinc(this);
1458 return basic_streambuf_char_sbumpc(this)==EOF ?
1459 EOF : basic_streambuf_char_sgetc(this);
1462 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z */
1463 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z */
1464 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsgetn, 12)
1465 #define call_basic_streambuf_char_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, \
1466 streamsize, (basic_streambuf_char*, char*, streamsize), (this, ptr, count))
1467 streamsize __thiscall basic_streambuf_char_xsgetn(basic_streambuf_char *this, char *ptr, streamsize count)
1469 TRACE("(%p %p %ld)\n", this, ptr, count);
1470 return basic_streambuf_char__Xsgetn_s(this, ptr, -1, count);
1473 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z */
1474 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z */
1475 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsputn, 12)
1476 #define call_basic_streambuf_char_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 28, \
1477 streamsize, (basic_streambuf_char*, const char*, streamsize), (this, ptr, count))
1478 streamsize __thiscall basic_streambuf_char_xsputn(basic_streambuf_char *this, const char *ptr, streamsize count)
1480 streamsize copied, chunk;
1482 TRACE("(%p %p %ld)\n", this, ptr, count);
1484 for(copied=0; copied<count;) {
1485 chunk = basic_streambuf_char__Pnavail(this);
1486 if(chunk > count-copied)
1487 chunk = count-copied;
1490 memcpy(*this->pwpos, ptr+copied, chunk);
1491 *this->pwpos += chunk;
1492 *this->pwsize -= chunk;
1494 }else if(call_basic_streambuf_char_overflow(this, ptr[copied]) != EOF) {
1504 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z */
1505 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@Z */
1506 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputn, 12)
1507 streamsize __thiscall basic_streambuf_char_sputn(basic_streambuf_char *this, const char *ptr, streamsize count)
1509 TRACE("(%p %p %ld)\n", this, ptr, count);
1510 return call_basic_streambuf_char_xsputn(this, ptr, count);
1513 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z */
1514 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z */
1515 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG00@Z */
1516 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z */
1517 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setp_next, 16)
1518 void __thiscall basic_streambuf_wchar_setp_next(basic_streambuf_wchar *this, wchar_t *first, wchar_t *next, wchar_t *last)
1520 TRACE("(%p %p %p %p)\n", this, first, next, last);
1524 this->wsize = last-next;
1527 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W0@Z */
1528 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W0@Z */
1529 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG0@Z */
1530 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG0@Z */
1531 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setp, 12)
1532 void __thiscall basic_streambuf_wchar_setp(basic_streambuf_wchar *this, wchar_t *first, wchar_t *last)
1534 basic_streambuf_wchar_setp_next(this, first, first, last);
1537 /* ?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z */
1538 /* ?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z */
1539 /* ?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG00@Z */
1540 /* ?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z */
1541 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setg, 16)
1542 void __thiscall basic_streambuf_wchar_setg(basic_streambuf_wchar *this, wchar_t *first, wchar_t *next, wchar_t *last)
1544 TRACE("(%p %p %p %p)\n", this, first, next, last);
1548 this->rsize = last-next;
1551 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXXZ */
1552 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXXZ */
1553 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXXZ */
1554 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXXZ */
1555 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init_empty, 4)
1556 void __thiscall basic_streambuf_wchar__Init_empty(basic_streambuf_wchar *this)
1558 TRACE("(%p)\n", this);
1560 this->prbuf = &this->rbuf;
1561 this->pwbuf = &this->wbuf;
1562 this->prpos = &this->rpos;
1563 this->pwpos = &this->wpos;
1564 this->prsize = &this->rsize;
1565 this->pwsize = &this->wsize;
1567 basic_streambuf_wchar_setp(this, NULL, NULL);
1568 basic_streambuf_wchar_setg(this, NULL, NULL, NULL);
1571 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAE@W4_Uninitialized@1@@Z */
1572 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
1573 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_ctor_uninitialized, 8)
1574 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_ctor_uninitialized(basic_streambuf_wchar *this, int uninitialized)
1576 TRACE("(%p %d)\n", this, uninitialized);
1577 this->vtable = &MSVCP_basic_streambuf_wchar_vtable;
1578 mutex_ctor(&this->lock);
1582 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@W4_Uninitialized@1@@Z */
1583 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
1584 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor_uninitialized, 8)
1585 basic_streambuf_wchar* __thiscall basic_streambuf_short_ctor_uninitialized(basic_streambuf_wchar *this, int uninitialized)
1587 TRACE("(%p %d)\n", this, uninitialized);
1588 basic_streambuf_wchar_ctor_uninitialized(this, uninitialized);
1589 this->vtable = &MSVCP_basic_streambuf_short_vtable;
1593 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
1594 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
1595 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_ctor, 4)
1596 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_ctor(basic_streambuf_wchar *this)
1598 TRACE("(%p)\n", this);
1600 this->vtable = &MSVCP_basic_streambuf_wchar_vtable;
1601 mutex_ctor(&this->lock);
1602 this->loc = MSVCRT_operator_new(sizeof(locale));
1603 locale_ctor(this->loc);
1604 basic_streambuf_wchar__Init_empty(this);
1609 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@XZ */
1610 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@XZ */
1611 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor, 4)
1612 basic_streambuf_wchar* __thiscall basic_streambuf_short_ctor(basic_streambuf_wchar *this)
1614 TRACE("(%p)\n", this);
1615 basic_streambuf_wchar_ctor(this);
1616 this->vtable = &MSVCP_basic_streambuf_short_vtable;
1620 /* ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
1621 /* ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
1622 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UAE@XZ */
1623 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */
1624 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_dtor, 4)
1625 void __thiscall basic_streambuf_wchar_dtor(basic_streambuf_wchar *this)
1627 TRACE("(%p)\n", this);
1629 mutex_dtor(&this->lock);
1630 locale_dtor(this->loc);
1631 MSVCRT_operator_delete(this->loc);
1634 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_vector_dtor, 8)
1635 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_vector_dtor(basic_streambuf_wchar *this, unsigned int flags)
1637 TRACE("(%p %x)\n", this, flags);
1639 /* we have an array, with the number of elements stored before the first object */
1640 INT_PTR i, *ptr = (INT_PTR *)this-1;
1642 for(i=*ptr-1; i>=0; i--)
1643 basic_streambuf_wchar_dtor(this+i);
1644 MSVCRT_operator_delete(ptr);
1646 basic_streambuf_wchar_dtor(this);
1648 MSVCRT_operator_delete(this);
1654 /* ?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEHXZ */
1655 /* ?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ */
1656 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
1657 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
1658 static streamsize basic_streambuf_wchar__Gnavail(const basic_streambuf_wchar *this)
1660 TRACE("(%p)\n", this);
1661 return *this->prpos ? *this->prsize : 0;
1664 /* ?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1665 /* ?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1666 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1667 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1668 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gndec, 4)
1669 wchar_t* __thiscall basic_streambuf_wchar__Gndec(basic_streambuf_wchar *this)
1671 TRACE("(%p)\n", this);
1674 return *this->prpos;
1677 /* ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1678 /* ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1679 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1680 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1681 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gninc, 4)
1682 wchar_t* __thiscall basic_streambuf_wchar__Gninc(basic_streambuf_wchar *this)
1684 TRACE("(%p)\n", this);
1686 return (*this->prpos)++;
1689 /* ?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1690 /* ?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1691 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1692 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1693 static wchar_t* basic_streambuf_wchar__Gnpreinc(basic_streambuf_wchar *this)
1695 TRACE("(%p)\n", this);
1698 return *this->prpos;
1701 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPAPA_W0PAH001@Z */
1702 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAPEA_W0PEAH001@Z */
1703 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAPAG0PAH001@Z */
1704 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAPEAG0PEAH001@Z */
1705 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init, 28)
1706 void __thiscall basic_streambuf_wchar__Init(basic_streambuf_wchar *this, wchar_t **gf, wchar_t **gn, int *gc, wchar_t **pf, wchar_t **pn, int *pc)
1708 TRACE("(%p %p %p %p %p %p %p)\n", this, gf, gn, gc, pf, pn, pc);
1718 /* ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1719 /* ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1720 /* ?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1721 /* ?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1722 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Lock, 4)
1723 void __thiscall basic_streambuf_wchar__Lock(basic_streambuf_wchar *this)
1725 TRACE("(%p)\n", this);
1726 mutex_lock(&this->lock);
1729 /* ?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEHXZ */
1730 /* ?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ */
1731 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
1732 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
1733 static streamsize basic_streambuf_wchar__Pnavail(const basic_streambuf_wchar *this)
1735 TRACE("(%p)\n", this);
1736 return *this->pwpos ? *this->pwsize : 0;
1739 /* ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1740 /* ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1741 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1742 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1743 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Pninc, 4)
1744 wchar_t* __thiscall basic_streambuf_wchar__Pninc(basic_streambuf_wchar *this)
1746 TRACE("(%p)\n", this);
1748 return (*this->pwpos)++;
1751 /* ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
1752 /* ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
1753 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
1754 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
1755 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_underflow, 4)
1756 #define call_basic_streambuf_wchar_underflow(this) CALL_VTBL_FUNC(this, 16, \
1757 unsigned short, (basic_streambuf_wchar*), (this))
1758 unsigned short __thiscall basic_streambuf_wchar_underflow(basic_streambuf_wchar *this)
1760 TRACE("(%p)\n", this);
1764 /* ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
1765 /* ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
1766 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
1767 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
1768 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_uflow, 4)
1769 #define call_basic_streambuf_wchar_uflow(this) CALL_VTBL_FUNC(this, 20, \
1770 unsigned short, (basic_streambuf_wchar*), (this))
1771 unsigned short __thiscall basic_streambuf_wchar_uflow(basic_streambuf_wchar *this)
1775 TRACE("(%p)\n", this);
1777 if(call_basic_streambuf_wchar_underflow(this)==WEOF)
1780 ret = **this->prpos;
1786 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WIH@Z */
1787 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_K_J@Z */
1788 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGIH@Z */
1789 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_K_J@Z */
1790 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Xsgetn_s, 16)
1791 #define call_basic_streambuf_wchar__Xsgetn_s(this, ptr, size, count) CALL_VTBL_FUNC(this, 28, \
1792 streamsize, (basic_streambuf_wchar*, wchar_t*, MSVCP_size_t, streamsize), (this, ptr, size, count))
1793 streamsize __thiscall basic_streambuf_wchar__Xsgetn_s(basic_streambuf_wchar *this, wchar_t *ptr, MSVCP_size_t size, streamsize count)
1795 streamsize copied, chunk;
1798 TRACE("(%p %p %lu %ld)\n", this, ptr, size, count);
1800 for(copied=0; copied<count && size;) {
1801 chunk = basic_streambuf_wchar__Gnavail(this);
1802 if(chunk > count-copied)
1803 chunk = count-copied;
1806 memcpy_s(ptr+copied, size, *this->prpos, chunk*sizeof(wchar_t));
1807 *this->prpos += chunk;
1808 *this->prsize -= chunk;
1810 size -= chunk*sizeof(wchar_t);
1811 }else if((c = call_basic_streambuf_wchar_uflow(this)) != WEOF) {
1823 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPA_WIH@Z */
1824 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_K_J@Z */
1825 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGIH@Z */
1826 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_K_J@Z */
1827 static streamsize basic_streambuf_wchar__Sgetn_s(basic_streambuf_wchar *this, wchar_t *ptr, MSVCP_size_t size, streamsize count)
1829 TRACE("(%p %p %lu %ld)\n", this, ptr, size, count);
1830 return call_basic_streambuf_wchar__Xsgetn_s(this, ptr, size, count);
1833 /* ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1834 /* ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1835 /* ?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1836 /* ?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1837 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Unlock, 4)
1838 void __thiscall basic_streambuf_wchar__Unlock(basic_streambuf_wchar *this)
1840 TRACE("(%p)\n", this);
1841 mutex_unlock(&this->lock);
1844 /* ?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1845 /* ?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1846 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1847 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1848 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_eback, 4)
1849 wchar_t* __thiscall basic_streambuf_wchar_eback(const basic_streambuf_wchar *this)
1851 TRACE("(%p)\n", this);
1852 return *this->prbuf;
1855 /* ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1856 /* ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1857 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1858 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1859 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gptr, 4)
1860 wchar_t* __thiscall basic_streambuf_wchar_gptr(const basic_streambuf_wchar *this)
1862 TRACE("(%p)\n", this);
1863 return *this->prpos;
1866 /* ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1867 /* ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1868 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1869 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1870 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_egptr, 4)
1871 wchar_t* __thiscall basic_streambuf_wchar_egptr(const basic_streambuf_wchar *this)
1873 TRACE("(%p)\n", this);
1874 return *this->prpos+*this->prsize;
1877 /* ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1878 /* ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1879 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1880 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1881 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_epptr, 4)
1882 wchar_t* __thiscall basic_streambuf_wchar_epptr(const basic_streambuf_wchar *this)
1884 TRACE("(%p)\n", this);
1885 return *this->pwpos+*this->pwsize;
1888 /* ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z */
1889 /* ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z */
1890 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
1891 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
1892 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gbump, 8)
1893 void __thiscall basic_streambuf_wchar_gbump(basic_streambuf_wchar *this, int off)
1895 TRACE("(%p %d)\n", this, off);
1896 *this->prpos += off;
1897 *this->prsize -= off;
1900 /* ?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QBE?AVlocale@2@XZ */
1901 /* ?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEBA?AVlocale@2@XZ */
1902 /* ?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QBE?AVlocale@2@XZ */
1903 /* ?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEBA?AVlocale@2@XZ */
1904 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_getloc, 8)
1905 locale* __thiscall basic_streambuf_wchar_getloc(const basic_streambuf_wchar *this, locale *ret)
1907 TRACE("(%p)\n", this);
1908 return locale_copy_ctor(ret, this->loc);
1911 /* ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z */
1912 /* ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z */
1913 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEXABVlocale@2@@Z */
1914 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z */
1915 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_imbue, 8)
1916 #define call_basic_streambuf_wchar_imbue(this, loc) CALL_VTBL_FUNC(this, 52, \
1917 void, (basic_streambuf_wchar*, const locale*), (this, loc))
1918 void __thiscall basic_streambuf_wchar_imbue(basic_streambuf_wchar *this, const locale *loc)
1920 TRACE("(%p %p)\n", this, loc);
1923 /* ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
1924 /* ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
1925 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
1926 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
1927 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_overflow, 8)
1928 #define call_basic_streambuf_wchar_overflow(this, ch) CALL_VTBL_FUNC(this, 4, \
1929 unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
1930 unsigned short __thiscall basic_streambuf_wchar_overflow(basic_streambuf_wchar *this, unsigned short ch)
1932 TRACE("(%p %d)\n", this, ch);
1936 /* ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
1937 /* ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
1938 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
1939 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
1940 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbackfail, 8)
1941 #define call_basic_streambuf_wchar_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, \
1942 unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
1943 unsigned short __thiscall basic_streambuf_wchar_pbackfail(basic_streambuf_wchar *this, unsigned short ch)
1945 TRACE("(%p %d)\n", this, ch);
1949 /* ?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1950 /* ?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1951 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1952 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1953 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbase, 4)
1954 wchar_t* __thiscall basic_streambuf_wchar_pbase(const basic_streambuf_wchar *this)
1956 TRACE("(%p)\n", this);
1957 return *this->pwbuf;
1960 /* ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z */
1961 /* ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z */
1962 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
1963 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
1964 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbump, 8)
1965 void __thiscall basic_streambuf_wchar_pbump(basic_streambuf_wchar *this, int off)
1967 TRACE("(%p %d)\n", this, off);
1968 *this->pwpos += off;
1969 *this->pwsize -= off;
1972 /* ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1973 /* ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1974 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1975 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1976 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pptr, 4)
1977 wchar_t* __thiscall basic_streambuf_wchar_pptr(const basic_streambuf_wchar *this)
1979 TRACE("(%p)\n", this);
1980 return *this->pwpos;
1983 /* ?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
1984 /* ?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
1985 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
1986 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
1987 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubimbue, 12)
1988 locale* __thiscall basic_streambuf_wchar_pubimbue(basic_streambuf_wchar *this, locale *ret, const locale *loc)
1990 TRACE("(%p %p)\n", this, loc);
1991 memcpy(ret, this->loc, sizeof(locale));
1992 call_basic_streambuf_wchar_imbue(this, loc);
1993 locale_copy_ctor(this->loc, loc);
1997 /* ?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
1998 /* ?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
1999 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
2000 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
2001 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekoff, 20)
2002 #define call_basic_streambuf_wchar_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 36, \
2003 fpos_int*, (basic_streambuf_wchar*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
2004 fpos_int* __thiscall basic_streambuf_wchar_seekoff(basic_streambuf_wchar *this,
2005 fpos_int *ret, streamoff off, int way, int mode)
2007 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
2014 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
2015 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
2016 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
2017 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
2018 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff, 20)
2019 fpos_int* __thiscall basic_streambuf_wchar_pubseekoff(basic_streambuf_wchar *this,
2020 fpos_int *ret, streamoff off, int way, int mode)
2022 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
2023 return call_basic_streambuf_wchar_seekoff(this, ret, off, way, mode);
2026 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
2027 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
2028 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
2029 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
2030 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff_old, 20)
2031 fpos_int* __thiscall basic_streambuf_wchar_pubseekoff_old(basic_streambuf_wchar *this,
2032 fpos_int *ret, streamoff off, unsigned int way, unsigned int mode)
2034 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
2035 return basic_streambuf_wchar_pubseekoff(this, ret, off, way, mode);
2038 /* ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2039 /* ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2040 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2041 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2042 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekpos, 36)
2043 #define call_basic_streambuf_wchar_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 40, \
2044 fpos_int*, (basic_streambuf_wchar*, fpos_int*, fpos_int, int), (this, ret, pos, mode))
2045 fpos_int* __thiscall basic_streambuf_wchar_seekpos(basic_streambuf_wchar *this,
2046 fpos_int *ret, fpos_int pos, int mode)
2048 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
2055 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
2056 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
2057 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
2058 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
2059 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekpos, 36)
2060 fpos_int* __thiscall basic_streambuf_wchar_pubseekpos(basic_streambuf_wchar *this,
2061 fpos_int *ret, fpos_int pos, int mode)
2063 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
2064 return call_basic_streambuf_wchar_seekpos(this, ret, pos, mode);
2067 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
2068 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
2069 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
2070 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
2071 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekpos_old, 36)
2072 fpos_int* __thiscall basic_streambuf_wchar_pubseekpos_old(basic_streambuf_wchar *this,
2073 fpos_int *ret, fpos_int pos, unsigned int mode)
2075 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
2076 return basic_streambuf_wchar_pubseekpos(this, ret, pos, mode);
2079 /* ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEPAV12@PA_WH@Z */
2080 /* ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV12@PEA_W_J@Z */
2081 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEPAV12@PAGH@Z */
2082 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAPEAV12@PEAG_J@Z */
2083 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setbuf, 12)
2084 #define call_basic_streambuf_wchar_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 44, \
2085 basic_streambuf_wchar*, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, buf, count))
2086 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_setbuf(basic_streambuf_wchar *this, wchar_t *buf, streamsize count)
2088 TRACE("(%p %p %ld)\n", this, buf, count);
2092 /* ?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PA_WH@Z */
2093 /* ?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEA_W_J@Z */
2094 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PAGH@Z */
2095 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEAG_J@Z */
2096 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsetbuf, 12)
2097 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_pubsetbuf(basic_streambuf_wchar *this, wchar_t *buf, streamsize count)
2099 TRACE("(%p %p %ld)\n", this, buf, count);
2100 return call_basic_streambuf_wchar_setbuf(this, buf, count);
2103 /* ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
2104 /* ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ */
2105 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
2106 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAHXZ */
2107 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sync, 4)
2108 #define call_basic_streambuf_wchar_sync(this) CALL_VTBL_FUNC(this, 48, \
2109 int, (basic_streambuf_wchar*), (this))
2110 int __thiscall basic_streambuf_wchar_sync(basic_streambuf_wchar *this)
2112 TRACE("(%p)\n", this);
2116 /* ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
2117 /* ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAHXZ */
2118 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
2119 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHXZ */
2120 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsync, 4)
2121 int __thiscall basic_streambuf_wchar_pubsync(basic_streambuf_wchar *this)
2123 TRACE("(%p)\n", this);
2124 return call_basic_streambuf_wchar_sync(this);
2127 /* ?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPA_WH@Z */
2128 /* ?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z */
2129 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGH@Z */
2130 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z */
2131 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetn, 12)
2132 streamsize __thiscall basic_streambuf_wchar_sgetn(basic_streambuf_wchar *this, wchar_t *ptr, streamsize count)
2134 TRACE("(%p %p %ld)\n", this, ptr, count);
2135 return call_basic_streambuf_wchar__Xsgetn_s(this, ptr, -1, count);
2138 /* ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
2139 /* ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JXZ */
2140 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
2141 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JXZ */
2142 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_showmanyc, 4)
2143 #define call_basic_streambuf_wchar_showmanyc(this) CALL_VTBL_FUNC(this, 12, \
2144 streamsize, (basic_streambuf_wchar*), (this))
2145 streamsize __thiscall basic_streambuf_wchar_showmanyc(basic_streambuf_wchar *this)
2147 TRACE("(%p)\n", this);
2151 /* ?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
2152 /* ?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JXZ */
2153 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
2154 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JXZ */
2155 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_in_avail, 4)
2156 streamsize __thiscall basic_streambuf_wchar_in_avail(basic_streambuf_wchar *this)
2160 TRACE("(%p)\n", this);
2162 ret = basic_streambuf_wchar__Gnavail(this);
2163 return ret ? ret : call_basic_streambuf_wchar_showmanyc(this);
2166 /* ?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z */
2167 /* ?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z */
2168 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
2169 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z */
2170 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputbackc, 8)
2171 unsigned short __thiscall basic_streambuf_wchar_sputbackc(basic_streambuf_wchar *this, wchar_t ch)
2173 TRACE("(%p %d)\n", this, ch);
2174 if(*this->prpos && *this->prpos>*this->prbuf && (*this->prpos)[-1]==ch) {
2180 return call_basic_streambuf_wchar_pbackfail(this, ch);
2183 /* ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z */
2184 /* ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z */
2185 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
2186 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHG@Z */
2187 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputc, 8)
2188 unsigned short __thiscall basic_streambuf_wchar_sputc(basic_streambuf_wchar *this, wchar_t ch)
2190 TRACE("(%p %d)\n", this, ch);
2191 return basic_streambuf_wchar__Pnavail(this) ?
2192 (*basic_streambuf_wchar__Pninc(this) = ch) :
2193 call_basic_streambuf_wchar_overflow(this, ch);
2196 /* ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2197 /* ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2198 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2199 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2200 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sungetc, 4)
2201 unsigned short __thiscall basic_streambuf_wchar_sungetc(basic_streambuf_wchar *this)
2203 TRACE("(%p)\n", this);
2204 if(*this->prpos && *this->prpos>*this->prbuf) {
2207 return **this->prpos;
2210 return call_basic_streambuf_wchar_pbackfail(this, WEOF);
2213 /* ?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
2214 /* ?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
2215 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
2216 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
2217 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_stossc, 4)
2218 void __thiscall basic_streambuf_wchar_stossc(basic_streambuf_wchar *this)
2220 TRACE("(%p)\n", this);
2221 if(basic_streambuf_wchar__Gnavail(this))
2222 basic_streambuf_wchar__Gninc(this);
2224 call_basic_streambuf_wchar_uflow(this);
2227 /* ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2228 /* ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2229 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2230 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2231 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sbumpc, 4)
2232 unsigned short __thiscall basic_streambuf_wchar_sbumpc(basic_streambuf_wchar *this)
2234 TRACE("(%p)\n", this);
2235 return basic_streambuf_wchar__Gnavail(this) ?
2236 *basic_streambuf_wchar__Gninc(this) : call_basic_streambuf_wchar_uflow(this);
2239 /* ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2240 /* ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2241 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2242 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2243 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetc, 4)
2244 unsigned short __thiscall basic_streambuf_wchar_sgetc(basic_streambuf_wchar *this)
2246 TRACE("(%p)\n", this);
2247 return basic_streambuf_wchar__Gnavail(this) ?
2248 *basic_streambuf_wchar_gptr(this) : call_basic_streambuf_wchar_underflow(this);
2251 /* ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2252 /* ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2253 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2254 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2255 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_snextc, 4)
2256 unsigned short __thiscall basic_streambuf_wchar_snextc(basic_streambuf_wchar *this)
2258 TRACE("(%p)\n", this);
2260 if(basic_streambuf_wchar__Gnavail(this) > 1)
2261 return *basic_streambuf_wchar__Gnpreinc(this);
2262 return basic_streambuf_wchar_sbumpc(this)==WEOF ?
2263 WEOF : basic_streambuf_wchar_sgetc(this);
2266 /* ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WH@Z */
2267 /* ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_J@Z */
2268 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGH@Z */
2269 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_J@Z */
2270 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsgetn, 12)
2271 #define call_basic_streambuf_wchar_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, \
2272 streamsize, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, ptr, count))
2273 streamsize __thiscall basic_streambuf_wchar_xsgetn(basic_streambuf_wchar *this, wchar_t *ptr, streamsize count)
2275 TRACE("(%p %p %ld)\n", this, ptr, count);
2276 return call_basic_streambuf_wchar__Xsgetn_s(this, ptr, -1, count);
2279 /* ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPB_WH@Z */
2280 /* ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEB_W_J@Z */
2281 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPBGH@Z */
2282 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEBG_J@Z */
2283 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsputn, 12)
2284 #define call_basic_streambuf_wchar_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 32, \
2285 streamsize, (basic_streambuf_wchar*, const wchar_t*, streamsize), (this, ptr, count))
2286 streamsize __thiscall basic_streambuf_wchar_xsputn(basic_streambuf_wchar *this, const wchar_t *ptr, streamsize count)
2288 streamsize copied, chunk;
2290 TRACE("(%p %p %ld)\n", this, ptr, count);
2292 for(copied=0; copied<count;) {
2293 chunk = basic_streambuf_wchar__Pnavail(this);
2294 if(chunk > count-copied)
2295 chunk = count-copied;
2298 memcpy(*this->pwpos, ptr+copied, chunk*sizeof(wchar_t));
2299 *this->pwpos += chunk;
2300 *this->pwsize -= chunk;
2302 }else if(call_basic_streambuf_wchar_overflow(this, ptr[copied]) != WEOF) {
2312 /* ?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPB_WH@Z */
2313 /* ?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEB_W_J@Z */
2314 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPBGH@Z */
2315 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEBG_J@Z */
2316 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputn, 12)
2317 streamsize __thiscall basic_streambuf_wchar_sputn(basic_streambuf_wchar *this, const wchar_t *ptr, streamsize count)
2319 TRACE("(%p %p %ld)\n", this, ptr, count);
2320 return call_basic_streambuf_wchar_xsputn(this, ptr, count);
2323 /* ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
2324 /* ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
2325 int basic_filebuf_char__Init__Stinit = 0;
2327 /* ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
2328 /* ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
2329 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Init, 12)
2330 void __thiscall basic_filebuf_char__Init(basic_filebuf_char *this, FILE *file, basic_filebuf__Initfl which)
2332 TRACE("(%p %p %d)\n", this, file, which);
2335 this->wrotesome = FALSE;
2336 this->state = basic_filebuf_char__Init__Stinit;
2337 this->close = (which == INITFL_open);
2340 basic_streambuf_char__Init_empty(&this->base);
2342 basic_streambuf_char__Init(&this->base, &file->_base, &file->_ptr,
2343 &file->_cnt, &file->_base, &file->_ptr, &file->_cnt);
2346 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAV?$codecvt@DDH@2@@Z */
2347 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$codecvt@DDH@2@@Z */
2348 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Initcvt, 8)
2349 void __thiscall basic_filebuf_char__Initcvt(basic_filebuf_char *this, codecvt_char *cvt)
2351 TRACE("(%p %p)\n", this, cvt);
2353 if(codecvt_base_always_noconv(&cvt->base)) {
2356 basic_streambuf_char__Init_empty(&this->base);
2361 /* ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ */
2362 /* ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ */
2363 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Endwrite, 4)
2364 MSVCP_bool __thiscall basic_filebuf_char__Endwrite(basic_filebuf_char *this)
2366 TRACE("(%p)\n", this);
2368 if(!this->wrotesome || !this->cvt)
2372 if(call_basic_streambuf_char_overflow(&this->base, EOF) == EOF)
2376 /* TODO: check if we need a dynamic buffer here */
2381 ret = codecvt_char_unshift(this->cvt, &this->state, buf, buf+sizeof(buf), &next);
2384 this->wrotesome = FALSE;
2386 case CODECVT_partial:
2387 if(!fwrite(buf, next-buf, 1, this->file))
2392 case CODECVT_noconv:
2393 if(call_basic_streambuf_char_overflow(&this->base, EOF) == EOF)
2402 /* ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ */
2403 /* ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ */
2404 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_close, 4)
2405 basic_filebuf_char* __thiscall basic_filebuf_char_close(basic_filebuf_char *this)
2407 basic_filebuf_char *ret = this;
2409 TRACE("(%p)\n", this);
2414 /* TODO: handle exceptions */
2415 if(!basic_filebuf_char__Endwrite(this))
2417 if(!fclose(this->file))
2420 basic_filebuf_char__Init(this, NULL, INITFL_close);
2424 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
2425 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
2426 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor_file, 8)
2427 basic_filebuf_char* __thiscall basic_filebuf_char_ctor_file(basic_filebuf_char *this, FILE *file)
2429 TRACE("(%p %p)\n", this, file);
2431 basic_streambuf_char_ctor(&this->base);
2432 this->base.vtable = &MSVCP_basic_filebuf_char_vtable;
2434 basic_filebuf_char__Init(this, file, INITFL_new);
2438 /* ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
2439 /* ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
2440 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor, 4)
2441 basic_filebuf_char* __thiscall basic_filebuf_char_ctor(basic_filebuf_char *this)
2443 return basic_filebuf_char_ctor_file(this, NULL);
2446 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
2447 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
2448 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor_uninitialized, 8)
2449 basic_filebuf_char* __thiscall basic_filebuf_char_ctor_uninitialized(basic_filebuf_char *this, int uninitialized)
2451 TRACE("(%p %d)\n", this, uninitialized);
2453 basic_streambuf_char_ctor(&this->base);
2454 this->base.vtable = &MSVCP_basic_filebuf_char_vtable;
2458 /* ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
2459 /* ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
2460 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_dtor, 4)
2461 void __thiscall basic_filebuf_char_dtor(basic_filebuf_char *this)
2463 TRACE("(%p)\n", this);
2466 basic_filebuf_char_close(this);
2467 basic_streambuf_char_dtor(&this->base);
2470 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_vector_dtor, 8)
2471 basic_filebuf_char* __thiscall basic_filebuf_char_vector_dtor(basic_filebuf_char *this, unsigned int flags)
2473 TRACE("(%p %x)\n", this, flags);
2475 /* we have an array, with the number of elements stored before the first object */
2476 INT_PTR i, *ptr = (INT_PTR *)this-1;
2478 for(i=*ptr-1; i>=0; i--)
2479 basic_filebuf_char_dtor(this+i);
2480 MSVCRT_operator_delete(ptr);
2482 basic_filebuf_char_dtor(this);
2484 MSVCRT_operator_delete(this);
2490 /* ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QBE_NXZ */
2491 /* ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
2492 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_is_open, 4)
2493 MSVCP_bool __thiscall basic_filebuf_char_is_open(const basic_filebuf_char *this)
2495 TRACE("(%p)\n", this);
2496 return this->file != NULL;
2499 /* ?_Fiopen@std@@YAPAU_iobuf@@PB_WHH@Z */
2500 /* ?_Fiopen@std@@YAPEAU_iobuf@@PEB_WHH@Z */
2501 static FILE* _Fiopen_wchar(const wchar_t *name, int mode, int prot)
2503 static const wchar_t rW[] = {'r',0};
2504 static const struct {
2506 const wchar_t str[4];
2507 const wchar_t str_bin[4];
2509 {OPENMODE_out, {'w',0}, {'w','b',0}},
2510 {OPENMODE_out|OPENMODE_app, {'a',0}, {'a','b',0}},
2511 {OPENMODE_app, {'a',0}, {'a','b',0}},
2512 {OPENMODE_out|OPENMODE_trunc, {'w',0}, {'w','b',0}},
2513 {OPENMODE_in, {'r',0}, {'r','b',0}},
2514 {OPENMODE_in|OPENMODE_out, {'r','+',0}, {'r','+','b',0}},
2515 {OPENMODE_in|OPENMODE_out|OPENMODE_trunc, {'w','+',0}, {'w','+','b',0}},
2516 {OPENMODE_in|OPENMODE_out|OPENMODE_app, {'a','+',0}, {'a','+','b',0}},
2517 {OPENMODE_in|OPENMODE_app, {'a','+',0}, {'a','+','b',0}}
2520 int real_mode = mode & ~(OPENMODE_ate|OPENMODE__Nocreate|OPENMODE__Noreplace|OPENMODE_binary);
2524 TRACE("(%s %d %d)\n", debugstr_w(name), mode, prot);
2526 for(mode_idx=0; mode_idx<sizeof(str_mode)/sizeof(str_mode[0]); mode_idx++)
2527 if(str_mode[mode_idx].mode == real_mode)
2529 if(mode_idx == sizeof(str_mode)/sizeof(str_mode[0]))
2532 if((mode & OPENMODE__Nocreate) && !(f = _wfopen(name, rW)))
2537 if((mode & OPENMODE__Noreplace) && (mode & (OPENMODE_out|OPENMODE_app))
2538 && (f = _wfopen(name, rW))) {
2543 f = _wfsopen(name, (mode & OPENMODE_binary) ? str_mode[mode_idx].str_bin
2544 : str_mode[mode_idx].str, prot);
2548 if((mode & OPENMODE_ate) && fseek(f, 0, SEEK_END)) {
2556 /* ?_Fiopen@std@@YAPAU_iobuf@@PBDHH@Z */
2557 /* ?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z */
2558 FILE* __cdecl _Fiopen(const char *name, int mode, int prot)
2560 wchar_t nameW[FILENAME_MAX];
2562 TRACE("(%s %d %d)\n", name, mode, prot);
2564 if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
2566 return _Fiopen_wchar(nameW, mode, prot);
2569 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PB_WHH@Z */
2570 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
2571 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBGHH@Z */
2572 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBGHH@Z */
2573 static basic_filebuf_char* basic_filebuf_char_open_wchar(basic_filebuf_char *this, const wchar_t *name, int mode, int prot)
2577 TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
2579 if(basic_filebuf_char_is_open(this))
2582 if(!(f = _Fiopen_wchar(name, mode, prot)))
2585 basic_filebuf_char__Init(this, f, INITFL_open);
2586 basic_filebuf_char__Initcvt(this, codecvt_char_use_facet(this->base.loc));
2590 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z */
2591 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z */
2592 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open, 16)
2593 basic_filebuf_char* __thiscall basic_filebuf_char_open(basic_filebuf_char *this, const char *name, int mode, int prot)
2595 wchar_t nameW[FILENAME_MAX];
2597 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
2599 if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
2601 return basic_filebuf_char_open_wchar(this, nameW, mode, prot);
2604 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDI@Z */
2605 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDI@Z */
2606 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_mode, 12)
2607 basic_filebuf_char* __thiscall basic_filebuf_char_open_mode(basic_filebuf_char *this, const char *name, unsigned int mode)
2609 return basic_filebuf_char_open(this, name, mode, SH_DENYNO);
2612 /* ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
2613 /* ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
2614 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_overflow, 8)
2615 int __thiscall basic_filebuf_char_overflow(basic_filebuf_char *this, int c)
2617 char buf[8], *dyn_buf;
2618 char ch = c, *to_next;
2619 const char *from_next;
2623 TRACE("(%p %d)\n", this, c);
2625 if(!basic_filebuf_char_is_open(this))
2631 return fwrite(&ch, sizeof(char), 1, this->file) ? c : EOF;
2635 ret = codecvt_char_out(this->cvt, &this->state, from_next, &ch+1,
2636 &from_next, buf, buf+sizeof(buf), &to_next);
2639 case CODECVT_partial:
2644 if(!fwrite(buf, to_next-buf, 1, this->file))
2646 if(ret == CODECVT_partial)
2649 case CODECVT_noconv:
2650 return fwrite(&ch, sizeof(char), 1, this->file) ? c : EOF;
2658 max_size = codecvt_base_max_length(&this->cvt->base);
2659 dyn_buf = malloc(max_size);
2663 ret = codecvt_char_out(this->cvt, &this->state, from_next, &ch+1,
2664 &from_next, dyn_buf, dyn_buf+max_size, &to_next);
2668 ret = fwrite(dyn_buf, to_next-dyn_buf, 1, this->file);
2670 return ret ? c : EOF;
2671 case CODECVT_partial:
2672 ERR("buffer should be big enough to store all output\n");
2680 /* ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
2681 /* ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
2682 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_pbackfail, 8)
2683 int __thiscall basic_filebuf_char_pbackfail(basic_filebuf_char *this, int c)
2685 TRACE("(%p %d)\n", this, c);
2687 if(!basic_filebuf_char_is_open(this))
2690 if(basic_streambuf_char_gptr(&this->base)>basic_streambuf_char_eback(&this->base)
2691 && (c==EOF || basic_streambuf_char_gptr(&this->base)[-1]==(char)c)) {
2692 basic_streambuf_char__Gndec(&this->base);
2693 return c==EOF ? !c : c;
2694 }else if(c!=EOF && !this->cvt) {
2695 return ungetc(c, this->file);
2701 /* ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2702 /* ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2703 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_uflow, 4)
2704 int __thiscall basic_filebuf_char_uflow(basic_filebuf_char *this)
2706 char ch, buf[128], *to_next;
2707 const char *buf_next;
2710 TRACE("(%p)\n", this);
2712 if(!basic_filebuf_char_is_open(this))
2715 if(basic_streambuf_char_gptr(&this->base) < basic_streambuf_char_egptr(&this->base))
2716 return *basic_streambuf_char__Gninc(&this->base);
2718 c = fgetc(this->file);
2719 if(!this->cvt || c==EOF)
2723 for(i=0; i < sizeof(buf)/sizeof(buf[0]); i++) {
2726 switch(codecvt_char_in(this->cvt, &this->state, buf_next,
2727 buf+i+1, &buf_next, &ch, &ch+1, &to_next)) {
2728 case CODECVT_partial:
2730 if(to_next == &ch) {
2731 c = fgetc(this->file);
2737 for(i--; i>=buf_next-buf; i--)
2738 ungetc(buf[i], this->file);
2740 case CODECVT_noconv:
2747 FIXME("buffer is too small\n");
2751 /* ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2752 /* ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2753 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_underflow, 4)
2754 int __thiscall basic_filebuf_char_underflow(basic_filebuf_char *this)
2758 TRACE("(%p)\n", this);
2760 if(basic_streambuf_char_gptr(&this->base) < basic_streambuf_char_egptr(&this->base))
2761 return *basic_streambuf_char_gptr(&this->base);
2763 ret = call_basic_streambuf_char_uflow(&this->base);
2765 ret = call_basic_streambuf_char_pbackfail(&this->base, ret);
2769 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
2770 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
2771 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_seekoff, 20)
2772 fpos_int* __thiscall basic_filebuf_char_seekoff(basic_filebuf_char *this,
2773 fpos_int *ret, streamoff off, int way, int mode)
2777 TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode);
2779 if(!basic_filebuf_char_is_open(this) || !basic_filebuf_char__Endwrite(this)
2780 || fseek(this->file, off, way)) {
2787 fgetpos(this->file, &pos);
2790 ret->state = this->state;
2794 /* ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2795 /* ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2796 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_seekpos, 36)
2797 fpos_int* __thiscall basic_filebuf_char_seekpos(basic_filebuf_char *this,
2798 fpos_int *ret, fpos_int pos, int mode)
2802 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
2804 if(!basic_filebuf_char_is_open(this) || !basic_filebuf_char__Endwrite(this)
2805 || fseek(this->file, (LONG)pos.pos, SEEK_SET)
2806 || (pos.off && fseek(this->file, pos.off, SEEK_CUR))) {
2813 fgetpos(this->file, &fpos);
2816 ret->state = this->state;
2820 /* ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PADH@Z */
2821 /* ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z */
2822 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_setbuf, 12)
2823 basic_streambuf_char* __thiscall basic_filebuf_char_setbuf(basic_filebuf_char *this, char *buf, streamsize count)
2825 TRACE("(%p %p %ld)\n", this, buf, count);
2827 if(!basic_filebuf_char_is_open(this))
2830 if(setvbuf(this->file, buf, (buf==NULL && count==0) ? _IONBF : _IOFBF, count))
2833 basic_filebuf_char__Init(this, this->file, INITFL_open);
2837 /* ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2838 /* ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2839 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_sync, 4)
2840 int __thiscall basic_filebuf_char_sync(basic_filebuf_char *this)
2842 TRACE("(%p)\n", this);
2844 if(!basic_filebuf_char_is_open(this))
2847 if(call_basic_streambuf_char_overflow(&this->base, EOF) == EOF)
2849 return fflush(this->file);
2852 /* ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z */
2853 /* ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z */
2854 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_imbue, 8)
2855 void __thiscall basic_filebuf_char_imbue(basic_filebuf_char *this, const locale *loc)
2857 TRACE("(%p %p)\n", this, loc);
2858 basic_filebuf_char__Initcvt(this, codecvt_char_use_facet(loc));
2861 /* ?_Stinit@?1??_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
2862 /* ?_Stinit@?1??_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
2863 int basic_filebuf_wchar__Init__Stinit = 0;
2865 /* ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
2866 /* ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
2867 int basic_filebuf_short__Init__Stinit = 0;
2869 /* ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
2870 /* ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
2871 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Init, 12)
2872 void __thiscall basic_filebuf_wchar__Init(basic_filebuf_wchar *this, FILE *file, basic_filebuf__Initfl which)
2874 TRACE("(%p %p %d)\n", this, file, which);
2877 this->wrotesome = FALSE;
2878 this->state = basic_filebuf_wchar__Init__Stinit;
2879 this->close = (which == INITFL_open);
2882 basic_streambuf_wchar__Init_empty(&this->base);
2885 /* ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
2886 /* ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
2887 DEFINE_THISCALL_WRAPPER(basic_filebuf_short__Init, 12)
2888 void __thiscall basic_filebuf_short__Init(basic_filebuf_wchar *this, FILE *file, basic_filebuf__Initfl which)
2890 TRACE("(%p %p %d)\n", this, file, which);
2893 this->wrotesome = FALSE;
2894 this->state = basic_filebuf_short__Init__Stinit;
2895 this->close = (which == INITFL_open);
2898 basic_streambuf_wchar__Init_empty(&this->base);
2901 /* ?_Initcvt@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAV?$codecvt@_WDH@2@@Z */
2902 /* ?_Initcvt@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$codecvt@_WDH@2@@Z */
2903 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAV?$codecvt@GDH@2@@Z */
2904 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$codecvt@GDH@2@@Z */
2905 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Initcvt, 8)
2906 void __thiscall basic_filebuf_wchar__Initcvt(basic_filebuf_wchar *this, codecvt_wchar *cvt)
2908 TRACE("(%p %p)\n", this, cvt);
2910 if(codecvt_base_always_noconv(&cvt->base)) {
2913 basic_streambuf_wchar__Init_empty(&this->base);
2918 /* ?_Endwrite@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAE_NXZ */
2919 /* ?_Endwrite@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAA_NXZ */
2920 /* ?_Endwrite@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAE_NXZ */
2921 /* ?_Endwrite@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAA_NXZ */
2922 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Endwrite, 4)
2923 MSVCP_bool __thiscall basic_filebuf_wchar__Endwrite(basic_filebuf_wchar *this)
2925 TRACE("(%p)\n", this);
2927 if(!this->wrotesome || !this->cvt)
2930 if(call_basic_streambuf_wchar_overflow(&this->base, WEOF) == WEOF)
2934 /* TODO: check if we need a dynamic buffer here */
2939 ret = codecvt_wchar_unshift(this->cvt, &this->state, buf, buf+sizeof(buf), &next);
2942 this->wrotesome = FALSE;
2944 case CODECVT_partial:
2945 if(!fwrite(buf, next-buf, 1, this->file))
2950 case CODECVT_noconv:
2951 if(call_basic_streambuf_wchar_overflow(&this->base, WEOF) == WEOF)
2960 /* ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@XZ */
2961 /* ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@XZ */
2962 /* ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@XZ */
2963 /* ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@XZ */
2964 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_close, 4)
2965 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_close(basic_filebuf_wchar *this)
2967 basic_filebuf_wchar *ret = this;
2969 TRACE("(%p)\n", this);
2974 /* TODO: handle exceptions */
2975 if(!basic_filebuf_wchar__Endwrite(this))
2977 if(!fclose(this->file))
2980 basic_filebuf_wchar__Init(this, NULL, INITFL_close);
2984 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
2985 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
2986 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor_file, 8)
2987 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_ctor_file(basic_filebuf_wchar *this, FILE *file)
2989 TRACE("(%p %p)\n", this, file);
2991 basic_streambuf_wchar_ctor(&this->base);
2992 this->base.vtable = &MSVCP_basic_filebuf_wchar_vtable;
2994 basic_filebuf_wchar__Init(this, file, INITFL_new);
2998 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
2999 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
3000 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor_file, 8)
3001 basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor_file(basic_filebuf_wchar *this, FILE *file)
3003 TRACE("(%p %p)\n", this, file);
3005 basic_streambuf_short_ctor(&this->base);
3006 this->base.vtable = &MSVCP_basic_filebuf_short_vtable;
3008 basic_filebuf_short__Init(this, file, INITFL_new);
3012 /* ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
3013 /* ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
3014 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor, 4)
3015 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_ctor(basic_filebuf_wchar *this)
3017 return basic_filebuf_wchar_ctor_file(this, NULL);
3020 /* ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
3021 /* ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
3022 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor, 4)
3023 basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor(basic_filebuf_wchar *this)
3025 return basic_filebuf_short_ctor_file(this, NULL);
3028 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@@Z */
3029 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
3030 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor_uninitialized, 8)
3031 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_ctor_uninitialized(basic_filebuf_wchar *this, int uninitialized)
3033 TRACE("(%p %d)\n", this, uninitialized);
3035 basic_streambuf_wchar_ctor(&this->base);
3036 this->base.vtable = &MSVCP_basic_filebuf_wchar_vtable;
3040 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */
3041 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
3042 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor_uninitialized, 8)
3043 basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor_uninitialized(basic_filebuf_wchar *this, int uninitialized)
3045 TRACE("(%p %d)\n", this, uninitialized);
3047 basic_streambuf_short_ctor(&this->base);
3048 this->base.vtable = &MSVCP_basic_filebuf_short_vtable;
3052 /* ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
3053 /* ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
3054 /* ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UAE@XZ */
3055 /* ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */
3056 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_dtor, 4)
3057 void __thiscall basic_filebuf_wchar_dtor(basic_filebuf_wchar *this)
3059 TRACE("(%p)\n", this);
3062 basic_filebuf_wchar_close(this);
3063 basic_streambuf_wchar_dtor(&this->base);
3066 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_vector_dtor, 8)
3067 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_vector_dtor(basic_filebuf_wchar *this, unsigned int flags)
3069 TRACE("(%p %x)\n", this, flags);
3071 /* we have an array, with the number of elements stored before the first object */
3072 INT_PTR i, *ptr = (INT_PTR *)this-1;
3074 for(i=*ptr-1; i>=0; i--)
3075 basic_filebuf_wchar_dtor(this+i);
3076 MSVCRT_operator_delete(ptr);
3078 basic_filebuf_wchar_dtor(this);
3080 MSVCRT_operator_delete(this);
3086 /* ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
3087 /* ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
3088 /* ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QBE_NXZ */
3089 /* ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
3090 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_is_open, 4)
3091 MSVCP_bool __thiscall basic_filebuf_wchar_is_open(const basic_filebuf_wchar *this)
3093 TRACE("(%p)\n", this);
3094 return this->file != NULL;
3097 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PB_WHH@Z */
3098 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
3099 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBGHH@Z */
3100 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBGHH@Z */
3101 static basic_filebuf_wchar* basic_filebuf_wchar_open_wchar(basic_filebuf_wchar *this, const wchar_t *name, int mode, int prot)
3105 TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
3107 if(basic_filebuf_wchar_is_open(this))
3110 if(!(f = _Fiopen_wchar(name, mode, prot)))
3113 basic_filebuf_wchar__Init(this, f, INITFL_open);
3114 basic_filebuf_wchar__Initcvt(this, codecvt_wchar_use_facet(this->base.loc));
3118 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PB_WHH@Z */
3119 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
3120 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBGHH@Z */
3121 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBGHH@Z */
3122 static basic_filebuf_wchar* basic_filebuf_short_open_wchar(basic_filebuf_wchar *this, const wchar_t *name, int mode, int prot)
3126 TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
3128 if(basic_filebuf_wchar_is_open(this))
3131 if(!(f = _Fiopen_wchar(name, mode, prot)))
3134 basic_filebuf_short__Init(this, f, INITFL_open);
3135 basic_filebuf_wchar__Initcvt(this, codecvt_short_use_facet(this->base.loc));
3139 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDHH@Z */
3140 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDHH@Z */
3141 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open, 16)
3142 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open(basic_filebuf_wchar *this, const char *name, int mode, int prot)
3144 wchar_t nameW[FILENAME_MAX];
3146 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
3148 if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
3150 return basic_filebuf_wchar_open_wchar(this, nameW, mode, prot);
3153 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDHH@Z */
3154 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDHH@Z */
3155 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open, 16)
3156 basic_filebuf_wchar* __thiscall basic_filebuf_short_open(basic_filebuf_wchar *this, const char *name, int mode, int prot)
3158 wchar_t nameW[FILENAME_MAX];
3160 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
3162 if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
3164 return basic_filebuf_short_open_wchar(this, nameW, mode, prot);
3167 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDI@Z */
3168 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDI@Z */
3169 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open_mode, 12)
3170 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open_mode(basic_filebuf_wchar *this, const char *name, unsigned int mode)
3172 return basic_filebuf_wchar_open(this, name, mode, SH_DENYNO);
3175 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDI@Z */
3176 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDI@Z */
3177 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open_mode, 12)
3178 basic_filebuf_wchar* __thiscall basic_filebuf_short_open_mode(basic_filebuf_wchar *this, const char *name, unsigned int mode)
3180 return basic_filebuf_short_open(this, name, mode, SH_DENYNO);
3183 /* ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
3184 /* ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
3185 /* ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
3186 /* ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
3187 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_overflow, 8)
3188 unsigned short __thiscall basic_filebuf_wchar_overflow(basic_filebuf_wchar *this, unsigned short c)
3190 char buf[8], *dyn_buf, *to_next;
3192 const wchar_t *from_next;
3197 TRACE("(%p %d)\n", this, c);
3199 if(!basic_filebuf_wchar_is_open(this))
3205 return fwrite(&ch, sizeof(wchar_t), 1, this->file) ? c : WEOF;
3209 ret = codecvt_wchar_out(this->cvt, &this->state, from_next, &ch+1,
3210 &from_next, buf, buf+sizeof(buf), &to_next);
3213 case CODECVT_partial:
3218 if(!fwrite(buf, to_next-buf, 1, this->file))
3220 if(ret == CODECVT_partial)
3223 case CODECVT_noconv:
3224 return fwrite(&ch, sizeof(wchar_t), 1, this->file) ? c : WEOF;
3232 max_size = codecvt_base_max_length(&this->cvt->base);
3233 dyn_buf = malloc(max_size);
3237 ret = codecvt_wchar_out(this->cvt, &this->state, from_next, &ch+1,
3238 &from_next, dyn_buf, dyn_buf+max_size, &to_next);
3242 ret = fwrite(dyn_buf, to_next-dyn_buf, 1, this->file);
3244 return ret ? c : WEOF;
3245 case CODECVT_partial:
3246 ERR("buffer should be big enough to store all output\n");
3254 /* ?pbackfail@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
3255 /* ?pbackfail@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
3256 /* ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
3257 /* ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
3258 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_pbackfail, 8)
3259 unsigned short __thiscall basic_filebuf_wchar_pbackfail(basic_filebuf_wchar *this, unsigned short c)
3261 TRACE("(%p %d)\n", this, c);
3263 if(!basic_filebuf_wchar_is_open(this))
3266 if(basic_streambuf_wchar_gptr(&this->base)>basic_streambuf_wchar_eback(&this->base)
3267 && (c==WEOF || basic_streambuf_wchar_gptr(&this->base)[-1]==(wchar_t)c)) {
3268 basic_streambuf_wchar__Gndec(&this->base);
3269 return c==WEOF ? !c : c;
3270 }else if(c!=WEOF && !this->cvt) {
3271 return ungetwc(c, this->file);
3272 }else if(c!=WEOF && basic_streambuf_wchar_gptr(&this->base)!=&this->putback) {
3274 basic_streambuf_wchar_setg(&this->base, &this->putback, &this->putback, &this->putback+1);
3281 /* ?uflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
3282 /* ?uflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
3283 /* ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
3284 /* ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
3285 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_uflow, 4)
3286 unsigned short __thiscall basic_filebuf_wchar_uflow(basic_filebuf_wchar *this)
3288 wchar_t ch, *to_next;
3290 const char *buf_next;
3293 TRACE("(%p)\n", this);
3295 if(!basic_filebuf_wchar_is_open(this))
3298 if(basic_streambuf_wchar_gptr(&this->base) < basic_streambuf_wchar_egptr(&this->base))
3299 return *basic_streambuf_wchar__Gninc(&this->base);
3302 return fgetwc(this->file);
3305 for(i=0; i < sizeof(buf)/sizeof(buf[0]); i++) {
3306 if((c = fgetc(this->file)) == EOF)
3310 switch(codecvt_wchar_in(this->cvt, &this->state, buf_next,
3311 buf+i+1, &buf_next, &ch, &ch+1, &to_next)) {
3312 case CODECVT_partial:
3317 for(i--; i>=buf_next-buf; i--)
3318 ungetc(buf[i], this->file);
3320 case CODECVT_noconv:
3321 if(i+1 < sizeof(wchar_t))
3324 memcpy(&ch, buf, sizeof(wchar_t));
3331 FIXME("buffer is too small\n");
3335 /* ?underflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
3336 /* ?underflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
3337 /* ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
3338 /* ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
3339 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_underflow, 4)
3340 unsigned short __thiscall basic_filebuf_wchar_underflow(basic_filebuf_wchar *this)
3344 TRACE("(%p)\n", this);
3346 if(basic_streambuf_wchar_gptr(&this->base) < basic_streambuf_wchar_egptr(&this->base))
3347 return *basic_streambuf_wchar_gptr(&this->base);
3349 ret = call_basic_streambuf_wchar_uflow(&this->base);
3351 ret = call_basic_streambuf_wchar_pbackfail(&this->base, ret);
3355 /* ?seekoff@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
3356 /* ?seekoff@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
3357 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
3358 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
3359 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_seekoff, 20)
3360 fpos_int* __thiscall basic_filebuf_wchar_seekoff(basic_filebuf_wchar *this,
3361 fpos_int *ret, streamoff off, int way, int mode)
3365 TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode);
3367 if(basic_streambuf_wchar_gptr(&this->base) == &this->putback) {
3368 if(way == SEEKDIR_cur)
3369 off -= sizeof(wchar_t);
3371 basic_streambuf_wchar_setg(&this->base, &this->putback, &this->putback+1, &this->putback+1);
3374 if(!basic_filebuf_wchar_is_open(this) || !basic_filebuf_wchar__Endwrite(this)
3375 || fseek(this->file, off, way)) {
3382 fgetpos(this->file, &pos);
3385 ret->state = this->state;
3389 /* ?seekpos@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3390 /* ?seekpos@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3391 /* ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3392 /* ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3393 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_seekpos, 36)
3394 fpos_int* __thiscall basic_filebuf_wchar_seekpos(basic_filebuf_wchar *this,
3395 fpos_int *ret, fpos_int pos, int mode)
3399 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
3401 if(!basic_filebuf_wchar_is_open(this) || !basic_filebuf_wchar__Endwrite(this)
3402 || fseek(this->file, (LONG)pos.pos, SEEK_SET)
3403 || (pos.off && fseek(this->file, pos.off, SEEK_CUR))) {
3410 if(basic_streambuf_wchar_gptr(&this->base) == &this->putback)
3411 basic_streambuf_wchar_setg(&this->base, &this->putback, &this->putback+1, &this->putback+1);
3413 fgetpos(this->file, &fpos);
3416 ret->state = this->state;
3420 /* ?setbuf@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PA_WH@Z */
3421 /* ?setbuf@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEA_W_J@Z */
3422 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_setbuf, 12)
3423 basic_streambuf_wchar* __thiscall basic_filebuf_wchar_setbuf(basic_filebuf_wchar *this, wchar_t *buf, streamsize count)
3425 TRACE("(%p %p %ld)\n", this, buf, count);
3427 if(!basic_filebuf_wchar_is_open(this))
3430 if(setvbuf(this->file, (char*)buf, (buf==NULL && count==0) ? _IONBF : _IOFBF, count*sizeof(wchar_t)))
3433 basic_filebuf_wchar__Init(this, this->file, INITFL_open);
3437 /* ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PAGH@Z */
3438 /* ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAG_J@Z */
3439 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_setbuf, 12)
3440 basic_streambuf_wchar* __thiscall basic_filebuf_short_setbuf(basic_filebuf_wchar *this, wchar_t *buf, streamsize count)
3442 TRACE("(%p %p %ld)\n", this, buf, count);
3444 if(!basic_filebuf_wchar_is_open(this))
3447 if(setvbuf(this->file, (char*)buf, (buf==NULL && count==0) ? _IONBF : _IOFBF, count*sizeof(wchar_t)))
3450 basic_filebuf_short__Init(this, this->file, INITFL_open);
3454 /* ?sync@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
3455 /* ?sync@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ */
3456 /* ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
3457 /* ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAHXZ */
3458 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_sync, 4)
3459 int __thiscall basic_filebuf_wchar_sync(basic_filebuf_wchar *this)
3461 TRACE("(%p)\n", this);
3463 if(!basic_filebuf_wchar_is_open(this))
3466 if(call_basic_streambuf_wchar_overflow(&this->base, WEOF) == WEOF)
3468 return fflush(this->file);
3471 /* ?imbue@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z */
3472 /* ?imbue@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z */
3473 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_imbue, 8)
3474 void __thiscall basic_filebuf_wchar_imbue(basic_filebuf_wchar *this, const locale *loc)
3476 TRACE("(%p %p)\n", this, loc);
3477 basic_filebuf_wchar__Initcvt(this, codecvt_wchar_use_facet(loc));
3480 /* ?imbue@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEXABVlocale@2@@Z */
3481 /* ?imbue@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z */
3482 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_imbue, 8)
3483 void __thiscall basic_filebuf_short_imbue(basic_filebuf_wchar *this, const locale *loc)
3485 TRACE("(%p %p)\n", this, loc);
3486 basic_filebuf_wchar__Initcvt(this, codecvt_short_use_facet(loc));
3489 /* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEHH@Z */
3490 /* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAHH@Z */
3491 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Getstate, 8)
3492 int __thiscall basic_stringbuf_char__Getstate(basic_stringbuf_char *this, IOSB_openmode mode)
3496 if(!(mode & OPENMODE_in))
3497 state |= STRINGBUF_no_read;
3499 if(!(mode & OPENMODE_out))
3500 state |= STRINGBUF_no_write;
3502 if(mode & OPENMODE_ate)
3503 state |= STRINGBUF_at_end;
3505 if(mode & OPENMODE_app)
3506 state |= STRINGBUF_append;
3511 /* ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXPBDIH@Z */
3512 /* ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAXPEBD_KH@Z */
3513 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Init, 16)
3514 void __thiscall basic_stringbuf_char__Init(basic_stringbuf_char *this, const char *str, MSVCP_size_t count, int state)
3516 TRACE("(%p, %p, %ld, %d)\n", this, str, count, state);
3518 basic_streambuf_char__Init_empty(&this->base);
3520 this->state = state;
3521 this->seekhigh = NULL;
3524 char *buf = MSVCRT_operator_new(count);
3526 ERR("Out of memory\n");
3527 throw_exception(EXCEPTION_BAD_ALLOC, NULL);
3530 memcpy(buf, str, count);
3531 this->seekhigh = buf + count;
3533 this->state |= STRINGBUF_allocated;
3535 if(!(state & STRINGBUF_no_read))
3536 basic_streambuf_char_setg(&this->base, buf, buf, buf + count);
3538 if(!(state & STRINGBUF_no_write)) {
3539 basic_streambuf_char_setp_next(&this->base, buf, (state & STRINGBUF_at_end) ? buf + count : buf, buf + count);
3541 if(!basic_streambuf_char_gptr(&this->base))
3542 basic_streambuf_char_setg(&this->base, buf, 0, buf);
3547 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
3548 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
3549 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor_str, 12)
3550 basic_stringbuf_char* __thiscall basic_stringbuf_char_ctor_str(basic_stringbuf_char *this,
3551 const basic_string_char *str, IOSB_openmode mode)
3553 TRACE("(%p %p %d)\n", this, str, mode);
3555 basic_streambuf_char_ctor(&this->base);
3556 this->base.vtable = &MSVCP_basic_stringbuf_char_vtable;
3558 basic_stringbuf_char__Init(this, MSVCP_basic_string_char_c_str(str),
3559 str->size, basic_stringbuf_char__Getstate(this, mode));
3563 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
3564 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
3565 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor_mode, 8)
3566 basic_stringbuf_char* __thiscall basic_stringbuf_char_ctor_mode(
3567 basic_stringbuf_char *this, IOSB_openmode mode)
3569 TRACE("(%p %d)\n", this, mode);
3571 basic_streambuf_char_ctor(&this->base);
3572 this->base.vtable = &MSVCP_basic_stringbuf_char_vtable;
3574 basic_stringbuf_char__Init(this, NULL, 0, basic_stringbuf_char__Getstate(this, mode));
3578 /* ??_F?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
3579 /* ??_F?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
3580 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor, 4)
3581 basic_stringbuf_char* __thiscall basic_stringbuf_char_ctor(basic_stringbuf_char *this)
3583 return basic_stringbuf_char_ctor_mode(this, OPENMODE_in|OPENMODE_out);
3586 /* ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXXZ */
3587 /* ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAXXZ */
3588 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Tidy, 4)
3589 void __thiscall basic_stringbuf_char__Tidy(basic_stringbuf_char *this)
3591 TRACE("(%p)\n", this);
3593 if(this->state & STRINGBUF_allocated) {
3594 MSVCRT_operator_delete(basic_streambuf_char_eback(&this->base));
3595 this->seekhigh = NULL;
3596 this->state &= ~STRINGBUF_allocated;
3599 basic_streambuf_char__Init_empty(&this->base);
3602 /* ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
3603 /* ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
3604 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_dtor, 4)
3605 void __thiscall basic_stringbuf_char_dtor(basic_stringbuf_char *this)
3607 TRACE("(%p)\n", this);
3609 basic_stringbuf_char__Tidy(this);
3610 basic_streambuf_char_dtor(&this->base);
3613 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_vector_dtor, 8)
3614 basic_stringbuf_char* __thiscall basic_stringbuf_char_vector_dtor(basic_stringbuf_char *this, unsigned int flags)
3616 TRACE("(%p %x)\n", this, flags);
3619 /* we have an array, with the number of elements stored before the first object */
3620 INT_PTR i, *ptr = (INT_PTR *) this - 1;
3622 for (i = *ptr - 1; i >= 0; i--)
3623 basic_stringbuf_char_dtor(this+i);
3625 MSVCRT_operator_delete(ptr);
3627 basic_stringbuf_char_dtor(this);
3630 MSVCRT_operator_delete(this);
3636 /* ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z */
3637 /* ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHH@Z */
3638 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_overflow, 8)
3639 int __thiscall basic_stringbuf_char_overflow(basic_stringbuf_char *this, int meta)
3641 MSVCP_size_t oldsize, size;
3644 TRACE("(%p %x)\n", this, meta);
3648 if(this->state & STRINGBUF_no_write)
3651 ptr = basic_streambuf_char_pptr(&this->base);
3652 if((this->state&STRINGBUF_append) && ptr<this->seekhigh)
3653 basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base),
3654 this->seekhigh, basic_streambuf_char_epptr(&this->base));
3656 if(ptr && ptr<basic_streambuf_char_epptr(&this->base))
3657 return (*basic_streambuf_char__Pninc(&this->base) = meta);
3659 oldsize = (ptr ? basic_streambuf_char_epptr(&this->base)-basic_streambuf_char_eback(&this->base): 0);
3662 buf = MSVCRT_operator_new(size);
3664 ERR("Out of memory\n");
3665 throw_exception(EXCEPTION_BAD_ALLOC, NULL);
3669 this->seekhigh = buf;
3670 basic_streambuf_char_setp(&this->base, buf, buf+size);
3671 if(this->state & STRINGBUF_no_read)
3672 basic_streambuf_char_setg(&this->base, buf, NULL, buf);
3674 basic_streambuf_char_setg(&this->base, buf, buf, buf+1);
3676 this->state |= STRINGBUF_allocated;
3678 ptr = basic_streambuf_char_eback(&this->base);
3679 memcpy(buf, ptr, oldsize);
3681 this->seekhigh = buf+(this->seekhigh-ptr);
3682 basic_streambuf_char_setp_next(&this->base, buf,
3683 buf+(basic_streambuf_char_pptr(&this->base)-ptr), buf+size);
3684 if(this->state & STRINGBUF_no_read)
3685 basic_streambuf_char_setg(&this->base, buf, NULL, buf);
3687 basic_streambuf_char_setg(&this->base, buf,
3688 buf+(basic_streambuf_char_gptr(&this->base)-ptr),
3689 basic_streambuf_char_pptr(&this->base)+1);
3691 MSVCRT_operator_delete(ptr);
3694 return (*basic_streambuf_char__Pninc(&this->base) = meta);
3697 /* ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z */
3698 /* ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHH@Z */
3699 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_pbackfail, 8)
3700 int __thiscall basic_stringbuf_char_pbackfail(basic_stringbuf_char *this, int c)
3704 TRACE("(%p %x)\n", this, c);
3706 cur = basic_streambuf_char_gptr(&this->base);
3707 if(!cur || cur==basic_streambuf_char_eback(&this->base)
3708 || (c!=EOF && c!=cur[-1] && this->state&STRINGBUF_no_write))
3713 basic_streambuf_char_gbump(&this->base, -1);
3714 return c==EOF ? !EOF : c;
3717 /* ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHXZ */
3718 /* ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHXZ */
3719 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_underflow, 4)
3720 int __thiscall basic_stringbuf_char_underflow(basic_stringbuf_char *this)
3724 TRACE("(%p)\n", this);
3726 cur = basic_streambuf_char_gptr(&this->base);
3727 if(!cur || this->state&STRINGBUF_no_read)
3730 ptr = basic_streambuf_char_pptr(&this->base);
3731 if(this->seekhigh < ptr)
3732 this->seekhigh = ptr;
3734 ptr = basic_streambuf_char_egptr(&this->base);
3735 if(this->seekhigh > ptr)
3736 basic_streambuf_char_setg(&this->base, basic_streambuf_char_eback(&this->base), cur, this->seekhigh);
3738 if(cur < this->seekhigh)
3743 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
3744 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
3745 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekoff, 20)
3746 fpos_int* __thiscall basic_stringbuf_char_seekoff(basic_stringbuf_char *this,
3747 fpos_int *ret, streamoff off, int way, int mode)
3749 char *beg, *cur_r, *cur_w;
3751 TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode);
3753 cur_w = basic_streambuf_char_pptr(&this->base);
3754 if(cur_w > this->seekhigh)
3755 this->seekhigh = cur_w;
3760 beg = basic_streambuf_char_eback(&this->base);
3761 cur_r = basic_streambuf_char_gptr(&this->base);
3762 if((mode & OPENMODE_in) && cur_r) {
3763 if(way==SEEKDIR_cur && !(mode & OPENMODE_out))
3765 else if(way == SEEKDIR_end)
3766 off += this->seekhigh-beg;
3767 else if(way != SEEKDIR_beg)
3770 if(off<0 || off>this->seekhigh-beg) {
3773 basic_streambuf_char_gbump(&this->base, beg-cur_r+off);
3774 if((mode & OPENMODE_out) && cur_w) {
3775 basic_streambuf_char_setp_next(&this->base, beg,
3776 basic_streambuf_char_gptr(&this->base),
3777 basic_streambuf_char_epptr(&this->base));
3780 }else if((mode & OPENMODE_out) && cur_w) {
3781 if(way == SEEKDIR_cur)
3783 else if(way == SEEKDIR_end)
3784 off += this->seekhigh-beg;
3785 else if(way != SEEKDIR_beg)
3788 if(off<0 || off>this->seekhigh-beg)
3791 basic_streambuf_char_pbump(&this->base, beg-cur_w+off);
3800 /* ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3801 /* ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3802 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekpos, 36)
3803 fpos_int* __thiscall basic_stringbuf_char_seekpos(basic_stringbuf_char *this,
3804 fpos_int *ret, fpos_int pos, int mode)
3806 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
3808 if(pos.off==0 && pos.pos==-1 && pos.state==0) {
3813 return basic_stringbuf_char_seekoff(this, ret, pos.off, SEEKDIR_beg, mode);
3816 /* ?str@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
3817 /* ?str@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
3818 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_str_set, 8)
3819 void __thiscall basic_stringbuf_char_str_set(basic_stringbuf_char *this, const basic_string_char *str)
3821 TRACE("(%p %p)\n", this, str);
3823 basic_stringbuf_char__Tidy(this);
3824 basic_stringbuf_char__Init(this, MSVCP_basic_string_char_c_str(str), str->size, this->state);
3827 /* ?str@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
3828 /* ?str@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
3829 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_str_get, 8)
3830 basic_string_char* __thiscall basic_stringbuf_char_str_get(const basic_stringbuf_char *this, basic_string_char *ret)
3834 TRACE("(%p)\n", this);
3836 if(!(this->state & STRINGBUF_no_write) && basic_streambuf_char_pptr(&this->base)) {
3839 ptr = basic_streambuf_char_pbase(&this->base);
3840 pptr = basic_streambuf_char_pptr(&this->base);
3842 return MSVCP_basic_string_char_ctor_cstr_len(ret, ptr, (this->seekhigh < pptr ? pptr : this->seekhigh) - ptr);
3845 if(!(this->state & STRINGBUF_no_read) && basic_streambuf_char_gptr(&this->base)) {
3846 ptr = basic_streambuf_char_eback(&this->base);
3847 return MSVCP_basic_string_char_ctor_cstr_len(ret, ptr, basic_streambuf_char_egptr(&this->base) - ptr);
3850 return MSVCP_basic_string_char_ctor(ret);
3853 /* ?_Getstate@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AAEHH@Z */
3854 /* ?_Getstate@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AEAAHH@Z */
3855 /* ?_Getstate@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AAEHH@Z */
3856 /* ?_Getstate@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AEAAHH@Z */
3857 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Getstate, 8)
3858 int __thiscall basic_stringbuf_wchar__Getstate(basic_stringbuf_wchar *this, IOSB_openmode mode)
3862 if(!(mode & OPENMODE_in))
3863 state |= STRINGBUF_no_read;
3865 if(!(mode & OPENMODE_out))
3866 state |= STRINGBUF_no_write;
3868 if(mode & OPENMODE_ate)
3869 state |= STRINGBUF_at_end;
3871 if(mode & OPENMODE_app)
3872 state |= STRINGBUF_append;
3877 /* ?_Init@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXPB_WIH@Z */
3878 /* ?_Init@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAXPEB_W_KH@Z */
3879 /* ?_Init@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXPBGIH@Z */
3880 /* ?_Init@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAXPEBG_KH@Z */
3881 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Init, 16)
3882 void __thiscall basic_stringbuf_wchar__Init(basic_stringbuf_wchar *this, const wchar_t *str, MSVCP_size_t count, int state)
3884 TRACE("(%p, %p, %lu, %d)\n", this, str, count, state);
3886 basic_streambuf_wchar__Init_empty(&this->base);
3888 this->state = state;
3889 this->seekhigh = NULL;
3892 wchar_t *buf = MSVCRT_operator_new(count*sizeof(wchar_t));
3894 ERR("Out of memory\n");
3895 throw_exception(EXCEPTION_BAD_ALLOC, NULL);
3898 memcpy(buf, str, count*sizeof(wchar_t));
3899 this->seekhigh = buf + count;
3901 this->state |= STRINGBUF_allocated;
3903 if(!(state & STRINGBUF_no_read))
3904 basic_streambuf_wchar_setg(&this->base, buf, buf, buf + count);
3906 if(!(state & STRINGBUF_no_write)) {
3907 basic_streambuf_wchar_setp_next(&this->base, buf, (state & STRINGBUF_at_end) ? buf + count : buf, buf + count);
3909 if(!basic_streambuf_wchar_gptr(&this->base))
3910 basic_streambuf_wchar_setg(&this->base, buf, 0, buf);
3915 /* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
3916 /* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
3917 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor_str, 12)
3918 basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_ctor_str(basic_stringbuf_wchar *this,
3919 const basic_string_wchar *str, IOSB_openmode mode)
3921 TRACE("(%p %p %d)\n", this, str, mode);
3923 basic_streambuf_wchar_ctor(&this->base);
3924 this->base.vtable = &MSVCP_basic_stringbuf_wchar_vtable;
3926 basic_stringbuf_wchar__Init(this, MSVCP_basic_string_wchar_c_str(str),
3927 str->size, basic_stringbuf_wchar__Getstate(this, mode));
3931 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
3932 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
3933 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor_str, 12)
3934 basic_stringbuf_wchar* __thiscall basic_stringbuf_short_ctor_str(basic_stringbuf_wchar *this,
3935 const basic_string_wchar *str, IOSB_openmode mode)
3937 basic_stringbuf_wchar_ctor_str(this, str, mode);
3938 this->base.vtable = &MSVCP_basic_stringbuf_short_vtable;
3942 /* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
3943 /* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
3944 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor_mode, 8)
3945 basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_ctor_mode(
3946 basic_stringbuf_wchar *this, IOSB_openmode mode)
3948 TRACE("(%p %d)\n", this, mode);
3950 basic_streambuf_wchar_ctor(&this->base);
3951 this->base.vtable = &MSVCP_basic_stringbuf_wchar_vtable;
3953 basic_stringbuf_wchar__Init(this, NULL, 0, basic_stringbuf_wchar__Getstate(this, mode));
3957 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
3958 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
3959 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor_mode, 8)
3960 basic_stringbuf_wchar* __thiscall basic_stringbuf_short_ctor_mode(
3961 basic_stringbuf_wchar *this, IOSB_openmode mode)
3963 basic_stringbuf_wchar_ctor_mode(this, mode);
3964 this->base.vtable = &MSVCP_basic_stringbuf_short_vtable;
3968 /* ??_F?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
3969 /* ??_F?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
3970 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor, 4)
3971 basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_ctor(basic_stringbuf_wchar *this)
3973 return basic_stringbuf_wchar_ctor_mode(this, OPENMODE_in|OPENMODE_out);
3976 /* ??_F?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
3977 /* ??_F?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
3978 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor, 4)
3979 basic_stringbuf_wchar* __thiscall basic_stringbuf_short_ctor(basic_stringbuf_wchar *this)
3981 return basic_stringbuf_short_ctor_mode(this, OPENMODE_in|OPENMODE_out);
3984 /* ?_Tidy@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXXZ */
3985 /* ?_Tidy@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAXXZ */
3986 /* ?_Tidy@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXXZ */
3987 /* ?_Tidy@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAXXZ */
3988 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Tidy, 4)
3989 void __thiscall basic_stringbuf_wchar__Tidy(basic_stringbuf_wchar *this)
3991 TRACE("(%p)\n", this);
3993 if(this->state & STRINGBUF_allocated) {
3994 MSVCRT_operator_delete(basic_streambuf_wchar_eback(&this->base));
3995 this->seekhigh = NULL;
3996 this->state &= ~STRINGBUF_allocated;
3999 basic_streambuf_wchar__Init_empty(&this->base);
4002 /* ??1?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
4003 /* ??1?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
4004 /* ??1?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
4005 /* ??1?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
4006 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_dtor, 4)
4007 void __thiscall basic_stringbuf_wchar_dtor(basic_stringbuf_wchar *this)
4009 TRACE("(%p)\n", this);
4011 basic_stringbuf_wchar__Tidy(this);
4012 basic_streambuf_wchar_dtor(&this->base);
4015 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_vector_dtor, 8)
4016 basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_vector_dtor(basic_stringbuf_wchar *this, unsigned int flags)
4018 TRACE("(%p %x)\n", this, flags);
4021 /* we have an array, with the number of elements stored before the first object */
4022 INT_PTR i, *ptr = (INT_PTR *) this - 1;
4024 for (i = *ptr - 1; i >= 0; i--)
4025 basic_stringbuf_wchar_dtor(this+i);
4027 MSVCRT_operator_delete(ptr);
4029 basic_stringbuf_wchar_dtor(this);
4032 MSVCRT_operator_delete(this);
4038 /* ?overflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGG@Z */
4039 /* ?overflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGG@Z */
4040 /* ?overflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGG@Z */
4041 /* ?overflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGG@Z */
4042 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_overflow, 8)
4043 unsigned short __thiscall basic_stringbuf_wchar_overflow(basic_stringbuf_wchar *this, unsigned short meta)
4045 MSVCP_size_t oldsize, size;
4048 TRACE("(%p %x)\n", this, meta);
4052 if(this->state & STRINGBUF_no_write)
4055 ptr = basic_streambuf_wchar_pptr(&this->base);
4056 if((this->state&STRINGBUF_append) && ptr<this->seekhigh)
4057 basic_streambuf_wchar_setp_next(&this->base, basic_streambuf_wchar_pbase(&this->base),
4058 this->seekhigh, basic_streambuf_wchar_epptr(&this->base));
4060 if(ptr && ptr<basic_streambuf_wchar_epptr(&this->base))
4061 return (*basic_streambuf_wchar__Pninc(&this->base) = meta);
4063 oldsize = (ptr ? basic_streambuf_wchar_epptr(&this->base)-basic_streambuf_wchar_eback(&this->base): 0);
4066 buf = MSVCRT_operator_new(size*sizeof(wchar_t));
4068 ERR("Out of memory\n");
4069 throw_exception(EXCEPTION_BAD_ALLOC, NULL);
4073 this->seekhigh = buf;
4074 basic_streambuf_wchar_setp(&this->base, buf, buf+size);
4075 if(this->state & STRINGBUF_no_read)
4076 basic_streambuf_wchar_setg(&this->base, buf, NULL, buf);
4078 basic_streambuf_wchar_setg(&this->base, buf, buf, buf+1);
4080 this->state |= STRINGBUF_allocated;
4082 ptr = basic_streambuf_wchar_eback(&this->base);
4083 memcpy(buf, ptr, oldsize*sizeof(wchar_t));
4085 this->seekhigh = buf+(this->seekhigh-ptr);
4086 basic_streambuf_wchar_setp_next(&this->base, buf,
4087 buf+(basic_streambuf_wchar_pptr(&this->base)-ptr), buf+size);
4088 if(this->state & STRINGBUF_no_read)
4089 basic_streambuf_wchar_setg(&this->base, buf, NULL, buf);
4091 basic_streambuf_wchar_setg(&this->base, buf,
4092 buf+(basic_streambuf_wchar_gptr(&this->base)-ptr),
4093 basic_streambuf_wchar_pptr(&this->base)+1);
4095 MSVCRT_operator_delete(ptr);
4098 return (*basic_streambuf_wchar__Pninc(&this->base) = meta);
4101 /* ?pbackfail@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGG@Z */
4102 /* ?pbackfail@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGG@Z */
4103 /* ?pbackfail@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGG@Z */
4104 /* ?pbackfail@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGG@Z */
4105 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_pbackfail, 8)
4106 unsigned short __thiscall basic_stringbuf_wchar_pbackfail(basic_stringbuf_wchar *this, unsigned short c)
4110 TRACE("(%p %x)\n", this, c);
4112 cur = basic_streambuf_wchar_gptr(&this->base);
4113 if(!cur || cur==basic_streambuf_wchar_eback(&this->base)
4114 || (c!=WEOF && c!=cur[-1] && this->state&STRINGBUF_no_write))
4119 basic_streambuf_wchar_gbump(&this->base, -1);
4120 return c==WEOF ? !WEOF : c;
4123 /* ?underflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGXZ */
4124 /* ?underflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGXZ */
4125 /* ?underflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGXZ */
4126 /* ?underflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGXZ */
4127 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_underflow, 4)
4128 unsigned short __thiscall basic_stringbuf_wchar_underflow(basic_stringbuf_wchar *this)
4132 TRACE("(%p)\n", this);
4134 cur = basic_streambuf_wchar_gptr(&this->base);
4135 if(!cur || this->state&STRINGBUF_no_read)
4138 ptr = basic_streambuf_wchar_pptr(&this->base);
4139 if(this->seekhigh < ptr)
4140 this->seekhigh = ptr;
4142 ptr = basic_streambuf_wchar_egptr(&this->base);
4143 if(this->seekhigh > ptr)
4144 basic_streambuf_wchar_setg(&this->base, basic_streambuf_wchar_eback(&this->base), cur, this->seekhigh);
4146 if(cur < this->seekhigh)
4151 /* ?seekoff@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
4152 /* ?seekoff@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
4153 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
4154 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
4155 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_seekoff, 20)
4156 fpos_int* __thiscall basic_stringbuf_wchar_seekoff(basic_stringbuf_wchar *this,
4157 fpos_int *ret, streamoff off, int way, int mode)
4159 wchar_t *beg, *cur_r, *cur_w;
4161 TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode);
4163 cur_w = basic_streambuf_wchar_pptr(&this->base);
4164 if(cur_w > this->seekhigh)
4165 this->seekhigh = cur_w;
4170 beg = basic_streambuf_wchar_eback(&this->base);
4171 cur_r = basic_streambuf_wchar_gptr(&this->base);
4172 if((mode & OPENMODE_in) && cur_r) {
4173 if(way==SEEKDIR_cur && !(mode & OPENMODE_out))
4175 else if(way == SEEKDIR_end)
4176 off += this->seekhigh-beg;
4177 else if(way != SEEKDIR_beg)
4180 if(off<0 || off>this->seekhigh-beg) {
4183 basic_streambuf_wchar_gbump(&this->base, beg-cur_r+off);
4184 if((mode & OPENMODE_out) && cur_w) {
4185 basic_streambuf_wchar_setp_next(&this->base, beg,
4186 basic_streambuf_wchar_gptr(&this->base),
4187 basic_streambuf_wchar_epptr(&this->base));
4190 }else if((mode & OPENMODE_out) && cur_w) {
4191 if(way == SEEKDIR_cur)
4193 else if(way == SEEKDIR_end)
4194 off += this->seekhigh-beg;
4195 else if(way != SEEKDIR_beg)
4198 if(off<0 || off>this->seekhigh-beg)
4201 basic_streambuf_wchar_pbump(&this->base, beg-cur_w+off);
4210 /* ?seekpos@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
4211 /* ?seekpos@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
4212 /* ?seekpos@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
4213 /* ?seekpos@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
4214 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_seekpos, 36)
4215 fpos_int* __thiscall basic_stringbuf_wchar_seekpos(basic_stringbuf_wchar *this,
4216 fpos_int *ret, fpos_int pos, int mode)
4218 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
4220 if(pos.off==0 && pos.pos==-1 && pos.state==0) {
4225 return basic_stringbuf_wchar_seekoff(this, ret, pos.off, SEEKDIR_beg, mode);
4228 /* ?str@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
4229 /* ?str@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
4230 /* ?str@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
4231 /* ?str@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
4232 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_str_set, 8)
4233 void __thiscall basic_stringbuf_wchar_str_set(basic_stringbuf_wchar *this, const basic_string_wchar *str)
4235 TRACE("(%p %p)\n", this, str);
4237 basic_stringbuf_wchar__Tidy(this);
4238 basic_stringbuf_wchar__Init(this, MSVCP_basic_string_wchar_c_str(str), str->size, this->state);
4241 /* ?str@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
4242 /* ?str@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
4243 /* ?str@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
4244 /* ?str@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
4245 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_str_get, 8)
4246 basic_string_wchar* __thiscall basic_stringbuf_wchar_str_get(const basic_stringbuf_wchar *this, basic_string_wchar *ret)
4250 TRACE("(%p)\n", this);
4252 if(!(this->state & STRINGBUF_no_write) && basic_streambuf_wchar_pptr(&this->base)) {
4255 ptr = basic_streambuf_wchar_pbase(&this->base);
4256 pptr = basic_streambuf_wchar_pptr(&this->base);
4258 return MSVCP_basic_string_wchar_ctor_cstr_len(ret, ptr, (this->seekhigh < pptr ? pptr : this->seekhigh) - ptr);
4261 if(!(this->state & STRINGBUF_no_read) && basic_streambuf_wchar_gptr(&this->base)) {
4262 ptr = basic_streambuf_wchar_eback(&this->base);
4263 return MSVCP_basic_string_wchar_ctor_cstr_len(ret, ptr, basic_streambuf_wchar_egptr(&this->base) - ptr);
4266 return MSVCP_basic_string_wchar_ctor(ret);
4269 /* ??0ios_base@std@@IAE@XZ */
4270 /* ??0ios_base@std@@IEAA@XZ */
4271 DEFINE_THISCALL_WRAPPER(ios_base_ctor, 4)
4272 ios_base* __thiscall ios_base_ctor(ios_base *this)
4274 TRACE("(%p)\n", this);
4275 this->vtable = &MSVCP_ios_base_vtable;
4279 /* ??0ios_base@std@@QAE@ABV01@@Z */
4280 /* ??0ios_base@std@@QEAA@AEBV01@@Z */
4281 DEFINE_THISCALL_WRAPPER(ios_base_copy_ctor, 8)
4282 ios_base* __thiscall ios_base_copy_ctor(ios_base *this, const ios_base *copy)
4284 TRACE("(%p %p)\n", this, copy);
4286 this->vtable = &MSVCP_ios_base_vtable;
4290 /* ?_Callfns@ios_base@std@@AAEXW4event@12@@Z */
4291 /* ?_Callfns@ios_base@std@@AEAAXW4event@12@@Z */
4292 DEFINE_THISCALL_WRAPPER(ios_base_Callfns, 8)
4293 void __thiscall ios_base_Callfns(ios_base *this, IOS_BASE_event event)
4295 IOS_BASE_fnarray *cur;
4297 TRACE("(%p %x)\n", this, event);
4299 for(cur=this->calls; cur; cur=cur->next)
4300 cur->event_handler(event, this, cur->index);
4303 /* ?_Tidy@ios_base@std@@AAAXXZ */
4304 /* ?_Tidy@ios_base@std@@AEAAXXZ */
4305 void CDECL ios_base_Tidy(ios_base *this)
4307 IOS_BASE_iosarray *arr_cur, *arr_next;
4308 IOS_BASE_fnarray *event_cur, *event_next;
4310 TRACE("(%p)\n", this);
4312 ios_base_Callfns(this, EVENT_erase_event);
4314 for(arr_cur=this->arr; arr_cur; arr_cur=arr_next) {
4315 arr_next = arr_cur->next;
4316 MSVCRT_operator_delete(arr_cur);
4320 for(event_cur=this->calls; event_cur; event_cur=event_next) {
4321 event_next = event_cur->next;
4322 MSVCRT_operator_delete(event_cur);
4327 /* ?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z */
4328 /* ?_Ios_base_dtor@ios_base@std@@CAXPEAV12@@Z */
4329 static void ios_base_Ios_base_dtor(ios_base *obj)
4331 TRACE("(%p)\n", obj);
4333 locale_dtor(obj->loc);
4334 MSVCRT_operator_delete(obj->loc);
4339 /* ??1ios_base@std@@UAE@XZ */
4340 /* ??1ios_base@std@@UEAA@XZ */
4341 DEFINE_THISCALL_WRAPPER(ios_base_dtor, 4)
4342 void __thiscall ios_base_dtor(ios_base *this)
4344 ios_base_Ios_base_dtor(this);
4347 DEFINE_THISCALL_WRAPPER(ios_base_vector_dtor, 8)
4348 ios_base* __thiscall ios_base_vector_dtor(ios_base *this, unsigned int flags)
4350 TRACE("(%p %x)\n", this, flags);
4352 /* we have an array, with the number of elements stored before the first object */
4353 INT_PTR i, *ptr = (INT_PTR *)this-1;
4355 for(i=*ptr-1; i>=0; i--)
4356 ios_base_dtor(this+i);
4357 MSVCRT_operator_delete(ptr);
4359 ios_base_dtor(this);
4361 MSVCRT_operator_delete(this);
4367 DEFINE_THISCALL_WRAPPER(iosb_vector_dtor, 8)
4368 void* __thiscall iosb_vector_dtor(void *this, unsigned int flags)
4370 TRACE("(%p %x)\n", this, flags);
4372 INT_PTR *ptr = (INT_PTR *)this-1;
4373 MSVCRT_operator_delete(ptr);
4376 MSVCRT_operator_delete(this);
4382 /* ?_Findarr@ios_base@std@@AAEAAU_Iosarray@12@H@Z */
4383 /* ?_Findarr@ios_base@std@@AEAAAEAU_Iosarray@12@H@Z */
4384 DEFINE_THISCALL_WRAPPER(ios_base_Findarr, 8)
4385 IOS_BASE_iosarray* __thiscall ios_base_Findarr(ios_base *this, int index)
4387 IOS_BASE_iosarray *p;
4389 TRACE("(%p %d)\n", this, index);
4391 for(p=this->arr; p; p=p->next) {
4392 if(p->index == index)
4396 for(p=this->arr; p; p=p->next) {
4397 if(!p->long_val && !p->ptr_val) {
4403 p = MSVCRT_operator_new(sizeof(IOS_BASE_iosarray));
4404 p->next = this->arr;
4412 /* ?iword@ios_base@std@@QAEAAJH@Z */
4413 /* ?iword@ios_base@std@@QEAAAEAJH@Z */
4414 DEFINE_THISCALL_WRAPPER(ios_base_iword, 8)
4415 LONG* __thiscall ios_base_iword(ios_base *this, int index)
4417 TRACE("(%p %d)\n", this, index);
4418 return &ios_base_Findarr(this, index)->long_val;
4421 /* ?pword@ios_base@std@@QAEAAPAXH@Z */
4422 /* ?pword@ios_base@std@@QEAAAEAPEAXH@Z */
4423 DEFINE_THISCALL_WRAPPER(ios_base_pword, 8)
4424 void** __thiscall ios_base_pword(ios_base *this, int index)
4426 TRACE("(%p %d)\n", this, index);
4427 return &ios_base_Findarr(this, index)->ptr_val;
4430 /* ?register_callback@ios_base@std@@QAEXP6AXW4event@12@AAV12@H@ZH@Z */
4431 /* ?register_callback@ios_base@std@@QEAAXP6AXW4event@12@AEAV12@H@ZH@Z */
4432 DEFINE_THISCALL_WRAPPER(ios_base_register_callback, 12)
4433 void __thiscall ios_base_register_callback(ios_base *this, IOS_BASE_event_callback callback, int index)
4435 IOS_BASE_fnarray *event;
4437 TRACE("(%p %p %d)\n", this, callback, index);
4439 event = MSVCRT_operator_new(sizeof(IOS_BASE_fnarray));
4440 event->next = this->calls;
4441 event->index = index;
4442 event->event_handler = callback;
4443 this->calls = event;
4446 /* ?clear@ios_base@std@@QAEXH_N@Z */
4447 /* ?clear@ios_base@std@@QEAAXH_N@Z */
4448 DEFINE_THISCALL_WRAPPER(ios_base_clear_reraise, 12)
4449 void __thiscall ios_base_clear_reraise(ios_base *this, IOSB_iostate state, MSVCP_bool reraise)
4451 TRACE("(%p %x %x)\n", this, state, reraise);
4453 this->state = state & IOSTATE_mask;
4454 if(!(this->state & this->except))
4458 throw_exception(EXCEPTION_RERAISE, NULL);
4459 else if(this->state & this->except & IOSTATE_eofbit)
4460 throw_exception(EXCEPTION_FAILURE, "eofbit is set");
4461 else if(this->state & this->except & IOSTATE_failbit)
4462 throw_exception(EXCEPTION_FAILURE, "failbit is set");
4463 else if(this->state & this->except & IOSTATE_badbit)
4464 throw_exception(EXCEPTION_FAILURE, "badbit is set");
4465 else if(this->state & this->except & IOSTATE__Hardfail)
4466 throw_exception(EXCEPTION_FAILURE, "_Hardfail is set");
4469 /* ?clear@ios_base@std@@QAEXH@Z */
4470 /* ?clear@ios_base@std@@QEAAXH@Z */
4471 DEFINE_THISCALL_WRAPPER(ios_base_clear, 8)
4472 void __thiscall ios_base_clear(ios_base *this, IOSB_iostate state)
4474 ios_base_clear_reraise(this, state, FALSE);
4477 /* ?clear@ios_base@std@@QAEXI@Z */
4478 /* ?clear@ios_base@std@@QEAAXI@Z */
4479 DEFINE_THISCALL_WRAPPER(ios_base_clear_unsigned, 8)
4480 void __thiscall ios_base_clear_unsigned(ios_base *this, unsigned int state)
4482 ios_base_clear_reraise(this, (IOSB_iostate)state, FALSE);
4485 /* ?exceptions@ios_base@std@@QAEXH@Z */
4486 /* ?exceptions@ios_base@std@@QEAAXH@Z */
4487 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_set, 8)
4488 void __thiscall ios_base_exceptions_set(ios_base *this, IOSB_iostate state)
4490 TRACE("(%p %x)\n", this, state);
4491 this->except = state & IOSTATE_mask;
4492 ios_base_clear(this, this->state);
4495 /* ?exceptions@ios_base@std@@QAEXI@Z */
4496 /* ?exceptions@ios_base@std@@QEAAXI@Z */
4497 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_set_unsigned, 8)
4498 void __thiscall ios_base_exceptions_set_unsigned(ios_base *this, unsigned int state)
4500 TRACE("(%p %x)\n", this, state);
4501 ios_base_exceptions_set(this, state);
4504 /* ?exceptions@ios_base@std@@QBEHXZ */
4505 /* ?exceptions@ios_base@std@@QEBAHXZ */
4506 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_get, 4)
4507 IOSB_iostate __thiscall ios_base_exceptions_get(ios_base *this)
4509 TRACE("(%p)\n", this);
4510 return this->except;
4513 /* ?copyfmt@ios_base@std@@QAEAAV12@ABV12@@Z */
4514 /* ?copyfmt@ios_base@std@@QEAAAEAV12@AEBV12@@Z */
4515 DEFINE_THISCALL_WRAPPER(ios_base_copyfmt, 8)
4516 ios_base* __thiscall ios_base_copyfmt(ios_base *this, const ios_base *rhs)
4518 TRACE("(%p %p)\n", this, rhs);
4521 IOS_BASE_iosarray *arr_cur;
4522 IOS_BASE_fnarray *event_cur;
4524 ios_base_Tidy(this);
4526 for(arr_cur=rhs->arr; arr_cur; arr_cur=arr_cur->next) {
4527 if(arr_cur->long_val)
4528 *ios_base_iword(this, arr_cur->index) = arr_cur->long_val;
4529 if(arr_cur->ptr_val)
4530 *ios_base_pword(this, arr_cur->index) = arr_cur->ptr_val;
4532 this->stdstr = rhs->stdstr;
4533 this->fmtfl = rhs->fmtfl;
4534 this->prec = rhs->prec;
4535 this->wide = rhs->wide;
4536 locale_operator_assign(this->loc, rhs->loc);
4538 for(event_cur=rhs->calls; event_cur; event_cur=event_cur->next)
4539 ios_base_register_callback(this, event_cur->event_handler, event_cur->index);
4541 ios_base_Callfns(this, EVENT_copyfmt_event);
4542 ios_base_exceptions_set(this, rhs->except);
4548 /* ??4ios_base@std@@QAEAAV01@ABV01@@Z */
4549 /* ??4ios_base@std@@QEAAAEAV01@AEBV01@@Z */
4550 DEFINE_THISCALL_WRAPPER(ios_base_assign, 8)
4551 ios_base* __thiscall ios_base_assign(ios_base *this, const ios_base *right)
4553 TRACE("(%p %p)\n", this, right);
4556 this->state = right->state;
4557 ios_base_copyfmt(this, right);
4563 /* ?fail@ios_base@std@@QBE_NXZ */
4564 /* ?fail@ios_base@std@@QEBA_NXZ */
4565 DEFINE_THISCALL_WRAPPER(ios_base_fail, 4)
4566 MSVCP_bool __thiscall ios_base_fail(const ios_base *this)
4568 TRACE("(%p)\n", this);
4569 return (this->state & (IOSTATE_failbit|IOSTATE_badbit)) != 0;
4572 /* ??7ios_base@std@@QBE_NXZ */
4573 /* ??7ios_base@std@@QEBA_NXZ */
4574 DEFINE_THISCALL_WRAPPER(ios_base_op_succ, 4)
4575 MSVCP_bool __thiscall ios_base_op_succ(const ios_base *this)
4577 TRACE("(%p)\n", this);
4578 return ios_base_fail(this);
4581 /* ??Bios_base@std@@QBEPAXXZ */
4582 /* ??Bios_base@std@@QEBAPEAXXZ */
4583 DEFINE_THISCALL_WRAPPER(ios_base_op_fail, 4)
4584 void* __thiscall ios_base_op_fail(const ios_base *this)
4586 TRACE("(%p)\n", this);
4587 return ios_base_fail(this) ? NULL : (void*)this;
4590 /* ?_Addstd@ios_base@std@@SAXPAV12@@Z */
4591 /* ?_Addstd@ios_base@std@@SAXPEAV12@@Z */
4592 static void ios_base_Addstd(ios_base *add)
4594 FIXME("(%p) stub\n", add);
4597 /* ?_Init@ios_base@std@@IAEXXZ */
4598 /* ?_Init@ios_base@std@@IEAAXXZ */
4599 DEFINE_THISCALL_WRAPPER(ios_base_Init, 4)
4600 void __thiscall ios_base_Init(ios_base *this)
4602 TRACE("(%p)\n", this);
4605 this->state = this->except = IOSTATE_goodbit;
4606 this->fmtfl = FMTFLAG_skipws | FMTFLAG_dec;
4611 this->loc = MSVCRT_operator_new(sizeof(locale));
4612 locale_ctor(this->loc);
4615 /* ?bad@ios_base@std@@QBE_NXZ */
4616 /* ?bad@ios_base@std@@QEBA_NXZ */
4617 DEFINE_THISCALL_WRAPPER(ios_base_bad, 4)
4618 MSVCP_bool __thiscall ios_base_bad(const ios_base *this)
4620 TRACE("(%p)\n", this);
4621 return (this->state & IOSTATE_badbit) != 0;
4624 /* ?eof@ios_base@std@@QBE_NXZ */
4625 /* ?eof@ios_base@std@@QEBA_NXZ */
4626 DEFINE_THISCALL_WRAPPER(ios_base_eof, 4)
4627 MSVCP_bool __thiscall ios_base_eof(const ios_base *this)
4629 TRACE("(%p)\n", this);
4630 return (this->state & IOSTATE_eofbit) != 0;
4633 /* ?flags@ios_base@std@@QAEHH@Z */
4634 /* ?flags@ios_base@std@@QEAAHH@Z */
4635 DEFINE_THISCALL_WRAPPER(ios_base_flags_set, 8)
4636 IOSB_fmtflags __thiscall ios_base_flags_set(ios_base *this, IOSB_fmtflags flags)
4638 IOSB_fmtflags ret = this->fmtfl;
4640 TRACE("(%p %x)\n", this, flags);
4642 this->fmtfl = flags & FMTFLAG_mask;
4646 /* ?flags@ios_base@std@@QBEHXZ */
4647 /* ?flags@ios_base@std@@QEBAHXZ */
4648 DEFINE_THISCALL_WRAPPER(ios_base_flags_get, 4)
4649 IOSB_fmtflags __thiscall ios_base_flags_get(const ios_base *this)
4651 TRACE("(%p)\n", this);
4655 /* ?getloc@ios_base@std@@QBE?AVlocale@2@XZ */
4656 /* ?getloc@ios_base@std@@QEBA?AVlocale@2@XZ */
4657 DEFINE_THISCALL_WRAPPER(ios_base_getloc, 8)
4658 locale* __thiscall ios_base_getloc(const ios_base *this, locale *ret)
4660 TRACE("(%p)\n", this);
4661 return locale_copy_ctor(ret, this->loc);
4664 /* ?good@ios_base@std@@QBE_NXZ */
4665 /* ?good@ios_base@std@@QEBA_NXZ */
4666 DEFINE_THISCALL_WRAPPER(ios_base_good, 4)
4667 MSVCP_bool __thiscall ios_base_good(const ios_base *this)
4669 TRACE("(%p)\n", this);
4670 return this->state == IOSTATE_goodbit;
4673 /* ?imbue@ios_base@std@@QAE?AVlocale@2@ABV32@@Z */
4674 /* ?imbue@ios_base@std@@QEAA?AVlocale@2@AEBV32@@Z */
4675 DEFINE_THISCALL_WRAPPER(ios_base_imbue, 12)
4676 locale* __thiscall ios_base_imbue(ios_base *this, locale *ret, const locale *loc)
4678 TRACE("(%p %p)\n", this, loc);
4680 locale_copy_ctor(this->loc, loc);
4684 /* ?precision@ios_base@std@@QAEHH@Z */
4685 /* ?precision@ios_base@std@@QEAA_J_J@Z */
4686 DEFINE_THISCALL_WRAPPER(ios_base_precision_set, 8)
4687 streamsize __thiscall ios_base_precision_set(ios_base *this, streamsize precision)
4689 streamsize ret = this->prec;
4691 TRACE("(%p %ld)\n", this, precision);
4693 this->prec = precision;
4697 /* ?precision@ios_base@std@@QBEHXZ */
4698 /* ?precision@ios_base@std@@QEBA_JXZ */
4699 DEFINE_THISCALL_WRAPPER(ios_base_precision_get, 4)
4700 streamsize __thiscall ios_base_precision_get(const ios_base *this)
4702 TRACE("(%p)\n", this);
4706 /* ?rdstate@ios_base@std@@QBEHXZ */
4707 /* ?rdstate@ios_base@std@@QEBAHXZ */
4708 DEFINE_THISCALL_WRAPPER(ios_base_rdstate, 4)
4709 IOSB_iostate __thiscall ios_base_rdstate(const ios_base *this)
4711 TRACE("(%p)\n", this);
4715 /* ?setf@ios_base@std@@QAEHHH@Z */
4716 /* ?setf@ios_base@std@@QEAAHHH@Z */
4717 DEFINE_THISCALL_WRAPPER(ios_base_setf_mask, 12)
4718 IOSB_fmtflags __thiscall ios_base_setf_mask(ios_base *this, IOSB_fmtflags flags, IOSB_fmtflags mask)
4720 IOSB_fmtflags ret = this->fmtfl;
4722 TRACE("(%p %x %x)\n", this, flags, mask);
4724 this->fmtfl = (this->fmtfl & (~mask)) | (flags & mask & FMTFLAG_mask);
4728 /* ?setf@ios_base@std@@QAEHH@Z */
4729 /* ?setf@ios_base@std@@QEAAHH@Z */
4730 DEFINE_THISCALL_WRAPPER(ios_base_setf, 8)
4731 IOSB_fmtflags __thiscall ios_base_setf(ios_base *this, IOSB_fmtflags flags)
4733 return ios_base_setf_mask(this, flags, ~0);
4736 /* ?setstate@ios_base@std@@QAEXH_N@Z */
4737 /* ?setstate@ios_base@std@@QEAAXH_N@Z */
4738 DEFINE_THISCALL_WRAPPER(ios_base_setstate_reraise, 12)
4739 void __thiscall ios_base_setstate_reraise(ios_base *this, IOSB_iostate state, MSVCP_bool reraise)
4741 TRACE("(%p %x %x)\n", this, state, reraise);
4743 if(state != IOSTATE_goodbit)
4744 ios_base_clear_reraise(this, this->state | state, reraise);
4747 /* ?setstate@ios_base@std@@QAEXH@Z */
4748 /* ?setstate@ios_base@std@@QEAAXH@Z */
4749 DEFINE_THISCALL_WRAPPER(ios_base_setstate, 8)
4750 void __thiscall ios_base_setstate(ios_base *this, IOSB_iostate state)
4752 ios_base_setstate_reraise(this, state, FALSE);
4755 /* ?setstate@ios_base@std@@QAEXI@Z */
4756 /* ?setstate@ios_base@std@@QEAAXI@Z */
4757 DEFINE_THISCALL_WRAPPER(ios_base_setstate_unsigned, 8)
4758 void __thiscall ios_base_setstate_unsigned(ios_base *this, unsigned int state)
4760 ios_base_setstate_reraise(this, (IOSB_iostate)state, FALSE);
4763 /* ?sync_with_stdio@ios_base@std@@SA_N_N@Z */
4764 MSVCP_bool CDECL ios_base_sync_with_stdio(MSVCP_bool sync)
4769 TRACE("(%x)\n", sync);
4771 _Lockit_ctor_locktype(&lock, _LOCK_STREAM);
4772 ret = ios_base_Sync;
4773 ios_base_Sync = sync;
4774 _Lockit_dtor(&lock);
4778 /* ?unsetf@ios_base@std@@QAEXH@Z */
4779 /* ?unsetf@ios_base@std@@QEAAXH@Z */
4780 DEFINE_THISCALL_WRAPPER(ios_base_unsetf, 8)
4781 void __thiscall ios_base_unsetf(ios_base *this, IOSB_fmtflags flags)
4783 TRACE("(%p %x)\n", this, flags);
4784 this->fmtfl &= ~flags;
4787 /* ?width@ios_base@std@@QAEHH@Z */
4788 /* ?width@ios_base@std@@QEAA_J_J@Z */
4789 DEFINE_THISCALL_WRAPPER(ios_base_width_set, 8)
4790 streamsize __thiscall ios_base_width_set(ios_base *this, streamsize width)
4792 streamsize ret = this->wide;
4794 TRACE("(%p %ld)\n", this, width);
4800 /* ?width@ios_base@std@@QBEHXZ */
4801 /* ?width@ios_base@std@@QEBA_JXZ */
4802 DEFINE_THISCALL_WRAPPER(ios_base_width_get, 4)
4803 streamsize __thiscall ios_base_width_get(ios_base *this)
4805 TRACE("(%p)\n", this);
4809 /* ?xalloc@ios_base@std@@SAHXZ */
4810 int CDECL ios_base_xalloc(void)
4817 _Lockit_ctor_locktype(&lock, _LOCK_STREAM);
4818 ret = ios_base_Index++;
4819 _Lockit_dtor(&lock);
4823 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ */
4824 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ */
4825 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor, 4)
4826 basic_ios_char* __thiscall basic_ios_char_ctor(basic_ios_char *this)
4828 TRACE("(%p)\n", this);
4830 ios_base_ctor(&this->base);
4831 this->base.vtable = &MSVCP_basic_ios_char_vtable;
4835 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
4836 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
4837 DEFINE_THISCALL_WRAPPER(basic_ios_char_init, 12)
4838 void __thiscall basic_ios_char_init(basic_ios_char *this, basic_streambuf_char *streambuf, MSVCP_bool isstd)
4840 TRACE("(%p %p %x)\n", this, streambuf, isstd);
4841 ios_base_Init(&this->base);
4842 this->strbuf = streambuf;
4843 this->stream = NULL;
4847 ios_base_setstate(&this->base, IOSTATE_badbit);
4850 FIXME("standard streams not handled yet\n");
4853 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
4854 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
4855 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor_streambuf, 8)
4856 basic_ios_char* __thiscall basic_ios_char_ctor_streambuf(basic_ios_char *this, basic_streambuf_char *strbuf)
4858 TRACE("(%p %p)\n", this, strbuf);
4860 basic_ios_char_ctor(this);
4861 basic_ios_char_init(this, strbuf, FALSE);
4865 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ */
4866 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ */
4867 DEFINE_THISCALL_WRAPPER(basic_ios_char_dtor, 4)
4868 void __thiscall basic_ios_char_dtor(basic_ios_char *this)
4870 TRACE("(%p)\n", this);
4871 ios_base_dtor(&this->base);
4874 DEFINE_THISCALL_WRAPPER(basic_ios_char_vector_dtor, 8)
4875 basic_ios_char* __thiscall basic_ios_char_vector_dtor(basic_ios_char *this, unsigned int flags)
4877 TRACE("(%p %x)\n", this, flags);
4879 /* we have an array, with the number of elements stored before the first object */
4880 INT_PTR i, *ptr = (INT_PTR *)this-1;
4882 for(i=*ptr-1; i>=0; i--)
4883 basic_ios_char_dtor(this+i);
4884 MSVCRT_operator_delete(ptr);
4886 basic_ios_char_dtor(this);
4888 MSVCRT_operator_delete(this);
4894 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
4895 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
4896 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear_reraise, 12)
4897 void __thiscall basic_ios_char_clear_reraise(basic_ios_char *this, IOSB_iostate state, MSVCP_bool reraise)
4899 TRACE("(%p %x %x)\n", this, state, reraise);
4900 ios_base_clear_reraise(&this->base, state | (this->strbuf ? IOSTATE_goodbit : IOSTATE_badbit), reraise);
4903 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
4904 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
4905 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear, 8)
4906 void __thiscall basic_ios_char_clear(basic_ios_char *this, unsigned int state)
4908 basic_ios_char_clear_reraise(this, (IOSB_iostate)state, FALSE);
4911 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEAAV12@ABV12@@Z */
4912 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEBV12@@Z */
4913 DEFINE_THISCALL_WRAPPER(basic_ios_char_copyfmt, 8)
4914 basic_ios_char* __thiscall basic_ios_char_copyfmt(basic_ios_char *this, basic_ios_char *copy)
4916 TRACE("(%p %p)\n", this, copy);
4920 this->stream = copy->stream;
4921 this->fillch = copy->fillch;
4922 ios_base_copyfmt(&this->base, ©->base);
4926 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEDD@Z */
4927 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z */
4928 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_set, 8)
4929 char __thiscall basic_ios_char_fill_set(basic_ios_char *this, char fill)
4931 char ret = this->fillch;
4933 TRACE("(%p %c)\n", this, fill);
4935 this->fillch = fill;
4939 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ */
4940 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ */
4941 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_get, 4)
4942 char __thiscall basic_ios_char_fill_get(basic_ios_char *this)
4944 TRACE("(%p)\n", this);
4945 return this->fillch;
4948 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
4949 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
4950 DEFINE_THISCALL_WRAPPER(basic_ios_char_imbue, 12)
4951 locale *__thiscall basic_ios_char_imbue(basic_ios_char *this, locale *ret, const locale *loc)
4953 TRACE("(%p %p %p)\n", this, ret, loc);
4956 basic_streambuf_char_pubimbue(this->strbuf, ret, loc);
4960 return ios_base_imbue(&this->base, ret, loc);
4963 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDDD@Z */
4964 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADDD@Z */
4965 DEFINE_THISCALL_WRAPPER(basic_ios_char_narrow, 12)
4966 char __thiscall basic_ios_char_narrow(basic_ios_char *this, char ch, char def)
4968 TRACE("(%p %c %c)\n", this, ch, def);
4969 return ctype_char_narrow_ch(ctype_char_use_facet(this->strbuf->loc), ch, def);
4972 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PAV32@@Z */
4973 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAV32@@Z */
4974 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_set, 8)
4975 basic_streambuf_char* __thiscall basic_ios_char_rdbuf_set(basic_ios_char *this, basic_streambuf_char *streambuf)
4977 basic_streambuf_char *ret = this->strbuf;
4979 TRACE("(%p %p)\n", this, streambuf);
4981 this->strbuf = streambuf;
4982 basic_ios_char_clear(this, IOSTATE_goodbit);
4986 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
4987 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
4988 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_get, 4)
4989 basic_streambuf_char* __thiscall basic_ios_char_rdbuf_get(const basic_ios_char *this)
4991 TRACE("(%p)\n", this);
4992 return this->strbuf;
4995 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
4996 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
4997 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate_reraise, 12)
4998 void __thiscall basic_ios_char_setstate_reraise(basic_ios_char *this, IOSB_iostate state, MSVCP_bool reraise)
5000 TRACE("(%p %x %x)\n", this, state, reraise);
5002 if(state != IOSTATE_goodbit)
5003 basic_ios_char_clear_reraise(this, this->base.state | state, reraise);
5006 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
5007 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
5008 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate, 8)
5009 void __thiscall basic_ios_char_setstate(basic_ios_char *this, unsigned int state)
5011 basic_ios_char_setstate_reraise(this, (IOSB_iostate)state, FALSE);
5014 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@PAV32@@Z */
5015 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@PEAV32@@Z */
5016 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_set, 8)
5017 basic_ostream_char* __thiscall basic_ios_char_tie_set(basic_ios_char *this, basic_ostream_char *ostream)
5019 basic_ostream_char *ret = this->stream;
5021 TRACE("(%p %p)\n", this, ostream);
5023 this->stream = ostream;
5027 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
5028 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
5029 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_get, 4)
5030 basic_ostream_char* __thiscall basic_ios_char_tie_get(const basic_ios_char *this)
5032 TRACE("(%p)\n", this);
5033 return this->stream;
5036 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z */
5037 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z */
5038 DEFINE_THISCALL_WRAPPER(basic_ios_char_widen, 8)
5039 char __thiscall basic_ios_char_widen(basic_ios_char *this, char ch)
5041 TRACE("(%p %c)\n", this, ch);
5042 return ctype_char_widen_ch(ctype_char_use_facet(this->strbuf->loc), ch);
5046 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
5047 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
5048 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_ctor, 4)
5049 basic_ios_wchar* __thiscall basic_ios_wchar_ctor(basic_ios_wchar *this)
5051 TRACE("(%p)\n", this);
5053 ios_base_ctor(&this->base);
5054 this->base.vtable = &MSVCP_basic_ios_wchar_vtable;
5058 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@IAE@XZ */
5059 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@IEAA@XZ */
5060 DEFINE_THISCALL_WRAPPER(basic_ios_short_ctor, 4)
5061 basic_ios_wchar* __thiscall basic_ios_short_ctor(basic_ios_wchar *this)
5063 basic_ios_wchar_ctor(this);
5064 this->base.vtable = &MSVCP_basic_ios_short_vtable;
5068 /* ?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAEXPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z */
5069 /* ?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z */
5070 /* ?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IAEXPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z */
5071 /* ?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z */
5072 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_init, 12)
5073 void __thiscall basic_ios_wchar_init(basic_ios_wchar *this, basic_streambuf_wchar *streambuf, MSVCP_bool isstd)
5075 TRACE("(%p %p %x)\n", this, streambuf, isstd);
5076 ios_base_Init(&this->base);
5077 this->strbuf = streambuf;
5078 this->stream = NULL;
5082 ios_base_setstate(&this->base, IOSTATE_badbit);
5085 FIXME("standard streams not handled yet\n");
5088 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
5089 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
5090 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_ctor_streambuf, 8)
5091 basic_ios_wchar* __thiscall basic_ios_wchar_ctor_streambuf(basic_ios_wchar *this, basic_streambuf_wchar *strbuf)
5093 TRACE("(%p %p)\n", this, strbuf);
5095 basic_ios_wchar_ctor(this);
5096 basic_ios_wchar_init(this, strbuf, FALSE);
5100 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
5101 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
5102 DEFINE_THISCALL_WRAPPER(basic_ios_short_ctor_streambuf, 8)
5103 basic_ios_wchar* __thiscall basic_ios_short_ctor_streambuf(basic_ios_wchar *this, basic_streambuf_wchar *strbuf)
5105 basic_ios_wchar_ctor_streambuf(this, strbuf);
5106 this->base.vtable = &MSVCP_basic_ios_short_vtable;
5110 /* ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
5111 /* ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
5112 /* ??1?$basic_ios@GU?$char_traits@G@std@@@std@@UAE@XZ */
5113 /* ??1?$basic_ios@GU?$char_traits@G@std@@@std@@UEAA@XZ */
5114 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_dtor, 4)
5115 void __thiscall basic_ios_wchar_dtor(basic_ios_wchar *this)
5117 TRACE("(%p)\n", this);
5118 ios_base_dtor(&this->base);
5121 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_vector_dtor, 8)
5122 basic_ios_wchar* __thiscall basic_ios_wchar_vector_dtor(basic_ios_wchar *this, unsigned int flags)
5124 TRACE("(%p %x)\n", this, flags);
5126 /* we have an array, with the number of elements stored before the first object */
5127 INT_PTR i, *ptr = (INT_PTR *)this-1;
5129 for(i=*ptr-1; i>=0; i--)
5130 basic_ios_wchar_dtor(this+i);
5131 MSVCRT_operator_delete(ptr);
5133 basic_ios_wchar_dtor(this);
5135 MSVCRT_operator_delete(this);
5141 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z */
5142 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z */
5143 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXH_N@Z */
5144 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z */
5145 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_clear_reraise, 12)
5146 void __thiscall basic_ios_wchar_clear_reraise(basic_ios_wchar *this, IOSB_iostate state, MSVCP_bool reraise)
5148 TRACE("(%p %x %x)\n", this, state, reraise);
5149 ios_base_clear_reraise(&this->base, state | (this->strbuf ? IOSTATE_goodbit : IOSTATE_badbit), reraise);
5152 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXI@Z */
5153 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z */
5154 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXI@Z */
5155 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z */
5156 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_clear, 8)
5157 void __thiscall basic_ios_wchar_clear(basic_ios_wchar *this, unsigned int state)
5159 basic_ios_wchar_clear_reraise(this, (IOSB_iostate)state, FALSE);
5162 /* ?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEAAV12@ABV12@@Z */
5163 /* ?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEBV12@@Z */
5164 /* ?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEAAV12@ABV12@@Z */
5165 /* ?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEBV12@@Z */
5166 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_copyfmt, 8)
5167 basic_ios_wchar* __thiscall basic_ios_wchar_copyfmt(basic_ios_wchar *this, basic_ios_wchar *copy)
5169 TRACE("(%p %p)\n", this, copy);
5173 this->stream = copy->stream;
5174 this->fillch = copy->fillch;
5175 ios_base_copyfmt(&this->base, ©->base);
5179 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE_W_W@Z */
5180 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA_W_W@Z */
5181 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEGG@Z */
5182 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAGG@Z */
5183 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_fill_set, 8)
5184 wchar_t __thiscall basic_ios_wchar_fill_set(basic_ios_wchar *this, wchar_t fill)
5186 wchar_t ret = this->fillch;
5188 TRACE("(%p %c)\n", this, fill);
5190 this->fillch = fill;
5194 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WXZ */
5195 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WXZ */
5196 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEGXZ */
5197 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGXZ */
5198 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_fill_get, 4)
5199 wchar_t __thiscall basic_ios_wchar_fill_get(basic_ios_wchar *this)
5201 TRACE("(%p)\n", this);
5202 return this->fillch;
5205 /* ?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
5206 /* ?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
5207 /* ?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
5208 /* ?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
5209 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_imbue, 12)
5210 locale *__thiscall basic_ios_wchar_imbue(basic_ios_wchar *this, locale *ret, const locale *loc)
5212 TRACE("(%p %p %p)\n", this, ret, loc);
5215 return basic_streambuf_wchar_pubimbue(this->strbuf, ret, loc);
5217 locale_copy_ctor(ret, loc);
5221 /* ?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBED_WD@Z */
5222 /* ?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAD_WD@Z */
5223 /* ?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEDGD@Z */
5224 /* ?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBADGD@Z */
5225 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_narrow, 12)
5226 char __thiscall basic_ios_wchar_narrow(basic_ios_wchar *this, wchar_t ch, char def)
5228 TRACE("(%p %c %c)\n", this, ch, def);
5229 return ctype_wchar_narrow_ch(ctype_wchar_use_facet(this->strbuf->loc), ch, def);
5232 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PAV32@@Z */
5233 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEAV32@@Z */
5234 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PAV32@@Z */
5235 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAV32@@Z */
5236 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_rdbuf_set, 8)
5237 basic_streambuf_wchar* __thiscall basic_ios_wchar_rdbuf_set(basic_ios_wchar *this, basic_streambuf_wchar *streambuf)
5239 basic_streambuf_wchar *ret = this->strbuf;
5241 TRACE("(%p %p)\n", this, streambuf);
5243 this->strbuf = streambuf;
5244 basic_ios_wchar_clear(this, IOSTATE_goodbit);
5248 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ */
5249 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ */
5250 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ */
5251 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ */
5252 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_rdbuf_get, 4)
5253 basic_streambuf_wchar* __thiscall basic_ios_wchar_rdbuf_get(const basic_ios_wchar *this)
5255 TRACE("(%p)\n", this);
5256 return this->strbuf;
5259 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z */
5260 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z */
5261 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXH_N@Z */
5262 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z */
5263 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_setstate_reraise, 12)
5264 void __thiscall basic_ios_wchar_setstate_reraise(basic_ios_wchar *this, IOSB_iostate state, MSVCP_bool reraise)
5266 TRACE("(%p %x %x)\n", this, state, reraise);
5268 if(state != IOSTATE_goodbit)
5269 basic_ios_wchar_clear_reraise(this, this->base.state | state, reraise);
5272 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXI@Z */
5273 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z */
5274 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXI@Z */
5275 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z */
5276 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_setstate, 8)
5277 void __thiscall basic_ios_wchar_setstate(basic_ios_wchar *this, IOSB_iostate state)
5279 basic_ios_wchar_setstate_reraise(this, state, FALSE);
5282 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PAV32@@Z */
5283 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PEAV32@@Z */
5284 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEPAV?$basic_ostream@GU?$char_traits@G@std@@@2@PAV32@@Z */
5285 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@PEAV32@@Z */
5286 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_tie_set, 8)
5287 basic_ostream_wchar* __thiscall basic_ios_wchar_tie_set(basic_ios_wchar *this, basic_ostream_wchar *ostream)
5289 basic_ostream_wchar *ret = this->stream;
5291 TRACE("(%p %p)\n", this, ostream);
5293 this->stream = ostream;
5297 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ */
5298 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ */
5299 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ */
5300 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ */
5301 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_tie_get, 4)
5302 basic_ostream_wchar* __thiscall basic_ios_wchar_tie_get(const basic_ios_wchar *this)
5304 TRACE("(%p)\n", this);
5305 return this->stream;
5308 /* ?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WD@Z */
5309 /* ?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WD@Z */
5310 /* ?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEGD@Z */
5311 /* ?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGD@Z */
5312 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_widen, 8)
5313 wchar_t __thiscall basic_ios_wchar_widen(basic_ios_wchar *this, char ch)
5315 TRACE("(%p %c)\n", this, ch);
5316 return ctype_wchar_widen_ch(ctype_wchar_use_facet(this->strbuf->loc), ch);
5319 /* Caution: basic_ostream uses virtual inheritance.
5320 * All constructors have additional parameter that says if base class should be initialized.
5321 * Base class needs to be accessed using vbtable.
5323 static inline basic_ios_char* basic_ostream_char_get_basic_ios(basic_ostream_char *this)
5325 return (basic_ios_char*)((char*)this+this->vbtable[1]);
5328 static inline basic_ios_char* basic_ostream_char_to_basic_ios(basic_ostream_char *ptr)
5330 return (basic_ios_char*)((char*)ptr+basic_ostream_char_vbtable[1]);
5333 static inline basic_ostream_char* basic_ostream_char_from_basic_ios(basic_ios_char *ptr)
5335 return (basic_ostream_char*)((char*)ptr-basic_ostream_char_vbtable[1]);
5338 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
5339 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
5340 DEFINE_THISCALL_WRAPPER(basic_ostream_char_ctor, 16)
5341 basic_ostream_char* __thiscall basic_ostream_char_ctor(basic_ostream_char *this,
5342 basic_streambuf_char *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
5344 basic_ios_char *base;
5346 TRACE("(%p %p %d %d)\n", this, strbuf, isstd, virt_init);
5349 this->vbtable = basic_ostream_char_vbtable;
5350 base = basic_ostream_char_get_basic_ios(this);
5351 basic_ios_char_ctor(base);
5353 base = basic_ostream_char_get_basic_ios(this);
5356 base->base.vtable = &MSVCP_basic_ostream_char_vtable;
5357 basic_ios_char_init(base, strbuf, isstd);
5361 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@_N@Z */
5362 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z */
5363 static basic_ostream_char* basic_ostream_char_ctor_uninitialized(basic_ostream_char *this,
5364 int uninitialized, MSVCP_bool addstd, MSVCP_bool virt_init)
5366 basic_ios_char *base;
5368 TRACE("(%p %d %x)\n", this, uninitialized, addstd);
5371 this->vbtable = basic_ostream_char_vbtable;
5372 base = basic_ostream_char_get_basic_ios(this);
5373 basic_ios_char_ctor(base);
5375 base = basic_ostream_char_get_basic_ios(this);
5378 base->base.vtable = &MSVCP_basic_ostream_char_vtable;
5380 ios_base_Addstd(&base->base);
5384 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
5385 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
5386 DEFINE_THISCALL_WRAPPER(basic_ostream_char_dtor, 4)
5387 void __thiscall basic_ostream_char_dtor(basic_ios_char *base)
5389 basic_ostream_char *this = basic_ostream_char_from_basic_ios(base);
5391 /* don't destroy virtual base here */
5392 TRACE("(%p)\n", this);
5395 /* ??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
5396 /* ??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
5397 DEFINE_THISCALL_WRAPPER(basic_ostream_char_vbase_dtor, 4)
5398 void __thiscall basic_ostream_char_vbase_dtor(basic_ostream_char *this)
5400 TRACE("(%p)\n", this);
5401 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(this));
5402 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(this));
5405 DEFINE_THISCALL_WRAPPER(basic_ostream_char_vector_dtor, 8)
5406 basic_ostream_char* __thiscall basic_ostream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
5408 basic_ostream_char *this = basic_ostream_char_from_basic_ios(base);
5410 TRACE("(%p %x)\n", this, flags);
5413 /* we have an array, with the number of elements stored before the first object */
5414 INT_PTR i, *ptr = (INT_PTR *)this-1;
5416 for(i=*ptr-1; i>=0; i--)
5417 basic_ostream_char_vbase_dtor(this+i);
5418 MSVCRT_operator_delete(ptr);
5420 basic_ostream_char_vbase_dtor(this);
5422 MSVCRT_operator_delete(this);
5428 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ */
5429 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ */
5430 DEFINE_THISCALL_WRAPPER(basic_ostream_char_flush, 4)
5431 basic_ostream_char* __thiscall basic_ostream_char_flush(basic_ostream_char *this)
5433 /* this function is not matching C++ specification */
5434 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5436 TRACE("(%p)\n", this);
5438 if(basic_ios_char_rdbuf_get(base) && ios_base_good(&base->base)
5439 && basic_streambuf_char_pubsync(basic_ios_char_rdbuf_get(base))==-1)
5440 basic_ios_char_setstate(base, IOSTATE_badbit);
5444 /* ?flush@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
5445 /* ?flush@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
5446 basic_ostream_char* __cdecl flush_ostream_char(basic_ostream_char *ostream)
5448 return basic_ostream_char_flush(ostream);
5451 /* ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
5452 /* ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
5453 DEFINE_THISCALL_WRAPPER(basic_ostream_char__Osfx, 4)
5454 void __thiscall basic_ostream_char__Osfx(basic_ostream_char *this)
5456 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5458 TRACE("(%p)\n", this);
5460 if(base->base.fmtfl & FMTFLAG_unitbuf)
5461 basic_ostream_char_flush(this);
5464 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
5465 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
5466 DEFINE_THISCALL_WRAPPER(basic_ostream_char_osfx, 4)
5467 void __thiscall basic_ostream_char_osfx(basic_ostream_char *this)
5469 TRACE("(%p)\n", this);
5470 basic_ostream_char__Osfx(this);
5473 static BOOL basic_ostream_char_sentry_create(basic_ostream_char *ostr)
5475 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
5477 if(basic_ios_char_rdbuf_get(base))
5478 basic_streambuf_char__Lock(base->strbuf);
5480 if(ios_base_good(&base->base) && base->stream)
5481 basic_ostream_char_flush(base->stream);
5483 return ios_base_good(&base->base);
5486 static void basic_ostream_char_sentry_destroy(basic_ostream_char *ostr)
5488 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
5490 if(ios_base_good(&base->base) && !__uncaught_exception())
5491 basic_ostream_char_osfx(ostr);
5493 if(basic_ios_char_rdbuf_get(base))
5494 basic_streambuf_char__Unlock(base->strbuf);
5497 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE_NXZ */
5498 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA_NXZ */
5499 DEFINE_THISCALL_WRAPPER(basic_ostream_char_opfx, 4)
5500 MSVCP_bool __thiscall basic_ostream_char_opfx(basic_ostream_char *this)
5502 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5504 TRACE("(%p)\n", this);
5506 if(ios_base_good(&base->base) && base->stream)
5507 basic_ostream_char_flush(base->stream);
5508 return ios_base_good(&base->base);
5511 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z */
5512 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z */
5513 DEFINE_THISCALL_WRAPPER(basic_ostream_char_put, 8)
5514 basic_ostream_char* __thiscall basic_ostream_char_put(basic_ostream_char *this, char ch)
5516 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5518 TRACE("(%p %c)\n", this, ch);
5520 if(!basic_ostream_char_sentry_create(this)
5521 || basic_streambuf_char_sputc(base->strbuf, ch)==EOF) {
5522 basic_ostream_char_sentry_destroy(this);
5523 basic_ios_char_setstate(base, IOSTATE_badbit);
5527 basic_ostream_char_sentry_destroy(this);
5531 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@JH@Z */
5532 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
5533 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp, 12)
5534 basic_ostream_char* __thiscall basic_ostream_char_seekp(basic_ostream_char *this, streamoff off, int way)
5536 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5538 TRACE("(%p %ld %d)\n", this, off, way);
5540 if(!ios_base_fail(&base->base)) {
5543 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base),
5544 &seek, off, way, OPENMODE_out);
5545 if(seek.off==0 && seek.pos==-1 && seek.state==0)
5546 basic_ios_char_setstate(base, IOSTATE_failbit);
5551 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
5552 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
5553 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp_fpos, 28)
5554 basic_ostream_char* __thiscall basic_ostream_char_seekp_fpos(basic_ostream_char *this, fpos_int pos)
5556 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5558 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos));
5560 if(!ios_base_fail(&base->base)) {
5563 basic_streambuf_char_pubseekpos(basic_ios_char_rdbuf_get(base),
5564 &seek, pos, OPENMODE_out);
5565 if(seek.off==0 && seek.pos==-1 && seek.state==0)
5566 basic_ios_char_setstate(base, IOSTATE_failbit);
5571 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
5572 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
5573 DEFINE_THISCALL_WRAPPER(basic_ostream_char_tellp, 8)
5574 fpos_int* __thiscall basic_ostream_char_tellp(basic_ostream_char *this, fpos_int *ret)
5576 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5578 TRACE("(%p)\n", this);
5580 if(!ios_base_fail(&base->base)) {
5581 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base),
5582 ret, 0, SEEKDIR_cur, OPENMODE_out);
5591 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@PBDH@Z */
5592 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z */
5593 DEFINE_THISCALL_WRAPPER(basic_ostream_char_write, 12)
5594 basic_ostream_char* __thiscall basic_ostream_char_write(basic_ostream_char *this, const char *str, streamsize count)
5596 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5598 TRACE("(%p %s %ld)\n", this, debugstr_a(str), count);
5600 if(!basic_ostream_char_sentry_create(this)
5601 || basic_streambuf_char_sputn(base->strbuf, str, count)!=count) {
5602 basic_ostream_char_sentry_destroy(this);
5603 basic_ios_char_setstate(base, IOSTATE_badbit);
5607 basic_ostream_char_sentry_destroy(this);
5611 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@F@Z */
5612 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@F@Z */
5613 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_short, 8)
5614 basic_ostream_char* __thiscall basic_ostream_char_print_short(basic_ostream_char *this, short val)
5616 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5617 int state = IOSTATE_goodbit;
5619 TRACE("(%p %d)\n", this, val);
5621 if(basic_ostream_char_sentry_create(this)) {
5622 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5623 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5624 ostreambuf_iterator_char dest = {0, strbuf};
5626 num_put_char_put_long(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base),
5627 (ios_base_flags_get(&base->base) & FMTFLAG_basefield & (FMTFLAG_oct | FMTFLAG_hex))
5628 ? (LONG)((unsigned short)val) : (LONG)val);
5630 basic_ostream_char_sentry_destroy(this);
5632 basic_ios_char_setstate(base, state);
5636 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@G@Z */
5637 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@G@Z */
5638 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ushort, 8)
5639 basic_ostream_char* __thiscall basic_ostream_char_print_ushort(basic_ostream_char *this, unsigned short val)
5641 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5642 int state = IOSTATE_goodbit;
5644 TRACE("(%p %u)\n", this, val);
5646 if(basic_ostream_char_sentry_create(this)) {
5647 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5648 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5649 ostreambuf_iterator_char dest = {0, strbuf};
5651 num_put_char_put_ulong(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5653 basic_ostream_char_sentry_destroy(this);
5655 basic_ios_char_setstate(base, state);
5659 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@H@Z */
5660 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z */
5661 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@J@Z */
5662 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@J@Z */
5663 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int, 8)
5664 basic_ostream_char* __thiscall basic_ostream_char_print_int(basic_ostream_char *this, int val)
5666 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5667 int state = IOSTATE_goodbit;
5669 TRACE("(%p %d)\n", this, val);
5671 if(basic_ostream_char_sentry_create(this)) {
5672 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5673 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5674 ostreambuf_iterator_char dest = {0, strbuf};
5676 num_put_char_put_long(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5678 basic_ostream_char_sentry_destroy(this);
5680 basic_ios_char_setstate(base, state);
5684 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@I@Z */
5685 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@I@Z */
5686 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@K@Z */
5687 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@K@Z */
5688 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint, 8)
5689 basic_ostream_char* __thiscall basic_ostream_char_print_uint(basic_ostream_char *this, unsigned int val)
5691 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5692 int state = IOSTATE_goodbit;
5694 TRACE("(%p %u)\n", this, val);
5696 if(basic_ostream_char_sentry_create(this)) {
5697 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5698 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5699 ostreambuf_iterator_char dest = {0, strbuf};
5701 num_put_char_put_ulong(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5703 basic_ostream_char_sentry_destroy(this);
5705 basic_ios_char_setstate(base, state);
5709 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@M@Z */
5710 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z */
5711 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_float, 8)
5712 basic_ostream_char* __thiscall basic_ostream_char_print_float(basic_ostream_char *this, float val)
5714 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5715 int state = IOSTATE_goodbit;
5717 TRACE("(%p %f)\n", this, val);
5719 if(basic_ostream_char_sentry_create(this)) {
5720 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5721 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5722 ostreambuf_iterator_char dest = {0, strbuf};
5724 num_put_char_put_double(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5726 basic_ostream_char_sentry_destroy(this);
5728 basic_ios_char_setstate(base, state);
5732 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@N@Z */
5733 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z */
5734 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_double, 12)
5735 basic_ostream_char* __thiscall basic_ostream_char_print_double(basic_ostream_char *this, double val)
5737 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5738 int state = IOSTATE_goodbit;
5740 TRACE("(%p %lf)\n", this, val);
5742 if(basic_ostream_char_sentry_create(this)) {
5743 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5744 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5745 ostreambuf_iterator_char dest = {0, strbuf};
5747 num_put_char_put_double(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5749 basic_ostream_char_sentry_destroy(this);
5751 basic_ios_char_setstate(base, state);
5755 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@O@Z */
5756 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@O@Z */
5757 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ldouble, 12)
5758 basic_ostream_char* __thiscall basic_ostream_char_print_ldouble(basic_ostream_char *this, double val)
5760 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5761 int state = IOSTATE_goodbit;
5763 TRACE("(%p %lf)\n", this, val);
5765 if(basic_ostream_char_sentry_create(this)) {
5766 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5767 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5768 ostreambuf_iterator_char dest = {0, strbuf};
5770 num_put_char_put_ldouble(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5772 basic_ostream_char_sentry_destroy(this);
5774 basic_ios_char_setstate(base, state);
5778 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
5779 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
5780 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_streambuf, 8)
5781 basic_ostream_char* __thiscall basic_ostream_char_print_streambuf(basic_ostream_char *this, basic_streambuf_char *val)
5783 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5784 IOSB_iostate state = IOSTATE_badbit;
5787 TRACE("(%p %p)\n", this, val);
5789 if(basic_ostream_char_sentry_create(this)) {
5790 for(c = basic_streambuf_char_sgetc(val); c!=EOF;
5791 c = basic_streambuf_char_snextc(val)) {
5792 state = IOSTATE_goodbit;
5794 if(basic_streambuf_char_sputc(base->strbuf, c) == EOF) {
5795 state = IOSTATE_badbit;
5800 state = IOSTATE_badbit;
5802 basic_ostream_char_sentry_destroy(this);
5804 ios_base_width_set(&base->base, 0);
5805 basic_ios_char_setstate(base, state);
5809 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PBX@Z */
5810 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEBX@Z */
5811 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ptr, 8)
5812 basic_ostream_char* __thiscall basic_ostream_char_print_ptr(basic_ostream_char *this, const void *val)
5814 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5815 int state = IOSTATE_goodbit;
5817 TRACE("(%p %p)\n", this, val);
5819 if(basic_ostream_char_sentry_create(this)) {
5820 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5821 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5822 ostreambuf_iterator_char dest = {0, strbuf};
5824 num_put_char_put_ptr(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5826 basic_ostream_char_sentry_destroy(this);
5828 basic_ios_char_setstate(base, state);
5832 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_J@Z */
5833 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_J@Z */
5834 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int64, 12)
5835 basic_ostream_char* __thiscall basic_ostream_char_print_int64(basic_ostream_char *this, __int64 val)
5837 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5838 int state = IOSTATE_goodbit;
5840 TRACE("(%p)\n", this);
5842 if(basic_ostream_char_sentry_create(this)) {
5843 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5844 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5845 ostreambuf_iterator_char dest = {0, strbuf};
5847 num_put_char_put_int64(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5849 basic_ostream_char_sentry_destroy(this);
5851 basic_ios_char_setstate(base, state);
5855 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_K@Z */
5856 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z */
5857 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint64, 12)
5858 basic_ostream_char* __thiscall basic_ostream_char_print_uint64(basic_ostream_char *this, unsigned __int64 val)
5860 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5861 int state = IOSTATE_goodbit;
5863 TRACE("(%p)\n", this);
5865 if(basic_ostream_char_sentry_create(this)) {
5866 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5867 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5868 ostreambuf_iterator_char dest = {0, strbuf};
5870 num_put_char_put_uint64(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5872 basic_ostream_char_sentry_destroy(this);
5874 basic_ios_char_setstate(base, state);
5878 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_N@Z */
5879 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_N@Z */
5880 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_bool, 8)
5881 basic_ostream_char* __thiscall basic_ostream_char_print_bool(basic_ostream_char *this, MSVCP_bool val)
5883 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5884 int state = IOSTATE_goodbit;
5886 TRACE("(%p %x)\n", this, val);
5888 if(basic_ostream_char_sentry_create(this)) {
5889 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5890 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5891 ostreambuf_iterator_char dest = {0, strbuf};
5893 num_put_char_put_bool(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5895 basic_ostream_char_sentry_destroy(this);
5897 basic_ios_char_setstate(base, state);
5901 /* ?endl@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
5902 /* ?endl@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
5903 basic_ostream_char* __cdecl basic_ostream_char_endl(basic_ostream_char *ostr)
5905 TRACE("(%p)\n", ostr);
5907 basic_ostream_char_put(ostr, '\n');
5908 basic_ostream_char_flush(ostr);
5912 /* $?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
5913 /* ??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
5914 basic_ostream_char* __cdecl basic_ostream_char_print_bstr(basic_ostream_char *ostr, const basic_string_char *str)
5916 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
5917 IOSB_iostate state = IOSTATE_goodbit;
5919 TRACE("(%p %p)\n", ostr, str);
5921 if(basic_ostream_char_sentry_create(ostr)) {
5922 MSVCP_size_t len = MSVCP_basic_string_char_length(str);
5923 streamsize pad = (base->base.wide>len ? base->base.wide-len : 0);
5925 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
5926 for(; pad!=0; pad--) {
5927 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
5928 state = IOSTATE_badbit;
5934 if(state == IOSTATE_goodbit) {
5935 if(basic_streambuf_char_sputn(base->strbuf, MSVCP_basic_string_char_c_str(str), len) != len)
5936 state = IOSTATE_badbit;
5939 if(state == IOSTATE_goodbit) {
5940 for(; pad!=0; pad--) {
5941 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
5942 state = IOSTATE_badbit;
5948 base->base.wide = 0;
5950 state = IOSTATE_badbit;
5952 basic_ostream_char_sentry_destroy(ostr);
5954 basic_ios_char_setstate(base, state);
5958 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@C@Z */
5959 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@C@Z */
5960 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@D@Z */
5961 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z */
5962 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@E@Z */
5963 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@E@Z */
5964 basic_ostream_char* __cdecl basic_ostream_char_print_ch(basic_ostream_char *ostr, char ch)
5966 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
5967 IOSB_iostate state = IOSTATE_goodbit;
5969 TRACE("(%p %d)\n", ostr, ch);
5971 if(basic_ostream_char_sentry_create(ostr)) {
5972 streamsize pad = (base->base.wide>1 ? base->base.wide-1 : 0);
5974 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
5975 for(; pad!=0; pad--) {
5976 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
5977 state = IOSTATE_badbit;
5983 if(state == IOSTATE_goodbit) {
5984 if(basic_streambuf_char_sputc(base->strbuf, ch) == EOF)
5985 state = IOSTATE_badbit;
5988 if(state == IOSTATE_goodbit) {
5989 for(; pad!=0; pad--) {
5990 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
5991 state = IOSTATE_badbit;
5997 base->base.wide = 0;
5999 state = IOSTATE_badbit;
6001 basic_ostream_char_sentry_destroy(ostr);
6003 basic_ios_char_setstate(base, state);
6007 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBC@Z */
6008 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBC@Z */
6009 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z */
6010 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBD@Z */
6011 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBE@Z */
6012 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBE@Z */
6013 basic_ostream_char* __cdecl basic_ostream_char_print_str(basic_ostream_char *ostr, const char *str)
6015 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
6016 IOSB_iostate state = IOSTATE_goodbit;
6018 TRACE("(%p %s)\n", ostr, str);
6020 if(basic_ostream_char_sentry_create(ostr)) {
6021 MSVCP_size_t len = strlen(str);
6022 streamsize pad = (base->base.wide>len ? base->base.wide-len : 0);
6024 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
6025 for(; pad!=0; pad--) {
6026 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
6027 state = IOSTATE_badbit;
6033 if(state == IOSTATE_goodbit) {
6034 if(basic_streambuf_char_sputn(base->strbuf, str, len) != len)
6035 state = IOSTATE_badbit;
6038 if(state == IOSTATE_goodbit) {
6039 for(; pad!=0; pad--) {
6040 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
6041 state = IOSTATE_badbit;
6047 base->base.wide = 0;
6049 state = IOSTATE_badbit;
6051 basic_ostream_char_sentry_destroy(ostr);
6053 basic_ios_char_setstate(base, state);
6057 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
6058 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
6059 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func, 8)
6060 basic_ostream_char* __thiscall basic_ostream_char_print_func(basic_ostream_char *this,
6061 basic_ostream_char* (__cdecl *pfunc)(basic_ostream_char*))
6063 TRACE("(%p %p)\n", this, pfunc);
6068 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@DU?$char_traits@D@std@@@1@AAV21@@Z@Z */
6069 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z */
6070 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func_basic_ios, 8)
6071 basic_ostream_char* __thiscall basic_ostream_char_print_func_basic_ios(basic_ostream_char *this,
6072 basic_ios_char* (__cdecl *pfunc)(basic_ios_char*))
6074 TRACE("(%p %p)\n", this, pfunc);
6075 pfunc(basic_ostream_char_get_basic_ios(this));
6079 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
6080 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
6081 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func_ios_base, 8)
6082 basic_ostream_char* __thiscall basic_ostream_char_print_func_ios_base(
6083 basic_ostream_char *this, ios_base* (__cdecl *pfunc)(ios_base*))
6085 TRACE("(%p %p)\n", this, pfunc);
6086 pfunc(&basic_ostream_char_get_basic_ios(this)->base);
6090 /* Caution: basic_ostream uses virtual inheritance. */
6091 static inline basic_ios_wchar* basic_ostream_wchar_get_basic_ios(basic_ostream_wchar *this)
6093 return (basic_ios_wchar*)((char*)this+this->vbtable[1]);
6096 static inline basic_ios_wchar* basic_ostream_wchar_to_basic_ios(basic_ostream_wchar *ptr)
6098 return (basic_ios_wchar*)((char*)ptr+basic_ostream_wchar_vbtable[1]);
6101 static inline basic_ostream_wchar* basic_ostream_wchar_from_basic_ios(basic_ios_wchar *ptr)
6103 return (basic_ostream_wchar*)((char*)ptr-basic_ostream_wchar_vbtable[1]);
6106 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
6107 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
6108 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_ctor, 16)
6109 basic_ostream_wchar* __thiscall basic_ostream_wchar_ctor(basic_ostream_wchar *this,
6110 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
6112 basic_ios_wchar *base;
6114 TRACE("(%p %p %d %d)\n", this, strbuf, isstd, virt_init);
6117 this->vbtable = basic_ostream_wchar_vbtable;
6118 base = basic_ostream_wchar_get_basic_ios(this);
6119 basic_ios_wchar_ctor(base);
6121 base = basic_ostream_wchar_get_basic_ios(this);
6124 base->base.vtable = &MSVCP_basic_ostream_wchar_vtable;
6125 basic_ios_wchar_init(base, strbuf, isstd);
6129 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
6130 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
6131 DEFINE_THISCALL_WRAPPER(basic_ostream_short_ctor, 16)
6132 basic_ostream_wchar* __thiscall basic_ostream_short_ctor(basic_ostream_wchar *this,
6133 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
6135 basic_ostream_wchar_ctor(this, strbuf, isstd, virt_init);
6136 basic_ostream_wchar_get_basic_ios(this)->base.vtable = &MSVCP_basic_ostream_short_vtable;
6140 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@_N@Z */
6141 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z */
6142 static basic_ostream_wchar* basic_ostream_wchar_ctor_uninitialized(basic_ostream_wchar *this,
6143 int uninitialized, MSVCP_bool addstd, MSVCP_bool virt_init)
6145 basic_ios_wchar *base;
6147 TRACE("(%p %d %x)\n", this, uninitialized, addstd);
6150 this->vbtable = basic_ostream_wchar_vbtable;
6151 base = basic_ostream_wchar_get_basic_ios(this);
6152 basic_ios_wchar_ctor(base);
6154 base = basic_ostream_wchar_get_basic_ios(this);
6157 base->base.vtable = &MSVCP_basic_ostream_wchar_vtable;
6159 ios_base_Addstd(&base->base);
6163 /* ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
6164 /* ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
6165 /* ??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UAE@XZ */
6166 /* ??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
6167 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_dtor, 4)
6168 void __thiscall basic_ostream_wchar_dtor(basic_ios_wchar *base)
6170 basic_ostream_wchar *this = basic_ostream_wchar_from_basic_ios(base);
6172 /* don't destroy virtual base here */
6173 TRACE("(%p)\n", this);
6176 /* ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
6177 /* ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
6178 /* ??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
6179 /* ??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
6180 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_vbase_dtor, 4)
6181 void __thiscall basic_ostream_wchar_vbase_dtor(basic_ostream_wchar *this)
6183 TRACE("(%p)\n", this);
6184 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(this));
6185 basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(this));
6188 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_vector_dtor, 8)
6189 basic_ostream_wchar* __thiscall basic_ostream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
6191 basic_ostream_wchar *this = basic_ostream_wchar_from_basic_ios(base);
6193 TRACE("(%p %x)\n", this, flags);
6196 /* we have an array, with the number of elements stored before the first object */
6197 INT_PTR i, *ptr = (INT_PTR *)this-1;
6199 for(i=*ptr-1; i>=0; i--)
6200 basic_ostream_wchar_vbase_dtor(this+i);
6201 MSVCRT_operator_delete(ptr);
6203 basic_ostream_wchar_vbase_dtor(this);
6205 MSVCRT_operator_delete(this);
6211 /* ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ */
6212 /* ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ */
6213 /* ?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@XZ */
6214 /* ?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ */
6215 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_flush, 4)
6216 basic_ostream_wchar* __thiscall basic_ostream_wchar_flush(basic_ostream_wchar *this)
6218 /* this function is not matching C++ specification */
6219 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6221 TRACE("(%p)\n", this);
6223 if(basic_ios_wchar_rdbuf_get(base) && ios_base_good(&base->base)
6224 && basic_streambuf_wchar_pubsync(basic_ios_wchar_rdbuf_get(base))==-1)
6225 basic_ios_wchar_setstate(base, IOSTATE_badbit);
6229 /* ?flush@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
6230 /* ?flush@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
6231 /* ?flush@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
6232 /* ?flush@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
6233 basic_ostream_wchar* __cdecl flush_ostream_wchar(basic_ostream_wchar *ostream)
6235 return basic_ostream_wchar_flush(ostream);
6238 /* ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
6239 /* ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
6240 /* ?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
6241 /* ?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
6242 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar__Osfx, 4)
6243 void __thiscall basic_ostream_wchar__Osfx(basic_ostream_wchar *this)
6245 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6247 TRACE("(%p)\n", this);
6249 if(base->base.fmtfl & FMTFLAG_unitbuf)
6250 basic_ostream_wchar_flush(this);
6253 /* ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
6254 /* ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
6255 /* ?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
6256 /* ?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
6257 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_osfx, 4)
6258 void __thiscall basic_ostream_wchar_osfx(basic_ostream_wchar *this)
6260 TRACE("(%p)\n", this);
6261 basic_ostream_wchar__Osfx(this);
6264 static BOOL basic_ostream_wchar_sentry_create(basic_ostream_wchar *ostr)
6266 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
6268 if(basic_ios_wchar_rdbuf_get(base))
6269 basic_streambuf_wchar__Lock(base->strbuf);
6271 if(ios_base_good(&base->base) && base->stream)
6272 basic_ostream_wchar_flush(base->stream);
6274 return ios_base_good(&base->base);
6277 static void basic_ostream_wchar_sentry_destroy(basic_ostream_wchar *ostr)
6279 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
6281 if(ios_base_good(&base->base) && !__uncaught_exception())
6282 basic_ostream_wchar_osfx(ostr);
6284 if(basic_ios_wchar_rdbuf_get(base))
6285 basic_streambuf_wchar__Unlock(base->strbuf);
6288 /* ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE_NXZ */
6289 /* ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA_NXZ */
6290 /* ?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE_NXZ */
6291 /* ?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA_NXZ */
6292 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_opfx, 4)
6293 MSVCP_bool __thiscall basic_ostream_wchar_opfx(basic_ostream_wchar *this)
6295 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6297 TRACE("(%p)\n", this);
6299 if(ios_base_good(&base->base) && base->stream)
6300 basic_ostream_wchar_flush(base->stream);
6301 return ios_base_good(&base->base);
6304 /* ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@_W@Z */
6305 /* ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z */
6306 /* ?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@G@Z */
6307 /* ?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z */
6308 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_put, 8)
6309 basic_ostream_wchar* __thiscall basic_ostream_wchar_put(basic_ostream_wchar *this, wchar_t ch)
6311 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6313 TRACE("(%p %c)\n", this, ch);
6315 if(!basic_ostream_wchar_sentry_create(this)
6316 || basic_streambuf_wchar_sputc(base->strbuf, ch)==WEOF) {
6317 basic_ostream_wchar_sentry_destroy(this);
6318 basic_ios_wchar_setstate(base, IOSTATE_badbit);
6322 basic_ostream_wchar_sentry_destroy(this);
6326 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@JH@Z */
6327 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z */
6328 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@JH@Z */
6329 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z */
6330 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_seekp, 12)
6331 basic_ostream_wchar* __thiscall basic_ostream_wchar_seekp(basic_ostream_wchar *this, streamoff off, int way)
6333 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6335 TRACE("(%p %ld %d)\n", this, off, way);
6337 if(!ios_base_fail(&base->base)) {
6340 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base),
6341 &seek, off, way, OPENMODE_out);
6342 if(seek.off==0 && seek.pos==-1 && seek.state==0)
6343 basic_ios_wchar_setstate(base, IOSTATE_failbit);
6348 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
6349 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
6350 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
6351 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
6352 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_seekp_fpos, 28)
6353 basic_ostream_wchar* __thiscall basic_ostream_wchar_seekp_fpos(basic_ostream_wchar *this, fpos_int pos)
6355 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6357 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos));
6359 if(!ios_base_fail(&base->base)) {
6362 basic_streambuf_wchar_pubseekpos(basic_ios_wchar_rdbuf_get(base),
6363 &seek, pos, OPENMODE_out);
6364 if(seek.off==0 && seek.pos==-1 && seek.state==0)
6365 basic_ios_wchar_setstate(base, IOSTATE_failbit);
6370 /* ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@XZ */
6371 /* ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
6372 /* ?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@XZ */
6373 /* ?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
6374 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_tellp, 8)
6375 fpos_int* __thiscall basic_ostream_wchar_tellp(basic_ostream_wchar *this, fpos_int *ret)
6377 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6379 TRACE("(%p)\n", this);
6381 if(!ios_base_fail(&base->base)) {
6382 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base),
6383 ret, 0, SEEKDIR_cur, OPENMODE_out);
6392 /* ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PB_WH@Z */
6393 /* ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEB_W_J@Z */
6394 /* ?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@PBGH@Z */
6395 /* ?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEBG_J@Z */
6396 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_write, 12)
6397 basic_ostream_wchar* __thiscall basic_ostream_wchar_write(basic_ostream_wchar *this, const wchar_t *str, streamsize count)
6399 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6401 TRACE("(%p %s %ld)\n", this, debugstr_w(str), count);
6403 if(!basic_ostream_wchar_sentry_create(this)
6404 || basic_streambuf_wchar_sputn(base->strbuf, str, count)!=count) {
6405 basic_ostream_wchar_sentry_destroy(this);
6406 basic_ios_wchar_setstate(base, IOSTATE_badbit);
6410 basic_ostream_wchar_sentry_destroy(this);
6414 static basic_ostream_wchar* basic_ostream_print_short(basic_ostream_wchar *this, short val, const num_put *numput)
6416 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6417 int state = IOSTATE_goodbit;
6419 TRACE("(%p %d)\n", this, val);
6421 if(basic_ostream_wchar_sentry_create(this)) {
6422 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6423 ostreambuf_iterator_wchar dest = {0, strbuf};
6425 num_put_wchar_put_long(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base),
6426 (ios_base_flags_get(&base->base) & FMTFLAG_basefield & (FMTFLAG_oct | FMTFLAG_hex))
6427 ? (LONG)((unsigned short)val) : (LONG)val);
6429 basic_ostream_wchar_sentry_destroy(this);
6431 basic_ios_wchar_setstate(base, state);
6435 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@F@Z */
6436 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@F@Z */
6437 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_short, 8)
6438 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_short(basic_ostream_wchar *this, short val)
6440 return basic_ostream_print_short(this, val, num_put_wchar_use_facet(
6441 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6444 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@F@Z */
6445 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@F@Z */
6446 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_short, 8)
6447 basic_ostream_wchar* __thiscall basic_ostream_short_print_short(basic_ostream_wchar *this, short val)
6449 return basic_ostream_print_short(this, val, num_put_short_use_facet(
6450 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6453 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@G@Z */
6454 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@G@Z */
6455 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ushort, 8)
6456 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_ushort(basic_ostream_wchar *this, unsigned short val)
6458 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6459 int state = IOSTATE_goodbit;
6461 TRACE("(%p %u)\n", this, val);
6463 if(basic_ostream_wchar_sentry_create(this)) {
6464 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6465 const num_put *numput = num_put_wchar_use_facet(strbuf->loc);
6466 ostreambuf_iterator_wchar dest = {0, strbuf};
6468 num_put_wchar_put_ulong(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6470 basic_ostream_wchar_sentry_destroy(this);
6472 basic_ios_wchar_setstate(base, state);
6476 static basic_ostream_wchar* basic_ostream_print_int(basic_ostream_wchar *this, int val, const num_put *numput)
6478 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6479 int state = IOSTATE_goodbit;
6481 TRACE("(%p %d)\n", this, val);
6483 if(basic_ostream_wchar_sentry_create(this)) {
6484 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6485 ostreambuf_iterator_wchar dest = {0, strbuf};
6487 num_put_wchar_put_long(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6489 basic_ostream_wchar_sentry_destroy(this);
6491 basic_ios_wchar_setstate(base, state);
6495 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@H@Z */
6496 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@H@Z */
6497 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@J@Z */
6498 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@J@Z */
6499 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_int, 8)
6500 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_int(basic_ostream_wchar *this, int val)
6502 return basic_ostream_print_int(this, val, num_put_wchar_use_facet(
6503 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6506 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@H@Z */
6507 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@H@Z */
6508 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@J@Z */
6509 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@J@Z */
6510 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_int, 8)
6511 basic_ostream_wchar* __thiscall basic_ostream_short_print_int(basic_ostream_wchar *this, int val)
6513 return basic_ostream_print_int(this, val, num_put_short_use_facet(
6514 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6517 static basic_ostream_wchar* basic_ostream_print_uint(basic_ostream_wchar *this, unsigned int val, const num_put *numput)
6519 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6520 int state = IOSTATE_goodbit;
6522 TRACE("(%p %u)\n", this, val);
6524 if(basic_ostream_wchar_sentry_create(this)) {
6525 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6526 ostreambuf_iterator_wchar dest = {0, strbuf};
6528 num_put_wchar_put_ulong(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6530 basic_ostream_wchar_sentry_destroy(this);
6532 basic_ios_wchar_setstate(base, state);
6536 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@I@Z */
6537 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@I@Z */
6538 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@K@Z */
6539 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@K@Z */
6540 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_uint, 8)
6541 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_uint(basic_ostream_wchar *this, unsigned int val)
6543 return basic_ostream_print_uint(this, val, num_put_wchar_use_facet(
6544 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6547 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@I@Z */
6548 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@I@Z */
6549 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@K@Z */
6550 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@K@Z */
6551 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_uint, 8)
6552 basic_ostream_wchar* __thiscall basic_ostream_short_print_uint(basic_ostream_wchar *this, unsigned int val)
6554 return basic_ostream_print_uint(this, val, num_put_short_use_facet(
6555 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6558 static basic_ostream_wchar* basic_ostream_print_float(basic_ostream_wchar *this, float val, const num_put *numput)
6560 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6561 int state = IOSTATE_goodbit;
6563 TRACE("(%p %f)\n", this, val);
6565 if(basic_ostream_wchar_sentry_create(this)) {
6566 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6567 ostreambuf_iterator_wchar dest = {0, strbuf};
6569 num_put_wchar_put_double(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6571 basic_ostream_wchar_sentry_destroy(this);
6573 basic_ios_wchar_setstate(base, state);
6577 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@M@Z */
6578 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@M@Z */
6579 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_float, 8)
6580 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_float(basic_ostream_wchar *this, float val)
6582 return basic_ostream_print_float(this, val, num_put_wchar_use_facet(
6583 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6586 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@M@Z */
6587 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@M@Z */
6588 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_float, 8)
6589 basic_ostream_wchar* __thiscall basic_ostream_short_print_float(basic_ostream_wchar *this, float val)
6591 return basic_ostream_print_float(this, val, num_put_short_use_facet(
6592 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6595 static basic_ostream_wchar* basic_ostream_print_double(basic_ostream_wchar *this, double val, const num_put *numput)
6597 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6598 int state = IOSTATE_goodbit;
6600 TRACE("(%p %lf)\n", this, val);
6602 if(basic_ostream_wchar_sentry_create(this)) {
6603 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6604 ostreambuf_iterator_wchar dest = {0, strbuf};
6606 num_put_wchar_put_double(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6608 basic_ostream_wchar_sentry_destroy(this);
6610 basic_ios_wchar_setstate(base, state);
6614 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@N@Z */
6615 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@N@Z */
6616 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_double, 12)
6617 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_double(basic_ostream_wchar *this, double val)
6619 return basic_ostream_print_double(this, val, num_put_wchar_use_facet(
6620 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6623 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@N@Z */
6624 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@N@Z */
6625 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_double, 12)
6626 basic_ostream_wchar* __thiscall basic_ostream_short_print_double(basic_ostream_wchar *this, double val)
6628 return basic_ostream_print_double(this, val, num_put_short_use_facet(
6629 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6632 static basic_ostream_wchar* basic_ostream_print_ldouble(basic_ostream_wchar *this, double val, const num_put *numput)
6634 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6635 int state = IOSTATE_goodbit;
6637 TRACE("(%p %lf)\n", this, val);
6639 if(basic_ostream_wchar_sentry_create(this)) {
6640 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6641 ostreambuf_iterator_wchar dest = {0, strbuf};
6643 num_put_wchar_put_ldouble(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6645 basic_ostream_wchar_sentry_destroy(this);
6647 basic_ios_wchar_setstate(base, state);
6651 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@O@Z */
6652 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@O@Z */
6653 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ldouble, 12)
6654 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_ldouble(basic_ostream_wchar *this, double val)
6656 return basic_ostream_print_ldouble(this, val, num_put_wchar_use_facet(
6657 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6660 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@O@Z */
6661 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@O@Z */
6662 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_ldouble, 12)
6663 basic_ostream_wchar* __thiscall basic_ostream_short_print_ldouble(basic_ostream_wchar *this, double val)
6665 return basic_ostream_print_ldouble(this, val, num_put_short_use_facet(
6666 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6669 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
6670 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
6671 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
6672 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
6673 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_streambuf, 8)
6674 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_streambuf(basic_ostream_wchar *this, basic_streambuf_wchar *val)
6676 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6677 IOSB_iostate state = IOSTATE_badbit;
6678 unsigned short c = '\n';
6680 TRACE("(%p %p)\n", this, val);
6682 if(basic_ostream_wchar_sentry_create(this)) {
6683 for(c = basic_streambuf_wchar_sgetc(val); c!=WEOF;
6684 c = basic_streambuf_wchar_snextc(val)) {
6685 state = IOSTATE_goodbit;
6687 if(basic_streambuf_wchar_sputc(base->strbuf, c) == WEOF) {
6688 state = IOSTATE_badbit;
6693 state = IOSTATE_badbit;
6695 basic_ostream_wchar_sentry_destroy(this);
6697 ios_base_width_set(&base->base, 0);
6698 basic_ios_wchar_setstate(base, state);
6702 static basic_ostream_wchar* basic_ostream_print_ptr(basic_ostream_wchar *this, const void *val, const num_put *numput)
6704 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6705 int state = IOSTATE_goodbit;
6707 TRACE("(%p %p)\n", this, val);
6709 if(basic_ostream_wchar_sentry_create(this)) {
6710 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6711 ostreambuf_iterator_wchar dest = {0, strbuf};
6713 num_put_wchar_put_ptr(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6715 basic_ostream_wchar_sentry_destroy(this);
6717 basic_ios_wchar_setstate(base, state);
6721 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PBX@Z */
6722 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEBX@Z */
6723 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ptr, 8)
6724 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_ptr(basic_ostream_wchar *this, const void *val)
6726 return basic_ostream_print_ptr(this, val, num_put_wchar_use_facet(
6727 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6730 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@PBX@Z */
6731 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEBX@Z */
6732 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_ptr, 8)
6733 basic_ostream_wchar* __thiscall basic_ostream_short_print_ptr(basic_ostream_wchar *this, const void *val)
6735 return basic_ostream_print_ptr(this, val, num_put_short_use_facet(
6736 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6739 static basic_ostream_wchar* basic_ostream_print_int64(basic_ostream_wchar *this, __int64 val, const num_put *numput)
6741 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6742 int state = IOSTATE_goodbit;
6744 TRACE("(%p)\n", this);
6746 if(basic_ostream_wchar_sentry_create(this)) {
6747 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6748 ostreambuf_iterator_wchar dest = {0, strbuf};
6750 num_put_wchar_put_int64(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6752 basic_ostream_wchar_sentry_destroy(this);
6754 basic_ios_wchar_setstate(base, state);
6758 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_J@Z */
6759 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_J@Z */
6760 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_int64, 12)
6761 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_int64(basic_ostream_wchar *this, __int64 val)
6763 return basic_ostream_print_int64(this, val, num_put_wchar_use_facet(
6764 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6767 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_J@Z */
6768 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_J@Z */
6769 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_int64, 12)
6770 basic_ostream_wchar* __thiscall basic_ostream_short_print_int64(basic_ostream_wchar *this, __int64 val)
6772 return basic_ostream_print_int64(this, val, num_put_short_use_facet(
6773 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6776 static basic_ostream_wchar* basic_ostream_print_uint64(basic_ostream_wchar *this, unsigned __int64 val, const num_put *numput)
6778 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6779 int state = IOSTATE_goodbit;
6781 TRACE("(%p)\n", this);
6783 if(basic_ostream_wchar_sentry_create(this)) {
6784 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6785 ostreambuf_iterator_wchar dest = {0, strbuf};
6787 num_put_wchar_put_uint64(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6789 basic_ostream_wchar_sentry_destroy(this);
6791 basic_ios_wchar_setstate(base, state);
6795 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_K@Z */
6796 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_K@Z */
6797 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_uint64, 12)
6798 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_uint64(basic_ostream_wchar *this, unsigned __int64 val)
6800 return basic_ostream_print_uint64(this, val, num_put_wchar_use_facet(
6801 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6804 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_K@Z */
6805 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_K@Z */
6806 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_uint64, 12)
6807 basic_ostream_wchar* __thiscall basic_ostream_short_print_uint64(basic_ostream_wchar *this, unsigned __int64 val)
6809 return basic_ostream_print_uint64(this, val, num_put_short_use_facet(
6810 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6813 static basic_ostream_wchar* basic_ostream_print_bool(basic_ostream_wchar *this, MSVCP_bool val, const num_put *numput)
6815 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6816 int state = IOSTATE_goodbit;
6818 TRACE("(%p %x)\n", this, val);
6820 if(basic_ostream_wchar_sentry_create(this)) {
6821 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6822 ostreambuf_iterator_wchar dest = {0, strbuf};
6824 num_put_wchar_put_bool(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6826 basic_ostream_wchar_sentry_destroy(this);
6828 basic_ios_wchar_setstate(base, state);
6832 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_N@Z */
6833 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_N@Z */
6834 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_bool, 8)
6835 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_bool(basic_ostream_wchar *this, MSVCP_bool val)
6837 return basic_ostream_print_bool(this, val, num_put_wchar_use_facet(
6838 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6841 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_N@Z */
6842 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_N@Z */
6843 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_bool, 8)
6844 basic_ostream_wchar* __thiscall basic_ostream_short_print_bool(basic_ostream_wchar *this, MSVCP_bool val)
6846 return basic_ostream_print_bool(this, val, num_put_short_use_facet(
6847 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6850 /* ?endl@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
6851 /* ?endl@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
6852 /* ?endl@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
6853 /* ?endl@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
6854 basic_ostream_wchar* __cdecl basic_ostream_wchar_endl(basic_ostream_wchar *ostr)
6856 TRACE("(%p)\n", ostr);
6858 basic_ostream_wchar_put(ostr, '\n');
6859 basic_ostream_wchar_flush(ostr);
6863 /* ??$?6_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
6864 /* ??$?6_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
6865 /* ??$?6GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@ABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
6866 /* ??$?6GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@AEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
6867 basic_ostream_wchar* __cdecl basic_ostream_wchar_print_bstr(basic_ostream_wchar *ostr, const basic_string_wchar *str)
6869 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
6870 IOSB_iostate state = IOSTATE_goodbit;
6872 TRACE("(%p %p)\n", ostr, str);
6874 if(basic_ostream_wchar_sentry_create(ostr)) {
6875 MSVCP_size_t len = MSVCP_basic_string_wchar_length(str);
6876 streamsize pad = (base->base.wide>len ? base->base.wide-len : 0);
6878 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
6879 for(; pad!=0; pad--) {
6880 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
6881 state = IOSTATE_badbit;
6887 if(state == IOSTATE_goodbit) {
6888 if(basic_streambuf_wchar_sputn(base->strbuf, MSVCP_basic_string_wchar_c_str(str), len) != len)
6889 state = IOSTATE_badbit;
6892 if(state == IOSTATE_goodbit) {
6893 for(; pad!=0; pad--) {
6894 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
6895 state = IOSTATE_badbit;
6901 base->base.wide = 0;
6903 state = IOSTATE_badbit;
6905 basic_ostream_wchar_sentry_destroy(ostr);
6907 basic_ios_wchar_setstate(base, state);
6911 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@_W@Z */
6912 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@_W@Z */
6913 /* ??$?6GU?$char_traits@G@std@@@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@G@Z */
6914 /* ??$?6GU?$char_traits@G@std@@@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@G@Z */
6915 basic_ostream_wchar* __cdecl basic_ostream_wchar_print_ch(basic_ostream_wchar *ostr, wchar_t ch)
6917 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
6918 IOSB_iostate state = IOSTATE_goodbit;
6920 TRACE("(%p %d)\n", ostr, ch);
6922 if(basic_ostream_wchar_sentry_create(ostr)) {
6923 streamsize pad = (base->base.wide>1 ? base->base.wide-1 : 0);
6925 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
6926 for(; pad!=0; pad--) {
6927 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
6928 state = IOSTATE_badbit;
6934 if(state == IOSTATE_goodbit) {
6935 if(basic_streambuf_wchar_sputc(base->strbuf, ch) == WEOF)
6936 state = IOSTATE_badbit;
6939 if(state == IOSTATE_goodbit) {
6940 for(; pad!=0; pad--) {
6941 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
6942 state = IOSTATE_badbit;
6948 base->base.wide = 0;
6950 state = IOSTATE_badbit;
6952 basic_ostream_wchar_sentry_destroy(ostr);
6954 basic_ios_wchar_setstate(base, state);
6958 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@PB_W@Z */
6959 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@PEB_W@Z */
6960 /* ??$?6GU?$char_traits@G@std@@@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@PBG@Z */
6961 /* ??$?6GU?$char_traits@G@std@@@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@PEBG@Z */
6962 basic_ostream_wchar* __cdecl basic_ostream_wchar_print_str(basic_ostream_wchar *ostr, const wchar_t *str)
6964 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
6965 IOSB_iostate state = IOSTATE_goodbit;
6967 TRACE("(%p %s)\n", ostr, debugstr_w(str));
6969 if(basic_ostream_wchar_sentry_create(ostr)) {
6970 MSVCP_size_t len = wcslen(str);
6971 streamsize pad = (base->base.wide>len ? base->base.wide-len : 0);
6973 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
6974 for(; pad!=0; pad--) {
6975 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
6976 state = IOSTATE_badbit;
6982 if(state == IOSTATE_goodbit) {
6983 if(basic_streambuf_wchar_sputn(base->strbuf, str, len) != len)
6984 state = IOSTATE_badbit;
6987 if(state == IOSTATE_goodbit) {
6988 for(; pad!=0; pad--) {
6989 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
6990 state = IOSTATE_badbit;
6996 base->base.wide = 0;
6998 state = IOSTATE_badbit;
7000 basic_ostream_wchar_sentry_destroy(ostr);
7002 basic_ios_wchar_setstate(base, state);
7006 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
7007 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
7008 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
7009 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
7010 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func, 8)
7011 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_func(basic_ostream_wchar *this,
7012 basic_ostream_wchar* (__cdecl *pfunc)(basic_ostream_wchar*))
7014 TRACE("(%p %p)\n", this, pfunc);
7019 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AAV21@@Z@Z */
7020 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z */
7021 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@GU?$char_traits@G@std@@@1@AAV21@@Z@Z */
7022 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z */
7023 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func_basic_ios, 8)
7024 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_func_basic_ios(basic_ostream_wchar *this,
7025 basic_ios_wchar* (__cdecl *pfunc)(basic_ios_wchar*))
7027 TRACE("(%p %p)\n", this, pfunc);
7028 pfunc(basic_ostream_wchar_get_basic_ios(this));
7032 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
7033 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
7034 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
7035 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
7036 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func_ios_base, 8)
7037 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_func_ios_base(
7038 basic_ostream_wchar *this, ios_base* (__cdecl *pfunc)(ios_base*))
7040 TRACE("(%p %p)\n", this, pfunc);
7041 pfunc(&basic_ostream_wchar_get_basic_ios(this)->base);
7045 /* Caution: basic_istream uses virtual inheritance. */
7046 static inline basic_ios_char* basic_istream_char_get_basic_ios(basic_istream_char *this)
7048 return (basic_ios_char*)((char*)this+this->vbtable[1]);
7051 static inline basic_ios_char* basic_istream_char_to_basic_ios(basic_istream_char *ptr)
7053 return (basic_ios_char*)((char*)ptr+basic_istream_char_vbtable[1]);
7056 static inline basic_istream_char* basic_istream_char_from_basic_ios(basic_ios_char *ptr)
7058 return (basic_istream_char*)((char*)ptr-basic_istream_char_vbtable[1]);
7061 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
7062 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
7063 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor_init, 20)
7064 basic_istream_char* __thiscall basic_istream_char_ctor_init(basic_istream_char *this, basic_streambuf_char *strbuf, MSVCP_bool isstd, MSVCP_bool noinit, MSVCP_bool virt_init)
7066 basic_ios_char *base;
7068 TRACE("(%p %p %d %d %d)\n", this, strbuf, isstd, noinit, virt_init);
7071 this->vbtable = basic_istream_char_vbtable;
7072 base = basic_istream_char_get_basic_ios(this);
7073 basic_ios_char_ctor(base);
7075 base = basic_istream_char_get_basic_ios(this);
7078 base->base.vtable = &MSVCP_basic_istream_char_vtable;
7081 basic_ios_char_init(base, strbuf, isstd);
7085 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
7086 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
7087 static basic_istream_char* basic_istream_char_ctor(basic_istream_char *this, basic_streambuf_char *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
7089 return basic_istream_char_ctor_init(this, strbuf, isstd, FALSE, virt_init);
7092 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
7093 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
7094 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor_uninitialized, 12)
7095 basic_istream_char* __thiscall basic_istream_char_ctor_uninitialized(basic_istream_char *this, int uninitialized, MSVCP_bool virt_init)
7097 basic_ios_char *base;
7099 TRACE("(%p %d %d)\n", this, uninitialized, virt_init);
7102 this->vbtable = basic_istream_char_vbtable;
7103 base = basic_istream_char_get_basic_ios(this);
7104 basic_ios_char_ctor(base);
7106 base = basic_istream_char_get_basic_ios(this);
7109 base->base.vtable = &MSVCP_basic_istream_char_vtable;
7110 ios_base_Addstd(&base->base);
7114 /* ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ */
7115 /* ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
7116 DEFINE_THISCALL_WRAPPER(basic_istream_char_dtor, 4)
7117 void __thiscall basic_istream_char_dtor(basic_ios_char *base)
7119 basic_istream_char *this = basic_istream_char_from_basic_ios(base);
7121 /* don't destroy virtual base here */
7122 TRACE("(%p)\n", this);
7125 /* ??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ */
7126 /* ??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
7127 DEFINE_THISCALL_WRAPPER(basic_istream_char_vbase_dtor, 4)
7128 void __thiscall basic_istream_char_vbase_dtor(basic_istream_char *this)
7130 TRACE("(%p)\n", this);
7131 basic_istream_char_dtor(basic_istream_char_to_basic_ios(this));
7132 basic_ios_char_dtor(basic_istream_char_get_basic_ios(this));
7135 DEFINE_THISCALL_WRAPPER(basic_istream_char_vector_dtor, 8)
7136 basic_istream_char* __thiscall basic_istream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
7138 basic_istream_char *this = basic_istream_char_from_basic_ios(base);
7140 TRACE("(%p %x)\n", this, flags);
7143 /* we have an array, with the number of elements stored before the first object */
7144 INT_PTR i, *ptr = (INT_PTR *)this-1;
7146 for(i=*ptr-1; i>=0; i--)
7147 basic_istream_char_vbase_dtor(this+i);
7148 MSVCRT_operator_delete(ptr);
7150 basic_istream_char_vbase_dtor(this);
7152 MSVCRT_operator_delete(this);
7158 /* ?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z */
7159 /* ?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z */
7160 DEFINE_THISCALL_WRAPPER(basic_istream_char__Ipfx, 8)
7161 MSVCP_bool __thiscall basic_istream_char__Ipfx(basic_istream_char *this, MSVCP_bool noskip)
7163 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7165 TRACE("(%p %d)\n", this, noskip);
7167 if(!ios_base_good(&base->base)) {
7168 basic_ios_char_setstate(base, IOSTATE_failbit);
7172 if(basic_ios_char_tie_get(base))
7173 basic_ostream_char_flush(basic_ios_char_tie_get(base));
7175 if(!noskip && (ios_base_flags_get(&base->base) & FMTFLAG_skipws)) {
7176 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7177 const ctype_char *ctype = ctype_char_use_facet(base->strbuf->loc);
7180 for(ch = basic_streambuf_char_sgetc(strbuf); ;
7181 ch = basic_streambuf_char_snextc(strbuf)) {
7183 basic_ios_char_setstate(base, IOSTATE_eofbit);
7187 if(!ctype_char_is_ch(ctype, _SPACE|_BLANK, ch))
7195 /* ?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z */
7196 /* ?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z */
7197 DEFINE_THISCALL_WRAPPER(basic_istream_char_ipfx, 8)
7198 MSVCP_bool __thiscall basic_istream_char_ipfx(basic_istream_char *this, MSVCP_bool noskip)
7200 return basic_istream_char__Ipfx(this, noskip);
7203 /* ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ */
7204 /* ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
7205 DEFINE_THISCALL_WRAPPER(basic_istream_char_isfx, 4)
7206 void __thiscall basic_istream_char_isfx(basic_istream_char *this)
7208 TRACE("(%p)\n", this);
7211 static BOOL basic_istream_char_sentry_create(basic_istream_char *istr, MSVCP_bool noskip)
7213 basic_ios_char *base = basic_istream_char_get_basic_ios(istr);
7215 if(basic_ios_char_rdbuf_get(base))
7216 basic_streambuf_char__Lock(base->strbuf);
7218 return basic_istream_char_ipfx(istr, noskip);
7221 static void basic_istream_char_sentry_destroy(basic_istream_char *istr)
7223 basic_ios_char *base = basic_istream_char_get_basic_ios(istr);
7225 if(basic_ios_char_rdbuf_get(base))
7226 basic_streambuf_char__Unlock(base->strbuf);
7229 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QBEHXZ */
7230 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QEBA_JXZ */
7231 DEFINE_THISCALL_WRAPPER(basic_istream_char_gcount, 4)
7232 int __thiscall basic_istream_char_gcount(const basic_istream_char *this)
7234 TRACE("(%p)\n", this);
7238 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
7239 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
7240 DEFINE_THISCALL_WRAPPER(basic_istream_char_get, 4)
7241 int __thiscall basic_istream_char_get(basic_istream_char *this)
7243 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7246 TRACE("(%p)\n", this);
7250 if(!basic_istream_char_sentry_create(this, TRUE)) {
7251 basic_istream_char_sentry_destroy(this);
7255 ret = basic_streambuf_char_sbumpc(basic_ios_char_rdbuf_get(base));
7256 basic_istream_char_sentry_destroy(this);
7258 basic_ios_char_setstate(base, IOSTATE_eofbit|IOSTATE_failbit);
7265 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAD@Z */
7266 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAD@Z */
7267 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_ch, 8)
7268 basic_istream_char* __thiscall basic_istream_char_get_ch(basic_istream_char *this, char *ch)
7272 TRACE("(%p %p)\n", this, ch);
7274 ret = basic_istream_char_get(this);
7280 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADHD@Z */
7281 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z */
7282 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_str_delim, 16)
7283 basic_istream_char* __thiscall basic_istream_char_get_str_delim(basic_istream_char *this, char *str, streamsize count, char delim)
7285 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7288 TRACE("(%p %p %ld %c)\n", this, str, count, delim);
7292 if(basic_istream_char_sentry_create(this, TRUE)) {
7293 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7295 for(ch = basic_streambuf_char_sgetc(strbuf); count>1;
7296 ch = basic_streambuf_char_snextc(strbuf)) {
7297 if(ch==EOF || ch==delim)
7305 basic_istream_char_sentry_destroy(this);
7307 basic_ios_char_setstate(base, (!this->count ? IOSTATE_failbit : IOSTATE_goodbit) |
7308 (ch==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
7314 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
7315 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
7316 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_str, 12)
7317 basic_istream_char* __thiscall basic_istream_char_get_str(basic_istream_char *this, char *str, streamsize count)
7319 return basic_istream_char_get_str_delim(this, str, count, '\n');
7322 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z */
7323 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z */
7324 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_streambuf_delim, 12)
7325 basic_istream_char* __thiscall basic_istream_char_get_streambuf_delim(basic_istream_char *this, basic_streambuf_char *strbuf, char delim)
7327 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7330 TRACE("(%p %p %c)\n", this, strbuf, delim);
7334 if(basic_istream_char_sentry_create(this, TRUE)) {
7335 basic_streambuf_char *strbuf_read = basic_ios_char_rdbuf_get(base);
7337 for(ch = basic_streambuf_char_sgetc(strbuf_read); ;
7338 ch = basic_streambuf_char_snextc(strbuf_read)) {
7339 if(ch==EOF || ch==delim)
7342 if(basic_streambuf_char_sputc(strbuf, ch) == EOF)
7347 basic_istream_char_sentry_destroy(this);
7349 basic_ios_char_setstate(base, (!this->count ? IOSTATE_failbit : IOSTATE_goodbit) |
7350 (ch==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
7354 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z */
7355 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z */
7356 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_streambuf, 8)
7357 basic_istream_char* __thiscall basic_istream_char_get_streambuf(basic_istream_char *this, basic_streambuf_char *strbuf)
7359 return basic_istream_char_get_streambuf_delim(this, strbuf, '\n');
7362 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADHD@Z */
7363 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z */
7364 DEFINE_THISCALL_WRAPPER(basic_istream_char_getline_delim, 16)
7365 basic_istream_char* __thiscall basic_istream_char_getline_delim(basic_istream_char *this, char *str, streamsize count, char delim)
7367 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7370 TRACE("(%p %p %ld %c)\n", this, str, count, delim);
7374 if(basic_istream_char_sentry_create(this, TRUE) && count>0) {
7375 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7378 ch = basic_streambuf_char_sbumpc(strbuf);
7380 if(ch==EOF || ch==delim)
7390 else if(ch != EOF) {
7391 ch = basic_streambuf_char_sgetc(strbuf);
7394 basic_streambuf_char__Gninc(strbuf);
7399 basic_istream_char_sentry_destroy(this);
7401 basic_ios_char_setstate(base, (ch==EOF ? IOSTATE_eofbit : IOSTATE_goodbit) |
7402 (!this->count || (ch!=delim && ch!=EOF) ? IOSTATE_failbit : IOSTATE_goodbit));
7408 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
7409 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
7410 DEFINE_THISCALL_WRAPPER(basic_istream_char_getline, 12)
7411 basic_istream_char* __thiscall basic_istream_char_getline(basic_istream_char *this, char *str, streamsize count)
7413 return basic_istream_char_getline_delim(this, str, count, '\n');
7416 /* ?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@HH@Z */
7417 /* ?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
7418 DEFINE_THISCALL_WRAPPER(basic_istream_char_ignore, 12)
7419 basic_istream_char* __thiscall basic_istream_char_ignore(basic_istream_char *this, streamsize count, int delim)
7421 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7424 TRACE("(%p %ld %d)\n", this, count, delim);
7428 if(basic_istream_char_sentry_create(this, TRUE)) {
7429 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7432 ch = basic_streambuf_char_sbumpc(strbuf);
7434 if(ch==EOF || ch==delim)
7438 if(count != INT_MAX)
7442 basic_istream_char_sentry_destroy(this);
7445 basic_ios_char_setstate(base, IOSTATE_eofbit);
7449 /* ?ws@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@1@AAV21@@Z */
7450 /* ?ws@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
7451 basic_istream_char* __cdecl ws_basic_istream_char(basic_istream_char *istream)
7453 basic_ios_char *base = basic_istream_char_get_basic_ios(istream);
7456 TRACE("(%p)\n", istream);
7458 if(basic_istream_char_sentry_create(istream, TRUE)) {
7459 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7460 const ctype_char *ctype = ctype_char_use_facet(strbuf->loc);
7462 for(ch = basic_streambuf_char_sgetc(strbuf); ctype_char_is_ch(ctype, _SPACE, ch);
7463 ch = basic_streambuf_char_snextc(strbuf)) {
7468 basic_istream_char_sentry_destroy(istream);
7471 basic_ios_char_setstate(base, IOSTATE_eofbit);
7475 /* ?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
7476 /* ?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
7477 DEFINE_THISCALL_WRAPPER(basic_istream_char_peek, 4)
7478 int __thiscall basic_istream_char_peek(basic_istream_char *this)
7480 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7483 TRACE("(%p)\n", this);
7487 if(basic_istream_char_sentry_create(this, TRUE))
7488 ret = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base));
7489 basic_istream_char_sentry_destroy(this);
7493 /* ?_Read_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADIH@Z */
7494 /* ?_Read_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_K_J@Z */
7495 static basic_istream_char* basic_istream_char__Read_s(basic_istream_char *this, char *str, MSVCP_size_t size, streamsize count)
7497 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7498 IOSB_iostate state = IOSTATE_goodbit;
7500 TRACE("(%p %p %lu %ld)\n", this, str, size, count);
7502 if(basic_istream_char_sentry_create(this, TRUE)) {
7503 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7505 this->count = basic_streambuf_char__Sgetn_s(strbuf, str, size, count);
7506 if(this->count != count)
7507 state |= IOSTATE_failbit | IOSTATE_eofbit;
7511 basic_istream_char_sentry_destroy(this);
7513 basic_ios_char_setstate(base, state);
7517 /* ?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
7518 /* ?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
7519 DEFINE_THISCALL_WRAPPER(basic_istream_char_read, 12)
7520 basic_istream_char* __thiscall basic_istream_char_read(basic_istream_char *this, char *str, streamsize count)
7522 return basic_istream_char__Read_s(this, str, count, count);
7525 /* ?_Readsome_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHPADIH@Z */
7526 /* ?_Readsome_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_K_J@Z */
7527 static streamsize basic_istream_char__Readsome_s(basic_istream_char *this, char *str, MSVCP_size_t size, streamsize count)
7529 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7530 IOSB_iostate state = IOSTATE_goodbit;
7532 TRACE("(%p %p %lu %ld)\n", this, str, size, count);
7536 if(basic_istream_char_sentry_create(this, TRUE)) {
7537 streamsize avail = basic_streambuf_char_in_avail(basic_ios_char_rdbuf_get(base));
7542 state |= IOSTATE_eofbit;
7544 basic_istream_char__Read_s(this, str, size, avail);
7546 state |= IOSTATE_failbit;
7548 basic_istream_char_sentry_destroy(this);
7550 basic_ios_char_setstate(base, state);
7554 /* ?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHPADH@Z */
7555 /* ?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z */
7556 DEFINE_THISCALL_WRAPPER(basic_istream_char_readsome, 12)
7557 streamsize __thiscall basic_istream_char_readsome(basic_istream_char *this, char *str, streamsize count)
7559 return basic_istream_char__Readsome_s(this, str, count, count);
7562 /* ?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z */
7563 /* ?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z */
7564 DEFINE_THISCALL_WRAPPER(basic_istream_char_putback, 8)
7565 basic_istream_char* __thiscall basic_istream_char_putback(basic_istream_char *this, char ch)
7567 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7568 IOSB_iostate state = IOSTATE_goodbit;
7570 TRACE("(%p %c)\n", this, ch);
7574 if(basic_istream_char_sentry_create(this, TRUE)) {
7575 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7577 if(!ios_base_good(&base->base))
7578 state |= IOSTATE_failbit;
7579 else if(!strbuf || basic_streambuf_char_sputbackc(strbuf, ch)==EOF)
7580 state |= IOSTATE_badbit;
7582 basic_istream_char_sentry_destroy(this);
7584 basic_ios_char_setstate(base, state);
7588 /* ?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ */
7589 /* ?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ */
7590 DEFINE_THISCALL_WRAPPER(basic_istream_char_unget, 4)
7591 basic_istream_char* __thiscall basic_istream_char_unget(basic_istream_char *this)
7593 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7594 IOSB_iostate state = IOSTATE_goodbit;
7596 TRACE("(%p)\n", this);
7600 if(basic_istream_char_sentry_create(this, TRUE)) {
7601 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7603 if(!ios_base_good(&base->base))
7604 state |= IOSTATE_failbit;
7605 else if(!strbuf || basic_streambuf_char_sungetc(strbuf)==EOF)
7606 state |= IOSTATE_badbit;
7608 basic_istream_char_sentry_destroy(this);
7610 basic_ios_char_setstate(base, state);
7614 /* ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
7615 /* ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
7616 DEFINE_THISCALL_WRAPPER(basic_istream_char_sync, 4)
7617 int __thiscall basic_istream_char_sync(basic_istream_char *this)
7619 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7620 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7622 TRACE("(%p)\n", this);
7627 if(basic_istream_char_sentry_create(this, TRUE)) {
7628 if(basic_streambuf_char_pubsync(strbuf) != -1) {
7629 basic_istream_char_sentry_destroy(this);
7633 basic_istream_char_sentry_destroy(this);
7635 basic_ios_char_setstate(base, IOSTATE_badbit);
7639 /* ?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
7640 /* ?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
7641 DEFINE_THISCALL_WRAPPER(basic_istream_char_tellg, 8)
7642 fpos_int* __thiscall basic_istream_char_tellg(basic_istream_char *this, fpos_int *ret)
7644 TRACE("(%p %p)\n", this, ret);
7646 if(basic_istream_char_sentry_create(this, TRUE)) {
7647 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7648 if(!ios_base_fail(&base->base)) {
7649 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base),
7650 ret, 0, SEEKDIR_cur, OPENMODE_in);
7651 basic_istream_char_sentry_destroy(this);
7653 if(ret->off==0 && ret->pos==-1 && ret->state==0)
7654 basic_ios_char_setstate(base, IOSTATE_failbit);
7658 basic_istream_char_sentry_destroy(this);
7666 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@JH@Z */
7667 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
7668 DEFINE_THISCALL_WRAPPER(basic_istream_char_seekg, 12)
7669 basic_istream_char* __thiscall basic_istream_char_seekg(basic_istream_char *this, streamoff off, int dir)
7671 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7673 TRACE("(%p %ld %d)\n", this, off, dir);
7675 if(basic_istream_char_sentry_create(this, TRUE)) {
7676 if(!ios_base_fail(&base->base)) {
7677 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7680 basic_streambuf_char_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in);
7681 basic_istream_char_sentry_destroy(this);
7683 if(ret.off==0 && ret.pos==-1 && ret.state==0)
7684 basic_ios_char_setstate(base, IOSTATE_failbit);
7686 basic_ios_char_clear(base, IOSTATE_goodbit);
7690 basic_istream_char_sentry_destroy(this);
7692 basic_ios_char_setstate(base, IOSTATE_failbit);
7696 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
7697 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
7698 DEFINE_THISCALL_WRAPPER(basic_istream_char_seekg_fpos, 28)
7699 basic_istream_char* __thiscall basic_istream_char_seekg_fpos(basic_istream_char *this, fpos_int pos)
7701 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7703 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos));
7705 if(basic_istream_char_sentry_create(this, TRUE)) {
7706 if(!ios_base_fail(&base->base)) {
7707 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7710 basic_streambuf_char_pubseekpos(strbuf, &ret, pos, OPENMODE_in);
7711 basic_istream_char_sentry_destroy(this);
7713 if(ret.off==0 && ret.pos==-1 && ret.state==0)
7714 basic_ios_char_setstate(base, IOSTATE_failbit);
7716 basic_ios_char_clear(base, IOSTATE_goodbit);
7720 basic_istream_char_sentry_destroy(this);
7722 basic_ios_char_setstate(base, IOSTATE_failbit);
7726 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAF@Z */
7727 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAF@Z */
7728 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_short, 8)
7729 basic_istream_char* __thiscall basic_istream_char_read_short(basic_istream_char *this, short *v)
7731 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7732 int state = IOSTATE_goodbit;
7734 TRACE("(%p %p)\n", this, v);
7736 if(basic_istream_char_sentry_create(this, FALSE)) {
7737 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7738 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7739 istreambuf_iterator_char first={0}, last={0};
7742 first.strbuf = strbuf;
7743 num_get_char_get_long(numget, &last, first, last, &base->base, &state, &tmp);
7745 if(!(state&IOSTATE_failbit) && tmp==(LONG)((short)tmp))
7748 state |= IOSTATE_failbit;
7750 basic_istream_char_sentry_destroy(this);
7752 basic_ios_char_setstate(base, state);
7756 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAG@Z */
7757 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAG@Z */
7758 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ushort, 8)
7759 basic_istream_char* __thiscall basic_istream_char_read_ushort(basic_istream_char *this, unsigned short *v)
7761 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7762 int state = IOSTATE_goodbit;
7764 TRACE("(%p %p)\n", this, v);
7766 if(basic_istream_char_sentry_create(this, FALSE)) {
7767 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7768 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7769 istreambuf_iterator_char first={0}, last={0};
7771 first.strbuf = strbuf;
7772 num_get_char_get_ushort(numget, &last, first, last, &base->base, &state, v);
7774 basic_istream_char_sentry_destroy(this);
7776 basic_ios_char_setstate(base, state);
7780 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z */
7781 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAH@Z */
7782 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_int, 8)
7783 basic_istream_char* __thiscall basic_istream_char_read_int(basic_istream_char *this, int *v)
7785 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7786 int state = IOSTATE_goodbit;
7788 TRACE("(%p %p)\n", this, v);
7790 if(basic_istream_char_sentry_create(this, FALSE)) {
7791 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7792 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7793 istreambuf_iterator_char first={0}, last={0};
7795 first.strbuf = strbuf;
7796 num_get_char_get_long(numget, &last, first, last, &base->base, &state, v);
7798 basic_istream_char_sentry_destroy(this);
7800 basic_ios_char_setstate(base, state);
7804 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAI@Z */
7805 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAI@Z */
7806 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_uint, 8)
7807 basic_istream_char* __thiscall basic_istream_char_read_uint(basic_istream_char *this, unsigned int *v)
7809 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7810 int state = IOSTATE_goodbit;
7812 TRACE("(%p %p)\n", this, v);
7814 if(basic_istream_char_sentry_create(this, FALSE)) {
7815 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7816 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7817 istreambuf_iterator_char first={0}, last={0};
7819 first.strbuf = strbuf;
7820 num_get_char_get_uint(numget, &last, first, last, &base->base, &state, v);
7822 basic_istream_char_sentry_destroy(this);
7824 basic_ios_char_setstate(base, state);
7828 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAJ@Z */
7829 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAJ@Z */
7830 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_long, 8)
7831 basic_istream_char* __thiscall basic_istream_char_read_long(basic_istream_char *this, LONG *v)
7833 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7834 int state = IOSTATE_goodbit;
7836 TRACE("(%p %p)\n", this, v);
7838 if(basic_istream_char_sentry_create(this, FALSE)) {
7839 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7840 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7841 istreambuf_iterator_char first={0}, last={0};
7843 first.strbuf = strbuf;
7844 num_get_char_get_long(numget, &last, first, last, &base->base, &state, v);
7846 basic_istream_char_sentry_destroy(this);
7848 basic_ios_char_setstate(base, state);
7852 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAK@Z */
7853 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAK@Z */
7854 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ulong, 8)
7855 basic_istream_char* __thiscall basic_istream_char_read_ulong(basic_istream_char *this, ULONG *v)
7857 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7858 int state = IOSTATE_goodbit;
7860 TRACE("(%p %p)\n", this, v);
7862 if(basic_istream_char_sentry_create(this, FALSE)) {
7863 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7864 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7865 istreambuf_iterator_char first={0}, last={0};
7867 first.strbuf = strbuf;
7868 num_get_char_get_ulong(numget, &last, first, last, &base->base, &state, v);
7870 basic_istream_char_sentry_destroy(this);
7872 basic_ios_char_setstate(base, state);
7876 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAM@Z */
7877 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAM@Z */
7878 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_float, 8)
7879 basic_istream_char* __thiscall basic_istream_char_read_float(basic_istream_char *this, float *v)
7881 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7882 int state = IOSTATE_goodbit;
7884 TRACE("(%p %p)\n", this, v);
7886 if(basic_istream_char_sentry_create(this, FALSE)) {
7887 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7888 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7889 istreambuf_iterator_char first={0}, last={0};
7891 first.strbuf = strbuf;
7892 num_get_char_get_float(numget, &last, first, last, &base->base, &state, v);
7894 basic_istream_char_sentry_destroy(this);
7896 basic_ios_char_setstate(base, state);
7900 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAN@Z */
7901 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAN@Z */
7902 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_double, 8)
7903 basic_istream_char* __thiscall basic_istream_char_read_double(basic_istream_char *this, double *v)
7905 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7906 int state = IOSTATE_goodbit;
7908 TRACE("(%p %p)\n", this, v);
7910 if(basic_istream_char_sentry_create(this, FALSE)) {
7911 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7912 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7913 istreambuf_iterator_char first={0}, last={0};
7915 first.strbuf = strbuf;
7916 num_get_char_get_double(numget, &last, first, last, &base->base, &state, v);
7918 basic_istream_char_sentry_destroy(this);
7920 basic_ios_char_setstate(base, state);
7924 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAO@Z */
7925 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAO@Z */
7926 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ldouble, 8)
7927 basic_istream_char* __thiscall basic_istream_char_read_ldouble(basic_istream_char *this, double *v)
7929 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7930 int state = IOSTATE_goodbit;
7932 TRACE("(%p %p)\n", this, v);
7934 if(basic_istream_char_sentry_create(this, FALSE)) {
7935 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7936 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7937 istreambuf_iterator_char first={0}, last={0};
7939 first.strbuf = strbuf;
7940 num_get_char_get_ldouble(numget, &last, first, last, &base->base, &state, v);
7942 basic_istream_char_sentry_destroy(this);
7944 basic_ios_char_setstate(base, state);
7948 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAPAX@Z */
7949 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
7950 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ptr, 8)
7951 basic_istream_char* __thiscall basic_istream_char_read_ptr(basic_istream_char *this, void **v)
7953 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7954 int state = IOSTATE_goodbit;
7956 TRACE("(%p %p)\n", this, v);
7958 if(basic_istream_char_sentry_create(this, FALSE)) {
7959 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7960 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7961 istreambuf_iterator_char first={0}, last={0};
7963 first.strbuf = strbuf;
7964 num_get_char_get_void(numget, &last, first, last, &base->base, &state, v);
7966 basic_istream_char_sentry_destroy(this);
7968 basic_ios_char_setstate(base, state);
7972 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_J@Z */
7973 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_J@Z */
7974 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_int64, 8)
7975 basic_istream_char* __thiscall basic_istream_char_read_int64(basic_istream_char *this, __int64 *v)
7977 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7978 int state = IOSTATE_goodbit;
7980 TRACE("(%p %p)\n", this, v);
7982 if(basic_istream_char_sentry_create(this, FALSE)) {
7983 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7984 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7985 istreambuf_iterator_char first={0}, last={0};
7987 first.strbuf = strbuf;
7988 num_get_char_get_int64(numget, &last, first, last, &base->base, &state, v);
7990 basic_istream_char_sentry_destroy(this);
7992 basic_ios_char_setstate(base, state);
7996 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_K@Z */
7997 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_K@Z */
7998 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_uint64, 8)
7999 basic_istream_char* __thiscall basic_istream_char_read_uint64(basic_istream_char *this, unsigned __int64 *v)
8001 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8002 int state = IOSTATE_goodbit;
8004 TRACE("(%p %p)\n", this, v);
8006 if(basic_istream_char_sentry_create(this, FALSE)) {
8007 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8008 const num_get *numget = num_get_char_use_facet(strbuf->loc);
8009 istreambuf_iterator_char first={0}, last={0};
8011 first.strbuf = strbuf;
8012 num_get_char_get_uint64(numget, &last, first, last, &base->base, &state, v);
8014 basic_istream_char_sentry_destroy(this);
8016 basic_ios_char_setstate(base, state);
8020 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_N@Z */
8021 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_N@Z */
8022 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_bool, 8)
8023 basic_istream_char* __thiscall basic_istream_char_read_bool(basic_istream_char *this, MSVCP_bool *v)
8025 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8026 int state = IOSTATE_goodbit;
8028 TRACE("(%p %p)\n", this, v);
8030 if(basic_istream_char_sentry_create(this, FALSE)) {
8031 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8032 const num_get *numget = num_get_char_use_facet(strbuf->loc);
8033 istreambuf_iterator_char first={0}, last={0};
8035 first.strbuf = strbuf;
8036 num_get_char_get_bool(numget, &last, first, last, &base->base, &state, v);
8038 basic_istream_char_sentry_destroy(this);
8040 basic_ios_char_setstate(base, state);
8044 /* ??$getline@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@D@Z */
8045 /* ??$getline@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@D@Z */
8046 basic_istream_char* __cdecl basic_istream_char_getline_bstr_delim(
8047 basic_istream_char *istream, basic_string_char *str, char delim)
8049 IOSB_iostate state = IOSTATE_failbit;
8052 TRACE("(%p %p %c)\n", istream, str, delim);
8054 if(basic_istream_char_sentry_create(istream, TRUE)) {
8055 MSVCP_basic_string_char_clear(str);
8057 c = basic_istream_char_get(istream);
8059 state = IOSTATE_goodbit;
8061 for(; c!=delim && c!=EOF; c = basic_istream_char_get(istream)) {
8062 state = IOSTATE_goodbit;
8063 MSVCP_basic_string_char_append_ch(str, c);
8066 basic_istream_char_sentry_destroy(istream);
8068 basic_ios_char_setstate(basic_istream_char_get_basic_ios(istream),
8069 state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8073 /* ??$getline@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
8074 /* ??$getline@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
8075 basic_istream_char* __cdecl basic_istream_char_getline_bstr(
8076 basic_istream_char *istream, basic_string_char *str)
8078 return basic_istream_char_getline_bstr_delim(istream, str, '\n');
8081 /* ??$?5DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
8082 /* ??$?5DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
8083 basic_istream_char* __cdecl basic_istream_char_read_bstr(
8084 basic_istream_char *istream, basic_string_char *str)
8086 basic_ios_char *base = basic_istream_char_get_basic_ios(istream);
8087 IOSB_iostate state = IOSTATE_failbit;
8090 TRACE("(%p %p)\n", istream, str);
8092 if(basic_istream_char_sentry_create(istream, FALSE)) {
8093 const ctype_char *ctype = ctype_char_use_facet(base->strbuf->loc);
8094 MSVCP_size_t count = ios_base_width_get(&base->base);
8099 MSVCP_basic_string_char_clear(str);
8101 for(c = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base));
8102 c!=EOF && !ctype_char_is_ch(ctype, _SPACE|_BLANK, c) && count>0;
8103 c = basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base)), count--) {
8104 state = IOSTATE_goodbit;
8105 MSVCP_basic_string_char_append_ch(str, c);
8108 basic_istream_char_sentry_destroy(istream);
8110 ios_base_width_set(&base->base, 0);
8111 basic_ios_char_setstate(base, state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8115 /* ??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z */
8116 /* ??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAD@Z */
8117 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAC@Z */
8118 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAC@Z */
8119 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAE@Z */
8120 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAE@Z */
8121 basic_istream_char* __cdecl basic_istream_char_read_str(basic_istream_char *istream, char *str)
8123 basic_ios_char *base = basic_istream_char_get_basic_ios(istream);
8124 IOSB_iostate state = IOSTATE_failbit;
8127 TRACE("(%p %p)\n", istream, str);
8129 if(basic_istream_char_sentry_create(istream, FALSE)) {
8130 const ctype_char *ctype = ctype_char_use_facet(base->strbuf->loc);
8131 MSVCP_size_t count = ios_base_width_get(&base->base)-1;
8133 for(c = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base));
8134 c!=EOF && !ctype_char_is_ch(ctype, _SPACE|_BLANK, c) && count>0;
8135 c = basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base)), count--) {
8136 state = IOSTATE_goodbit;
8140 basic_istream_char_sentry_destroy(istream);
8143 ios_base_width_set(&base->base, 0);
8144 basic_ios_char_setstate(base, state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8148 /* ??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAD@Z */
8149 /* ??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAD@Z */
8150 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAC@Z */
8151 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAC@Z */
8152 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAE@Z */
8153 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAE@Z */
8154 basic_istream_char* __cdecl basic_istream_char_read_ch(basic_istream_char *istream, char *ch)
8156 IOSB_iostate state = IOSTATE_failbit;
8159 TRACE("(%p %p)\n", istream, ch);
8161 if(basic_istream_char_sentry_create(istream, FALSE)) {
8162 c = basic_streambuf_char_sbumpc(basic_ios_char_rdbuf_get(
8163 basic_istream_char_get_basic_ios(istream)));
8165 state = IOSTATE_goodbit;
8169 basic_istream_char_sentry_destroy(istream);
8171 basic_ios_char_setstate(basic_istream_char_get_basic_ios(istream),
8172 state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8176 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
8177 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
8178 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_streambuf, 8)
8179 basic_istream_char* __thiscall basic_istream_char_read_streambuf(
8180 basic_istream_char *this, basic_streambuf_char *streambuf)
8182 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8183 IOSB_iostate state = IOSTATE_failbit;
8186 TRACE("(%p %p)\n", this, streambuf);
8188 if(basic_istream_char_sentry_create(this, FALSE)) {
8189 for(c = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base)); c!=EOF;
8190 c = basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base))) {
8191 state = IOSTATE_goodbit;
8192 if(basic_streambuf_char_sputc(streambuf, c) == EOF)
8196 basic_istream_char_sentry_destroy(this);
8198 basic_ios_char_setstate(base, state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8202 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
8203 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
8204 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func, 8)
8205 basic_istream_char* __thiscall basic_istream_char_read_func(basic_istream_char *this,
8206 basic_istream_char* (__cdecl *pfunc)(basic_istream_char*))
8208 TRACE("(%p %p)\n", this, pfunc);
8213 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@DU?$char_traits@D@std@@@1@AAV21@@Z@Z */
8214 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z */
8215 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func_basic_ios, 8)
8216 basic_istream_char* __thiscall basic_istream_char_read_func_basic_ios(basic_istream_char *this,
8217 basic_ios_char* (__cdecl *pfunc)(basic_ios_char*))
8219 TRACE("(%p %p)\n", this, pfunc);
8220 pfunc(basic_istream_char_get_basic_ios(this));
8224 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
8225 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
8226 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func_ios_base, 8)
8227 basic_istream_char* __thiscall basic_istream_char_read_func_ios_base(basic_istream_char *this,
8228 ios_base* (__cdecl *pfunc)(ios_base*))
8230 TRACE("(%p %p)\n", this, pfunc);
8231 pfunc(&basic_istream_char_get_basic_ios(this)->base);
8235 /* Caution: basic_istream uses virtual inheritance. */
8236 static inline basic_ios_wchar* basic_istream_wchar_get_basic_ios(basic_istream_wchar *this)
8238 return (basic_ios_wchar*)((char*)this+this->vbtable[1]);
8241 static inline basic_ios_wchar* basic_istream_wchar_to_basic_ios(basic_istream_wchar *ptr)
8243 return (basic_ios_wchar*)((char*)ptr+basic_istream_wchar_vbtable[1]);
8246 static inline basic_istream_wchar* basic_istream_wchar_from_basic_ios(basic_ios_wchar *ptr)
8248 return (basic_istream_wchar*)((char*)ptr-basic_istream_wchar_vbtable[1]);
8251 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z */
8252 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z */
8253 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ctor_init, 20)
8254 basic_istream_wchar* __thiscall basic_istream_wchar_ctor_init(basic_istream_wchar *this,
8255 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool noinit, MSVCP_bool virt_init)
8257 basic_ios_wchar *base;
8259 TRACE("(%p %p %d %d %d)\n", this, strbuf, isstd, noinit, virt_init);
8262 this->vbtable = basic_istream_wchar_vbtable;
8263 base = basic_istream_wchar_get_basic_ios(this);
8264 basic_ios_wchar_ctor(base);
8266 base = basic_istream_wchar_get_basic_ios(this);
8269 base->base.vtable = &MSVCP_basic_istream_wchar_vtable;
8272 basic_ios_wchar_init(base, strbuf, isstd);
8276 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z */
8277 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z */
8278 DEFINE_THISCALL_WRAPPER(basic_istream_short_ctor_init, 20)
8279 basic_istream_wchar* __thiscall basic_istream_short_ctor_init(basic_istream_wchar *this,
8280 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool noinit, MSVCP_bool virt_init)
8282 basic_istream_wchar_ctor_init(this, strbuf, isstd, noinit, virt_init);
8283 basic_istream_wchar_get_basic_ios(this)->base.vtable = &MSVCP_basic_istream_short_vtable;
8287 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
8288 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
8289 static basic_istream_wchar* basic_istream_wchar_ctor(basic_istream_wchar *this,
8290 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
8292 return basic_istream_wchar_ctor_init(this, strbuf, isstd, FALSE, virt_init);
8295 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
8296 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
8297 static basic_istream_wchar* basic_istream_short_ctor(basic_istream_wchar *this,
8298 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
8300 return basic_istream_short_ctor_init(this, strbuf, isstd, FALSE, virt_init);
8303 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@@Z */
8304 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
8305 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ctor_uninitialized, 12)
8306 basic_istream_wchar* __thiscall basic_istream_wchar_ctor_uninitialized(
8307 basic_istream_wchar *this, int uninitialized, MSVCP_bool virt_init)
8309 basic_ios_wchar *base;
8311 TRACE("(%p %d %d)\n", this, uninitialized, virt_init);
8314 this->vbtable = basic_istream_wchar_vbtable;
8315 base = basic_istream_wchar_get_basic_ios(this);
8316 basic_ios_wchar_ctor(base);
8318 base = basic_istream_wchar_get_basic_ios(this);
8321 base->base.vtable = &MSVCP_basic_istream_wchar_vtable;
8322 ios_base_Addstd(&base->base);
8326 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */
8327 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
8328 DEFINE_THISCALL_WRAPPER(basic_istream_short_ctor_uninitialized, 12)
8329 basic_istream_wchar* __thiscall basic_istream_short_ctor_uninitialized(
8330 basic_istream_wchar *this, int uninitialized, MSVCP_bool virt_init)
8332 basic_istream_wchar_ctor_uninitialized(this, uninitialized, virt_init);
8333 basic_istream_wchar_get_basic_ios(this)->base.vtable = &MSVCP_basic_istream_short_vtable;
8337 /* ??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
8338 /* ??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
8339 /* ??1?$basic_istream@GU?$char_traits@G@std@@@std@@UAE@XZ */
8340 /* ??1?$basic_istream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
8341 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_dtor, 4)
8342 void __thiscall basic_istream_wchar_dtor(basic_ios_wchar *base)
8344 basic_istream_wchar *this = basic_istream_wchar_from_basic_ios(base);
8346 /* don't destroy virtual base here */
8347 TRACE("(%p)\n", this);
8350 /* ??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
8351 /* ??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
8352 /* ??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXXZ */
8353 /* ??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
8354 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_vbase_dtor, 4)
8355 void __thiscall basic_istream_wchar_vbase_dtor(basic_istream_wchar *this)
8357 TRACE("(%p)\n", this);
8358 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(this));
8359 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(this));
8362 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_vector_dtor, 8)
8363 basic_istream_wchar* __thiscall basic_istream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
8365 basic_istream_wchar *this = basic_istream_wchar_from_basic_ios(base);
8367 TRACE("(%p %x)\n", this, flags);
8370 /* we have an array, with the number of elements stored before the first object */
8371 INT_PTR i, *ptr = (INT_PTR *)this-1;
8373 for(i=*ptr-1; i>=0; i--)
8374 basic_istream_wchar_vbase_dtor(this+i);
8375 MSVCRT_operator_delete(ptr);
8377 basic_istream_wchar_vbase_dtor(this);
8379 MSVCRT_operator_delete(this);
8385 /* ?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE_N_N@Z */
8386 /* ?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z */
8387 /* ?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE_N_N@Z */
8388 /* ?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z */
8389 DEFINE_THISCALL_WRAPPER(basic_istream_wchar__Ipfx, 8)
8390 MSVCP_bool __thiscall basic_istream_wchar__Ipfx(basic_istream_wchar *this, MSVCP_bool noskip)
8392 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8394 TRACE("(%p %d)\n", this, noskip);
8396 if(!ios_base_good(&base->base)) {
8397 basic_ios_wchar_setstate(base, IOSTATE_failbit);
8401 if(basic_ios_wchar_tie_get(base))
8402 basic_ostream_wchar_flush(basic_ios_wchar_tie_get(base));
8404 if(!noskip && (ios_base_flags_get(&base->base) & FMTFLAG_skipws)) {
8405 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8406 const ctype_wchar *ctype = ctype_wchar_use_facet(base->strbuf->loc);
8409 for(ch = basic_streambuf_wchar_sgetc(strbuf); ;
8410 ch = basic_streambuf_wchar_snextc(strbuf)) {
8412 basic_ios_wchar_setstate(base, IOSTATE_eofbit);
8416 if(!ctype_wchar_is_ch(ctype, _SPACE|_BLANK, ch))
8424 /* ?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE_N_N@Z */
8425 /* ?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z */
8426 /* ?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE_N_N@Z */
8427 /* ?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z */
8428 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ipfx, 8)
8429 MSVCP_bool __thiscall basic_istream_wchar_ipfx(basic_istream_wchar *this, MSVCP_bool noskip)
8431 return basic_istream_wchar__Ipfx(this, noskip);
8434 /* ?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
8435 /* ?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
8436 /* ?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXXZ */
8437 /* ?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
8438 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_isfx, 4)
8439 void __thiscall basic_istream_wchar_isfx(basic_istream_wchar *this)
8441 TRACE("(%p)\n", this);
8444 static BOOL basic_istream_wchar_sentry_create(basic_istream_wchar *istr, MSVCP_bool noskip)
8446 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istr);
8448 if(basic_ios_wchar_rdbuf_get(base))
8449 basic_streambuf_wchar__Lock(base->strbuf);
8451 return basic_istream_wchar_ipfx(istr, noskip);
8454 static void basic_istream_wchar_sentry_destroy(basic_istream_wchar *istr)
8456 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istr);
8458 if(basic_ios_wchar_rdbuf_get(base))
8459 basic_streambuf_wchar__Unlock(base->strbuf);
8462 /* ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QBEHXZ */
8463 /* ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEBA_JXZ */
8464 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QBEHXZ */
8465 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QEBA_JXZ */
8466 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_gcount, 4)
8467 int __thiscall basic_istream_wchar_gcount(const basic_istream_wchar *this)
8469 TRACE("(%p)\n", this);
8473 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
8474 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
8475 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEGXZ */
8476 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ */
8477 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get, 4)
8478 unsigned short __thiscall basic_istream_wchar_get(basic_istream_wchar *this)
8480 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8483 TRACE("(%p)\n", this);
8487 if(!basic_istream_wchar_sentry_create(this, TRUE)) {
8488 basic_istream_wchar_sentry_destroy(this);
8492 ret = basic_streambuf_wchar_sbumpc(basic_ios_wchar_rdbuf_get(base));
8493 basic_istream_wchar_sentry_destroy(this);
8495 basic_ios_wchar_setstate(base, IOSTATE_eofbit|IOSTATE_failbit);
8502 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AA_W@Z */
8503 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEA_W@Z */
8504 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAG@Z */
8505 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAG@Z */
8506 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_ch, 8)
8507 basic_istream_wchar* __thiscall basic_istream_wchar_get_ch(basic_istream_wchar *this, wchar_t *ch)
8511 TRACE("(%p %p)\n", this, ch);
8513 ret = basic_istream_wchar_get(this);
8519 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH_W@Z */
8520 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z */
8521 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGHG@Z */
8522 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z */
8523 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_str_delim, 16)
8524 basic_istream_wchar* __thiscall basic_istream_wchar_get_str_delim(basic_istream_wchar *this, wchar_t *str, streamsize count, wchar_t delim)
8526 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8527 unsigned short ch = delim;
8529 TRACE("(%p %p %ld %c)\n", this, str, count, delim);
8533 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8534 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8536 for(ch = basic_streambuf_wchar_sgetc(strbuf); count>1;
8537 ch = basic_streambuf_wchar_snextc(strbuf)) {
8538 if(ch==WEOF || ch==delim)
8546 basic_istream_wchar_sentry_destroy(this);
8548 basic_ios_wchar_setstate(base, (!this->count ? IOSTATE_failbit : IOSTATE_goodbit) |
8549 (ch==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8555 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
8556 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
8557 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
8558 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
8559 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_str, 12)
8560 basic_istream_wchar* __thiscall basic_istream_wchar_get_str(basic_istream_wchar *this, wchar_t *str, streamsize count)
8562 return basic_istream_wchar_get_str_delim(this, str, count, '\n');
8565 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z */
8566 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z */
8567 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAV?$basic_streambuf@GU?$char_traits@G@std@@@2@G@Z */
8568 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@G@Z */
8569 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_streambuf_delim, 12)
8570 basic_istream_wchar* __thiscall basic_istream_wchar_get_streambuf_delim(basic_istream_wchar *this, basic_streambuf_wchar *strbuf, wchar_t delim)
8572 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8573 unsigned short ch = delim;
8575 TRACE("(%p %p %c)\n", this, strbuf, delim);
8579 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8580 basic_streambuf_wchar *strbuf_read = basic_ios_wchar_rdbuf_get(base);
8582 for(ch = basic_streambuf_wchar_sgetc(strbuf_read); ;
8583 ch = basic_streambuf_wchar_snextc(strbuf_read)) {
8584 if(ch==WEOF || ch==delim)
8587 if(basic_streambuf_wchar_sputc(strbuf, ch) == WEOF)
8592 basic_istream_wchar_sentry_destroy(this);
8594 basic_ios_wchar_setstate(base, (!this->count ? IOSTATE_failbit : IOSTATE_goodbit) |
8595 (ch==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8599 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z */
8600 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z */
8601 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z */
8602 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z */
8603 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_streambuf, 8)
8604 basic_istream_wchar* __thiscall basic_istream_wchar_get_streambuf(basic_istream_wchar *this, basic_streambuf_wchar *strbuf)
8606 return basic_istream_wchar_get_streambuf_delim(this, strbuf, '\n');
8609 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH_W@Z */
8610 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z */
8611 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGHG@Z */
8612 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z */
8613 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_getline_delim, 16)
8614 basic_istream_wchar* __thiscall basic_istream_wchar_getline_delim(basic_istream_wchar *this, wchar_t *str, streamsize count, wchar_t delim)
8616 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8617 unsigned short ch = delim;
8619 TRACE("(%p %p %ld %c)\n", this, str, count, delim);
8623 if(basic_istream_wchar_sentry_create(this, TRUE) && count>0) {
8624 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8627 ch = basic_streambuf_wchar_sbumpc(strbuf);
8629 if(ch==WEOF || ch==delim)
8639 else if(ch != WEOF) {
8640 ch = basic_streambuf_wchar_sgetc(strbuf);
8643 basic_streambuf_wchar__Gninc(strbuf);
8648 basic_istream_wchar_sentry_destroy(this);
8650 basic_ios_wchar_setstate(base, (ch==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit) |
8651 (!this->count || (ch!=delim && ch!=WEOF) ? IOSTATE_failbit : IOSTATE_goodbit));
8657 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
8658 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
8659 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
8660 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
8661 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_getline, 12)
8662 basic_istream_wchar* __thiscall basic_istream_wchar_getline(basic_istream_wchar *this, wchar_t *str, streamsize count)
8664 return basic_istream_wchar_getline_delim(this, str, count, '\n');
8667 /* ?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@HG@Z */
8668 /* ?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JG@Z */
8669 /* ?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@HG@Z */
8670 /* ?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JG@Z */
8671 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ignore, 12)
8672 basic_istream_wchar* __thiscall basic_istream_wchar_ignore(basic_istream_wchar *this, streamsize count, unsigned short delim)
8674 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8675 unsigned short ch = delim;
8677 TRACE("(%p %ld %d)\n", this, count, delim);
8681 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8682 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8685 ch = basic_streambuf_wchar_sbumpc(strbuf);
8687 if(ch==WEOF || ch==delim)
8691 if(count != INT_MAX)
8695 basic_istream_wchar_sentry_destroy(this);
8698 basic_ios_wchar_setstate(base, IOSTATE_eofbit);
8702 /* ?ws@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
8703 /* ?ws@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
8704 /* ?ws@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@1@AAV21@@Z */
8705 /* ?ws@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
8706 basic_istream_wchar* __cdecl ws_basic_istream_wchar(basic_istream_wchar *istream)
8708 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istream);
8709 unsigned short ch = '\n';
8711 TRACE("(%p)\n", istream);
8713 if(basic_istream_wchar_sentry_create(istream, TRUE)) {
8714 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8715 const ctype_wchar *ctype = ctype_wchar_use_facet(strbuf->loc);
8717 for(ch = basic_streambuf_wchar_sgetc(strbuf); ctype_wchar_is_ch(ctype, _SPACE, ch);
8718 ch = basic_streambuf_wchar_snextc(strbuf)) {
8723 basic_istream_wchar_sentry_destroy(istream);
8726 basic_ios_wchar_setstate(base, IOSTATE_eofbit);
8730 /* ?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
8731 /* ?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
8732 /* ?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEGXZ */
8733 /* ?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ */
8734 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_peek, 4)
8735 unsigned short __thiscall basic_istream_wchar_peek(basic_istream_wchar *this)
8737 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8738 unsigned short ret = WEOF;
8740 TRACE("(%p)\n", this);
8744 if(basic_istream_wchar_sentry_create(this, TRUE))
8745 ret = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base));
8746 basic_istream_wchar_sentry_destroy(this);
8750 /* ?_Read_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WIH@Z */
8751 /* ?_Read_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_K_J@Z */
8752 /* ?_Read_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGIH@Z */
8753 /* ?_Read_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_K_J@Z */
8754 static basic_istream_wchar* basic_istream_wchar__Read_s(basic_istream_wchar *this, wchar_t *str, MSVCP_size_t size, streamsize count)
8756 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8757 IOSB_iostate state = IOSTATE_goodbit;
8759 TRACE("(%p %p %lu %ld)\n", this, str, size, count);
8761 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8762 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8764 this->count = basic_streambuf_wchar__Sgetn_s(strbuf, str, size, count);
8765 if(this->count != count)
8766 state |= IOSTATE_failbit | IOSTATE_eofbit;
8770 basic_istream_wchar_sentry_destroy(this);
8772 basic_ios_wchar_setstate(base, state);
8776 /* ?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
8777 /* ?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
8778 /* ?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
8779 /* ?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
8780 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read, 12)
8781 basic_istream_wchar* __thiscall basic_istream_wchar_read(basic_istream_wchar *this, wchar_t *str, streamsize count)
8783 return basic_istream_wchar__Read_s(this, str, count, count);
8786 /* ?_Readsome_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHPA_WIH@Z */
8787 /* ?_Readsome_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_K_J@Z */
8788 /* ?_Readsome_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHPAGIH@Z */
8789 /* ?_Readsome_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_K_J@Z */
8790 static streamsize basic_istream_wchar__Readsome_s(basic_istream_wchar *this, wchar_t *str, MSVCP_size_t size, streamsize count)
8792 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8793 IOSB_iostate state = IOSTATE_goodbit;
8795 TRACE("(%p %p %lu %ld)\n", this, str, size, count);
8799 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8800 streamsize avail = basic_streambuf_wchar_in_avail(basic_ios_wchar_rdbuf_get(base));
8805 state |= IOSTATE_eofbit;
8807 basic_istream_wchar__Read_s(this, str, size, avail);
8809 state |= IOSTATE_failbit;
8811 basic_istream_wchar_sentry_destroy(this);
8813 basic_ios_wchar_setstate(base, state);
8817 /* ?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHPA_WH@Z */
8818 /* ?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z */
8819 /* ?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHPAGH@Z */
8820 /* ?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z */
8821 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_readsome, 12)
8822 streamsize __thiscall basic_istream_wchar_readsome(basic_istream_wchar *this, wchar_t *str, streamsize count)
8824 return basic_istream_wchar__Readsome_s(this, str, count, count);
8827 /* ?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@_W@Z */
8828 /* ?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z */
8829 /* ?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@G@Z */
8830 /* ?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z */
8831 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_putback, 8)
8832 basic_istream_wchar* __thiscall basic_istream_wchar_putback(basic_istream_wchar *this, wchar_t ch)
8834 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8835 IOSB_iostate state = IOSTATE_goodbit;
8837 TRACE("(%p %c)\n", this, ch);
8841 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8842 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8844 if(!ios_base_good(&base->base))
8845 state |= IOSTATE_failbit;
8846 else if(!strbuf || basic_streambuf_wchar_sputbackc(strbuf, ch)==WEOF)
8847 state |= IOSTATE_badbit;
8849 basic_istream_wchar_sentry_destroy(this);
8851 basic_ios_wchar_setstate(base, state);
8855 /* ?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ */
8856 /* ?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ */
8857 /* ?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@XZ */
8858 /* ?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ */
8859 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_unget, 4)
8860 basic_istream_wchar* __thiscall basic_istream_wchar_unget(basic_istream_wchar *this)
8862 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8863 IOSB_iostate state = IOSTATE_goodbit;
8865 TRACE("(%p)\n", this);
8869 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8870 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8872 if(!ios_base_good(&base->base))
8873 state |= IOSTATE_failbit;
8874 else if(!strbuf || basic_streambuf_wchar_sungetc(strbuf)==WEOF)
8875 state |= IOSTATE_badbit;
8877 basic_istream_wchar_sentry_destroy(this);
8879 basic_ios_wchar_setstate(base, state);
8883 /* ?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
8884 /* ?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAHXZ */
8885 /* ?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHXZ */
8886 /* ?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAHXZ */
8887 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_sync, 4)
8888 int __thiscall basic_istream_wchar_sync(basic_istream_wchar *this)
8890 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8891 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8893 TRACE("(%p)\n", this);
8898 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8899 if(basic_streambuf_wchar_pubsync(strbuf) != -1) {
8900 basic_istream_wchar_sentry_destroy(this);
8904 basic_istream_wchar_sentry_destroy(this);
8906 basic_ios_wchar_setstate(base, IOSTATE_badbit);
8910 /* ?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@XZ */
8911 /* ?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
8912 /* ?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@XZ */
8913 /* ?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
8914 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_tellg, 8)
8915 fpos_int* __thiscall basic_istream_wchar_tellg(basic_istream_wchar *this, fpos_int *ret)
8917 TRACE("(%p %p)\n", this, ret);
8919 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8920 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8921 if(!ios_base_fail(&base->base)) {
8922 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base),
8923 ret, 0, SEEKDIR_cur, OPENMODE_in);
8924 basic_istream_wchar_sentry_destroy(this);
8926 if(ret->off==0 && ret->pos==-1 && ret->state==0)
8927 basic_ios_wchar_setstate(base, IOSTATE_failbit);
8931 basic_istream_wchar_sentry_destroy(this);
8939 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@JH@Z */
8940 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z */
8941 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@JH@Z */
8942 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z */
8943 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_seekg, 12)
8944 basic_istream_wchar* __thiscall basic_istream_wchar_seekg(basic_istream_wchar *this, streamoff off, int dir)
8946 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8948 TRACE("(%p %ld %d)\n", this, off, dir);
8950 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8951 if(!ios_base_fail(&base->base)) {
8952 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8955 basic_streambuf_wchar_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in);
8956 basic_istream_wchar_sentry_destroy(this);
8958 if(ret.off==0 && ret.pos==-1 && ret.state==0)
8959 basic_ios_wchar_setstate(base, IOSTATE_failbit);
8961 basic_ios_wchar_clear(base, IOSTATE_goodbit);
8965 basic_istream_wchar_sentry_destroy(this);
8967 basic_ios_wchar_setstate(base, IOSTATE_failbit);
8971 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
8972 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
8973 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
8974 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
8975 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_seekg_fpos, 28)
8976 basic_istream_wchar* __thiscall basic_istream_wchar_seekg_fpos(basic_istream_wchar *this, fpos_int pos)
8978 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8980 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos));
8982 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8983 if(!ios_base_fail(&base->base)) {
8984 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8987 basic_streambuf_wchar_pubseekpos(strbuf, &ret, pos, OPENMODE_in);
8988 basic_istream_wchar_sentry_destroy(this);
8990 if(ret.off==0 && ret.pos==-1 && ret.state==0)
8991 basic_ios_wchar_setstate(base, IOSTATE_failbit);
8993 basic_ios_wchar_clear(base, IOSTATE_goodbit);
8997 basic_istream_wchar_sentry_destroy(this);
8999 basic_ios_wchar_setstate(base, IOSTATE_failbit);
9003 static basic_istream_wchar* basic_istream_read_short(basic_istream_wchar *this, short *v, const num_get *numget)
9005 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9006 int state = IOSTATE_goodbit;
9008 TRACE("(%p %p)\n", this, v);
9010 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9011 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9012 istreambuf_iterator_wchar first={0}, last={0};
9015 first.strbuf = strbuf;
9016 num_get_wchar_get_long(numget, &last, first, last, &base->base, &state, &tmp);
9018 if(!(state&IOSTATE_failbit) && tmp==(LONG)((short)tmp))
9021 state |= IOSTATE_failbit;
9023 basic_istream_wchar_sentry_destroy(this);
9025 basic_ios_wchar_setstate(base, state);
9029 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAF@Z */
9030 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAF@Z */
9031 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_short, 8)
9032 basic_istream_wchar* __thiscall basic_istream_wchar_read_short(basic_istream_wchar *this, short *v)
9034 return basic_istream_read_short(this, v, num_get_wchar_use_facet(
9035 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9038 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAF@Z */
9039 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAF@Z */
9040 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_short, 8)
9041 basic_istream_wchar* __thiscall basic_istream_short_read_short(basic_istream_wchar *this, short *v)
9043 return basic_istream_read_short(this, v, num_get_short_use_facet(
9044 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9047 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAG@Z */
9048 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAG@Z */
9049 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ushort, 8)
9050 basic_istream_wchar* __thiscall basic_istream_wchar_read_ushort(basic_istream_wchar *this, unsigned short *v)
9052 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9053 int state = IOSTATE_goodbit;
9055 TRACE("(%p %p)\n", this, v);
9057 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9058 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9059 const num_get *numget = num_get_wchar_use_facet(strbuf->loc);
9060 istreambuf_iterator_wchar first={0}, last={0};
9062 first.strbuf = strbuf;
9063 num_get_wchar_get_ushort(numget, &last, first, last, &base->base, &state, v);
9065 basic_istream_wchar_sentry_destroy(this);
9067 basic_ios_wchar_setstate(base, state);
9071 static basic_istream_wchar* basic_istream_read_int(basic_istream_wchar *this, int *v, const num_get *numget)
9073 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9074 int state = IOSTATE_goodbit;
9076 TRACE("(%p %p)\n", this, v);
9078 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9079 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9080 istreambuf_iterator_wchar first={0}, last={0};
9082 first.strbuf = strbuf;
9083 num_get_wchar_get_long(numget, &last, first, last, &base->base, &state, v);
9085 basic_istream_wchar_sentry_destroy(this);
9087 basic_ios_wchar_setstate(base, state);
9091 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAH@Z */
9092 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAH@Z */
9093 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_int, 8)
9094 basic_istream_wchar* __thiscall basic_istream_wchar_read_int(basic_istream_wchar *this, int *v)
9096 return basic_istream_read_int(this, v, num_get_wchar_use_facet(
9097 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9100 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAH@Z */
9101 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAH@Z */
9102 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_int, 8)
9103 basic_istream_wchar* __thiscall basic_istream_short_read_int(basic_istream_wchar *this, int *v)
9105 return basic_istream_read_int(this, v, num_get_short_use_facet(
9106 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9109 static basic_istream_wchar* basic_istream_read_uint(basic_istream_wchar *this, unsigned int *v, const num_get *numget)
9111 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9112 int state = IOSTATE_goodbit;
9114 TRACE("(%p %p)\n", this, v);
9116 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9117 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9118 istreambuf_iterator_wchar first={0}, last={0};
9120 first.strbuf = strbuf;
9121 num_get_wchar_get_uint(numget, &last, first, last, &base->base, &state, v);
9123 basic_istream_wchar_sentry_destroy(this);
9125 basic_ios_wchar_setstate(base, state);
9129 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAI@Z */
9130 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAI@Z */
9131 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_uint, 8)
9132 basic_istream_wchar* __thiscall basic_istream_wchar_read_uint(basic_istream_wchar *this, unsigned int *v)
9134 return basic_istream_read_uint(this, v, num_get_wchar_use_facet(
9135 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9138 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAI@Z */
9139 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAI@Z */
9140 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_uint, 8)
9141 basic_istream_wchar* __thiscall basic_istream_short_read_uint(basic_istream_wchar *this, unsigned int *v)
9143 return basic_istream_read_uint(this, v, num_get_short_use_facet(
9144 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9147 static basic_istream_wchar* basic_istream_read_long(basic_istream_wchar *this, LONG *v, const num_get *numget)
9149 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9150 int state = IOSTATE_goodbit;
9152 TRACE("(%p %p)\n", this, v);
9154 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9155 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9156 istreambuf_iterator_wchar first={0}, last={0};
9158 first.strbuf = strbuf;
9159 num_get_wchar_get_long(numget, &last, first, last, &base->base, &state, v);
9161 basic_istream_wchar_sentry_destroy(this);
9163 basic_ios_wchar_setstate(base, state);
9167 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAJ@Z */
9168 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAJ@Z */
9169 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_long, 8)
9170 basic_istream_wchar* __thiscall basic_istream_wchar_read_long(basic_istream_wchar *this, LONG *v)
9172 return basic_istream_read_long(this, v, num_get_wchar_use_facet(
9173 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9176 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAJ@Z */
9177 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAJ@Z */
9178 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_long, 8)
9179 basic_istream_wchar* __thiscall basic_istream_short_read_long(basic_istream_wchar *this, LONG *v)
9181 return basic_istream_read_long(this, v, num_get_short_use_facet(
9182 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9185 static basic_istream_wchar* basic_istream_read_ulong(basic_istream_wchar *this, ULONG *v, const num_get *numget)
9187 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9188 int state = IOSTATE_goodbit;
9190 TRACE("(%p %p)\n", this, v);
9192 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9193 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9194 istreambuf_iterator_wchar first={0}, last={0};
9196 first.strbuf = strbuf;
9197 num_get_wchar_get_ulong(numget, &last, first, last, &base->base, &state, v);
9199 basic_istream_wchar_sentry_destroy(this);
9201 basic_ios_wchar_setstate(base, state);
9205 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAK@Z */
9206 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAK@Z */
9207 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ulong, 8)
9208 basic_istream_wchar* __thiscall basic_istream_wchar_read_ulong(basic_istream_wchar *this, ULONG *v)
9210 return basic_istream_read_ulong(this, v, num_get_wchar_use_facet(
9211 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9214 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAK@Z */
9215 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAK@Z */
9216 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ulong, 8)
9217 basic_istream_wchar* __thiscall basic_istream_short_read_ulong(basic_istream_wchar *this, ULONG *v)
9219 return basic_istream_read_ulong(this, v, num_get_short_use_facet(
9220 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9223 static basic_istream_wchar* basic_istream_read_float(basic_istream_wchar *this, float *v, const num_get *numget)
9225 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9226 int state = IOSTATE_goodbit;
9228 TRACE("(%p %p)\n", this, v);
9230 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9231 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9232 istreambuf_iterator_wchar first={0}, last={0};
9234 first.strbuf = strbuf;
9235 num_get_wchar_get_float(numget, &last, first, last, &base->base, &state, v);
9237 basic_istream_wchar_sentry_destroy(this);
9239 basic_ios_wchar_setstate(base, state);
9243 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAM@Z */
9244 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAM@Z */
9245 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_float, 8)
9246 basic_istream_wchar* __thiscall basic_istream_wchar_read_float(basic_istream_wchar *this, float *v)
9248 return basic_istream_read_float(this, v, num_get_wchar_use_facet(
9249 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9252 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAM@Z */
9253 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAM@Z */
9254 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_float, 8)
9255 basic_istream_wchar* __thiscall basic_istream_short_read_float(basic_istream_wchar *this, float *v)
9257 return basic_istream_read_float(this, v, num_get_short_use_facet(
9258 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9261 static basic_istream_wchar* basic_istream_read_double(basic_istream_wchar *this, double *v, const num_get *numget)
9263 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9264 int state = IOSTATE_goodbit;
9266 TRACE("(%p %p)\n", this, v);
9268 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9269 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9270 istreambuf_iterator_wchar first={0}, last={0};
9272 first.strbuf = strbuf;
9273 num_get_wchar_get_double(numget, &last, first, last, &base->base, &state, v);
9275 basic_istream_wchar_sentry_destroy(this);
9277 basic_ios_wchar_setstate(base, state);
9281 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAN@Z */
9282 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAN@Z */
9283 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_double, 8)
9284 basic_istream_wchar* __thiscall basic_istream_wchar_read_double(basic_istream_wchar *this, double *v)
9286 return basic_istream_read_double(this, v, num_get_wchar_use_facet(
9287 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9290 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAN@Z */
9291 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAN@Z */
9292 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_double, 8)
9293 basic_istream_wchar* __thiscall basic_istream_short_read_double(basic_istream_wchar *this, double *v)
9295 return basic_istream_read_double(this, v, num_get_short_use_facet(
9296 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9299 static basic_istream_wchar* basic_istream_read_ldouble(basic_istream_wchar *this, double *v, const num_get *numget)
9301 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9302 int state = IOSTATE_goodbit;
9304 TRACE("(%p %p)\n", this, v);
9306 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9307 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9308 istreambuf_iterator_wchar first={0}, last={0};
9310 first.strbuf = strbuf;
9311 num_get_wchar_get_ldouble(numget, &last, first, last, &base->base, &state, v);
9313 basic_istream_wchar_sentry_destroy(this);
9315 basic_ios_wchar_setstate(base, state);
9319 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAO@Z */
9320 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAO@Z */
9321 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ldouble, 8)
9322 basic_istream_wchar* __thiscall basic_istream_wchar_read_ldouble(basic_istream_wchar *this, double *v)
9324 return basic_istream_read_ldouble(this, v, num_get_wchar_use_facet(
9325 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9328 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAO@Z */
9329 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAO@Z */
9330 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ldouble, 8)
9331 basic_istream_wchar* __thiscall basic_istream_short_read_ldouble(basic_istream_wchar *this, double *v)
9333 return basic_istream_read_ldouble(this, v, num_get_short_use_facet(
9334 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9337 static basic_istream_wchar* basic_istream_read_ptr(basic_istream_wchar *this, void **v, const num_get *numget)
9339 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9340 int state = IOSTATE_goodbit;
9342 TRACE("(%p %p)\n", this, v);
9344 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9345 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9346 istreambuf_iterator_wchar first={0}, last={0};
9348 first.strbuf = strbuf;
9349 num_get_wchar_get_void(numget, &last, first, last, &base->base, &state, v);
9351 basic_istream_wchar_sentry_destroy(this);
9353 basic_ios_wchar_setstate(base, state);
9357 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAPAX@Z */
9358 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
9359 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ptr, 8)
9360 basic_istream_wchar* __thiscall basic_istream_wchar_read_ptr(basic_istream_wchar *this, void **v)
9362 return basic_istream_read_ptr(this, v, num_get_wchar_use_facet(
9363 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9366 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAPAX@Z */
9367 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
9368 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ptr, 8)
9369 basic_istream_wchar* __thiscall basic_istream_short_read_ptr(basic_istream_wchar *this, void **v)
9371 return basic_istream_read_ptr(this, v, num_get_short_use_facet(
9372 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9375 static basic_istream_wchar* basic_istream_read_int64(basic_istream_wchar *this, __int64 *v, const num_get *numget)
9377 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9378 int state = IOSTATE_goodbit;
9380 TRACE("(%p %p)\n", this, v);
9382 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9383 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9384 istreambuf_iterator_wchar first={0}, last={0};
9386 first.strbuf = strbuf;
9387 num_get_wchar_get_int64(numget, &last, first, last, &base->base, &state, v);
9389 basic_istream_wchar_sentry_destroy(this);
9391 basic_ios_wchar_setstate(base, state);
9395 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_J@Z */
9396 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_J@Z */
9397 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_int64, 8)
9398 basic_istream_wchar* __thiscall basic_istream_wchar_read_int64(basic_istream_wchar *this, __int64 *v)
9400 return basic_istream_read_int64(this, v, num_get_wchar_use_facet(
9401 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9404 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_J@Z */
9405 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_J@Z */
9406 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_int64, 8)
9407 basic_istream_wchar* __thiscall basic_istream_short_read_int64(basic_istream_wchar *this, __int64 *v)
9409 return basic_istream_read_int64(this, v, num_get_short_use_facet(
9410 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9413 static basic_istream_wchar* basic_istream_read_uint64(basic_istream_wchar *this, unsigned __int64 *v, const num_get *numget)
9415 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9416 int state = IOSTATE_goodbit;
9418 TRACE("(%p %p)\n", this, v);
9420 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9421 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9422 istreambuf_iterator_wchar first={0}, last={0};
9424 first.strbuf = strbuf;
9425 num_get_wchar_get_uint64(numget, &last, first, last, &base->base, &state, v);
9427 basic_istream_wchar_sentry_destroy(this);
9429 basic_ios_wchar_setstate(base, state);
9433 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_K@Z */
9434 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_K@Z */
9435 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_uint64, 8)
9436 basic_istream_wchar* __thiscall basic_istream_wchar_read_uint64(basic_istream_wchar *this, unsigned __int64 *v)
9438 return basic_istream_read_uint64(this, v, num_get_wchar_use_facet(
9439 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9442 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_K@Z */
9443 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_K@Z */
9444 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_uint64, 8)
9445 basic_istream_wchar* __thiscall basic_istream_short_read_uint64(basic_istream_wchar *this, unsigned __int64 *v)
9447 return basic_istream_read_uint64(this, v, num_get_short_use_facet(
9448 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9451 static basic_istream_wchar* basic_istream_read_bool(basic_istream_wchar *this, MSVCP_bool *v, const num_get *numget)
9453 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9454 int state = IOSTATE_goodbit;
9456 TRACE("(%p %p)\n", this, v);
9458 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9459 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9460 istreambuf_iterator_wchar first={0}, last={0};
9462 first.strbuf = strbuf;
9463 num_get_wchar_get_bool(numget, &last, first, last, &base->base, &state, v);
9465 basic_istream_wchar_sentry_destroy(this);
9467 basic_ios_wchar_setstate(base, state);
9471 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_N@Z */
9472 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_N@Z */
9473 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_bool, 8)
9474 basic_istream_wchar* __thiscall basic_istream_wchar_read_bool(basic_istream_wchar *this, MSVCP_bool *v)
9476 return basic_istream_read_bool(this, v, num_get_wchar_use_facet(
9477 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9480 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_N@Z */
9481 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_N@Z */
9482 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_bool, 8)
9483 basic_istream_wchar* __thiscall basic_istream_short_read_bool(basic_istream_wchar *this, MSVCP_bool *v)
9485 return basic_istream_read_bool(this, v, num_get_short_use_facet(
9486 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9489 /* ??$getline@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@_W@Z */
9490 /* ??$getline@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@_W@Z */
9491 /* ??$getline@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@G@Z */
9492 /* ??$getline@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@G@Z */
9493 basic_istream_wchar* __cdecl basic_istream_wchar_getline_bstr_delim(
9494 basic_istream_wchar *istream, basic_string_wchar *str, wchar_t delim)
9496 IOSB_iostate state = IOSTATE_failbit;
9499 TRACE("(%p %p %c)\n", istream, str, delim);
9501 if(basic_istream_wchar_sentry_create(istream, TRUE)) {
9502 MSVCP_basic_string_wchar_clear(str);
9504 c = basic_istream_wchar_get(istream);
9506 state = IOSTATE_goodbit;
9508 for(; c!=delim && c!=WEOF; c = basic_istream_wchar_get(istream)) {
9509 state = IOSTATE_goodbit;
9510 MSVCP_basic_string_wchar_append_ch(str, c);
9513 basic_istream_wchar_sentry_destroy(istream);
9515 basic_ios_wchar_setstate(basic_istream_wchar_get_basic_ios(istream),
9516 state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
9520 /* ??$getline@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
9521 /* ??$getline@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
9522 /* ??$getline@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
9523 /* ??$getline@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
9524 basic_istream_wchar* __cdecl basic_istream_wchar_getline_bstr(
9525 basic_istream_wchar *istream, basic_string_wchar *str)
9527 return basic_istream_wchar_getline_bstr_delim(istream, str, '\n');
9530 static basic_istream_wchar* basic_istream_read_bstr(basic_istream_wchar *istream,
9531 basic_string_wchar *str, const ctype_wchar *ctype)
9533 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istream);
9534 IOSB_iostate state = IOSTATE_failbit;
9537 TRACE("(%p %p)\n", istream, str);
9539 if(basic_istream_wchar_sentry_create(istream, FALSE)) {
9540 MSVCP_size_t count = ios_base_width_get(&base->base);
9545 MSVCP_basic_string_wchar_clear(str);
9547 for(c = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base));
9548 c!=WEOF && !ctype_wchar_is_ch(ctype, _SPACE|_BLANK, c) && count>0;
9549 c = basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base)), count--) {
9550 state = IOSTATE_goodbit;
9551 MSVCP_basic_string_wchar_append_ch(str, c);
9554 basic_istream_wchar_sentry_destroy(istream);
9556 ios_base_width_set(&base->base, 0);
9557 basic_ios_wchar_setstate(base, state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
9561 /* ??$?5_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
9562 /* ??$?5_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
9563 basic_istream_wchar* __cdecl basic_istream_wchar_read_bstr(
9564 basic_istream_wchar *istream, basic_string_wchar *str)
9566 return basic_istream_read_bstr(istream, str, ctype_wchar_use_facet(
9567 basic_istream_wchar_get_basic_ios(istream)->strbuf->loc));
9570 /* ??$?5GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
9571 /* ??$?5GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
9572 basic_istream_wchar* __cdecl basic_istream_short_read_bstr(
9573 basic_istream_wchar *istream, basic_string_wchar *str)
9575 return basic_istream_read_bstr(istream, str, ctype_short_use_facet(
9576 basic_istream_wchar_get_basic_ios(istream)->strbuf->loc));
9579 static basic_istream_wchar* basic_istream_read_str(basic_istream_wchar *istream, wchar_t *str, const ctype_wchar *ctype)
9581 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istream);
9582 IOSB_iostate state = IOSTATE_failbit;
9583 unsigned short c = '\n';
9585 TRACE("(%p %p)\n", istream, str);
9587 if(basic_istream_wchar_sentry_create(istream, FALSE)) {
9588 MSVCP_size_t count = ios_base_width_get(&base->base)-1;
9590 for(c = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base));
9591 c!=WEOF && !ctype_wchar_is_ch(ctype, _SPACE|_BLANK, c) && count>0;
9592 c = basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base)), count--) {
9593 state = IOSTATE_goodbit;
9597 basic_istream_wchar_sentry_destroy(istream);
9600 ios_base_width_set(&base->base, 0);
9601 basic_ios_wchar_setstate(base, state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
9605 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@PA_W@Z */
9606 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@PEA_W@Z */
9607 basic_istream_wchar* __cdecl basic_istream_wchar_read_str(basic_istream_wchar *istream, wchar_t *str)
9609 return basic_istream_read_str(istream, str, ctype_wchar_use_facet(
9610 basic_istream_wchar_get_basic_ios(istream)->strbuf->loc));
9613 /* ??$?5GU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@PAG@Z */
9614 /* ??$?5GU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@PEAG@Z */
9615 basic_istream_wchar* __cdecl basic_istream_short_read_str(basic_istream_wchar *istream, wchar_t *str)
9617 return basic_istream_read_str(istream, str, ctype_short_use_facet(
9618 basic_istream_wchar_get_basic_ios(istream)->strbuf->loc));
9621 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AA_W@Z */
9622 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEA_W@Z */
9623 /* ??$?5GU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAG@Z */
9624 /* ??$?5GU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAG@Z */
9625 basic_istream_wchar* __cdecl basic_istream_wchar_read_ch(basic_istream_wchar *istream, wchar_t *ch)
9627 IOSB_iostate state = IOSTATE_failbit;
9628 unsigned short c = 0;
9630 TRACE("(%p %p)\n", istream, ch);
9632 if(basic_istream_wchar_sentry_create(istream, FALSE)) {
9633 c = basic_streambuf_wchar_sbumpc(basic_ios_wchar_rdbuf_get(
9634 basic_istream_wchar_get_basic_ios(istream)));
9636 state = IOSTATE_goodbit;
9640 basic_istream_wchar_sentry_destroy(istream);
9642 basic_ios_wchar_setstate(basic_istream_wchar_get_basic_ios(istream),
9643 state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
9647 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
9648 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
9649 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
9650 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
9651 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_streambuf, 8)
9652 basic_istream_wchar* __thiscall basic_istream_wchar_read_streambuf(
9653 basic_istream_wchar *this, basic_streambuf_wchar *streambuf)
9655 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9656 IOSB_iostate state = IOSTATE_failbit;
9657 unsigned short c = '\n';
9659 TRACE("(%p %p)\n", this, streambuf);
9661 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9662 for(c = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base)); c!=WEOF;
9663 c = basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base))) {
9664 state = IOSTATE_goodbit;
9665 if(basic_streambuf_wchar_sputc(streambuf, c) == WEOF)
9669 basic_istream_wchar_sentry_destroy(this);
9671 basic_ios_wchar_setstate(base, state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
9675 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
9676 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
9677 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
9678 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
9679 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func, 8)
9680 basic_istream_wchar* __thiscall basic_istream_wchar_read_func(basic_istream_wchar *this,
9681 basic_istream_wchar* (__cdecl *pfunc)(basic_istream_wchar*))
9683 TRACE("(%p %p)\n", this, pfunc);
9688 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AAV21@@Z@Z */
9689 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z */
9690 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@GU?$char_traits@G@std@@@1@AAV21@@Z@Z */
9691 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z */
9692 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func_basic_ios, 8)
9693 basic_istream_wchar* __thiscall basic_istream_wchar_read_func_basic_ios(basic_istream_wchar *this,
9694 basic_ios_wchar* (__cdecl *pfunc)(basic_ios_wchar*))
9696 TRACE("(%p %p)\n", this, pfunc);
9697 pfunc(basic_istream_wchar_get_basic_ios(this));
9701 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
9702 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
9703 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
9704 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
9705 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func_ios_base, 8)
9706 basic_istream_wchar* __thiscall basic_istream_wchar_read_func_ios_base(
9707 basic_istream_wchar *this, ios_base* (__cdecl *pfunc)(ios_base*))
9709 TRACE("(%p %p)\n", this, pfunc);
9710 pfunc(&basic_istream_wchar_get_basic_ios(this)->base);
9714 static inline basic_ios_char* basic_iostream_char_to_basic_ios(basic_iostream_char *ptr)
9716 return (basic_ios_char*)((char*)ptr+basic_iostream_char_vbtable1[1]);
9719 static inline basic_iostream_char* basic_iostream_char_from_basic_ios(basic_ios_char *ptr)
9721 return (basic_iostream_char*)((char*)ptr-basic_iostream_char_vbtable1[1]);
9724 /* ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
9725 /* ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
9726 DEFINE_THISCALL_WRAPPER(basic_iostream_char_ctor, 12)
9727 basic_iostream_char* __thiscall basic_iostream_char_ctor(basic_iostream_char *this, basic_streambuf_char *strbuf, MSVCP_bool virt_init)
9729 basic_ios_char *basic_ios;
9731 TRACE("(%p %p %d)\n", this, strbuf, virt_init);
9734 this->base1.vbtable = basic_iostream_char_vbtable1;
9735 this->base2.vbtable = basic_iostream_char_vbtable2;
9736 basic_ios = basic_istream_char_get_basic_ios(&this->base1);
9737 basic_ios_char_ctor(basic_ios);
9739 basic_ios = basic_istream_char_get_basic_ios(&this->base1);
9742 basic_ios->base.vtable = &MSVCP_basic_iostream_char_vtable;
9744 basic_istream_char_ctor(&this->base1, strbuf, FALSE, FALSE);
9745 basic_ostream_char_ctor_uninitialized(&this->base2, 0, FALSE, FALSE);
9749 /* ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
9750 /* ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
9751 DEFINE_THISCALL_WRAPPER(basic_iostream_char_dtor, 4)
9752 void __thiscall basic_iostream_char_dtor(basic_ios_char *base)
9754 basic_iostream_char *this = basic_iostream_char_from_basic_ios(base);
9756 TRACE("(%p)\n", this);
9757 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base2));
9758 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base1));
9761 /* ??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
9762 /* ??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
9763 DEFINE_THISCALL_WRAPPER(basic_iostream_char_vbase_dtor, 4)
9764 void __thiscall basic_iostream_char_vbase_dtor(basic_iostream_char *this)
9766 TRACE("(%p)\n", this);
9767 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(this));
9768 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base1));
9771 DEFINE_THISCALL_WRAPPER(basic_iostream_char_vector_dtor, 8)
9772 basic_iostream_char* __thiscall basic_iostream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
9774 basic_iostream_char *this = basic_iostream_char_from_basic_ios(base);
9776 TRACE("(%p %x)\n", this, flags);
9779 /* we have an array, with the number of elements stored before the first object */
9780 INT_PTR i, *ptr = (INT_PTR *)this-1;
9782 for(i=*ptr-1; i>=0; i--)
9783 basic_iostream_char_vbase_dtor(this+i);
9784 MSVCRT_operator_delete(ptr);
9786 basic_iostream_char_vbase_dtor(this);
9788 MSVCRT_operator_delete(this);
9794 static inline basic_ios_wchar* basic_iostream_wchar_to_basic_ios(basic_iostream_wchar *ptr)
9796 return (basic_ios_wchar*)((char*)ptr+basic_iostream_wchar_vbtable1[1]);
9799 static inline basic_iostream_wchar* basic_iostream_wchar_from_basic_ios(basic_ios_wchar *ptr)
9801 return (basic_iostream_wchar*)((char*)ptr-basic_iostream_wchar_vbtable1[1]);
9804 /* ??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
9805 /* ??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
9806 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_ctor, 12)
9807 basic_iostream_wchar* __thiscall basic_iostream_wchar_ctor(basic_iostream_wchar *this,
9808 basic_streambuf_wchar *strbuf, MSVCP_bool virt_init)
9810 basic_ios_wchar *basic_ios;
9812 TRACE("(%p %p %d)\n", this, strbuf, virt_init);
9815 this->base1.vbtable = basic_iostream_wchar_vbtable1;
9816 this->base2.vbtable = basic_iostream_wchar_vbtable2;
9817 basic_ios = basic_istream_wchar_get_basic_ios(&this->base1);
9818 basic_ios_wchar_ctor(basic_ios);
9820 basic_ios = basic_istream_wchar_get_basic_ios(&this->base1);
9823 basic_istream_wchar_ctor(&this->base1, strbuf, FALSE, FALSE);
9824 basic_ostream_wchar_ctor_uninitialized(&this->base2, 0, FALSE, FALSE);
9826 basic_ios->base.vtable = &MSVCP_basic_iostream_wchar_vtable;
9830 /* ??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
9831 /* ??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
9832 DEFINE_THISCALL_WRAPPER(basic_iostream_short_ctor, 12)
9833 basic_iostream_wchar* __thiscall basic_iostream_short_ctor(basic_iostream_wchar *this,
9834 basic_streambuf_wchar *strbuf, MSVCP_bool virt_init)
9836 basic_iostream_wchar_ctor(this, strbuf, virt_init);
9837 basic_istream_wchar_get_basic_ios(&this->base1)->base.vtable = &MSVCP_basic_iostream_short_vtable;
9841 /* ??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
9842 /* ??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
9843 /* ??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UAE@XZ */
9844 /* ??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
9845 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_dtor, 4)
9846 void __thiscall basic_iostream_wchar_dtor(basic_ios_wchar *base)
9848 basic_iostream_wchar *this = basic_iostream_wchar_from_basic_ios(base);
9850 TRACE("(%p)\n", this);
9851 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base2));
9852 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base1));
9855 /* ??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
9856 /* ??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
9857 /* ??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
9858 /* ??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
9859 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_vbase_dtor, 4)
9860 void __thiscall basic_iostream_wchar_vbase_dtor(basic_iostream_wchar *this)
9862 TRACE("(%p)\n", this);
9863 basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(this));
9864 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base1));
9867 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_vector_dtor, 8)
9868 basic_iostream_wchar* __thiscall basic_iostream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
9870 basic_iostream_wchar *this = basic_iostream_wchar_from_basic_ios(base);
9872 TRACE("(%p %x)\n", this, flags);
9875 /* we have an array, with the number of elements stored before the first object */
9876 INT_PTR i, *ptr = (INT_PTR *)this-1;
9878 for(i=*ptr-1; i>=0; i--)
9879 basic_iostream_wchar_vbase_dtor(this+i);
9880 MSVCRT_operator_delete(ptr);
9882 basic_iostream_wchar_vbase_dtor(this);
9884 MSVCRT_operator_delete(this);
9890 static inline basic_ios_char* basic_ofstream_char_to_basic_ios(basic_ofstream_char *ptr)
9892 return (basic_ios_char*)((char*)ptr+basic_ofstream_char_vbtable[1]);
9895 static inline basic_ofstream_char* basic_ofstream_char_from_basic_ios(basic_ios_char *ptr)
9897 return (basic_ofstream_char*)((char*)ptr-basic_ofstream_char_vbtable[1]);
9900 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
9901 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
9902 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor, 8)
9903 basic_ofstream_char* __thiscall basic_ofstream_char_ctor(basic_ofstream_char *this, MSVCP_bool virt_init)
9905 basic_ios_char *basic_ios;
9907 TRACE("(%p %d)\n", this, virt_init);
9910 this->base.vbtable = basic_ofstream_char_vbtable;
9911 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
9912 basic_ios_char_ctor(basic_ios);
9914 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
9917 basic_filebuf_char_ctor(&this->filebuf);
9918 basic_ostream_char_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
9919 basic_ios->base.vtable = &MSVCP_basic_ofstream_char_vtable;
9923 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
9924 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
9925 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_file, 12)
9926 basic_ofstream_char* __thiscall basic_ofstream_char_ctor_file(
9927 basic_ofstream_char *this, FILE *file, MSVCP_bool virt_init)
9929 basic_ios_char *basic_ios;
9931 TRACE("(%p %p %d)\n", this, file, virt_init);
9934 this->base.vbtable = basic_ofstream_char_vbtable;
9935 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
9936 basic_ios_char_ctor(basic_ios);
9938 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
9941 basic_filebuf_char_ctor_file(&this->filebuf, file);
9942 basic_ostream_char_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
9943 basic_ios->base.vtable = &MSVCP_basic_ofstream_char_vtable;
9947 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
9948 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
9949 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_name, 20)
9950 basic_ofstream_char* __thiscall basic_ofstream_char_ctor_name(basic_ofstream_char *this,
9951 const char *name, int mode, int prot, MSVCP_bool virt_init)
9953 TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
9955 basic_ofstream_char_ctor(this, virt_init);
9957 if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_out, prot)) {
9958 basic_ios_char *basic_ios = basic_ostream_char_get_basic_ios(&this->base);
9959 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
9964 /* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
9965 /* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
9966 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_dtor, 4)
9967 void __thiscall basic_ofstream_char_dtor(basic_ios_char *base)
9969 basic_ofstream_char *this = basic_ofstream_char_from_basic_ios(base);
9971 TRACE("(%p)\n", this);
9973 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base));
9974 basic_filebuf_char_dtor(&this->filebuf);
9977 /* ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
9978 /* ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
9979 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_vbase_dtor, 4)
9980 void __thiscall basic_ofstream_char_vbase_dtor(basic_ofstream_char *this)
9982 TRACE("(%p)\n", this);
9984 basic_ofstream_char_dtor(basic_ofstream_char_to_basic_ios(this));
9985 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base));
9988 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_vector_dtor, 8)
9989 basic_ofstream_char* __thiscall basic_ofstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
9991 basic_ofstream_char *this = basic_ofstream_char_from_basic_ios(base);
9993 TRACE("(%p %x)\n", this, flags);
9996 /* we have an array, with the number of elements stored before the first object */
9997 INT_PTR i, *ptr = (INT_PTR *)this-1;
9999 for(i=*ptr-1; i>=0; i--)
10000 basic_ofstream_char_vbase_dtor(this+i);
10001 MSVCRT_operator_delete(ptr);
10003 basic_ofstream_char_vbase_dtor(this);
10005 MSVCRT_operator_delete(this);
10011 /* ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10012 /* ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10013 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_close, 4)
10014 void __thiscall basic_ofstream_char_close(basic_ofstream_char *this)
10016 TRACE("(%p)\n", this);
10018 if(!basic_filebuf_char_close(&this->filebuf)) {
10019 basic_ios_char *basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10020 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10024 /* ?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
10025 /* ?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
10026 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_is_open, 4)
10027 MSVCP_bool __thiscall basic_ofstream_char_is_open(const basic_ofstream_char *this)
10029 TRACE("(%p)\n", this);
10030 return basic_filebuf_char_is_open(&this->filebuf);
10033 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
10034 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
10035 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open, 16)
10036 void __thiscall basic_ofstream_char_open(basic_ofstream_char *this,
10037 const char *name, int mode, int prot)
10039 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
10041 if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_out, prot)) {
10042 basic_ios_char *basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10043 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10047 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
10048 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
10049 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open_old, 12)
10050 void __thiscall basic_ofstream_char_open_old(basic_ofstream_char *this,
10051 const char *name, unsigned int mode)
10053 basic_ofstream_char_open(this, name, mode, _SH_DENYNO);
10056 /* ?rdbuf@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10057 /* ?rdbuf@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10058 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_rdbuf, 4)
10059 basic_filebuf_char* __thiscall basic_ofstream_char_rdbuf(const basic_ofstream_char *this)
10061 TRACE("(%p)\n", this);
10062 return (basic_filebuf_char*)&this->filebuf;
10065 static inline basic_ios_wchar* basic_ofstream_wchar_to_basic_ios(basic_ofstream_wchar *ptr)
10067 return (basic_ios_wchar*)((char*)ptr+basic_ofstream_wchar_vbtable[1]);
10070 static inline basic_ofstream_wchar* basic_ofstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
10072 return (basic_ofstream_wchar*)((char*)ptr-basic_ofstream_wchar_vbtable[1]);
10075 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
10076 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
10077 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor, 8)
10078 basic_ofstream_wchar* __thiscall basic_ofstream_wchar_ctor(basic_ofstream_wchar *this, MSVCP_bool virt_init)
10080 basic_ios_wchar *basic_ios;
10082 TRACE("(%p %d)\n", this, virt_init);
10085 this->base.vbtable = basic_ofstream_wchar_vbtable;
10086 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10087 basic_ios_wchar_ctor(basic_ios);
10089 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10092 basic_filebuf_wchar_ctor(&this->filebuf);
10093 basic_ostream_wchar_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10094 basic_ios->base.vtable = &MSVCP_basic_ofstream_wchar_vtable;
10098 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
10099 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
10100 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor, 8)
10101 basic_ofstream_wchar* __thiscall basic_ofstream_short_ctor(basic_ofstream_wchar *this, MSVCP_bool virt_init)
10103 basic_ofstream_wchar_ctor(this, virt_init);
10104 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ofstream_short_vtable;
10108 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
10109 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10110 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor_file, 12)
10111 basic_ofstream_wchar* __thiscall basic_ofstream_wchar_ctor_file(
10112 basic_ofstream_wchar *this, FILE *file, MSVCP_bool virt_init)
10114 basic_ios_wchar *basic_ios;
10116 TRACE("(%p %p %d)\n", this, file, virt_init);
10119 this->base.vbtable = basic_ofstream_wchar_vbtable;
10120 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10121 basic_ios_wchar_ctor(basic_ios);
10123 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10126 basic_filebuf_wchar_ctor_file(&this->filebuf, file);
10127 basic_ostream_wchar_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10128 basic_ios->base.vtable = &MSVCP_basic_ofstream_wchar_vtable;
10132 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
10133 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10134 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor_file, 12)
10135 basic_ofstream_wchar* __thiscall basic_ofstream_short_ctor_file(
10136 basic_ofstream_wchar *this, FILE *file, MSVCP_bool virt_init)
10138 basic_ofstream_wchar_ctor_file(this, file, virt_init);
10139 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ofstream_short_vtable;
10143 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@PBDHH@Z */
10144 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBDHH@Z */
10145 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor_name, 20)
10146 basic_ofstream_wchar* __thiscall basic_ofstream_wchar_ctor_name(basic_ofstream_wchar *this,
10147 const char *name, int mode, int prot, MSVCP_bool virt_init)
10149 TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
10151 basic_ofstream_wchar_ctor(this, virt_init);
10153 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_out, prot)) {
10154 basic_ios_wchar *basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10155 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10160 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PBDHH@Z */
10161 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDHH@Z */
10162 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor_name, 20)
10163 basic_ofstream_wchar* __thiscall basic_ofstream_short_ctor_name(basic_ofstream_wchar *this,
10164 const char *name, int mode, int prot, MSVCP_bool virt_init)
10166 basic_ofstream_wchar_ctor_name(this, name, mode, prot, virt_init);
10167 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ofstream_short_vtable;
10171 /* ??1?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
10172 /* ??1?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
10173 /* ??1?$basic_ofstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
10174 /* ??1?$basic_ofstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
10175 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_dtor, 4)
10176 void __thiscall basic_ofstream_wchar_dtor(basic_ios_wchar *base)
10178 basic_ofstream_wchar *this = basic_ofstream_wchar_from_basic_ios(base);
10180 TRACE("(%p)\n", this);
10182 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base));
10183 basic_filebuf_wchar_dtor(&this->filebuf);
10186 /* ??_D?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10187 /* ??_D?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10188 /* ??_D?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10189 /* ??_D?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10190 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_vbase_dtor, 4)
10191 void __thiscall basic_ofstream_wchar_vbase_dtor(basic_ofstream_wchar *this)
10193 TRACE("(%p)\n", this);
10195 basic_ofstream_wchar_dtor(basic_ofstream_wchar_to_basic_ios(this));
10196 basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(&this->base));
10199 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_vector_dtor, 8)
10200 basic_ofstream_wchar* __thiscall basic_ofstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
10202 basic_ofstream_wchar *this = basic_ofstream_wchar_from_basic_ios(base);
10204 TRACE("(%p %x)\n", this, flags);
10207 /* we have an array, with the number of elements stored before the first object */
10208 INT_PTR i, *ptr = (INT_PTR *)this-1;
10210 for(i=*ptr-1; i>=0; i--)
10211 basic_ofstream_wchar_vbase_dtor(this+i);
10212 MSVCRT_operator_delete(ptr);
10214 basic_ofstream_wchar_vbase_dtor(this);
10216 MSVCRT_operator_delete(this);
10222 /* ?close@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10223 /* ?close@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10224 /* ?close@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10225 /* ?close@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10226 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_close, 4)
10227 void __thiscall basic_ofstream_wchar_close(basic_ofstream_wchar *this)
10229 TRACE("(%p)\n", this);
10231 if(!basic_filebuf_wchar_close(&this->filebuf)) {
10232 basic_ios_wchar *basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10233 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10237 /* ?is_open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
10238 /* ?is_open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
10239 /* ?is_open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
10240 /* ?is_open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
10241 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_is_open, 4)
10242 MSVCP_bool __thiscall basic_ofstream_wchar_is_open(const basic_ofstream_wchar *this)
10244 TRACE("(%p)\n", this);
10245 return basic_filebuf_wchar_is_open(&this->filebuf);
10248 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDHH@Z */
10249 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDHH@Z */
10250 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBDHH@Z */
10251 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDHH@Z */
10252 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_open, 16)
10253 void __thiscall basic_ofstream_wchar_open(basic_ofstream_wchar *this,
10254 const char *name, int mode, int prot)
10256 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
10258 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_out, prot)) {
10259 basic_ios_wchar *basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10260 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10264 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDI@Z */
10265 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDI@Z */
10266 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBDI@Z */
10267 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDI@Z */
10268 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_open_old, 12)
10269 void __thiscall basic_ofstream_wchar_open_old(basic_ofstream_wchar *this,
10270 const char *name, unsigned int mode)
10272 basic_ofstream_wchar_open(this, name, mode, _SH_DENYNO);
10275 /* ?rdbuf@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10276 /* ?rdbuf@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10277 /* ?rdbuf@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10278 /* ?rdbuf@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10279 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_rdbuf, 4)
10280 basic_filebuf_wchar* __thiscall basic_ofstream_wchar_rdbuf(const basic_ofstream_wchar *this)
10282 TRACE("(%p)\n", this);
10283 return (basic_filebuf_wchar*)&this->filebuf;
10286 static inline basic_ios_char* basic_ifstream_char_to_basic_ios(basic_ifstream_char *ptr)
10288 return (basic_ios_char*)((char*)ptr+basic_ifstream_char_vbtable[1]);
10291 static inline basic_ifstream_char* basic_ifstream_char_from_basic_ios(basic_ios_char *ptr)
10293 return (basic_ifstream_char*)((char*)ptr-basic_ifstream_char_vbtable[1]);
10296 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
10297 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
10298 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor, 8)
10299 basic_ifstream_char* __thiscall basic_ifstream_char_ctor(basic_ifstream_char *this, MSVCP_bool virt_init)
10301 basic_ios_char *basic_ios;
10303 TRACE("(%p %d)\n", this, virt_init);
10306 this->base.vbtable = basic_ifstream_char_vbtable;
10307 basic_ios = basic_istream_char_get_basic_ios(&this->base);
10308 basic_ios_char_ctor(basic_ios);
10310 basic_ios = basic_istream_char_get_basic_ios(&this->base);
10313 basic_filebuf_char_ctor(&this->filebuf);
10314 basic_istream_char_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10315 basic_ios->base.vtable = &MSVCP_basic_ifstream_char_vtable;
10319 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
10320 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10321 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_file, 12)
10322 basic_ifstream_char* __thiscall basic_ifstream_char_ctor_file(
10323 basic_ifstream_char *this, FILE *file, MSVCP_bool virt_init)
10325 basic_ios_char *basic_ios;
10327 TRACE("(%p %p %d)\n", this, file, virt_init);
10330 this->base.vbtable = basic_ifstream_char_vbtable;
10331 basic_ios = basic_istream_char_get_basic_ios(&this->base);
10332 basic_ios_char_ctor(basic_ios);
10334 basic_ios = basic_istream_char_get_basic_ios(&this->base);
10337 basic_filebuf_char_ctor_file(&this->filebuf, file);
10338 basic_istream_char_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10339 basic_ios->base.vtable = &MSVCP_basic_ifstream_char_vtable;
10343 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
10344 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
10345 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_name, 20)
10346 basic_ifstream_char* __thiscall basic_ifstream_char_ctor_name(basic_ifstream_char *this,
10347 const char *name, int mode, int prot, MSVCP_bool virt_init)
10349 TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
10351 basic_ifstream_char_ctor(this, virt_init);
10353 if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_in, prot)) {
10354 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base);
10355 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10360 /* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
10361 /* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
10362 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_dtor, 4)
10363 void __thiscall basic_ifstream_char_dtor(basic_ios_char *base)
10365 basic_ifstream_char *this = basic_ifstream_char_from_basic_ios(base);
10367 TRACE("(%p)\n", this);
10369 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base));
10370 basic_filebuf_char_dtor(&this->filebuf);
10373 /* ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10374 /* ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10375 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_vbase_dtor, 4)
10376 void __thiscall basic_ifstream_char_vbase_dtor(basic_ifstream_char *this)
10378 TRACE("(%p)\n", this);
10380 basic_ifstream_char_dtor(basic_ifstream_char_to_basic_ios(this));
10381 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base));
10384 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_vector_dtor, 8)
10385 basic_ifstream_char* __thiscall basic_ifstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
10387 basic_ifstream_char *this = basic_ifstream_char_from_basic_ios(base);
10389 TRACE("(%p %x)\n", this, flags);
10392 /* we have an array, with the number of elements stored before the first object */
10393 INT_PTR i, *ptr = (INT_PTR *)this-1;
10395 for(i=*ptr-1; i>=0; i--)
10396 basic_ifstream_char_vbase_dtor(this+i);
10397 MSVCRT_operator_delete(ptr);
10399 basic_ifstream_char_vbase_dtor(this);
10401 MSVCRT_operator_delete(this);
10407 /* ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10408 /* ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10409 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_close, 4)
10410 void __thiscall basic_ifstream_char_close(basic_ifstream_char *this)
10412 TRACE("(%p)\n", this);
10414 if(!basic_filebuf_char_close(&this->filebuf)) {
10415 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base);
10416 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10420 /* ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
10421 /* ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
10422 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_is_open, 4)
10423 MSVCP_bool __thiscall basic_ifstream_char_is_open(const basic_ifstream_char *this)
10425 TRACE("(%p)\n", this);
10426 return basic_filebuf_char_is_open(&this->filebuf);
10429 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
10430 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
10431 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open, 16)
10432 void __thiscall basic_ifstream_char_open(basic_ifstream_char *this,
10433 const char *name, int mode, int prot)
10435 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
10437 if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_in, prot)) {
10438 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base);
10439 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10443 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
10444 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
10445 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open_old, 12)
10446 void __thiscall basic_ifstream_char_open_old(basic_ifstream_char *this,
10447 const char *name, unsigned int mode)
10449 basic_ifstream_char_open(this, name, mode, _SH_DENYNO);
10452 /* ?rdbuf@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10453 /* ?rdbuf@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10454 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_rdbuf, 4)
10455 basic_filebuf_char* __thiscall basic_ifstream_char_rdbuf(const basic_ifstream_char *this)
10457 TRACE("(%p)\n", this);
10458 return (basic_filebuf_char*)&this->filebuf;
10461 static inline basic_ios_wchar* basic_ifstream_wchar_to_basic_ios(basic_ifstream_wchar *ptr)
10463 return (basic_ios_wchar*)((char*)ptr+basic_ifstream_wchar_vbtable[1]);
10466 static inline basic_ifstream_wchar* basic_ifstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
10468 return (basic_ifstream_wchar*)((char*)ptr-basic_ifstream_wchar_vbtable[1]);
10471 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
10472 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
10473 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor, 8)
10474 basic_ifstream_wchar* __thiscall basic_ifstream_wchar_ctor(basic_ifstream_wchar *this, MSVCP_bool virt_init)
10476 basic_ios_wchar *basic_ios;
10478 TRACE("(%p %d)\n", this, virt_init);
10481 this->base.vbtable = basic_ifstream_wchar_vbtable;
10482 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10483 basic_ios_wchar_ctor(basic_ios);
10485 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10488 basic_filebuf_wchar_ctor(&this->filebuf);
10489 basic_istream_wchar_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10490 basic_ios->base.vtable = &MSVCP_basic_ifstream_wchar_vtable;
10494 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
10495 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
10496 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor, 8)
10497 basic_ifstream_wchar* __thiscall basic_ifstream_short_ctor(basic_ifstream_wchar *this, MSVCP_bool virt_init)
10499 basic_ifstream_wchar_ctor(this, virt_init);
10500 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ifstream_short_vtable;
10504 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
10505 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10506 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor_file, 12)
10507 basic_ifstream_wchar* __thiscall basic_ifstream_wchar_ctor_file(
10508 basic_ifstream_wchar *this, FILE *file, MSVCP_bool virt_init)
10510 basic_ios_wchar *basic_ios;
10512 TRACE("(%p %p %d)\n", this, file, virt_init);
10515 this->base.vbtable = basic_ifstream_wchar_vbtable;
10516 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10517 basic_ios_wchar_ctor(basic_ios);
10519 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10522 basic_filebuf_wchar_ctor_file(&this->filebuf, file);
10523 basic_istream_wchar_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10524 basic_ios->base.vtable = &MSVCP_basic_ifstream_wchar_vtable;
10528 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
10529 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10530 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor_file, 12)
10531 basic_ifstream_wchar* __thiscall basic_ifstream_short_ctor_file(
10532 basic_ifstream_wchar *this, FILE *file, MSVCP_bool virt_init)
10534 basic_ifstream_wchar_ctor_file(this, file, virt_init);
10535 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ifstream_short_vtable;
10539 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@PBDHH@Z */
10540 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBDHH@Z */
10541 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor_name, 20)
10542 basic_ifstream_wchar* __thiscall basic_ifstream_wchar_ctor_name(basic_ifstream_wchar *this,
10543 const char *name, int mode, int prot, MSVCP_bool virt_init)
10545 TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
10547 basic_ifstream_wchar_ctor(this, virt_init);
10549 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_in, prot)) {
10550 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10551 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10556 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PBDHH@Z */
10557 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDHH@Z */
10558 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor_name, 20)
10559 basic_ifstream_wchar* __thiscall basic_ifstream_short_ctor_name(basic_ifstream_wchar *this,
10560 const char *name, int mode, int prot, MSVCP_bool virt_init)
10562 basic_ifstream_wchar_ctor_name(this, name, mode, prot, virt_init);
10563 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ifstream_short_vtable;
10567 /* ??1?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
10568 /* ??1?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
10569 /* ??1?$basic_ifstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
10570 /* ??1?$basic_ifstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
10571 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_dtor, 4)
10572 void __thiscall basic_ifstream_wchar_dtor(basic_ios_wchar *base)
10574 basic_ifstream_wchar *this = basic_ifstream_wchar_from_basic_ios(base);
10576 TRACE("(%p)\n", this);
10578 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base));
10579 basic_filebuf_wchar_dtor(&this->filebuf);
10582 /* ??_D?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10583 /* ??_D?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10584 /* ??_D?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10585 /* ??_D?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10586 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_vbase_dtor, 4)
10587 void __thiscall basic_ifstream_wchar_vbase_dtor(basic_ifstream_wchar *this)
10589 TRACE("(%p)\n", this);
10591 basic_ifstream_wchar_dtor(basic_ifstream_wchar_to_basic_ios(this));
10592 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base));
10595 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_vector_dtor, 8)
10596 basic_ifstream_wchar* __thiscall basic_ifstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
10598 basic_ifstream_wchar *this = basic_ifstream_wchar_from_basic_ios(base);
10600 TRACE("(%p %x)\n", this, flags);
10603 /* we have an array, with the number of elements stored before the first object */
10604 INT_PTR i, *ptr = (INT_PTR *)this-1;
10606 for(i=*ptr-1; i>=0; i--)
10607 basic_ifstream_wchar_vbase_dtor(this+i);
10608 MSVCRT_operator_delete(ptr);
10610 basic_ifstream_wchar_vbase_dtor(this);
10612 MSVCRT_operator_delete(this);
10618 /* ?close@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10619 /* ?close@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10620 /* ?close@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10621 /* ?close@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10622 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_close, 4)
10623 void __thiscall basic_ifstream_wchar_close(basic_ifstream_wchar *this)
10625 TRACE("(%p)\n", this);
10627 if(!basic_filebuf_wchar_close(&this->filebuf)) {
10628 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10629 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10633 /* ?is_open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
10634 /* ?is_open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
10635 /* ?is_open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
10636 /* ?is_open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
10637 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_is_open, 4)
10638 MSVCP_bool __thiscall basic_ifstream_wchar_is_open(const basic_ifstream_wchar *this)
10640 TRACE("(%p)\n", this);
10641 return basic_filebuf_wchar_is_open(&this->filebuf);
10644 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDHH@Z */
10645 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDHH@Z */
10646 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBDHH@Z */
10647 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDHH@Z */
10648 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_open, 16)
10649 void __thiscall basic_ifstream_wchar_open(basic_ifstream_wchar *this,
10650 const char *name, int mode, int prot)
10652 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
10654 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_in, prot)) {
10655 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10656 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10660 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDI@Z */
10661 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDI@Z */
10662 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBDI@Z */
10663 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDI@Z */
10664 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_open_old, 12)
10665 void __thiscall basic_ifstream_wchar_open_old(basic_ifstream_wchar *this,
10666 const char *name, unsigned int mode)
10668 basic_ifstream_wchar_open(this, name, mode, _SH_DENYNO);
10671 /* ?rdbuf@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10672 /* ?rdbuf@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10673 /* ?rdbuf@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10674 /* ?rdbuf@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10675 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_rdbuf, 4)
10676 basic_filebuf_wchar* __thiscall basic_ifstream_wchar_rdbuf(const basic_ifstream_wchar *this)
10678 TRACE("(%p)\n", this);
10679 return (basic_filebuf_wchar*)&this->filebuf;
10682 static inline basic_ios_char* basic_fstream_char_to_basic_ios(basic_fstream_char *ptr)
10684 return (basic_ios_char*)((char*)ptr+basic_fstream_char_vbtable1[1]);
10687 static inline basic_fstream_char* basic_fstream_char_from_basic_ios(basic_ios_char *ptr)
10689 return (basic_fstream_char*)((char*)ptr-basic_fstream_char_vbtable1[1]);
10692 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
10693 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
10694 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor, 8)
10695 basic_fstream_char* __thiscall basic_fstream_char_ctor(basic_fstream_char *this, MSVCP_bool virt_init)
10697 basic_ios_char *basic_ios;
10699 TRACE("(%p %d)\n", this, virt_init);
10702 this->base.base1.vbtable = basic_fstream_char_vbtable1;
10703 this->base.base2.vbtable = basic_fstream_char_vbtable2;
10704 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10705 basic_ios_char_ctor(basic_ios);
10707 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10710 basic_filebuf_char_ctor(&this->filebuf);
10711 basic_iostream_char_ctor(&this->base, &this->filebuf.base, FALSE);
10712 basic_ios->base.vtable = &MSVCP_basic_fstream_char_vtable;
10716 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
10717 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10718 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_file, 12)
10719 basic_fstream_char* __thiscall basic_fstream_char_ctor_file(basic_fstream_char *this,
10720 FILE *file, MSVCP_bool virt_init)
10722 basic_ios_char *basic_ios;
10724 TRACE("(%p %p %d)\n", this, file, virt_init);
10727 this->base.base1.vbtable = basic_fstream_char_vbtable1;
10728 this->base.base2.vbtable = basic_fstream_char_vbtable2;
10729 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10730 basic_ios_char_ctor(basic_ios);
10732 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10735 basic_filebuf_char_ctor_file(&this->filebuf, file);
10736 basic_iostream_char_ctor(&this->base, &this->filebuf.base, FALSE);
10737 basic_ios->base.vtable = &MSVCP_basic_fstream_char_vtable;
10741 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
10742 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
10743 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_name, 20)
10744 basic_fstream_char* __thiscall basic_fstream_char_ctor_name(basic_fstream_char *this,
10745 const char *name, int mode, int prot, MSVCP_bool virt_init)
10747 TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
10749 basic_fstream_char_ctor(this, virt_init);
10751 if(!basic_filebuf_char_open(&this->filebuf, name, mode, prot)) {
10752 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10753 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10758 /* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
10759 /* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
10760 DEFINE_THISCALL_WRAPPER(basic_fstream_char_dtor, 4)
10761 void __thiscall basic_fstream_char_dtor(basic_ios_char *base)
10763 basic_fstream_char *this = basic_fstream_char_from_basic_ios(base);
10765 TRACE("(%p)\n", this);
10767 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base));
10768 basic_filebuf_char_dtor(&this->filebuf);
10771 /* ??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10772 /* ??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10773 DEFINE_THISCALL_WRAPPER(basic_fstream_char_vbase_dtor, 4)
10774 void __thiscall basic_fstream_char_vbase_dtor(basic_fstream_char *this)
10776 TRACE("(%p)\n", this);
10778 basic_fstream_char_dtor(basic_fstream_char_to_basic_ios(this));
10779 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base.base1));
10782 DEFINE_THISCALL_WRAPPER(basic_fstream_char_vector_dtor, 8)
10783 basic_fstream_char* __thiscall basic_fstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
10785 basic_fstream_char *this = basic_fstream_char_from_basic_ios(base);
10787 TRACE("(%p %x)\n", this, flags);
10790 /* we have an array, with the number of elements stored before the first object */
10791 INT_PTR i, *ptr = (INT_PTR *)this-1;
10793 for(i=*ptr-1; i>=0; i--)
10794 basic_fstream_char_vbase_dtor(this+i);
10795 MSVCRT_operator_delete(ptr);
10797 basic_fstream_char_vbase_dtor(this);
10799 MSVCRT_operator_delete(this);
10805 /* ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10806 /* ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10807 DEFINE_THISCALL_WRAPPER(basic_fstream_char_close, 4)
10808 void __thiscall basic_fstream_char_close(basic_fstream_char *this)
10810 TRACE("(%p)\n", this);
10812 if(!basic_filebuf_char_close(&this->filebuf)) {
10813 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10814 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10818 /* ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
10819 /* ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
10820 DEFINE_THISCALL_WRAPPER(basic_fstream_char_is_open, 4)
10821 MSVCP_bool __thiscall basic_fstream_char_is_open(const basic_fstream_char *this)
10823 TRACE("(%p)\n", this);
10824 return basic_filebuf_char_is_open(&this->filebuf);
10827 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
10828 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
10829 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open, 16)
10830 void __thiscall basic_fstream_char_open(basic_fstream_char *this,
10831 const char *name, int mode, int prot)
10833 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
10835 if(!basic_filebuf_char_open(&this->filebuf, name, mode, prot)) {
10836 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10837 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10841 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
10842 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
10843 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open_old, 12)
10844 void __thiscall basic_fstream_char_open_old(basic_fstream_char *this,
10845 const char *name, unsigned int mode)
10847 basic_fstream_char_open(this, name, mode, _SH_DENYNO);
10850 /* ?rdbuf@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10851 /* ?rdbuf@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10852 DEFINE_THISCALL_WRAPPER(basic_fstream_char_rdbuf, 4)
10853 basic_filebuf_char* __thiscall basic_fstream_char_rdbuf(const basic_fstream_char *this)
10855 TRACE("(%p)\n", this);
10856 return (basic_filebuf_char*)&this->filebuf;
10859 static inline basic_ios_wchar* basic_fstream_wchar_to_basic_ios(basic_fstream_wchar *ptr)
10861 return (basic_ios_wchar*)((char*)ptr+basic_fstream_wchar_vbtable1[1]);
10864 static inline basic_fstream_wchar* basic_fstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
10866 return (basic_fstream_wchar*)((char*)ptr-basic_fstream_wchar_vbtable1[1]);
10869 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
10870 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
10871 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor, 8)
10872 basic_fstream_wchar* __thiscall basic_fstream_wchar_ctor(basic_fstream_wchar *this, MSVCP_bool virt_init)
10874 basic_ios_wchar *basic_ios;
10876 TRACE("(%p %d)\n", this, virt_init);
10879 this->base.base1.vbtable = basic_fstream_wchar_vbtable1;
10880 this->base.base2.vbtable = basic_fstream_wchar_vbtable2;
10881 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
10882 basic_ios_wchar_ctor(basic_ios);
10884 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
10887 basic_filebuf_wchar_ctor(&this->filebuf);
10888 basic_iostream_wchar_ctor(&this->base, &this->filebuf.base, FALSE);
10889 basic_ios->base.vtable = &MSVCP_basic_fstream_wchar_vtable;
10893 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
10894 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
10895 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor, 8)
10896 basic_fstream_wchar* __thiscall basic_fstream_short_ctor(basic_fstream_wchar *this, MSVCP_bool virt_init)
10898 basic_fstream_wchar_ctor(this, virt_init);
10899 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_fstream_short_vtable;
10903 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
10904 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10905 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor_file, 12)
10906 basic_fstream_wchar* __thiscall basic_fstream_wchar_ctor_file(basic_fstream_wchar *this,
10907 FILE *file, MSVCP_bool virt_init)
10909 basic_ios_wchar *basic_ios;
10911 TRACE("(%p %p %d)\n", this, file, virt_init);
10914 this->base.base1.vbtable = basic_fstream_wchar_vbtable1;
10915 this->base.base2.vbtable = basic_fstream_wchar_vbtable2;
10916 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
10917 basic_ios_wchar_ctor(basic_ios);
10919 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
10922 basic_filebuf_wchar_ctor_file(&this->filebuf, file);
10923 basic_iostream_wchar_ctor(&this->base, &this->filebuf.base, FALSE);
10924 basic_ios->base.vtable = &MSVCP_basic_fstream_wchar_vtable;
10928 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
10929 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10930 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor_file, 12)
10931 basic_fstream_wchar* __thiscall basic_fstream_short_ctor_file(basic_fstream_wchar *this,
10932 FILE *file, MSVCP_bool virt_init)
10934 basic_fstream_wchar_ctor_file(this, file, virt_init);
10935 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_fstream_short_vtable;
10939 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PBGHH@Z */
10940 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBGHH@Z */
10941 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PB_WHH@Z */
10942 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEB_WHH@Z */
10943 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor_name_wchar, 20)
10944 basic_fstream_wchar* __thiscall basic_fstream_wchar_ctor_name_wchar(basic_fstream_wchar *this,
10945 const wchar_t *name, int mode, int prot, MSVCP_bool virt_init)
10947 TRACE("(%p %s %d %d %d)\n", this, debugstr_w(name), mode, prot, virt_init);
10949 basic_fstream_wchar_ctor(this, virt_init);
10951 if(!basic_filebuf_wchar_open_wchar(&this->filebuf, name, mode, prot)) {
10952 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
10953 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10958 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PBGHH@Z */
10959 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEBGHH@Z */
10960 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PB_WHH@Z */
10961 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEB_WHH@Z */
10962 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor_name_wchar, 20)
10963 basic_fstream_wchar* __thiscall basic_fstream_short_ctor_name_wchar(basic_fstream_wchar *this,
10964 const wchar_t *name, int mode, int prot, MSVCP_bool virt_init)
10966 basic_fstream_wchar_ctor_name_wchar(this, name, mode, prot, virt_init);
10967 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_fstream_short_vtable;
10971 /* ??1?$basic_fstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
10972 /* ??1?$basic_fstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
10973 /* ??1?$basic_fstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
10974 /* ??1?$basic_fstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
10975 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_dtor, 4)
10976 void __thiscall basic_fstream_wchar_dtor(basic_ios_wchar *base)
10978 basic_fstream_wchar *this = basic_fstream_wchar_from_basic_ios(base);
10980 TRACE("(%p)\n", this);
10982 basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(&this->base));
10983 basic_filebuf_wchar_dtor(&this->filebuf);
10986 /* ??_D?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10987 /* ??_D?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10988 /* ??_D?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10989 /* ??_D?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10990 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_vbase_dtor, 4)
10991 void __thiscall basic_fstream_wchar_vbase_dtor(basic_fstream_wchar *this)
10993 TRACE("(%p)\n", this);
10995 basic_fstream_wchar_dtor(basic_fstream_wchar_to_basic_ios(this));
10996 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base.base1));
10999 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_vector_dtor, 8)
11000 basic_fstream_wchar* __thiscall basic_fstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
11002 basic_fstream_wchar *this = basic_fstream_wchar_from_basic_ios(base);
11004 TRACE("(%p %x)\n", this, flags);
11007 /* we have an array, with the number of elements stored before the first object */
11008 INT_PTR i, *ptr = (INT_PTR *)this-1;
11010 for(i=*ptr-1; i>=0; i--)
11011 basic_fstream_wchar_vbase_dtor(this+i);
11012 MSVCRT_operator_delete(ptr);
11014 basic_fstream_wchar_vbase_dtor(this);
11016 MSVCRT_operator_delete(this);
11022 /* ?close@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
11023 /* ?close@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
11024 /* ?close@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
11025 /* ?close@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
11026 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_close, 4)
11027 void __thiscall basic_fstream_wchar_close(basic_fstream_wchar *this)
11029 TRACE("(%p)\n", this);
11031 if(!basic_filebuf_wchar_close(&this->filebuf)) {
11032 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11033 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
11037 /* ?is_open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
11038 /* ?is_open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
11039 /* ?is_open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
11040 /* ?is_open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
11041 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_is_open, 4)
11042 MSVCP_bool __thiscall basic_fstream_wchar_is_open(const basic_fstream_wchar *this)
11044 TRACE("(%p)\n", this);
11045 return basic_filebuf_wchar_is_open(&this->filebuf);
11048 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDHH@Z */
11049 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDHH@Z */
11050 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPBDHH@Z */
11051 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDHH@Z */
11052 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_open, 16)
11053 void __thiscall basic_fstream_wchar_open(basic_fstream_wchar *this,
11054 const char *name, int mode, int prot)
11056 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
11058 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode, prot)) {
11059 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11060 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
11064 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDI@Z */
11065 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDI@Z */
11066 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPBDI@Z */
11067 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDI@Z */
11068 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_open_old, 12)
11069 void __thiscall basic_fstream_wchar_open_old(basic_fstream_wchar *this,
11070 const char *name, unsigned int mode)
11072 basic_fstream_wchar_open(this, name, mode, _SH_DENYNO);
11075 /* ?rdbuf@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
11076 /* ?rdbuf@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
11077 /* ?rdbuf@?$basic_fstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
11078 /* ?rdbuf@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
11079 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_rdbuf, 4)
11080 basic_filebuf_wchar* __thiscall basic_fstream_wchar_rdbuf(const basic_fstream_wchar *this)
11082 TRACE("(%p)\n", this);
11083 return (basic_filebuf_wchar*)&this->filebuf;
11086 static inline basic_ios_char* basic_ostringstream_char_to_basic_ios(basic_ostringstream_char *ptr)
11088 return (basic_ios_char*)((char*)ptr+basic_ostringstream_char_vbtable[1]);
11091 static inline basic_ostringstream_char* basic_ostringstream_char_from_basic_ios(basic_ios_char *ptr)
11093 return (basic_ostringstream_char*)((char*)ptr-basic_ostringstream_char_vbtable[1]);
11096 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
11097 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
11098 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_str, 16)
11099 basic_ostringstream_char* __thiscall basic_ostringstream_char_ctor_str(basic_ostringstream_char *this,
11100 const basic_string_char *str, int mode, MSVCP_bool virt_init)
11102 basic_ios_char *basic_ios;
11104 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11107 this->base.vbtable = basic_ostringstream_char_vbtable;
11108 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
11109 basic_ios_char_ctor(basic_ios);
11111 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
11114 basic_stringbuf_char_ctor_str(&this->strbuf, str, mode|OPENMODE_out);
11115 basic_ostream_char_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11116 basic_ios->base.vtable = &MSVCP_basic_ostringstream_char_vtable;
11120 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
11121 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
11122 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_mode, 12)
11123 basic_ostringstream_char* __thiscall basic_ostringstream_char_ctor_mode(
11124 basic_ostringstream_char *this, int mode, MSVCP_bool virt_init)
11126 basic_ios_char *basic_ios;
11128 TRACE("(%p %d %d)\n", this, mode, virt_init);
11131 this->base.vbtable = basic_ostringstream_char_vbtable;
11132 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
11133 basic_ios_char_ctor(basic_ios);
11135 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
11138 basic_stringbuf_char_ctor_mode(&this->strbuf, mode|OPENMODE_out);
11139 basic_ostream_char_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11140 basic_ios->base.vtable = &MSVCP_basic_ostringstream_char_vtable;
11144 /* ??_F?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11145 /* ??_F?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11146 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor, 8)
11147 basic_ostringstream_char* __thiscall basic_ostringstream_char_ctor(
11148 basic_ostringstream_char *this, MSVCP_bool virt_init)
11150 return basic_ostringstream_char_ctor_mode(this, 0, virt_init);
11153 /* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
11154 /* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
11155 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_dtor, 4)
11156 void __thiscall basic_ostringstream_char_dtor(basic_ios_char *base)
11158 basic_ostringstream_char *this = basic_ostringstream_char_from_basic_ios(base);
11160 TRACE("(%p)\n", this);
11162 basic_stringbuf_char_dtor(&this->strbuf);
11163 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base));
11166 /* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11167 /* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11168 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_vbase_dtor, 4)
11169 void __thiscall basic_ostringstream_char_vbase_dtor(basic_ostringstream_char *this)
11171 TRACE("(%p)\n", this);
11173 basic_ostringstream_char_dtor(basic_ostringstream_char_to_basic_ios(this));
11174 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base));
11177 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_vector_dtor, 8)
11178 basic_ostringstream_char* __thiscall basic_ostringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
11180 basic_ostringstream_char *this = basic_ostringstream_char_from_basic_ios(base);
11182 TRACE("(%p %x)\n", this, flags);
11185 /* we have an array, with the number of elements stored before the first object */
11186 INT_PTR i, *ptr = (INT_PTR *)this-1;
11188 for(i=*ptr-1; i>=0; i--)
11189 basic_ostringstream_char_vbase_dtor(this+i);
11190 MSVCRT_operator_delete(ptr);
11192 basic_ostringstream_char_vbase_dtor(this);
11194 MSVCRT_operator_delete(this);
11200 /* ?rdbuf@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
11201 /* ?rdbuf@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
11202 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_rdbuf, 4)
11203 basic_stringbuf_char* __thiscall basic_ostringstream_char_rdbuf(const basic_ostringstream_char *this)
11205 TRACE("(%p)\n", this);
11206 return (basic_stringbuf_char*)&this->strbuf;
11209 /* ?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
11210 /* ?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
11211 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_str_set, 8)
11212 void __thiscall basic_ostringstream_char_str_set(basic_ostringstream_char *this, const basic_string_char *str)
11214 TRACE("(%p %p)\n", this, str);
11215 basic_stringbuf_char_str_set(&this->strbuf, str);
11218 /* ?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
11219 /* ?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
11220 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_str_get, 8)
11221 basic_string_char* __thiscall basic_ostringstream_char_str_get(const basic_ostringstream_char *this, basic_string_char *ret)
11223 TRACE("(%p %p)\n", this, ret);
11224 return basic_stringbuf_char_str_get(&this->strbuf, ret);
11227 static inline basic_ios_wchar* basic_ostringstream_wchar_to_basic_ios(basic_ostringstream_wchar *ptr)
11229 return (basic_ios_wchar*)((char*)ptr+basic_ostringstream_wchar_vbtable[1]);
11232 static inline basic_ostringstream_wchar* basic_ostringstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
11234 return (basic_ostringstream_wchar*)((char*)ptr-basic_ostringstream_wchar_vbtable[1]);
11237 /* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
11238 /* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
11239 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor_str, 16)
11240 basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_ctor_str(basic_ostringstream_wchar *this,
11241 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
11243 basic_ios_wchar *basic_ios;
11245 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11248 this->base.vbtable = basic_ostringstream_wchar_vbtable;
11249 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
11250 basic_ios_wchar_ctor(basic_ios);
11252 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
11255 basic_stringbuf_wchar_ctor_str(&this->strbuf, str, mode|OPENMODE_out);
11256 basic_ostream_wchar_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11257 basic_ios->base.vtable = &MSVCP_basic_ostringstream_wchar_vtable;
11261 /* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
11262 /* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
11263 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor_str, 16)
11264 basic_ostringstream_wchar* __thiscall basic_ostringstream_short_ctor_str(basic_ostringstream_wchar *this,
11265 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
11267 basic_ostringstream_wchar_ctor_str(this, str, mode, virt_init);
11268 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ostringstream_short_vtable;
11272 /* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
11273 /* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
11274 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor_mode, 12)
11275 basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_ctor_mode(
11276 basic_ostringstream_wchar *this, int mode, MSVCP_bool virt_init)
11278 basic_ios_wchar *basic_ios;
11280 TRACE("(%p %d %d)\n", this, mode, virt_init);
11283 this->base.vbtable = basic_ostringstream_wchar_vbtable;
11284 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
11285 basic_ios_wchar_ctor(basic_ios);
11287 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
11290 basic_stringbuf_wchar_ctor_mode(&this->strbuf, mode|OPENMODE_out);
11291 basic_ostream_wchar_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11292 basic_ios->base.vtable = &MSVCP_basic_ostringstream_wchar_vtable;
11296 /* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
11297 /* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
11298 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor_mode, 12)
11299 basic_ostringstream_wchar* __thiscall basic_ostringstream_short_ctor_mode(
11300 basic_ostringstream_wchar *this, int mode, MSVCP_bool virt_init)
11302 basic_ostringstream_wchar_ctor_mode(this, mode, virt_init);
11303 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ostringstream_short_vtable;
11307 /* ??_F?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11308 /* ??_F?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11309 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor, 8)
11310 basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_ctor(
11311 basic_ostringstream_wchar *this, MSVCP_bool virt_init)
11313 return basic_ostringstream_wchar_ctor_mode(this, 0, virt_init);
11316 /* ??_F?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11317 /* ??_F?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11318 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor, 8)
11319 basic_ostringstream_wchar* __thiscall basic_ostringstream_short_ctor(
11320 basic_ostringstream_wchar *this, MSVCP_bool virt_init)
11322 return basic_ostringstream_short_ctor_mode(this, 0, virt_init);
11325 /* ??1?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
11326 /* ??1?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
11327 /* ??1?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
11328 /* ??1?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
11329 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_dtor, 4)
11330 void __thiscall basic_ostringstream_wchar_dtor(basic_ios_wchar *base)
11332 basic_ostringstream_wchar *this = basic_ostringstream_wchar_from_basic_ios(base);
11334 TRACE("(%p)\n", this);
11336 basic_stringbuf_wchar_dtor(&this->strbuf);
11337 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base));
11340 /* ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11341 /* ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11342 /* ??_D?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11343 /* ??_D?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11344 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_vbase_dtor, 4)
11345 void __thiscall basic_ostringstream_wchar_vbase_dtor(basic_ostringstream_wchar *this)
11347 TRACE("(%p)\n", this);
11349 basic_ostringstream_wchar_dtor(basic_ostringstream_wchar_to_basic_ios(this));
11350 basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(&this->base));
11353 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_vector_dtor, 8)
11354 basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
11356 basic_ostringstream_wchar *this = basic_ostringstream_wchar_from_basic_ios(base);
11358 TRACE("(%p %x)\n", this, flags);
11361 /* we have an array, with the number of elements stored before the first object */
11362 INT_PTR i, *ptr = (INT_PTR *)this-1;
11364 for(i=*ptr-1; i>=0; i--)
11365 basic_ostringstream_wchar_vbase_dtor(this+i);
11366 MSVCRT_operator_delete(ptr);
11368 basic_ostringstream_wchar_vbase_dtor(this);
11370 MSVCRT_operator_delete(this);
11376 /* ?rdbuf@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPAV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
11377 /* ?rdbuf@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEAV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
11378 /* ?rdbuf@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPAV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
11379 /* ?rdbuf@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEAV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
11380 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_rdbuf, 4)
11381 basic_stringbuf_wchar* __thiscall basic_ostringstream_wchar_rdbuf(const basic_ostringstream_wchar *this)
11383 TRACE("(%p)\n", this);
11384 return (basic_stringbuf_wchar*)&this->strbuf;
11387 /* ?str@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
11388 /* ?str@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
11389 /* ?str@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
11390 /* ?str@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
11391 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_str_set, 8)
11392 void __thiscall basic_ostringstream_wchar_str_set(basic_ostringstream_wchar *this, const basic_string_wchar *str)
11394 TRACE("(%p %p)\n", this, str);
11395 basic_stringbuf_wchar_str_set(&this->strbuf, str);
11398 /* ?str@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
11399 /* ?str@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
11400 /* ?str@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
11401 /* ?str@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
11402 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_str_get, 8)
11403 basic_string_wchar* __thiscall basic_ostringstream_wchar_str_get(const basic_ostringstream_wchar *this, basic_string_wchar *ret)
11405 TRACE("(%p %p)\n", this, ret);
11406 return basic_stringbuf_wchar_str_get(&this->strbuf, ret);
11409 static inline basic_ios_char* basic_istringstream_char_to_basic_ios(basic_istringstream_char *ptr)
11411 return (basic_ios_char*)((char*)ptr+basic_istringstream_char_vbtable[1]);
11414 static inline basic_istringstream_char* basic_istringstream_char_from_basic_ios(basic_ios_char *ptr)
11416 return (basic_istringstream_char*)((char*)ptr-basic_istringstream_char_vbtable[1]);
11419 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
11420 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
11421 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_str, 16)
11422 basic_istringstream_char* __thiscall basic_istringstream_char_ctor_str(basic_istringstream_char *this,
11423 const basic_string_char *str, int mode, MSVCP_bool virt_init)
11425 basic_ios_char *basic_ios;
11427 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11430 this->base.vbtable = basic_istringstream_char_vbtable;
11431 basic_ios = basic_istream_char_get_basic_ios(&this->base);
11432 basic_ios_char_ctor(basic_ios);
11434 basic_ios = basic_istream_char_get_basic_ios(&this->base);
11437 basic_stringbuf_char_ctor_str(&this->strbuf, str, mode|OPENMODE_in);
11438 basic_istream_char_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11439 basic_ios->base.vtable = &MSVCP_basic_istringstream_char_vtable;
11443 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
11444 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
11445 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_mode, 12)
11446 basic_istringstream_char* __thiscall basic_istringstream_char_ctor_mode(
11447 basic_istringstream_char *this, int mode, MSVCP_bool virt_init)
11449 basic_ios_char *basic_ios;
11451 TRACE("(%p %d %d)\n", this, mode, virt_init);
11454 this->base.vbtable = basic_istringstream_char_vbtable;
11455 basic_ios = basic_istream_char_get_basic_ios(&this->base);
11456 basic_ios_char_ctor(basic_ios);
11458 basic_ios = basic_istream_char_get_basic_ios(&this->base);
11461 basic_stringbuf_char_ctor_mode(&this->strbuf, mode|OPENMODE_in);
11462 basic_istream_char_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11463 basic_ios->base.vtable = &MSVCP_basic_istringstream_char_vtable;
11467 /* ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11468 /* ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11469 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor, 8)
11470 basic_istringstream_char* __thiscall basic_istringstream_char_ctor(
11471 basic_istringstream_char *this, MSVCP_bool virt_init)
11473 return basic_istringstream_char_ctor_mode(this, 0, virt_init);
11476 /* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
11477 /* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
11478 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_dtor, 4)
11479 void __thiscall basic_istringstream_char_dtor(basic_ios_char *base)
11481 basic_istringstream_char *this = basic_istringstream_char_from_basic_ios(base);
11483 TRACE("(%p)\n", this);
11485 basic_stringbuf_char_dtor(&this->strbuf);
11486 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base));
11489 /* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11490 /* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11491 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_vbase_dtor, 4)
11492 void __thiscall basic_istringstream_char_vbase_dtor(basic_istringstream_char *this)
11494 TRACE("(%p)\n", this);
11496 basic_istringstream_char_dtor(basic_istringstream_char_to_basic_ios(this));
11497 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base));
11500 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_vector_dtor, 8)
11501 basic_istringstream_char* __thiscall basic_istringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
11503 basic_istringstream_char *this = basic_istringstream_char_from_basic_ios(base);
11505 TRACE("(%p %x)\n", this, flags);
11508 /* we have an array, with the number of elements stored before the first object */
11509 INT_PTR i, *ptr = (INT_PTR *)this-1;
11511 for(i=*ptr-1; i>=0; i--)
11512 basic_istringstream_char_vbase_dtor(this+i);
11513 MSVCRT_operator_delete(ptr);
11515 basic_istringstream_char_vbase_dtor(this);
11517 MSVCRT_operator_delete(this);
11523 /* ?rdbuf@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
11524 /* ?rdbuf@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
11525 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_rdbuf, 4)
11526 basic_stringbuf_char* __thiscall basic_istringstream_char_rdbuf(const basic_istringstream_char *this)
11528 TRACE("(%p)\n", this);
11529 return (basic_stringbuf_char*)&this->strbuf;
11532 /* ?str@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
11533 /* ?str@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
11534 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_str_set, 8)
11535 void __thiscall basic_istringstream_char_str_set(basic_istringstream_char *this, const basic_string_char *str)
11537 TRACE("(%p %p)\n", this, str);
11538 basic_stringbuf_char_str_set(&this->strbuf, str);
11541 /* ?str@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
11542 /* ?str@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
11543 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_str_get, 8)
11544 basic_string_char* __thiscall basic_istringstream_char_str_get(const basic_istringstream_char *this, basic_string_char *ret)
11546 TRACE("(%p %p)\n", this, ret);
11547 return basic_stringbuf_char_str_get(&this->strbuf, ret);
11550 static inline basic_ios_wchar* basic_istringstream_wchar_to_basic_ios(basic_istringstream_wchar *ptr)
11552 return (basic_ios_wchar*)((char*)ptr+basic_istringstream_wchar_vbtable[1]);
11555 static inline basic_istringstream_wchar* basic_istringstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
11557 return (basic_istringstream_wchar*)((char*)ptr-basic_istringstream_wchar_vbtable[1]);
11560 /* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
11561 /* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
11562 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor_str, 16)
11563 basic_istringstream_wchar* __thiscall basic_istringstream_wchar_ctor_str(basic_istringstream_wchar *this,
11564 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
11566 basic_ios_wchar *basic_ios;
11568 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11571 this->base.vbtable = basic_istringstream_wchar_vbtable;
11572 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
11573 basic_ios_wchar_ctor(basic_ios);
11575 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
11578 basic_stringbuf_wchar_ctor_str(&this->strbuf, str, mode|OPENMODE_in);
11579 basic_istream_wchar_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11580 basic_ios->base.vtable = &MSVCP_basic_istringstream_wchar_vtable;
11584 /* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
11585 /* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
11586 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor_str, 16)
11587 basic_istringstream_wchar* __thiscall basic_istringstream_short_ctor_str(basic_istringstream_wchar *this,
11588 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
11590 basic_istringstream_wchar_ctor_str(this, str, mode, virt_init);
11591 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_istringstream_short_vtable;
11595 /* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
11596 /* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
11597 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor_mode, 12)
11598 basic_istringstream_wchar* __thiscall basic_istringstream_wchar_ctor_mode(
11599 basic_istringstream_wchar *this, int mode, MSVCP_bool virt_init)
11601 basic_ios_wchar *basic_ios;
11603 TRACE("(%p %d %d)\n", this, mode, virt_init);
11606 this->base.vbtable = basic_istringstream_wchar_vbtable;
11607 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
11608 basic_ios_wchar_ctor(basic_ios);
11610 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
11613 basic_stringbuf_wchar_ctor_mode(&this->strbuf, mode|OPENMODE_in);
11614 basic_istream_wchar_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11615 basic_ios->base.vtable = &MSVCP_basic_istringstream_wchar_vtable;
11619 /* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
11620 /* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
11621 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor_mode, 12)
11622 basic_istringstream_wchar* __thiscall basic_istringstream_short_ctor_mode(
11623 basic_istringstream_wchar *this, int mode, MSVCP_bool virt_init)
11625 basic_istringstream_wchar_ctor_mode(this, mode, virt_init);
11626 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_istringstream_short_vtable;
11630 /* ??_F?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11631 /* ??_F?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11632 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor, 8)
11633 basic_istringstream_wchar* __thiscall basic_istringstream_wchar_ctor(
11634 basic_istringstream_wchar *this, MSVCP_bool virt_init)
11636 return basic_istringstream_wchar_ctor_mode(this, 0, virt_init);
11639 /* ??_F?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11640 /* ??_F?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11641 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor, 8)
11642 basic_istringstream_wchar* __thiscall basic_istringstream_short_ctor(
11643 basic_istringstream_wchar *this, MSVCP_bool virt_init)
11645 return basic_istringstream_short_ctor_mode(this, 0, virt_init);
11648 /* ??1?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
11649 /* ??1?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
11650 /* ??1?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
11651 /* ??1?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
11652 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_dtor, 4)
11653 void __thiscall basic_istringstream_wchar_dtor(basic_ios_wchar *base)
11655 basic_istringstream_wchar *this = basic_istringstream_wchar_from_basic_ios(base);
11657 TRACE("(%p)\n", this);
11659 basic_stringbuf_wchar_dtor(&this->strbuf);
11660 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base));
11663 /* ??_D?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11664 /* ??_D?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11665 /* ??_D?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11666 /* ??_D?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11667 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_vbase_dtor, 4)
11668 void __thiscall basic_istringstream_wchar_vbase_dtor(basic_istringstream_wchar *this)
11670 TRACE("(%p)\n", this);
11672 basic_istringstream_wchar_dtor(basic_istringstream_wchar_to_basic_ios(this));
11673 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base));
11676 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_vector_dtor, 8)
11677 basic_istringstream_wchar* __thiscall basic_istringstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
11679 basic_istringstream_wchar *this = basic_istringstream_wchar_from_basic_ios(base);
11681 TRACE("(%p %x)\n", this, flags);
11684 /* we have an array, with the number of elements stored before the first object */
11685 INT_PTR i, *ptr = (INT_PTR *)this-1;
11687 for(i=*ptr-1; i>=0; i--)
11688 basic_istringstream_wchar_vbase_dtor(this+i);
11689 MSVCRT_operator_delete(ptr);
11691 basic_istringstream_wchar_vbase_dtor(this);
11693 MSVCRT_operator_delete(this);
11699 /* ?rdbuf@?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPAV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
11700 /* ?rdbuf@?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEAV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
11701 /* ?rdbuf@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPAV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
11702 /* ?rdbuf@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEAV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
11703 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_rdbuf, 4)
11704 basic_stringbuf_wchar* __thiscall basic_istringstream_wchar_rdbuf(const basic_istringstream_wchar *this)
11706 TRACE("(%p)\n", this);
11707 return (basic_stringbuf_wchar*)&this->strbuf;
11710 /* ?str@?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
11711 /* ?str@?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
11712 /* ?str@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
11713 /* ?str@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
11714 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_str_set, 8)
11715 void __thiscall basic_istringstream_wchar_str_set(basic_istringstream_wchar *this, const basic_string_wchar *str)
11717 TRACE("(%p %p)\n", this, str);
11718 basic_stringbuf_wchar_str_set(&this->strbuf, str);
11721 /* ?str@?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
11722 /* ?str@?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
11723 /* ?str@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
11724 /* ?str@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
11725 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_str_get, 8)
11726 basic_string_wchar* __thiscall basic_istringstream_wchar_str_get(const basic_istringstream_wchar *this, basic_string_wchar *ret)
11728 TRACE("(%p %p)\n", this, ret);
11729 return basic_stringbuf_wchar_str_get(&this->strbuf, ret);
11732 static inline basic_ios_char* basic_stringstream_char_to_basic_ios(basic_stringstream_char *ptr)
11734 return (basic_ios_char*)((char*)ptr+basic_stringstream_char_vbtable1[1]);
11737 static inline basic_stringstream_char* basic_stringstream_char_from_basic_ios(basic_ios_char *ptr)
11739 return (basic_stringstream_char*)((char*)ptr-basic_stringstream_char_vbtable1[1]);
11742 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
11743 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
11744 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_str, 16)
11745 basic_stringstream_char* __thiscall basic_stringstream_char_ctor_str(basic_stringstream_char *this,
11746 const basic_string_char *str, int mode, MSVCP_bool virt_init)
11748 basic_ios_char *basic_ios;
11750 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11753 this->base.base1.vbtable = basic_stringstream_char_vbtable1;
11754 this->base.base2.vbtable = basic_stringstream_char_vbtable2;
11755 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11756 basic_ios_char_ctor(basic_ios);
11758 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11761 basic_stringbuf_char_ctor_str(&this->strbuf, str, mode);
11762 basic_iostream_char_ctor(&this->base, &this->strbuf.base, FALSE);
11763 basic_ios->base.vtable = &MSVCP_basic_stringstream_char_vtable;
11767 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
11768 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
11769 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_mode, 12)
11770 basic_stringstream_char* __thiscall basic_stringstream_char_ctor_mode(
11771 basic_stringstream_char *this, int mode, MSVCP_bool virt_init)
11773 basic_ios_char *basic_ios;
11775 TRACE("(%p %d %d)\n", this, mode, virt_init);
11778 this->base.base1.vbtable = basic_stringstream_char_vbtable1;
11779 this->base.base2.vbtable = basic_stringstream_char_vbtable2;
11780 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11781 basic_ios_char_ctor(basic_ios);
11783 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11786 basic_stringbuf_char_ctor_mode(&this->strbuf, mode);
11787 basic_iostream_char_ctor(&this->base, &this->strbuf.base, FALSE);
11788 basic_ios->base.vtable = &MSVCP_basic_stringstream_char_vtable;
11792 /* ??_F?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11793 /* ??_F?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11794 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor, 8)
11795 basic_stringstream_char* __thiscall basic_stringstream_char_ctor(
11796 basic_stringstream_char *this, MSVCP_bool virt_init)
11798 return basic_stringstream_char_ctor_mode(
11799 this, OPENMODE_out|OPENMODE_in, virt_init);
11802 /* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
11803 /* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
11804 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_dtor, 4)
11805 void __thiscall basic_stringstream_char_dtor(basic_ios_char *base)
11807 basic_stringstream_char *this = basic_stringstream_char_from_basic_ios(base);
11809 TRACE("(%p)\n", this);
11811 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base));
11812 basic_stringbuf_char_dtor(&this->strbuf);
11815 /* ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11816 /* ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11817 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_vbase_dtor, 4)
11818 void __thiscall basic_stringstream_char_vbase_dtor(basic_stringstream_char *this)
11820 TRACE("(%p)\n", this);
11822 basic_stringstream_char_dtor(basic_stringstream_char_to_basic_ios(this));
11823 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base.base1));
11826 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_vector_dtor, 8)
11827 basic_stringstream_char* __thiscall basic_stringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
11829 basic_stringstream_char *this = basic_stringstream_char_from_basic_ios(base);
11831 TRACE("(%p %x)\n", this, flags);
11834 /* we have an array, with the number of elements stored before the first object */
11835 INT_PTR i, *ptr = (INT_PTR *)this-1;
11837 for(i=*ptr-1; i>=0; i--)
11838 basic_stringstream_char_vbase_dtor(this+i);
11839 MSVCRT_operator_delete(ptr);
11841 basic_stringstream_char_vbase_dtor(this);
11843 MSVCRT_operator_delete(this);
11849 /* ?rdbuf@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
11850 /* ?rdbuf@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
11851 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_rdbuf, 4)
11852 basic_stringbuf_char* __thiscall basic_stringstream_char_rdbuf(const basic_stringstream_char *this)
11854 TRACE("(%p)\n", this);
11855 return (basic_stringbuf_char*)&this->strbuf;
11858 /* ?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
11859 /* ?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
11860 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_str_set, 8)
11861 void __thiscall basic_stringstream_char_str_set(basic_stringstream_char *this, const basic_string_char *str)
11863 TRACE("(%p %p)\n", this, str);
11864 basic_stringbuf_char_str_set(&this->strbuf, str);
11867 /* ?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
11868 /* ?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
11869 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_str_get, 8)
11870 basic_string_char* __thiscall basic_stringstream_char_str_get(const basic_stringstream_char *this, basic_string_char *ret)
11872 TRACE("(%p %p)\n", this, ret);
11873 return basic_stringbuf_char_str_get(&this->strbuf, ret);
11876 static inline basic_ios_wchar* basic_stringstream_wchar_to_basic_ios(basic_stringstream_wchar *ptr)
11878 return (basic_ios_wchar*)((char*)ptr+basic_stringstream_wchar_vbtable1[1]);
11881 static inline basic_stringstream_wchar* basic_stringstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
11883 return (basic_stringstream_wchar*)((char*)ptr-basic_stringstream_wchar_vbtable1[1]);
11886 /* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
11887 /* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
11888 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor_str, 16)
11889 basic_stringstream_wchar* __thiscall basic_stringstream_wchar_ctor_str(basic_stringstream_wchar *this,
11890 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
11892 basic_ios_wchar *basic_ios;
11894 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11897 this->base.base1.vbtable = basic_stringstream_wchar_vbtable1;
11898 this->base.base2.vbtable = basic_stringstream_wchar_vbtable2;
11899 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11900 basic_ios_wchar_ctor(basic_ios);
11902 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11905 basic_stringbuf_wchar_ctor_str(&this->strbuf, str, mode);
11906 basic_iostream_wchar_ctor(&this->base, &this->strbuf.base, FALSE);
11907 basic_ios->base.vtable = &MSVCP_basic_stringstream_wchar_vtable;
11911 /* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
11912 /* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
11913 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor_str, 16)
11914 basic_stringstream_wchar* __thiscall basic_stringstream_short_ctor_str(basic_stringstream_wchar *this,
11915 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
11917 basic_stringstream_wchar_ctor_str(this, str, mode, virt_init);
11918 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_stringstream_short_vtable;
11922 /* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
11923 /* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
11924 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor_mode, 12)
11925 basic_stringstream_wchar* __thiscall basic_stringstream_wchar_ctor_mode(
11926 basic_stringstream_wchar *this, int mode, MSVCP_bool virt_init)
11928 basic_ios_wchar *basic_ios;
11930 TRACE("(%p %d %d)\n", this, mode, virt_init);
11933 this->base.base1.vbtable = basic_stringstream_wchar_vbtable1;
11934 this->base.base2.vbtable = basic_stringstream_wchar_vbtable2;
11935 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11936 basic_ios_wchar_ctor(basic_ios);
11938 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11941 basic_stringbuf_wchar_ctor_mode(&this->strbuf, mode);
11942 basic_iostream_wchar_ctor(&this->base, &this->strbuf.base, FALSE);
11943 basic_ios->base.vtable = &MSVCP_basic_stringstream_wchar_vtable;
11947 /* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
11948 /* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
11949 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor_mode, 12)
11950 basic_stringstream_wchar* __thiscall basic_stringstream_short_ctor_mode(
11951 basic_stringstream_wchar *this, int mode, MSVCP_bool virt_init)
11953 basic_stringstream_wchar_ctor_mode(this, mode, virt_init);
11954 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_stringstream_short_vtable;
11958 /* ??_F?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11959 /* ??_F?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11960 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor, 8)
11961 basic_stringstream_wchar* __thiscall basic_stringstream_wchar_ctor(
11962 basic_stringstream_wchar *this, MSVCP_bool virt_init)
11964 return basic_stringstream_wchar_ctor_mode(
11965 this, OPENMODE_out|OPENMODE_in, virt_init);
11968 /* ??_F?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11969 /* ??_F?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11970 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor, 8)
11971 basic_stringstream_wchar* __thiscall basic_stringstream_short_ctor(
11972 basic_stringstream_wchar *this, MSVCP_bool virt_init)
11974 return basic_stringstream_short_ctor_mode(
11975 this, OPENMODE_out|OPENMODE_in, virt_init);
11978 /* ??1?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
11979 /* ??1?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
11980 /* ??1?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
11981 /* ??1?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
11982 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_dtor, 4)
11983 void __thiscall basic_stringstream_wchar_dtor(basic_ios_wchar *base)
11985 basic_stringstream_wchar *this = basic_stringstream_wchar_from_basic_ios(base);
11987 TRACE("(%p)\n", this);
11989 basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(&this->base));
11990 basic_stringbuf_wchar_dtor(&this->strbuf);
11993 /* ??_D?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11994 /* ??_D?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11995 /* ??_D?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11996 /* ??_D?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11997 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_vbase_dtor, 4)
11998 void __thiscall basic_stringstream_wchar_vbase_dtor(basic_stringstream_wchar *this)
12000 TRACE("(%p)\n", this);
12002 basic_stringstream_wchar_dtor(basic_stringstream_wchar_to_basic_ios(this));
12003 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base.base1));
12006 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_vector_dtor, 8)
12007 basic_stringstream_wchar* __thiscall basic_stringstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
12009 basic_stringstream_wchar *this = basic_stringstream_wchar_from_basic_ios(base);
12011 TRACE("(%p %x)\n", this, flags);
12014 /* we have an array, with the number of elements stored before the first object */
12015 INT_PTR i, *ptr = (INT_PTR *)this-1;
12017 for(i=*ptr-1; i>=0; i--)
12018 basic_stringstream_wchar_vbase_dtor(this+i);
12019 MSVCRT_operator_delete(ptr);
12021 basic_stringstream_wchar_vbase_dtor(this);
12023 MSVCRT_operator_delete(this);
12029 /* ?rdbuf@?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPAV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
12030 /* ?rdbuf@?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEAV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
12031 /* ?rdbuf@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPAV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
12032 /* ?rdbuf@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEAV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
12033 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_rdbuf, 4)
12034 basic_stringbuf_wchar* __thiscall basic_stringstream_wchar_rdbuf(const basic_stringstream_wchar *this)
12036 TRACE("(%p)\n", this);
12037 return (basic_stringbuf_wchar*)&this->strbuf;
12040 /* ?str@?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
12041 /* ?str@?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
12042 /* ?str@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
12043 /* ?str@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
12044 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_str_set, 8)
12045 void __thiscall basic_stringstream_wchar_str_set(basic_stringstream_wchar *this, const basic_string_wchar *str)
12047 TRACE("(%p %p)\n", this, str);
12048 basic_stringbuf_wchar_str_set(&this->strbuf, str);
12051 /* ?str@?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
12052 /* ?str@?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
12053 /* ?str@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
12054 /* ?str@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
12055 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_str_get, 8)
12056 basic_string_wchar* __thiscall basic_stringstream_wchar_str_get(const basic_stringstream_wchar *this, basic_string_wchar *ret)
12058 TRACE("(%p %p)\n", this, ret);
12059 return basic_stringbuf_wchar_str_get(&this->strbuf, ret);
12062 /* ?_Init@strstreambuf@std@@IAEXHPAD0H@Z */
12063 /* ?_Init@strstreambuf@std@@IEAAX_JPEAD1H@Z */
12064 DEFINE_THISCALL_WRAPPER(strstreambuf__Init, 20)
12065 void __thiscall strstreambuf__Init(strstreambuf *this, streamsize len, char *g, char *p, int mode)
12067 TRACE("(%p %ld %p %p %d)\n", this, len, g, p, mode);
12069 this->minsize = 32;
12070 this->endsave = NULL;
12071 this->strmode = mode;
12072 this->palloc = NULL;
12073 this->pfree = NULL;
12076 this->strmode |= STRSTATE_Dynamic;
12077 if(len > this->minsize)
12078 this->minsize = len;
12079 this->seekhigh = NULL;
12088 this->seekhigh = g+len;
12089 basic_streambuf_char_setg(&this->base, g, g, p ? p : this->seekhigh);
12091 basic_streambuf_char_setp(&this->base, p, this->seekhigh);
12094 /* ?_Tidy@strstreambuf@std@@IAEXXZ */
12095 /* ?_Tidy@strstreambuf@std@@IEAAXXZ */
12096 DEFINE_THISCALL_WRAPPER(strstreambuf__Tidy, 4)
12097 void __thiscall strstreambuf__Tidy(strstreambuf *this)
12099 TRACE("(%p)\n", this);
12101 if((this->strmode & STRSTATE_Allocated) && !(this->strmode & STRSTATE_Frozen)) {
12103 this->pfree(basic_streambuf_char_eback(&this->base));
12105 MSVCRT_operator_delete(basic_streambuf_char_eback(&this->base));
12108 this->endsave = NULL;
12109 this->seekhigh = NULL;
12110 this->strmode &= ~(STRSTATE_Allocated | STRSTATE_Frozen);
12111 basic_streambuf_char_setg(&this->base, NULL, NULL, NULL);
12112 basic_streambuf_char_setp(&this->base, NULL, NULL);
12115 /* ??1strstreambuf@std@@UAE@XZ */
12116 /* ??1strstreambuf@std@@UEAA@XZ */
12117 DEFINE_THISCALL_WRAPPER(strstreambuf_dtor, 4)
12118 void __thiscall strstreambuf_dtor(strstreambuf *this)
12120 TRACE("(%p)\n", this);
12122 strstreambuf__Tidy(this);
12123 basic_streambuf_char_dtor(&this->base);
12126 DEFINE_THISCALL_WRAPPER(strstreambuf_vector_dtor, 8)
12127 strstreambuf* __thiscall strstreambuf_vector_dtor(strstreambuf *this, unsigned int flags)
12129 TRACE("(%p %x)\n", this, flags);
12131 /* we have an array, with the number of elements stored before the first object */
12132 INT_PTR i, *ptr = (INT_PTR *)this-1;
12134 for(i=*ptr-1; i>=0; i--)
12135 strstreambuf_dtor(this+i);
12136 MSVCRT_operator_delete(ptr);
12138 strstreambuf_dtor(this);
12140 MSVCRT_operator_delete(this);
12146 /* ?freeze@strstreambuf@std@@QAEX_N@Z */
12147 /* ?freeze@strstreambuf@std@@QEAAX_N@Z */
12148 DEFINE_THISCALL_WRAPPER(strstreambuf_freeze, 8)
12149 void __thiscall strstreambuf_freeze(strstreambuf *this, MSVCP_bool freeze)
12151 TRACE("(%p %d)\n", this, freeze);
12153 if(!freeze == !(this->strmode *STRSTATE_Frozen))
12157 this->strmode |= STRSTATE_Frozen;
12158 this->endsave = basic_streambuf_char_epptr(&this->base);
12159 basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base),
12160 basic_streambuf_char_pptr(&this->base), basic_streambuf_char_eback(&this->base));
12162 this->strmode &= ~STRSTATE_Frozen;
12163 basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base),
12164 basic_streambuf_char_pptr(&this->base), this->endsave);
12168 /* ?overflow@strstreambuf@std@@MAEHH@Z */
12169 /* ?overflow@strstreambuf@std@@MEAAHH@Z */
12170 DEFINE_THISCALL_WRAPPER(strstreambuf_overflow, 8)
12171 int __thiscall strstreambuf_overflow(strstreambuf *this, int c)
12173 MSVCP_size_t old_size, size;
12176 TRACE("(%p %d)\n", this, c);
12181 if(this->strmode & STRSTATE_Frozen)
12184 ptr = basic_streambuf_char_pptr(&this->base);
12185 if(ptr && ptr<basic_streambuf_char_epptr(&this->base))
12186 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = c);
12188 if(!(this->strmode & STRSTATE_Dynamic) || (this->strmode & STRSTATE_Constant))
12191 ptr = basic_streambuf_char_eback(&this->base);
12192 old_size = ptr ? basic_streambuf_char_epptr(&this->base) - ptr : 0;
12194 size = old_size + old_size/2;
12195 if(size < this->minsize)
12196 size = this->minsize;
12199 buf = this->palloc(size);
12201 buf = MSVCRT_operator_new(size);
12205 memcpy(buf, ptr, old_size);
12206 if(this->strmode & STRSTATE_Allocated) {
12210 MSVCRT_operator_delete(ptr);
12213 this->strmode |= STRSTATE_Allocated;
12215 this->seekhigh = buf;
12216 basic_streambuf_char_setp(&this->base, buf, buf+size);
12217 basic_streambuf_char_setg(&this->base, buf, buf, buf);
12219 this->seekhigh = this->seekhigh-ptr+buf;
12220 basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base)-ptr+buf,
12221 basic_streambuf_char_pptr(&this->base)-ptr+buf, buf+size);
12222 basic_streambuf_char_setg(&this->base, buf, basic_streambuf_char_gptr(&this->base)-ptr+buf,
12223 basic_streambuf_char_pptr(&this->base));
12226 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = c);
12229 /* ?pbackfail@strstreambuf@std@@MAEHH@Z */
12230 /* ?pbackfail@strstreambuf@std@@MEAAHH@Z */
12231 DEFINE_THISCALL_WRAPPER(strstreambuf_pbackfail, 8)
12232 int __thiscall strstreambuf_pbackfail(strstreambuf *this, int c)
12234 char *ptr = basic_streambuf_char_gptr(&this->base);
12236 TRACE("(%p %d)\n", this, c);
12238 if(ptr<=basic_streambuf_char_eback(&this->base)
12239 || ((this->strmode & STRSTATE_Constant) && c!=ptr[-1]))
12242 basic_streambuf_char_gbump(&this->base, -1);
12245 if(this->strmode & STRSTATE_Constant)
12246 return (unsigned char)c;
12248 return (unsigned char)(ptr[0] = c);
12251 /* ?seekoff@strstreambuf@std@@MAE?AV?$fpos@H@2@JHH@Z */
12252 /* ?seekoff@strstreambuf@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
12253 DEFINE_THISCALL_WRAPPER(strstreambuf_seekoff, 20)
12254 fpos_int* __thiscall strstreambuf_seekoff(strstreambuf *this, fpos_int *ret, streamoff off, int way, int mode)
12256 char *eback = basic_streambuf_char_eback(&this->base);
12257 char *pptr = basic_streambuf_char_pptr(&this->base);
12258 char *gptr = basic_streambuf_char_gptr(&this->base);
12260 TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode);
12265 if(pptr > this->seekhigh)
12266 this->seekhigh = pptr;
12268 if((mode & OPENMODE_in) && gptr) {
12269 if(way==SEEKDIR_cur && !(mode & OPENMODE_out))
12271 else if(way == SEEKDIR_end)
12272 off += this->seekhigh-eback;
12273 else if(way != SEEKDIR_beg)
12276 if(off<0 || off>this->seekhigh-eback) {
12279 basic_streambuf_char_gbump(&this->base, eback-gptr+off);
12280 if((mode & OPENMODE_out) && pptr) {
12281 basic_streambuf_char_setp_next(&this->base, eback,
12282 gptr, basic_streambuf_char_epptr(&this->base));
12285 }else if((mode & OPENMODE_out) && pptr) {
12286 if(way == SEEKDIR_cur)
12288 else if(way == SEEKDIR_end)
12289 off += this->seekhigh-eback;
12290 else if(way != SEEKDIR_beg)
12293 if(off<0 || off>this->seekhigh-eback)
12296 basic_streambuf_char_pbump(&this->base, eback-pptr+off);
12305 /* ?seekpos@strstreambuf@std@@MAE?AV?$fpos@H@2@V32@H@Z */
12306 /* ?seekpos@strstreambuf@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
12307 DEFINE_THISCALL_WRAPPER(strstreambuf_seekpos, 36)
12308 fpos_int* __thiscall strstreambuf_seekpos(strstreambuf *this, fpos_int *ret, fpos_int pos, int mode)
12310 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
12312 if(pos.off==0 && pos.pos==-1 && pos.state==0) {
12317 return strstreambuf_seekoff(this, ret, pos.off, SEEKDIR_beg, mode);
12320 /* ?underflow@strstreambuf@std@@MAEHXZ */
12321 /* ?underflow@strstreambuf@std@@MEAAHXZ */
12322 DEFINE_THISCALL_WRAPPER(strstreambuf_underflow, 4)
12323 int __thiscall strstreambuf_underflow(strstreambuf *this)
12325 char *gptr = basic_streambuf_char_gptr(&this->base);
12328 TRACE("(%p)\n", this);
12333 if(gptr < basic_streambuf_char_egptr(&this->base))
12334 return (unsigned char)(*gptr);
12336 pptr = basic_streambuf_char_gptr(&this->base);
12337 if(pptr > this->seekhigh)
12338 this->seekhigh = pptr;
12340 if(this->seekhigh <= gptr)
12343 basic_streambuf_char_setg(&this->base, basic_streambuf_char_eback(&this->base),
12344 gptr, this->seekhigh);
12345 return (unsigned char)(*gptr);
12348 static void __cdecl setprecision_func(ios_base *base, streamsize prec)
12350 ios_base_precision_set(base, prec);
12353 /* ?setprecision@std@@YA?AU?$_Smanip@H@1@H@Z */
12354 /* ?setprecision@std@@YA?AU?$_Smanip@_J@1@_J@Z */
12355 manip_streamsize* __cdecl setprecision(manip_streamsize *ret, streamsize prec)
12357 TRACE("(%p %ld)\n", ret, prec);
12359 ret->pfunc = setprecision_func;
12364 static void __cdecl setw_func(ios_base *base, streamsize width)
12366 ios_base_width_set(base, width);
12369 /* ?setw@std@@YA?AU?$_Smanip@H@1@H@Z */
12370 /* ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z */
12371 manip_streamsize* __cdecl setw(manip_streamsize *ret, streamsize width)
12373 TRACE("(%p %ld)\n", ret, width);
12375 ret->pfunc = setw_func;
12380 static void __cdecl resetioflags_func(ios_base *base, int mask)
12382 ios_base_setf_mask(base, 0, mask);
12385 /* ?resetiosflags@std@@YA?AU?$_Smanip@H@1@H@Z */
12386 manip_int* __cdecl resetiosflags(manip_int *ret, int mask)
12388 TRACE("(%p %d)\n", ret, mask);
12390 ret->pfunc = resetioflags_func;
12395 static void __cdecl setiosflags_func(ios_base *base, int mask)
12397 ios_base_setf_mask(base, FMTFLAG_mask, mask);
12400 /* ?setiosflags@std@@YA?AU?$_Smanip@H@1@H@Z */
12401 manip_int* __cdecl setiosflags(manip_int *ret, int mask)
12403 TRACE("(%p %d)\n", ret, mask);
12405 ret->pfunc = setiosflags_func;
12410 static void __cdecl setbase_func(ios_base *base, int set_base)
12413 set_base = FMTFLAG_dec;
12414 else if(set_base == 8)
12415 set_base = FMTFLAG_oct;
12416 else if(set_base == 16)
12417 set_base = FMTFLAG_hex;
12421 ios_base_setf_mask(base, set_base, FMTFLAG_basefield);
12424 /* ?setbase@std@@YA?AU?$_Smanip@H@1@H@Z */
12425 manip_int* __cdecl setbase(manip_int *ret, int base)
12427 TRACE("(%p %d)\n", ret, base);
12429 ret->pfunc = setbase_func;
12434 static basic_filebuf_char filebuf_char_stdin;
12435 /* ?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A */
12437 basic_istream_char obj;
12438 basic_ios_char vbase;
12440 /* ?_Ptr_cin@std@@3PAV?$basic_istream@DU?$char_traits@D@std@@@1@A */
12441 /* ?_Ptr_cin@std@@3PEAV?$basic_istream@DU?$char_traits@D@std@@@1@EA */
12442 basic_istream_char *_Ptr_cin = &cin.obj;
12444 static basic_filebuf_wchar filebuf_short_stdin;
12445 /* ?wcin@std@@3V?$basic_istream@GU?$char_traits@G@std@@@1@A */
12447 basic_istream_wchar obj;
12448 basic_ios_wchar vbase;
12449 } ucin = { { 0 } };
12450 /* ?_Ptr_wcin@std@@3PAV?$basic_istream@GU?$char_traits@G@std@@@1@A */
12451 /* ?_Ptr_wcin@std@@3PEAV?$basic_istream@GU?$char_traits@G@std@@@1@EA */
12452 basic_istream_wchar *_Ptr_ucin = &ucin.obj;
12454 static basic_filebuf_wchar filebuf_wchar_stdin;
12455 /* ?wcin@std@@3V?$basic_istream@_WU?$char_traits@_W@std@@@1@A */
12457 basic_istream_wchar obj;
12458 basic_ios_wchar vbase;
12459 } wcin = { { 0 } };
12460 /* ?_Ptr_wcin@std@@3PAV?$basic_istream@_WU?$char_traits@_W@std@@@1@A */
12461 /* ?_Ptr_wcin@std@@3PEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@EA */
12462 basic_istream_wchar *_Ptr_wcin = &wcin.obj;
12464 static basic_filebuf_char filebuf_char_stdout;
12465 /* ?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12467 basic_ostream_char obj;
12468 basic_ios_char vbase;
12469 } cout = { { 0 } };
12470 /* ?_Ptr_cout@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12471 /* ?_Ptr_cout@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
12472 basic_ostream_char *_Ptr_cout = &cout.obj;
12474 static basic_filebuf_wchar filebuf_short_stdout;
12475 /* ?wcout@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12477 basic_ostream_wchar obj;
12478 basic_ios_wchar vbase;
12479 } ucout = { { 0 } };
12480 /* ?_Ptr_wcout@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12481 /* ?_Ptr_wcout@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
12482 basic_ostream_wchar *_Ptr_ucout = &ucout.obj;
12484 static basic_filebuf_wchar filebuf_wchar_stdout;
12485 /* ?wcout@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12487 basic_ostream_wchar obj;
12488 basic_ios_wchar vbase;
12489 } wcout = { { 0 } };
12490 /* ?_Ptr_wcout@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12491 /* ?_Ptr_wcout@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
12492 basic_ostream_wchar *_Ptr_wcout = &wcout.obj;
12494 static basic_filebuf_char filebuf_char_stderr;
12495 /* ?cerr@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12497 basic_ostream_char obj;
12498 basic_ios_char vbase;
12499 } cerr = { { 0 } };
12500 /* ?_Ptr_cerr@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12501 /* ?_Ptr_cerr@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
12502 basic_ostream_char *_Ptr_cerr = &cerr.obj;
12504 static basic_filebuf_wchar filebuf_short_stderr;
12505 /* ?wcerr@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12507 basic_ostream_wchar obj;
12508 basic_ios_wchar vbase;
12509 } ucerr = { { 0 } };
12510 /* ?_Ptr_wcerr@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12511 /* ?_Ptr_wcerr@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
12512 basic_ostream_wchar *_Ptr_ucerr = &ucerr.obj;
12514 static basic_filebuf_wchar filebuf_wchar_stderr;
12515 /* ?wcerr@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12517 basic_ostream_wchar obj;
12518 basic_ios_wchar vbase;
12519 } wcerr = { { 0 } };
12520 /* ?_Ptr_wcerr@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12521 /* ?_Ptr_wcerr@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
12522 basic_ostream_wchar *_Ptr_wcerr = &wcerr.obj;
12524 static basic_filebuf_char filebuf_char_log;
12525 /* ?clog@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12527 basic_ostream_char obj;
12528 basic_ios_char vbase;
12529 } clog = { { 0 } };
12530 /* ?_Ptr_clog@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12531 /* ?_Ptr_clog@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
12532 basic_ostream_char *_Ptr_clog = &clog.obj;
12534 static basic_filebuf_wchar filebuf_short_log;
12535 /* ?wclog@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12537 basic_ostream_wchar obj;
12538 basic_ios_wchar vbase;
12539 } uclog = { { 0 } };
12540 /* ?_Ptr_wclog@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12541 /* ?_Ptr_wclog@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
12542 basic_ostream_wchar *_Ptr_uclog = &uclog.obj;
12544 static basic_filebuf_wchar filebuf_wchar_log;
12545 /* ?wclog@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12547 basic_ostream_wchar obj;
12548 basic_ios_wchar vbase;
12549 } wclog = { { 0 } };
12550 /* ?_Ptr_wclog@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12551 /* ?_Ptr_wclog@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
12552 basic_ostream_wchar *_Ptr_wclog = &wclog.obj;
12554 void init_io(void *base)
12557 init_iosb_rtti(base);
12558 init_ios_base_rtti(base);
12559 init_basic_ios_char_rtti(base);
12560 init_basic_ios_wchar_rtti(base);
12561 init_basic_ios_short_rtti(base);
12562 init_basic_streambuf_char_rtti(base);
12563 init_basic_streambuf_wchar_rtti(base);
12564 init_basic_streambuf_short_rtti(base);
12565 init_basic_filebuf_char_rtti(base);
12566 init_basic_filebuf_wchar_rtti(base);
12567 init_basic_filebuf_short_rtti(base);
12568 init_basic_stringbuf_char_rtti(base);
12569 init_basic_stringbuf_wchar_rtti(base);
12570 init_basic_stringbuf_short_rtti(base);
12571 init_basic_ostream_char_rtti(base);
12572 init_basic_ostream_wchar_rtti(base);
12573 init_basic_ostream_short_rtti(base);
12574 init_basic_istream_char_rtti(base);
12575 init_basic_istream_wchar_rtti(base);
12576 init_basic_istream_short_rtti(base);
12577 init_basic_iostream_char_rtti(base);
12578 init_basic_iostream_wchar_rtti(base);
12579 init_basic_iostream_short_rtti(base);
12580 init_basic_ofstream_char_rtti(base);
12581 init_basic_ofstream_wchar_rtti(base);
12582 init_basic_ofstream_short_rtti(base);
12583 init_basic_ifstream_char_rtti(base);
12584 init_basic_ifstream_wchar_rtti(base);
12585 init_basic_ifstream_short_rtti(base);
12586 init_basic_fstream_char_rtti(base);
12587 init_basic_fstream_wchar_rtti(base);
12588 init_basic_fstream_short_rtti(base);
12589 init_basic_ostringstream_char_rtti(base);
12590 init_basic_ostringstream_wchar_rtti(base);
12591 init_basic_ostringstream_short_rtti(base);
12592 init_basic_istringstream_char_rtti(base);
12593 init_basic_istringstream_wchar_rtti(base);
12594 init_basic_istringstream_short_rtti(base);
12595 init_basic_stringstream_char_rtti(base);
12596 init_basic_stringstream_wchar_rtti(base);
12597 init_basic_stringstream_short_rtti(base);
12598 init_strstreambuf_rtti(base);
12601 basic_filebuf_char_ctor_file(&filebuf_char_stdin, stdin);
12602 basic_istream_char_ctor(&cin.obj, &filebuf_char_stdin.base, FALSE/*FIXME*/, TRUE);
12604 basic_filebuf_short_ctor_file(&filebuf_short_stdin, stdin);
12605 basic_istream_short_ctor(&ucin.obj, &filebuf_short_stdin.base, FALSE/*FIXME*/, TRUE);
12607 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stdin, stdin);
12608 basic_istream_wchar_ctor(&wcin.obj, &filebuf_wchar_stdin.base, FALSE/*FIXME*/, TRUE);
12610 basic_filebuf_char_ctor_file(&filebuf_char_stdout, stdout);
12611 basic_ostream_char_ctor(&cout.obj, &filebuf_char_stdout.base, FALSE/*FIXME*/, TRUE);
12613 basic_filebuf_short_ctor_file(&filebuf_short_stdout, stdout);
12614 basic_ostream_short_ctor(&ucout.obj, &filebuf_short_stdout.base, FALSE/*FIXME*/, TRUE);
12616 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stdout, stdout);
12617 basic_ostream_wchar_ctor(&wcout.obj, &filebuf_wchar_stdout.base, FALSE/*FIXME*/, TRUE);
12619 basic_filebuf_char_ctor_file(&filebuf_char_stderr, stderr);
12620 basic_ostream_char_ctor(&cerr.obj, &filebuf_char_stderr.base, FALSE/*FIXME*/, TRUE);
12622 basic_filebuf_short_ctor_file(&filebuf_short_stderr, stderr);
12623 basic_ostream_short_ctor(&ucerr.obj, &filebuf_short_stderr.base, FALSE/*FIXME*/, TRUE);
12625 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stderr, stderr);
12626 basic_ostream_wchar_ctor(&wcerr.obj, &filebuf_wchar_stderr.base, FALSE/*FIXME*/, TRUE);
12628 basic_filebuf_char_ctor_file(&filebuf_char_log, stderr);
12629 basic_ostream_char_ctor(&clog.obj, &filebuf_char_log.base, FALSE/*FIXME*/, TRUE);
12631 basic_filebuf_short_ctor_file(&filebuf_short_log, stderr);
12632 basic_ostream_short_ctor(&uclog.obj, &filebuf_short_log.base, FALSE/*FIXME*/, TRUE);
12634 basic_filebuf_wchar_ctor_file(&filebuf_wchar_log, stderr);
12635 basic_ostream_wchar_ctor(&wclog.obj, &filebuf_wchar_log.base, FALSE/*FIXME*/, TRUE);
12640 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&cin.obj));
12641 basic_filebuf_char_dtor(&filebuf_char_stdin);
12643 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&ucin.obj));
12644 basic_filebuf_wchar_dtor(&filebuf_short_stdin);
12646 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&wcin.obj));
12647 basic_filebuf_wchar_dtor(&filebuf_wchar_stdin);
12649 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&cout.obj));
12650 basic_filebuf_char_dtor(&filebuf_char_stdout);
12652 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&ucout.obj));
12653 basic_filebuf_wchar_dtor(&filebuf_short_stdout);
12655 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&wcout.obj));
12656 basic_filebuf_wchar_dtor(&filebuf_wchar_stdout);
12658 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&cerr.obj));
12659 basic_filebuf_char_dtor(&filebuf_char_stderr);
12661 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&ucerr.obj));
12662 basic_filebuf_wchar_dtor(&filebuf_short_stderr);
12664 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&wcerr.obj));
12665 basic_filebuf_wchar_dtor(&filebuf_wchar_stderr);
12667 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&clog.obj));
12668 basic_filebuf_char_dtor(&filebuf_char_log);
12670 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&uclog.obj));
12671 basic_filebuf_wchar_dtor(&filebuf_short_log);
12673 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&wclog.obj));
12674 basic_filebuf_wchar_dtor(&filebuf_wchar_log);