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*);
280 basic_ostream_char base;
282 /* virtual inheritance
283 * basic_ios_char basic_ios;
288 basic_istream_char base;
290 /* virtual inheritance
291 * basic_ios_char basic_ios;
296 basic_iostream_char base;
298 /* virtual inheritance
299 * basic_ios_char basic_ios;
303 extern const vtable_ptr MSVCP_iosb_vtable;
305 /* ??_7ios_base@std@@6B@ */
306 extern const vtable_ptr MSVCP_ios_base_vtable;
308 /* ??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@ */
309 extern const vtable_ptr MSVCP_basic_ios_char_vtable;
311 /* ??_7?$basic_ios@_WU?$char_traits@_W@std@@@std@@6B@ */
312 extern const vtable_ptr MSVCP_basic_ios_wchar_vtable;
314 /* ??_7?$basic_ios@GU?$char_traits@G@std@@@std@@6B@ */
315 extern const vtable_ptr MSVCP_basic_ios_short_vtable;
317 /* ??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@ */
318 extern const vtable_ptr MSVCP_basic_streambuf_char_vtable;
320 /* ??_7?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@6B@ */
321 extern const vtable_ptr MSVCP_basic_streambuf_wchar_vtable;
323 /* ??_7?$basic_streambuf@GU?$char_traits@G@std@@@std@@6B@ */
324 extern const vtable_ptr MSVCP_basic_streambuf_short_vtable;
326 /* ??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ */
327 extern const vtable_ptr MSVCP_basic_filebuf_char_vtable;
329 /* ??_7?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@6B@ */
330 extern const vtable_ptr MSVCP_basic_filebuf_wchar_vtable;
332 /* ??_7?$basic_filebuf@GU?$char_traits@G@std@@@std@@6B@ */
333 extern const vtable_ptr MSVCP_basic_filebuf_short_vtable;
335 /* ??_7?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
336 extern const vtable_ptr MSVCP_basic_stringbuf_char_vtable;
338 /* ??_7?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
339 extern const vtable_ptr MSVCP_basic_stringbuf_wchar_vtable;
341 /* ??_7?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
342 extern const vtable_ptr MSVCP_basic_stringbuf_short_vtable;
344 /* ??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@ */
345 const int basic_ostream_char_vbtable[] = {0, sizeof(basic_ostream_char)};
346 /* ??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@ */
347 extern const vtable_ptr MSVCP_basic_ostream_char_vtable;
349 /* ??_8?$basic_ostream@_WU?$char_traits@_W@std@@@std@@7B@ */
350 const int basic_ostream_wchar_vbtable[] = {0, sizeof(basic_ostream_wchar)};
351 /* ??_7?$basic_ostream@_WU?$char_traits@_W@std@@@std@@6B@ */
352 extern const vtable_ptr MSVCP_basic_ostream_wchar_vtable;
354 /* ??_8?$basic_ostream@GU?$char_traits@G@std@@@std@@7B@ */
355 const int basic_ostream_short_vbtable[] = {0, sizeof(basic_ostream_wchar)};
356 /* ??_7?$basic_ostream@GU?$char_traits@G@std@@@std@@6B@ */
357 extern const vtable_ptr MSVCP_basic_ostream_short_vtable;
359 /* ??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@ */
360 const int basic_istream_char_vbtable[] = {0, sizeof(basic_istream_char)};
361 /* ??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@ */
362 extern const vtable_ptr MSVCP_basic_istream_char_vtable;
364 /* ??_8?$basic_istream@_WU?$char_traits@_W@std@@@std@@7B@ */
365 const int basic_istream_wchar_vbtable[] = {0, sizeof(basic_istream_wchar)};
366 /* ??_7?$basic_istream@_WU?$char_traits@_W@std@@@std@@6B@ */
367 extern const vtable_ptr MSVCP_basic_istream_wchar_vtable;
369 /* ??_8?$basic_istream@GU?$char_traits@G@std@@@std@@7B@ */
370 const int basic_istream_short_vbtable[] = {0, sizeof(basic_istream_wchar)};
371 /* ??_7?$basic_istream@GU?$char_traits@G@std@@@std@@6B@ */
372 extern const vtable_ptr MSVCP_basic_istream_short_vtable;
374 /* ??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
375 const int basic_iostream_char_vbtable1[] = {0, sizeof(basic_iostream_char)};
376 /* ??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
377 const int basic_iostream_char_vbtable2[] = {0, sizeof(basic_iostream_char)-FIELD_OFFSET(basic_iostream_char, base2)};
378 /* ??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@ */
379 extern const vtable_ptr MSVCP_basic_iostream_char_vtable;
381 /* ??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
382 /* ??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
383 const int basic_iostream_wchar_vbtable1[] = {0, sizeof(basic_iostream_wchar)};
384 /* ??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
385 /* ??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
386 const int basic_iostream_wchar_vbtable2[] = {0, sizeof(basic_iostream_wchar)-FIELD_OFFSET(basic_iostream_wchar, base2)};
387 /* ??_7?$basic_iostream@_WU?$char_traits@_W@std@@@std@@6B@ */
388 extern const vtable_ptr MSVCP_basic_iostream_wchar_vtable;
389 /* ??_7?$basic_iostream@GU?$char_traits@G@std@@@std@@6B@ */
390 extern const vtable_ptr MSVCP_basic_iostream_short_vtable;
392 /* ??_8?$basic_ofstream@DU?$char_traits@D@std@@@std@@7B@ */
393 const int basic_ofstream_char_vbtable[] = {0, sizeof(basic_ofstream_char)};
394 /* ??_7?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ */
395 extern const vtable_ptr MSVCP_basic_ofstream_char_vtable;
397 /* ??_8?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@7B@ */
398 const int basic_ofstream_wchar_vbtable[] = {0, sizeof(basic_ofstream_wchar)};
399 /* ??_7?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@6B@ */
400 extern const vtable_ptr MSVCP_basic_ofstream_wchar_vtable;
402 /* ??_8?$basic_ofstream@GU?$char_traits@G@std@@@std@@7B@ */
403 const int basic_ofstream_short_vbtable[] = {0, sizeof(basic_ofstream_wchar)};
404 /* ??_7?$basic_ofstream@GU?$char_traits@G@std@@@std@@6B@ */
405 extern const vtable_ptr MSVCP_basic_ofstream_short_vtable;
407 /* ??_8?$basic_ifstream@DU?$char_traits@D@std@@@std@@7B@ */
408 const int basic_ifstream_char_vbtable[] = {0, sizeof(basic_ifstream_char)};
409 /* ??_7?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@ */
410 extern const vtable_ptr MSVCP_basic_ifstream_char_vtable;
412 /* ??_8?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@7B@ */
413 const int basic_ifstream_wchar_vbtable[] = {0, sizeof(basic_ifstream_wchar)};
414 /* ??_7?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@6B@ */
415 extern const vtable_ptr MSVCP_basic_ifstream_wchar_vtable;
417 /* ??_8?$basic_ifstream@GU?$char_traits@G@std@@@std@@7B@ */
418 const int basic_ifstream_short_vbtable[] = {0, sizeof(basic_ifstream_wchar)};
419 /* ??_7?$basic_ifstream@GU?$char_traits@G@std@@@std@@6B@ */
420 extern const vtable_ptr MSVCP_basic_ifstream_short_vtable;
422 /* ??_8?$basic_fstream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
423 const int basic_fstream_char_vbtable1[] = {0, sizeof(basic_fstream_char)};
424 /* ??_8?$basic_fstream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
425 const int basic_fstream_char_vbtable2[] = {0, sizeof(basic_fstream_char)-FIELD_OFFSET(basic_fstream_char, base.base2)};
426 /* ??_7?$basic_fstream@DU?$char_traits@D@std@@@std@@6B@ */
427 extern const vtable_ptr MSVCP_basic_fstream_char_vtable;
429 /* ??_8?$basic_fstream@_WU?$char_traits@_W@std@@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
430 /* ??_8?$basic_fstream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
431 const int basic_fstream_wchar_vbtable1[] = {0, sizeof(basic_fstream_wchar)};
432 /* ??_8?$basic_fstream@_WU?$char_traits@_W@std@@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
433 /* ??_8?$basic_fstream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
434 const int basic_fstream_wchar_vbtable2[] = {0, sizeof(basic_fstream_wchar)-FIELD_OFFSET(basic_fstream_wchar, base.base2)};
435 /* ??_7?$basic_fstream@_WU?$char_traits@_W@std@@@std@@6B@ */
436 extern const vtable_ptr MSVCP_basic_fstream_wchar_vtable;
437 /* ??_7?$basic_fstream@GU?$char_traits@G@std@@@std@@6B@ */
438 extern const vtable_ptr MSVCP_basic_fstream_short_vtable;
440 /* ??_8?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B@ */
441 const int basic_ostringstream_char_vbtable[] = {0, sizeof(basic_ostringstream_char)};
442 /* ??_7?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
443 extern const vtable_ptr MSVCP_basic_ostringstream_char_vtable;
445 /* ??_8?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B@ */
446 const int basic_ostringstream_wchar_vbtable[] = {0, sizeof(basic_ostringstream_wchar)};
447 /* ??_7?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
448 extern const vtable_ptr MSVCP_basic_ostringstream_wchar_vtable;
450 /* ??_8?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B@ */
451 const int basic_ostringstream_short_vbtable[] = {0, sizeof(basic_ostringstream_wchar)};
452 /* ??_7?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
453 extern const vtable_ptr MSVCP_basic_ostringstream_short_vtable;
455 /* ??_8?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B@ */
456 const int basic_istringstream_char_vbtable[] = {0, sizeof(basic_istringstream_char)};
457 /* ??_7?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
458 extern const vtable_ptr MSVCP_basic_istringstream_char_vtable;
460 /* ??_8?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B@ */
461 const int basic_istringstream_wchar_vbtable[] = {0, sizeof(basic_istringstream_wchar)};
462 /* ??_7?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
463 extern const vtable_ptr MSVCP_basic_istringstream_wchar_vtable;
465 /* ??_8?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B@ */
466 const int basic_istringstream_short_vbtable[] = {0, sizeof(basic_istringstream_wchar)};
467 /* ??_7?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
468 extern const vtable_ptr MSVCP_basic_istringstream_short_vtable;
470 /* ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
471 const int basic_stringstream_char_vbtable1[] = {0, sizeof(basic_stringstream_char)};
472 /* ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
473 const int basic_stringstream_char_vbtable2[] = {0, sizeof(basic_stringstream_char)-FIELD_OFFSET(basic_stringstream_char, base.base2)};
474 /* ??_7?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
475 extern const vtable_ptr MSVCP_basic_stringstream_char_vtable;
477 /* ??_8?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
478 const int basic_stringstream_wchar_vbtable1[] = {0, sizeof(basic_stringstream_wchar)};
479 /* ??_8?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
480 const int basic_stringstream_wchar_vbtable2[] = {0, sizeof(basic_stringstream_wchar)-FIELD_OFFSET(basic_stringstream_wchar, base.base2)};
481 /* ??_7?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
482 extern const vtable_ptr MSVCP_basic_stringstream_wchar_vtable;
484 /* ??_8?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
485 const int basic_stringstream_short_vbtable1[] = {0, sizeof(basic_stringstream_wchar)};
486 /* ??_8?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
487 const int basic_stringstream_short_vbtable2[] = {0, sizeof(basic_stringstream_wchar)-FIELD_OFFSET(basic_stringstream_wchar, base.base2)};
488 /* ??_7?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
489 extern const vtable_ptr MSVCP_basic_stringstream_short_vtable;
491 /* ??_7strstreambuf@std@@6B */
492 extern const vtable_ptr MSVCP_strstreambuf_vtable;
494 static const int ostrstream_vbtable[] = {0, sizeof(ostrstream)};
495 extern const vtable_ptr MSVCP_ostrstream_vtable;
497 static const int istrstream_vbtable[] = {0, sizeof(istrstream)};
499 static const int strstream_vbtable1[] = {0, sizeof(strstream)};
500 static const int strstream_vbtable2[] = {0, sizeof(strstream)-FIELD_OFFSET(strstream, base.base2)};
501 extern const vtable_ptr MSVCP_strstream_vtable;
503 DEFINE_RTTI_DATA0(iosb, 0, ".?AV?$_Iosb@H@std@@");
504 DEFINE_RTTI_DATA1(ios_base, 0, &iosb_rtti_base_descriptor, ".?AV?$_Iosb@H@std@@");
505 DEFINE_RTTI_DATA2(basic_ios_char, 0, &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
506 ".?AV?$basic_ios@DU?$char_traits@D@std@@@std@@");
507 DEFINE_RTTI_DATA2(basic_ios_wchar, 0, &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
508 ".?AV?$basic_ios@_WU?$char_traits@_W@std@@@std@@");
509 DEFINE_RTTI_DATA2(basic_ios_short, 0, &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
510 ".?AV?$basic_ios@GU?$char_traits@G@std@@@std@@");
511 DEFINE_RTTI_DATA0(basic_streambuf_char, 0,
512 ".?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@");
513 DEFINE_RTTI_DATA0(basic_streambuf_wchar, 0,
514 ".?AV?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@");
515 DEFINE_RTTI_DATA0(basic_streambuf_short, 0,
516 ".?AV?$basic_streambuf@GU?$char_traits@G@std@@@std@@");
517 DEFINE_RTTI_DATA1(basic_filebuf_char, 0, &basic_streambuf_char_rtti_base_descriptor,
518 ".?AV?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@");
519 DEFINE_RTTI_DATA1(basic_filebuf_wchar, 0, &basic_streambuf_wchar_rtti_base_descriptor,
520 ".?AV?$basic_filebuf@GU?$char_traits@G@std@@@std@@");
521 DEFINE_RTTI_DATA1(basic_filebuf_short, 0, &basic_streambuf_short_rtti_base_descriptor,
522 ".?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@");
523 DEFINE_RTTI_DATA1(basic_stringbuf_char, 0, &basic_streambuf_char_rtti_base_descriptor,
524 ".?AV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@");
525 DEFINE_RTTI_DATA1(basic_stringbuf_wchar, 0, &basic_streambuf_wchar_rtti_base_descriptor,
526 ".?AV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@");
527 DEFINE_RTTI_DATA1(basic_stringbuf_short, 0, &basic_streambuf_short_rtti_base_descriptor,
528 ".?AV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@");
529 DEFINE_RTTI_DATA3(basic_ostream_char, sizeof(basic_ostream_char), &basic_ios_char_rtti_base_descriptor,
530 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
531 ".?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@");
532 DEFINE_RTTI_DATA3(basic_ostream_wchar, sizeof(basic_ostream_wchar), &basic_ios_wchar_rtti_base_descriptor,
533 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
534 ".?AV?$basic_ostream@_WU?$char_traits@_W@std@@@std@@");
535 DEFINE_RTTI_DATA3(basic_ostream_short, sizeof(basic_ostream_wchar), &basic_ios_short_rtti_base_descriptor,
536 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
537 ".?AV?$basic_ostream@GU?$char_traits@G@std@@@std@@");
538 DEFINE_RTTI_DATA3(basic_istream_char, sizeof(basic_istream_char), &basic_ios_char_rtti_base_descriptor,
539 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
540 ".?AV?$basic_istream@DU?$char_traits@D@std@@@std@@");
541 DEFINE_RTTI_DATA3(basic_istream_wchar, sizeof(basic_istream_wchar), &basic_ios_wchar_rtti_base_descriptor,
542 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
543 ".?AV?$basic_istream@_WU?$char_traits@_W@std@@@std@@");
544 DEFINE_RTTI_DATA3(basic_istream_short, sizeof(basic_istream_wchar), &basic_ios_short_rtti_base_descriptor,
545 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
546 ".?AV?$basic_istream@GU?$char_traits@G@std@@@std@@");
547 DEFINE_RTTI_DATA8(basic_iostream_char, sizeof(basic_iostream_char),
548 &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
549 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
550 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
551 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
552 ".?AV?$basic_iostream@DU?$char_traits@D@std@@@std@@");
553 DEFINE_RTTI_DATA8(basic_iostream_wchar, sizeof(basic_iostream_wchar),
554 &basic_istream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
555 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
556 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
557 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
558 ".?AV?$basic_iostream@_WU?$char_traits@_W@std@@@std@@");
559 DEFINE_RTTI_DATA8(basic_iostream_short, sizeof(basic_iostream_wchar),
560 &basic_istream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
561 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
562 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
563 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
564 ".?AV?$basic_iostream@GU?$char_traits@G@std@@@std@@");
565 DEFINE_RTTI_DATA4(basic_ofstream_char, sizeof(basic_ofstream_char),
566 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
567 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
568 ".?AV?$basic_ofstream@DU?$char_traits@D@std@@@std@@");
569 DEFINE_RTTI_DATA4(basic_ofstream_wchar, sizeof(basic_ofstream_wchar),
570 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
571 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
572 ".?AV?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@");
573 DEFINE_RTTI_DATA4(basic_ofstream_short, sizeof(basic_ofstream_wchar),
574 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
575 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
576 ".?AV?$basic_ofstream@GU?$char_traits@G@std@@@std@@");
577 DEFINE_RTTI_DATA4(basic_ifstream_char, sizeof(basic_ifstream_char),
578 &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
579 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
580 ".?AV?$basic_ifstream@DU?$char_traits@D@std@@@std@@");
581 DEFINE_RTTI_DATA4(basic_ifstream_wchar, sizeof(basic_ifstream_wchar),
582 &basic_istream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
583 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
584 ".?AV?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@");
585 DEFINE_RTTI_DATA4(basic_ifstream_short, sizeof(basic_ifstream_wchar),
586 &basic_istream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
587 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
588 ".?AV?$basic_ifstream@GU?$char_traits@G@std@@@std@@");
589 DEFINE_RTTI_DATA8(basic_fstream_char, sizeof(basic_fstream_char),
590 &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
591 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
592 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
593 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
594 ".?AV?$basic_fstream@DU?$char_traits@D@std@@@std@@");
595 DEFINE_RTTI_DATA8(basic_fstream_wchar, sizeof(basic_fstream_wchar),
596 &basic_istream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
597 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
598 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
599 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
600 ".?AV?$basic_fstream@_WU?$char_traits@_W@std@@@std@@");
601 DEFINE_RTTI_DATA8(basic_fstream_short, sizeof(basic_fstream_wchar),
602 &basic_istream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
603 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
604 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
605 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
606 ".?AV?$basic_fstream@GU?$char_traits@G@std@@@std@@");
607 DEFINE_RTTI_DATA4(basic_ostringstream_char, sizeof(basic_ostringstream_char),
608 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
609 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
610 ".?AV?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@");
611 DEFINE_RTTI_DATA4(basic_ostringstream_wchar, sizeof(basic_ostringstream_wchar),
612 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
613 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
614 ".?AV?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@");
615 DEFINE_RTTI_DATA4(basic_ostringstream_short, sizeof(basic_ostringstream_wchar),
616 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
617 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
618 ".?AV?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@");
619 DEFINE_RTTI_DATA4(basic_istringstream_char, sizeof(basic_istringstream_char),
620 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
621 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
622 ".?AV?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@");
623 DEFINE_RTTI_DATA4(basic_istringstream_wchar, sizeof(basic_istringstream_wchar),
624 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
625 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
626 ".?AV?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@");
627 DEFINE_RTTI_DATA4(basic_istringstream_short, sizeof(basic_istringstream_wchar),
628 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
629 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
630 ".?AV?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@");
631 DEFINE_RTTI_DATA8(basic_stringstream_char, sizeof(basic_stringstream_char),
632 &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
633 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
634 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
635 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
636 ".?AV?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@");
637 DEFINE_RTTI_DATA8(basic_stringstream_wchar, sizeof(basic_stringstream_wchar),
638 &basic_istream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
639 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
640 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
641 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
642 ".?AV?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@");
643 DEFINE_RTTI_DATA8(basic_stringstream_short, sizeof(basic_stringstream_wchar),
644 &basic_istream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
645 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
646 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
647 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
648 ".?AV?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@");
649 DEFINE_RTTI_DATA1(strstreambuf, sizeof(strstreambuf),
650 &basic_streambuf_char_rtti_base_descriptor, ".?AVstrstreambuf@std@@");
651 DEFINE_RTTI_DATA4(ostrstream, sizeof(ostrstream),
652 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
653 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
654 "?AVostrstream@std@@");
655 DEFINE_RTTI_DATA8(strstream, sizeof(strstream),
656 &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
657 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
658 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
659 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
660 "?AVstrstream@std@@");
663 void __asm_dummy_vtables(void) {
666 VTABLE_ADD_FUNC(iosb_vector_dtor));
667 __ASM_VTABLE(ios_base,
668 VTABLE_ADD_FUNC(ios_base_vector_dtor));
669 __ASM_VTABLE(basic_ios_char,
670 VTABLE_ADD_FUNC(basic_ios_char_vector_dtor));
671 __ASM_VTABLE(basic_ios_wchar,
672 VTABLE_ADD_FUNC(basic_ios_wchar_vector_dtor));
673 __ASM_VTABLE(basic_ios_short,
674 VTABLE_ADD_FUNC(basic_ios_wchar_vector_dtor));
675 __ASM_VTABLE(basic_streambuf_char,
676 VTABLE_ADD_FUNC(basic_streambuf_char_vector_dtor)
677 VTABLE_ADD_FUNC(basic_streambuf_char_overflow)
678 VTABLE_ADD_FUNC(basic_streambuf_char_pbackfail)
679 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
680 VTABLE_ADD_FUNC(basic_streambuf_char_underflow)
681 VTABLE_ADD_FUNC(basic_streambuf_char_uflow)
682 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
683 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
684 VTABLE_ADD_FUNC(basic_streambuf_char_seekoff)
685 VTABLE_ADD_FUNC(basic_streambuf_char_seekpos)
686 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf)
687 VTABLE_ADD_FUNC(basic_streambuf_char_sync)
688 VTABLE_ADD_FUNC(basic_streambuf_char_imbue));
689 __ASM_VTABLE(basic_streambuf_wchar,
690 VTABLE_ADD_FUNC(basic_streambuf_wchar_vector_dtor)
691 VTABLE_ADD_FUNC(basic_streambuf_wchar_overflow)
692 VTABLE_ADD_FUNC(basic_streambuf_wchar_pbackfail)
693 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
694 VTABLE_ADD_FUNC(basic_streambuf_wchar_underflow)
695 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
696 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
697 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s)
698 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
699 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff)
700 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos)
701 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
702 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
703 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
704 __ASM_VTABLE(basic_streambuf_short,
705 VTABLE_ADD_FUNC(basic_streambuf_wchar_vector_dtor)
706 VTABLE_ADD_FUNC(basic_streambuf_wchar_overflow)
707 VTABLE_ADD_FUNC(basic_streambuf_wchar_pbackfail)
708 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
709 VTABLE_ADD_FUNC(basic_streambuf_wchar_underflow)
710 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
711 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
712 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s)
713 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
714 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff)
715 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos)
716 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
717 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
718 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
719 __ASM_VTABLE(basic_filebuf_char,
720 VTABLE_ADD_FUNC(basic_filebuf_char_vector_dtor)
721 VTABLE_ADD_FUNC(basic_filebuf_char_overflow)
722 VTABLE_ADD_FUNC(basic_filebuf_char_pbackfail)
723 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
724 VTABLE_ADD_FUNC(basic_filebuf_char_underflow)
725 VTABLE_ADD_FUNC(basic_filebuf_char_uflow)
726 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
727 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
728 VTABLE_ADD_FUNC(basic_filebuf_char_seekoff)
729 VTABLE_ADD_FUNC(basic_filebuf_char_seekpos)
730 VTABLE_ADD_FUNC(basic_filebuf_char_setbuf)
731 VTABLE_ADD_FUNC(basic_filebuf_char_sync)
732 VTABLE_ADD_FUNC(basic_filebuf_char_imbue));
733 __ASM_VTABLE(basic_filebuf_wchar,
734 VTABLE_ADD_FUNC(basic_filebuf_wchar_vector_dtor)
735 VTABLE_ADD_FUNC(basic_filebuf_wchar_overflow)
736 VTABLE_ADD_FUNC(basic_filebuf_wchar_pbackfail)
737 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
738 VTABLE_ADD_FUNC(basic_filebuf_wchar_underflow)
739 VTABLE_ADD_FUNC(basic_filebuf_wchar_uflow)
740 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
741 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s)
742 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
743 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekoff)
744 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekpos)
745 VTABLE_ADD_FUNC(basic_filebuf_wchar_setbuf)
746 VTABLE_ADD_FUNC(basic_filebuf_wchar_sync)
747 VTABLE_ADD_FUNC(basic_filebuf_wchar_imbue));
748 __ASM_VTABLE(basic_filebuf_short,
749 VTABLE_ADD_FUNC(basic_filebuf_wchar_vector_dtor)
750 VTABLE_ADD_FUNC(basic_filebuf_wchar_overflow)
751 VTABLE_ADD_FUNC(basic_filebuf_wchar_pbackfail)
752 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
753 VTABLE_ADD_FUNC(basic_filebuf_wchar_underflow)
754 VTABLE_ADD_FUNC(basic_filebuf_wchar_uflow)
755 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
756 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s)
757 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
758 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekoff)
759 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekpos)
760 VTABLE_ADD_FUNC(basic_filebuf_short_setbuf)
761 VTABLE_ADD_FUNC(basic_filebuf_wchar_sync)
762 VTABLE_ADD_FUNC(basic_filebuf_short_imbue));
763 __ASM_VTABLE(basic_stringbuf_char,
764 VTABLE_ADD_FUNC(basic_stringbuf_char_vector_dtor)
765 VTABLE_ADD_FUNC(basic_stringbuf_char_overflow)
766 VTABLE_ADD_FUNC(basic_stringbuf_char_pbackfail)
767 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
768 VTABLE_ADD_FUNC(basic_stringbuf_char_underflow)
769 VTABLE_ADD_FUNC(basic_streambuf_char_uflow)
770 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
771 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
772 VTABLE_ADD_FUNC(basic_stringbuf_char_seekoff)
773 VTABLE_ADD_FUNC(basic_stringbuf_char_seekpos)
774 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf)
775 VTABLE_ADD_FUNC(basic_streambuf_char_sync)
776 VTABLE_ADD_FUNC(basic_streambuf_char_imbue));
777 __ASM_VTABLE(basic_stringbuf_wchar,
778 VTABLE_ADD_FUNC(basic_stringbuf_wchar_vector_dtor)
779 VTABLE_ADD_FUNC(basic_stringbuf_wchar_overflow)
780 VTABLE_ADD_FUNC(basic_stringbuf_wchar_pbackfail)
781 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
782 VTABLE_ADD_FUNC(basic_stringbuf_wchar_underflow)
783 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
784 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
785 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s)
786 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
787 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekoff)
788 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekpos)
789 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
790 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
791 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
792 __ASM_VTABLE(basic_stringbuf_short,
793 VTABLE_ADD_FUNC(basic_stringbuf_wchar_vector_dtor)
794 VTABLE_ADD_FUNC(basic_stringbuf_wchar_overflow)
795 VTABLE_ADD_FUNC(basic_stringbuf_wchar_pbackfail)
796 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
797 VTABLE_ADD_FUNC(basic_stringbuf_wchar_underflow)
798 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
799 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
800 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s)
801 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
802 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekoff)
803 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekpos)
804 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
805 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
806 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
807 __ASM_VTABLE(basic_ostream_char,
808 VTABLE_ADD_FUNC(basic_ostream_char_vector_dtor));
809 __ASM_VTABLE(basic_ostream_wchar,
810 VTABLE_ADD_FUNC(basic_ostream_wchar_vector_dtor));
811 __ASM_VTABLE(basic_ostream_short,
812 VTABLE_ADD_FUNC(basic_ostream_wchar_vector_dtor));
813 __ASM_VTABLE(basic_istream_char,
814 VTABLE_ADD_FUNC(basic_istream_char_vector_dtor));
815 __ASM_VTABLE(basic_istream_wchar,
816 VTABLE_ADD_FUNC(basic_istream_wchar_vector_dtor));
817 __ASM_VTABLE(basic_istream_short,
818 VTABLE_ADD_FUNC(basic_istream_wchar_vector_dtor));
819 __ASM_VTABLE(basic_iostream_char,
820 VTABLE_ADD_FUNC(basic_iostream_char_vector_dtor));
821 __ASM_VTABLE(basic_iostream_wchar,
822 VTABLE_ADD_FUNC(basic_iostream_wchar_vector_dtor));
823 __ASM_VTABLE(basic_iostream_short,
824 VTABLE_ADD_FUNC(basic_iostream_wchar_vector_dtor));
825 __ASM_VTABLE(basic_ofstream_char,
826 VTABLE_ADD_FUNC(basic_ofstream_char_vector_dtor));
827 __ASM_VTABLE(basic_ofstream_wchar,
828 VTABLE_ADD_FUNC(basic_ofstream_wchar_vector_dtor));
829 __ASM_VTABLE(basic_ofstream_short,
830 VTABLE_ADD_FUNC(basic_ofstream_wchar_vector_dtor));
831 __ASM_VTABLE(basic_ifstream_char,
832 VTABLE_ADD_FUNC(basic_ifstream_char_vector_dtor));
833 __ASM_VTABLE(basic_ifstream_wchar,
834 VTABLE_ADD_FUNC(basic_ifstream_wchar_vector_dtor));
835 __ASM_VTABLE(basic_ifstream_short,
836 VTABLE_ADD_FUNC(basic_ifstream_wchar_vector_dtor));
837 __ASM_VTABLE(basic_fstream_char,
838 VTABLE_ADD_FUNC(basic_fstream_char_vector_dtor));
839 __ASM_VTABLE(basic_fstream_wchar,
840 VTABLE_ADD_FUNC(basic_fstream_wchar_vector_dtor));
841 __ASM_VTABLE(basic_fstream_short,
842 VTABLE_ADD_FUNC(basic_fstream_wchar_vector_dtor));
843 __ASM_VTABLE(basic_ostringstream_char,
844 VTABLE_ADD_FUNC(basic_ostringstream_char_vector_dtor));
845 __ASM_VTABLE(basic_ostringstream_wchar,
846 VTABLE_ADD_FUNC(basic_ostringstream_wchar_vector_dtor));
847 __ASM_VTABLE(basic_ostringstream_short,
848 VTABLE_ADD_FUNC(basic_ostringstream_wchar_vector_dtor));
849 __ASM_VTABLE(basic_istringstream_char,
850 VTABLE_ADD_FUNC(basic_istringstream_char_vector_dtor));
851 __ASM_VTABLE(basic_istringstream_wchar,
852 VTABLE_ADD_FUNC(basic_istringstream_wchar_vector_dtor));
853 __ASM_VTABLE(basic_istringstream_short,
854 VTABLE_ADD_FUNC(basic_istringstream_wchar_vector_dtor));
855 __ASM_VTABLE(basic_stringstream_char,
856 VTABLE_ADD_FUNC(basic_stringstream_char_vector_dtor));
857 __ASM_VTABLE(basic_stringstream_wchar,
858 VTABLE_ADD_FUNC(basic_stringstream_wchar_vector_dtor));
859 __ASM_VTABLE(basic_stringstream_short,
860 VTABLE_ADD_FUNC(basic_stringstream_wchar_vector_dtor));
861 __ASM_VTABLE(strstreambuf,
862 VTABLE_ADD_FUNC(strstreambuf_vector_dtor)
863 VTABLE_ADD_FUNC(strstreambuf_overflow)
864 VTABLE_ADD_FUNC(strstreambuf_pbackfail)
865 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
866 VTABLE_ADD_FUNC(strstreambuf_underflow)
867 VTABLE_ADD_FUNC(basic_streambuf_char_uflow)
868 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
869 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
870 VTABLE_ADD_FUNC(strstreambuf_seekoff)
871 VTABLE_ADD_FUNC(strstreambuf_seekpos)
872 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf)
873 VTABLE_ADD_FUNC(basic_streambuf_char_sync)
874 VTABLE_ADD_FUNC(basic_streambuf_char_imbue));
875 __ASM_VTABLE(ostrstream,
876 VTABLE_ADD_FUNC(ostrstream_vector_dtor));
877 __ASM_VTABLE(strstream,
878 VTABLE_ADD_FUNC(strstream_vector_dtor));
883 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
884 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
885 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp_next, 16)
886 void __thiscall basic_streambuf_char_setp_next(basic_streambuf_char *this, char *first, char *next, char *last)
888 TRACE("(%p %p %p %p)\n", this, first, next, last);
892 this->wsize = last-next;
895 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z */
896 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z */
897 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp, 12)
898 void __thiscall basic_streambuf_char_setp(basic_streambuf_char *this, char *first, char *last)
900 basic_streambuf_char_setp_next(this, first, first, last);
903 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
904 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
905 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setg, 16)
906 void __thiscall basic_streambuf_char_setg(basic_streambuf_char *this, char *first, char *next, char *last)
908 TRACE("(%p %p %p %p)\n", this, first, next, last);
912 this->rsize = last-next;
915 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ */
916 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ */
917 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init_empty, 4)
918 void __thiscall basic_streambuf_char__Init_empty(basic_streambuf_char *this)
920 TRACE("(%p)\n", this);
922 this->prbuf = &this->rbuf;
923 this->pwbuf = &this->wbuf;
924 this->prpos = &this->rpos;
925 this->pwpos = &this->wpos;
926 this->prsize = &this->rsize;
927 this->pwsize = &this->wsize;
929 basic_streambuf_char_setp(this, NULL, NULL);
930 basic_streambuf_char_setg(this, NULL, NULL, NULL);
933 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@W4_Uninitialized@1@@Z */
934 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
935 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor_uninitialized, 8)
936 basic_streambuf_char* __thiscall basic_streambuf_char_ctor_uninitialized(basic_streambuf_char *this, int uninitialized)
938 TRACE("(%p %d)\n", this, uninitialized);
939 this->vtable = &MSVCP_basic_streambuf_char_vtable;
940 mutex_ctor(&this->lock);
944 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ */
945 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ */
946 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor, 4)
947 basic_streambuf_char* __thiscall basic_streambuf_char_ctor(basic_streambuf_char *this)
949 TRACE("(%p)\n", this);
951 this->vtable = &MSVCP_basic_streambuf_char_vtable;
952 mutex_ctor(&this->lock);
953 this->loc = MSVCRT_operator_new(sizeof(locale));
954 locale_ctor(this->loc);
955 basic_streambuf_char__Init_empty(this);
960 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
961 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
962 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_dtor, 4)
963 void __thiscall basic_streambuf_char_dtor(basic_streambuf_char *this)
965 TRACE("(%p)\n", this);
967 mutex_dtor(&this->lock);
968 locale_dtor(this->loc);
969 MSVCRT_operator_delete(this->loc);
972 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_vector_dtor, 8)
973 basic_streambuf_char* __thiscall basic_streambuf_char_vector_dtor(basic_streambuf_char *this, unsigned int flags)
975 TRACE("(%p %x)\n", this, flags);
977 /* we have an array, with the number of elements stored before the first object */
978 INT_PTR i, *ptr = (INT_PTR *)this-1;
980 for(i=*ptr-1; i>=0; i--)
981 basic_streambuf_char_dtor(this+i);
982 MSVCRT_operator_delete(ptr);
984 basic_streambuf_char_dtor(this);
986 MSVCRT_operator_delete(this);
992 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
993 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
994 static streamsize basic_streambuf_char__Gnavail(const basic_streambuf_char *this)
996 TRACE("(%p)\n", this);
997 return *this->prpos ? *this->prsize : 0;
1000 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
1001 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
1002 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gndec, 4)
1003 char* __thiscall basic_streambuf_char__Gndec(basic_streambuf_char *this)
1005 TRACE("(%p)\n", this);
1008 return *this->prpos;
1011 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
1012 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
1013 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gninc, 4)
1014 char* __thiscall basic_streambuf_char__Gninc(basic_streambuf_char *this)
1016 TRACE("(%p)\n", this);
1018 return (*this->prpos)++;
1021 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
1022 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
1023 static char* basic_streambuf_char__Gnpreinc(basic_streambuf_char *this)
1025 TRACE("(%p)\n", this);
1028 return *this->prpos;
1031 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z */
1032 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAPEAD0PEAH001@Z */
1033 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init, 28)
1034 void __thiscall basic_streambuf_char__Init(basic_streambuf_char *this, char **gf, char **gn, int *gc, char **pf, char **pn, int *pc)
1036 TRACE("(%p %p %p %p %p %p %p)\n", this, gf, gn, gc, pf, pn, pc);
1046 /* ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1047 /* ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1048 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Lock, 4)
1049 void __thiscall basic_streambuf_char__Lock(basic_streambuf_char *this)
1051 TRACE("(%p)\n", this);
1052 mutex_lock(&this->lock);
1055 /* ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
1056 /* ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
1057 static streamsize basic_streambuf_char__Pnavail(const basic_streambuf_char *this)
1059 TRACE("(%p)\n", this);
1060 return *this->pwpos ? *this->pwsize : 0;
1063 /* ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
1064 /* ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
1065 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Pninc, 4)
1066 char* __thiscall basic_streambuf_char__Pninc(basic_streambuf_char *this)
1068 TRACE("(%p)\n", this);
1070 return (*this->pwpos)++;
1073 /* ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1074 /* ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1075 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_underflow, 4)
1076 #define call_basic_streambuf_char_underflow(this) CALL_VTBL_FUNC(this, 16, \
1077 int, (basic_streambuf_char*), (this))
1078 int __thiscall basic_streambuf_char_underflow(basic_streambuf_char *this)
1080 TRACE("(%p)\n", this);
1084 /* ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1085 /* ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1086 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_uflow, 4)
1087 #define call_basic_streambuf_char_uflow(this) CALL_VTBL_FUNC(this, 20, \
1088 int, (basic_streambuf_char*), (this))
1089 int __thiscall basic_streambuf_char_uflow(basic_streambuf_char *this)
1093 TRACE("(%p)\n", this);
1095 if(call_basic_streambuf_char_underflow(this)==EOF)
1098 ret = (unsigned char)**this->prpos;
1104 /* ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADIH@Z */
1105 /* ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_K_J@Z */
1106 static streamsize basic_streambuf_char__Xsgetn_s(basic_streambuf_char *this, char *ptr, MSVCP_size_t size, streamsize count)
1108 streamsize copied, chunk;
1111 TRACE("(%p %p %lu %ld)\n", this, ptr, size, count);
1113 for(copied=0; copied<count && size;) {
1114 chunk = basic_streambuf_char__Gnavail(this);
1115 if(chunk > count-copied)
1116 chunk = count-copied;
1119 memcpy_s(ptr+copied, size, *this->prpos, chunk);
1120 *this->prpos += chunk;
1121 *this->prsize -= chunk;
1124 }else if((c = call_basic_streambuf_char_uflow(this)) != EOF) {
1136 /* ?_Sgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADIH@Z */
1137 /* ?_Sgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_K_J@Z */
1138 static streamsize basic_streambuf_char__Sgetn_s(basic_streambuf_char *this, char *ptr, MSVCP_size_t size, streamsize count)
1140 TRACE("(%p %p %lu %ld)\n", this, ptr, size, count);
1141 return basic_streambuf_char__Xsgetn_s(this, ptr, size, count);
1144 /* ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1145 /* ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1146 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Unlock, 4)
1147 void __thiscall basic_streambuf_char__Unlock(basic_streambuf_char *this)
1149 TRACE("(%p)\n", this);
1150 mutex_unlock(&this->lock);
1153 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1154 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1155 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_eback, 4)
1156 char* __thiscall basic_streambuf_char_eback(const basic_streambuf_char *this)
1158 TRACE("(%p)\n", this);
1159 return *this->prbuf;
1162 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1163 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1164 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gptr, 4)
1165 char* __thiscall basic_streambuf_char_gptr(const basic_streambuf_char *this)
1167 TRACE("(%p)\n", this);
1168 return *this->prpos;
1171 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1172 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1173 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_egptr, 4)
1174 char* __thiscall basic_streambuf_char_egptr(const basic_streambuf_char *this)
1176 TRACE("(%p)\n", this);
1177 return *this->prpos+*this->prsize;
1180 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1181 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1182 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_epptr, 4)
1183 char* __thiscall basic_streambuf_char_epptr(const basic_streambuf_char *this)
1185 TRACE("(%p)\n", this);
1186 return *this->pwpos+*this->pwsize;
1189 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
1190 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
1191 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gbump, 8)
1192 void __thiscall basic_streambuf_char_gbump(basic_streambuf_char *this, int off)
1194 TRACE("(%p %d)\n", this, off);
1195 *this->prpos += off;
1196 *this->prsize -= off;
1199 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ */
1200 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?AVlocale@2@XZ */
1201 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_getloc, 8)
1202 locale* __thiscall basic_streambuf_char_getloc(const basic_streambuf_char *this, locale *ret)
1204 TRACE("(%p)\n", this);
1205 return locale_copy_ctor(ret, this->loc);
1208 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z */
1209 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z */
1210 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_imbue, 8)
1211 #define call_basic_streambuf_char_imbue(this, loc) CALL_VTBL_FUNC(this, 48, \
1212 void, (basic_streambuf_char*, const locale*), (this, loc))
1213 void __thiscall basic_streambuf_char_imbue(basic_streambuf_char *this, const locale *loc)
1215 TRACE("(%p %p)\n", this, loc);
1218 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
1219 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
1220 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_overflow, 8)
1221 #define call_basic_streambuf_char_overflow(this, ch) CALL_VTBL_FUNC(this, 4, \
1222 int, (basic_streambuf_char*, int), (this, ch))
1223 int __thiscall basic_streambuf_char_overflow(basic_streambuf_char *this, int ch)
1225 TRACE("(%p %d)\n", this, ch);
1229 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
1230 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
1231 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbackfail, 8)
1232 #define call_basic_streambuf_char_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, \
1233 int, (basic_streambuf_char*, int), (this, ch))
1234 int __thiscall basic_streambuf_char_pbackfail(basic_streambuf_char *this, int ch)
1236 TRACE("(%p %d)\n", this, ch);
1240 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1241 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1242 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbase, 4)
1243 char* __thiscall basic_streambuf_char_pbase(const basic_streambuf_char *this)
1245 TRACE("(%p)\n", this);
1246 return *this->pwbuf;
1249 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
1250 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
1251 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbump, 8)
1252 void __thiscall basic_streambuf_char_pbump(basic_streambuf_char *this, int off)
1254 TRACE("(%p %d)\n", this, off);
1255 *this->pwpos += off;
1256 *this->pwsize -= off;
1259 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1260 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1261 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pptr, 4)
1262 char* __thiscall basic_streambuf_char_pptr(const basic_streambuf_char *this)
1264 TRACE("(%p)\n", this);
1265 return *this->pwpos;
1268 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
1269 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
1270 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubimbue, 12)
1271 locale* __thiscall basic_streambuf_char_pubimbue(basic_streambuf_char *this, locale *ret, const locale *loc)
1273 TRACE("(%p %p)\n", this, loc);
1274 memcpy(ret, this->loc, sizeof(locale));
1275 call_basic_streambuf_char_imbue(this, loc);
1276 locale_copy_ctor(this->loc, loc);
1280 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
1281 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
1282 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekoff, 20)
1283 #define call_basic_streambuf_char_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 32, \
1284 fpos_int*, (basic_streambuf_char*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
1285 fpos_int* __thiscall basic_streambuf_char_seekoff(basic_streambuf_char *this,
1286 fpos_int *ret, streamoff off, int way, int mode)
1288 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
1295 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
1296 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
1297 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff, 20)
1298 fpos_int* __thiscall basic_streambuf_char_pubseekoff(basic_streambuf_char *this,
1299 fpos_int *ret, streamoff off, int way, int mode)
1301 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
1302 return call_basic_streambuf_char_seekoff(this, ret, off, way, mode);
1305 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
1306 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
1307 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff_old, 20)
1308 fpos_int* __thiscall basic_streambuf_char_pubseekoff_old(basic_streambuf_char *this,
1309 fpos_int *ret, streamoff off, unsigned int way, unsigned int mode)
1311 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
1312 return basic_streambuf_char_pubseekoff(this, ret, off, way, mode);
1315 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
1316 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
1317 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekpos, 36)
1318 #define call_basic_streambuf_char_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 36, \
1319 fpos_int*, (basic_streambuf_char*, fpos_int*, fpos_int, int), (this, ret, pos, mode))
1320 fpos_int* __thiscall basic_streambuf_char_seekpos(basic_streambuf_char *this,
1321 fpos_int *ret, fpos_int pos, int mode)
1323 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
1330 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
1331 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
1332 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos, 36)
1333 fpos_int* __thiscall basic_streambuf_char_pubseekpos(basic_streambuf_char *this,
1334 fpos_int *ret, fpos_int pos, int mode)
1336 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
1337 return call_basic_streambuf_char_seekpos(this, ret, pos, mode);
1340 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
1341 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
1342 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos_old, 36)
1343 fpos_int* __thiscall basic_streambuf_char_pubseekpos_old(basic_streambuf_char *this,
1344 fpos_int *ret, fpos_int pos, unsigned int mode)
1346 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
1347 return basic_streambuf_char_pubseekpos(this, ret, pos, mode);
1350 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z */
1351 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@PEAD_J@Z */
1352 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setbuf, 12)
1353 #define call_basic_streambuf_char_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 40, \
1354 basic_streambuf_char*, (basic_streambuf_char*, char*, streamsize), (this, buf, count))
1355 basic_streambuf_char* __thiscall basic_streambuf_char_setbuf(basic_streambuf_char *this, char *buf, streamsize count)
1357 TRACE("(%p %p %ld)\n", this, buf, count);
1361 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PADH@Z */
1362 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEAD_J@Z */
1363 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsetbuf, 12)
1364 basic_streambuf_char* __thiscall basic_streambuf_char_pubsetbuf(basic_streambuf_char *this, char *buf, streamsize count)
1366 TRACE("(%p %p %ld)\n", this, buf, count);
1367 return call_basic_streambuf_char_setbuf(this, buf, count);
1370 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1371 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1372 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sync, 4)
1373 #define call_basic_streambuf_char_sync(this) CALL_VTBL_FUNC(this, 44, \
1374 int, (basic_streambuf_char*), (this))
1375 int __thiscall basic_streambuf_char_sync(basic_streambuf_char *this)
1377 TRACE("(%p)\n", this);
1381 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1382 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1383 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsync, 4)
1384 int __thiscall basic_streambuf_char_pubsync(basic_streambuf_char *this)
1386 TRACE("(%p)\n", this);
1387 return call_basic_streambuf_char_sync(this);
1390 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADH@Z */
1391 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z */
1392 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetn, 12)
1393 streamsize __thiscall basic_streambuf_char_sgetn(basic_streambuf_char *this, char *ptr, streamsize count)
1395 TRACE("(%p %p %ld)\n", this, ptr, count);
1396 return basic_streambuf_char__Xsgetn_s(this, ptr, -1, count);
1399 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1400 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ */
1401 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_showmanyc, 4)
1402 #define call_basic_streambuf_char_showmanyc(this) CALL_VTBL_FUNC(this, 12, \
1403 streamsize, (basic_streambuf_char*), (this))
1404 streamsize __thiscall basic_streambuf_char_showmanyc(basic_streambuf_char *this)
1406 TRACE("(%p)\n", this);
1410 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1411 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JXZ */
1412 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_in_avail, 4)
1413 streamsize __thiscall basic_streambuf_char_in_avail(basic_streambuf_char *this)
1417 TRACE("(%p)\n", this);
1419 ret = basic_streambuf_char__Gnavail(this);
1420 return ret ? ret : call_basic_streambuf_char_showmanyc(this);
1423 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
1424 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
1425 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputbackc, 8)
1426 int __thiscall basic_streambuf_char_sputbackc(basic_streambuf_char *this, char ch)
1428 TRACE("(%p %d)\n", this, ch);
1429 if(*this->prpos && *this->prpos>*this->prbuf && (*this->prpos)[-1]==ch) {
1432 return (unsigned char)ch;
1435 return call_basic_streambuf_char_pbackfail(this, (unsigned char)ch);
1438 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
1439 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
1440 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputc, 8)
1441 int __thiscall basic_streambuf_char_sputc(basic_streambuf_char *this, char ch)
1443 TRACE("(%p %d)\n", this, ch);
1444 return basic_streambuf_char__Pnavail(this) ?
1445 (*basic_streambuf_char__Pninc(this) = ch) :
1446 call_basic_streambuf_char_overflow(this, (unsigned char)ch);
1449 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1450 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1451 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sungetc, 4)
1452 int __thiscall basic_streambuf_char_sungetc(basic_streambuf_char *this)
1454 TRACE("(%p)\n", this);
1455 if(*this->prpos && *this->prpos>*this->prbuf) {
1458 return (unsigned char)**this->prpos;
1461 return call_basic_streambuf_char_pbackfail(this, EOF);
1464 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1465 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1466 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_stossc, 4)
1467 void __thiscall basic_streambuf_char_stossc(basic_streambuf_char *this)
1469 TRACE("(%p)\n", this);
1470 if(basic_streambuf_char__Gnavail(this))
1471 basic_streambuf_char__Gninc(this);
1473 call_basic_streambuf_char_uflow(this);
1476 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1477 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1478 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sbumpc, 4)
1479 int __thiscall basic_streambuf_char_sbumpc(basic_streambuf_char *this)
1481 TRACE("(%p)\n", this);
1482 return basic_streambuf_char__Gnavail(this) ?
1483 (int)(unsigned char)*basic_streambuf_char__Gninc(this) : call_basic_streambuf_char_uflow(this);
1486 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1487 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1488 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetc, 4)
1489 int __thiscall basic_streambuf_char_sgetc(basic_streambuf_char *this)
1491 TRACE("(%p)\n", this);
1492 return basic_streambuf_char__Gnavail(this) ?
1493 (int)(unsigned char)*basic_streambuf_char_gptr(this) : call_basic_streambuf_char_underflow(this);
1496 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1497 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1498 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_snextc, 4)
1499 int __thiscall basic_streambuf_char_snextc(basic_streambuf_char *this)
1501 TRACE("(%p)\n", this);
1503 if(basic_streambuf_char__Gnavail(this) > 1)
1504 return (unsigned char)*basic_streambuf_char__Gnpreinc(this);
1505 return basic_streambuf_char_sbumpc(this)==EOF ?
1506 EOF : basic_streambuf_char_sgetc(this);
1509 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z */
1510 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z */
1511 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsgetn, 12)
1512 #define call_basic_streambuf_char_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, \
1513 streamsize, (basic_streambuf_char*, char*, streamsize), (this, ptr, count))
1514 streamsize __thiscall basic_streambuf_char_xsgetn(basic_streambuf_char *this, char *ptr, streamsize count)
1516 TRACE("(%p %p %ld)\n", this, ptr, count);
1517 return basic_streambuf_char__Xsgetn_s(this, ptr, -1, count);
1520 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z */
1521 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z */
1522 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsputn, 12)
1523 #define call_basic_streambuf_char_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 28, \
1524 streamsize, (basic_streambuf_char*, const char*, streamsize), (this, ptr, count))
1525 streamsize __thiscall basic_streambuf_char_xsputn(basic_streambuf_char *this, const char *ptr, streamsize count)
1527 streamsize copied, chunk;
1529 TRACE("(%p %p %ld)\n", this, ptr, count);
1531 for(copied=0; copied<count;) {
1532 chunk = basic_streambuf_char__Pnavail(this);
1533 if(chunk > count-copied)
1534 chunk = count-copied;
1537 memcpy(*this->pwpos, ptr+copied, chunk);
1538 *this->pwpos += chunk;
1539 *this->pwsize -= chunk;
1541 }else if(call_basic_streambuf_char_overflow(this, (unsigned char)ptr[copied]) != EOF) {
1551 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z */
1552 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@Z */
1553 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputn, 12)
1554 streamsize __thiscall basic_streambuf_char_sputn(basic_streambuf_char *this, const char *ptr, streamsize count)
1556 TRACE("(%p %p %ld)\n", this, ptr, count);
1557 return call_basic_streambuf_char_xsputn(this, ptr, count);
1560 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z */
1561 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z */
1562 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG00@Z */
1563 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z */
1564 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setp_next, 16)
1565 void __thiscall basic_streambuf_wchar_setp_next(basic_streambuf_wchar *this, wchar_t *first, wchar_t *next, wchar_t *last)
1567 TRACE("(%p %p %p %p)\n", this, first, next, last);
1571 this->wsize = last-next;
1574 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W0@Z */
1575 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W0@Z */
1576 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG0@Z */
1577 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG0@Z */
1578 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setp, 12)
1579 void __thiscall basic_streambuf_wchar_setp(basic_streambuf_wchar *this, wchar_t *first, wchar_t *last)
1581 basic_streambuf_wchar_setp_next(this, first, first, last);
1584 /* ?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z */
1585 /* ?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z */
1586 /* ?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG00@Z */
1587 /* ?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z */
1588 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setg, 16)
1589 void __thiscall basic_streambuf_wchar_setg(basic_streambuf_wchar *this, wchar_t *first, wchar_t *next, wchar_t *last)
1591 TRACE("(%p %p %p %p)\n", this, first, next, last);
1595 this->rsize = last-next;
1598 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXXZ */
1599 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXXZ */
1600 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXXZ */
1601 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXXZ */
1602 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init_empty, 4)
1603 void __thiscall basic_streambuf_wchar__Init_empty(basic_streambuf_wchar *this)
1605 TRACE("(%p)\n", this);
1607 this->prbuf = &this->rbuf;
1608 this->pwbuf = &this->wbuf;
1609 this->prpos = &this->rpos;
1610 this->pwpos = &this->wpos;
1611 this->prsize = &this->rsize;
1612 this->pwsize = &this->wsize;
1614 basic_streambuf_wchar_setp(this, NULL, NULL);
1615 basic_streambuf_wchar_setg(this, NULL, NULL, NULL);
1618 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAE@W4_Uninitialized@1@@Z */
1619 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
1620 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_ctor_uninitialized, 8)
1621 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_ctor_uninitialized(basic_streambuf_wchar *this, int uninitialized)
1623 TRACE("(%p %d)\n", this, uninitialized);
1624 this->vtable = &MSVCP_basic_streambuf_wchar_vtable;
1625 mutex_ctor(&this->lock);
1629 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@W4_Uninitialized@1@@Z */
1630 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
1631 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor_uninitialized, 8)
1632 basic_streambuf_wchar* __thiscall basic_streambuf_short_ctor_uninitialized(basic_streambuf_wchar *this, int uninitialized)
1634 TRACE("(%p %d)\n", this, uninitialized);
1635 basic_streambuf_wchar_ctor_uninitialized(this, uninitialized);
1636 this->vtable = &MSVCP_basic_streambuf_short_vtable;
1640 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
1641 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
1642 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_ctor, 4)
1643 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_ctor(basic_streambuf_wchar *this)
1645 TRACE("(%p)\n", this);
1647 this->vtable = &MSVCP_basic_streambuf_wchar_vtable;
1648 mutex_ctor(&this->lock);
1649 this->loc = MSVCRT_operator_new(sizeof(locale));
1650 locale_ctor(this->loc);
1651 basic_streambuf_wchar__Init_empty(this);
1656 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@XZ */
1657 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@XZ */
1658 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor, 4)
1659 basic_streambuf_wchar* __thiscall basic_streambuf_short_ctor(basic_streambuf_wchar *this)
1661 TRACE("(%p)\n", this);
1662 basic_streambuf_wchar_ctor(this);
1663 this->vtable = &MSVCP_basic_streambuf_short_vtable;
1667 /* ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
1668 /* ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
1669 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UAE@XZ */
1670 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */
1671 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_dtor, 4)
1672 void __thiscall basic_streambuf_wchar_dtor(basic_streambuf_wchar *this)
1674 TRACE("(%p)\n", this);
1676 mutex_dtor(&this->lock);
1677 locale_dtor(this->loc);
1678 MSVCRT_operator_delete(this->loc);
1681 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_vector_dtor, 8)
1682 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_vector_dtor(basic_streambuf_wchar *this, unsigned int flags)
1684 TRACE("(%p %x)\n", this, flags);
1686 /* we have an array, with the number of elements stored before the first object */
1687 INT_PTR i, *ptr = (INT_PTR *)this-1;
1689 for(i=*ptr-1; i>=0; i--)
1690 basic_streambuf_wchar_dtor(this+i);
1691 MSVCRT_operator_delete(ptr);
1693 basic_streambuf_wchar_dtor(this);
1695 MSVCRT_operator_delete(this);
1701 /* ?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEHXZ */
1702 /* ?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ */
1703 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
1704 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
1705 static streamsize basic_streambuf_wchar__Gnavail(const basic_streambuf_wchar *this)
1707 TRACE("(%p)\n", this);
1708 return *this->prpos ? *this->prsize : 0;
1711 /* ?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1712 /* ?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1713 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1714 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1715 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gndec, 4)
1716 wchar_t* __thiscall basic_streambuf_wchar__Gndec(basic_streambuf_wchar *this)
1718 TRACE("(%p)\n", this);
1721 return *this->prpos;
1724 /* ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1725 /* ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1726 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1727 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1728 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gninc, 4)
1729 wchar_t* __thiscall basic_streambuf_wchar__Gninc(basic_streambuf_wchar *this)
1731 TRACE("(%p)\n", this);
1733 return (*this->prpos)++;
1736 /* ?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1737 /* ?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1738 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1739 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1740 static wchar_t* basic_streambuf_wchar__Gnpreinc(basic_streambuf_wchar *this)
1742 TRACE("(%p)\n", this);
1745 return *this->prpos;
1748 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPAPA_W0PAH001@Z */
1749 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAPEA_W0PEAH001@Z */
1750 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAPAG0PAH001@Z */
1751 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAPEAG0PEAH001@Z */
1752 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init, 28)
1753 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)
1755 TRACE("(%p %p %p %p %p %p %p)\n", this, gf, gn, gc, pf, pn, pc);
1765 /* ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1766 /* ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1767 /* ?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1768 /* ?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1769 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Lock, 4)
1770 void __thiscall basic_streambuf_wchar__Lock(basic_streambuf_wchar *this)
1772 TRACE("(%p)\n", this);
1773 mutex_lock(&this->lock);
1776 /* ?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEHXZ */
1777 /* ?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ */
1778 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
1779 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
1780 static streamsize basic_streambuf_wchar__Pnavail(const basic_streambuf_wchar *this)
1782 TRACE("(%p)\n", this);
1783 return *this->pwpos ? *this->pwsize : 0;
1786 /* ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1787 /* ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1788 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1789 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1790 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Pninc, 4)
1791 wchar_t* __thiscall basic_streambuf_wchar__Pninc(basic_streambuf_wchar *this)
1793 TRACE("(%p)\n", this);
1795 return (*this->pwpos)++;
1798 /* ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
1799 /* ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
1800 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
1801 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
1802 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_underflow, 4)
1803 #define call_basic_streambuf_wchar_underflow(this) CALL_VTBL_FUNC(this, 16, \
1804 unsigned short, (basic_streambuf_wchar*), (this))
1805 unsigned short __thiscall basic_streambuf_wchar_underflow(basic_streambuf_wchar *this)
1807 TRACE("(%p)\n", this);
1811 /* ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
1812 /* ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
1813 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
1814 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
1815 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_uflow, 4)
1816 #define call_basic_streambuf_wchar_uflow(this) CALL_VTBL_FUNC(this, 20, \
1817 unsigned short, (basic_streambuf_wchar*), (this))
1818 unsigned short __thiscall basic_streambuf_wchar_uflow(basic_streambuf_wchar *this)
1822 TRACE("(%p)\n", this);
1824 if(call_basic_streambuf_wchar_underflow(this)==WEOF)
1827 ret = **this->prpos;
1833 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WIH@Z */
1834 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_K_J@Z */
1835 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGIH@Z */
1836 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_K_J@Z */
1837 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Xsgetn_s, 16)
1838 #define call_basic_streambuf_wchar__Xsgetn_s(this, ptr, size, count) CALL_VTBL_FUNC(this, 28, \
1839 streamsize, (basic_streambuf_wchar*, wchar_t*, MSVCP_size_t, streamsize), (this, ptr, size, count))
1840 streamsize __thiscall basic_streambuf_wchar__Xsgetn_s(basic_streambuf_wchar *this, wchar_t *ptr, MSVCP_size_t size, streamsize count)
1842 streamsize copied, chunk;
1845 TRACE("(%p %p %lu %ld)\n", this, ptr, size, count);
1847 for(copied=0; copied<count && size;) {
1848 chunk = basic_streambuf_wchar__Gnavail(this);
1849 if(chunk > count-copied)
1850 chunk = count-copied;
1853 memcpy_s(ptr+copied, size, *this->prpos, chunk*sizeof(wchar_t));
1854 *this->prpos += chunk;
1855 *this->prsize -= chunk;
1857 size -= chunk*sizeof(wchar_t);
1858 }else if((c = call_basic_streambuf_wchar_uflow(this)) != WEOF) {
1870 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPA_WIH@Z */
1871 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_K_J@Z */
1872 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGIH@Z */
1873 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_K_J@Z */
1874 static streamsize basic_streambuf_wchar__Sgetn_s(basic_streambuf_wchar *this, wchar_t *ptr, MSVCP_size_t size, streamsize count)
1876 TRACE("(%p %p %lu %ld)\n", this, ptr, size, count);
1877 return call_basic_streambuf_wchar__Xsgetn_s(this, ptr, size, count);
1880 /* ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1881 /* ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1882 /* ?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1883 /* ?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1884 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Unlock, 4)
1885 void __thiscall basic_streambuf_wchar__Unlock(basic_streambuf_wchar *this)
1887 TRACE("(%p)\n", this);
1888 mutex_unlock(&this->lock);
1891 /* ?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1892 /* ?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1893 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1894 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1895 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_eback, 4)
1896 wchar_t* __thiscall basic_streambuf_wchar_eback(const basic_streambuf_wchar *this)
1898 TRACE("(%p)\n", this);
1899 return *this->prbuf;
1902 /* ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1903 /* ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1904 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1905 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1906 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gptr, 4)
1907 wchar_t* __thiscall basic_streambuf_wchar_gptr(const basic_streambuf_wchar *this)
1909 TRACE("(%p)\n", this);
1910 return *this->prpos;
1913 /* ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1914 /* ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1915 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1916 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1917 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_egptr, 4)
1918 wchar_t* __thiscall basic_streambuf_wchar_egptr(const basic_streambuf_wchar *this)
1920 TRACE("(%p)\n", this);
1921 return *this->prpos+*this->prsize;
1924 /* ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1925 /* ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1926 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1927 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1928 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_epptr, 4)
1929 wchar_t* __thiscall basic_streambuf_wchar_epptr(const basic_streambuf_wchar *this)
1931 TRACE("(%p)\n", this);
1932 return *this->pwpos+*this->pwsize;
1935 /* ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z */
1936 /* ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z */
1937 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
1938 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
1939 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gbump, 8)
1940 void __thiscall basic_streambuf_wchar_gbump(basic_streambuf_wchar *this, int off)
1942 TRACE("(%p %d)\n", this, off);
1943 *this->prpos += off;
1944 *this->prsize -= off;
1947 /* ?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QBE?AVlocale@2@XZ */
1948 /* ?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEBA?AVlocale@2@XZ */
1949 /* ?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QBE?AVlocale@2@XZ */
1950 /* ?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEBA?AVlocale@2@XZ */
1951 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_getloc, 8)
1952 locale* __thiscall basic_streambuf_wchar_getloc(const basic_streambuf_wchar *this, locale *ret)
1954 TRACE("(%p)\n", this);
1955 return locale_copy_ctor(ret, this->loc);
1958 /* ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z */
1959 /* ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z */
1960 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEXABVlocale@2@@Z */
1961 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z */
1962 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_imbue, 8)
1963 #define call_basic_streambuf_wchar_imbue(this, loc) CALL_VTBL_FUNC(this, 52, \
1964 void, (basic_streambuf_wchar*, const locale*), (this, loc))
1965 void __thiscall basic_streambuf_wchar_imbue(basic_streambuf_wchar *this, const locale *loc)
1967 TRACE("(%p %p)\n", this, loc);
1970 /* ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
1971 /* ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
1972 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
1973 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
1974 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_overflow, 8)
1975 #define call_basic_streambuf_wchar_overflow(this, ch) CALL_VTBL_FUNC(this, 4, \
1976 unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
1977 unsigned short __thiscall basic_streambuf_wchar_overflow(basic_streambuf_wchar *this, unsigned short ch)
1979 TRACE("(%p %d)\n", this, ch);
1983 /* ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
1984 /* ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
1985 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
1986 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
1987 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbackfail, 8)
1988 #define call_basic_streambuf_wchar_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, \
1989 unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
1990 unsigned short __thiscall basic_streambuf_wchar_pbackfail(basic_streambuf_wchar *this, unsigned short ch)
1992 TRACE("(%p %d)\n", this, ch);
1996 /* ?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1997 /* ?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1998 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1999 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
2000 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbase, 4)
2001 wchar_t* __thiscall basic_streambuf_wchar_pbase(const basic_streambuf_wchar *this)
2003 TRACE("(%p)\n", this);
2004 return *this->pwbuf;
2007 /* ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z */
2008 /* ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z */
2009 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
2010 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
2011 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbump, 8)
2012 void __thiscall basic_streambuf_wchar_pbump(basic_streambuf_wchar *this, int off)
2014 TRACE("(%p %d)\n", this, off);
2015 *this->pwpos += off;
2016 *this->pwsize -= off;
2019 /* ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
2020 /* ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
2021 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
2022 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
2023 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pptr, 4)
2024 wchar_t* __thiscall basic_streambuf_wchar_pptr(const basic_streambuf_wchar *this)
2026 TRACE("(%p)\n", this);
2027 return *this->pwpos;
2030 /* ?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
2031 /* ?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
2032 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
2033 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
2034 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubimbue, 12)
2035 locale* __thiscall basic_streambuf_wchar_pubimbue(basic_streambuf_wchar *this, locale *ret, const locale *loc)
2037 TRACE("(%p %p)\n", this, loc);
2038 memcpy(ret, this->loc, sizeof(locale));
2039 call_basic_streambuf_wchar_imbue(this, loc);
2040 locale_copy_ctor(this->loc, loc);
2044 /* ?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
2045 /* ?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
2046 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
2047 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
2048 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekoff, 20)
2049 #define call_basic_streambuf_wchar_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 36, \
2050 fpos_int*, (basic_streambuf_wchar*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
2051 fpos_int* __thiscall basic_streambuf_wchar_seekoff(basic_streambuf_wchar *this,
2052 fpos_int *ret, streamoff off, int way, int mode)
2054 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
2061 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
2062 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
2063 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
2064 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
2065 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff, 20)
2066 fpos_int* __thiscall basic_streambuf_wchar_pubseekoff(basic_streambuf_wchar *this,
2067 fpos_int *ret, streamoff off, int way, int mode)
2069 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
2070 return call_basic_streambuf_wchar_seekoff(this, ret, off, way, mode);
2073 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
2074 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
2075 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
2076 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
2077 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff_old, 20)
2078 fpos_int* __thiscall basic_streambuf_wchar_pubseekoff_old(basic_streambuf_wchar *this,
2079 fpos_int *ret, streamoff off, unsigned int way, unsigned int mode)
2081 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
2082 return basic_streambuf_wchar_pubseekoff(this, ret, off, way, mode);
2085 /* ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2086 /* ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2087 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2088 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2089 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekpos, 36)
2090 #define call_basic_streambuf_wchar_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 40, \
2091 fpos_int*, (basic_streambuf_wchar*, fpos_int*, fpos_int, int), (this, ret, pos, mode))
2092 fpos_int* __thiscall basic_streambuf_wchar_seekpos(basic_streambuf_wchar *this,
2093 fpos_int *ret, fpos_int pos, int mode)
2095 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
2102 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
2103 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
2104 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
2105 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
2106 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekpos, 36)
2107 fpos_int* __thiscall basic_streambuf_wchar_pubseekpos(basic_streambuf_wchar *this,
2108 fpos_int *ret, fpos_int pos, int mode)
2110 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
2111 return call_basic_streambuf_wchar_seekpos(this, ret, pos, mode);
2114 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
2115 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
2116 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
2117 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
2118 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekpos_old, 36)
2119 fpos_int* __thiscall basic_streambuf_wchar_pubseekpos_old(basic_streambuf_wchar *this,
2120 fpos_int *ret, fpos_int pos, unsigned int mode)
2122 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
2123 return basic_streambuf_wchar_pubseekpos(this, ret, pos, mode);
2126 /* ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEPAV12@PA_WH@Z */
2127 /* ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV12@PEA_W_J@Z */
2128 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEPAV12@PAGH@Z */
2129 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAPEAV12@PEAG_J@Z */
2130 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setbuf, 12)
2131 #define call_basic_streambuf_wchar_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 44, \
2132 basic_streambuf_wchar*, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, buf, count))
2133 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_setbuf(basic_streambuf_wchar *this, wchar_t *buf, streamsize count)
2135 TRACE("(%p %p %ld)\n", this, buf, count);
2139 /* ?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PA_WH@Z */
2140 /* ?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEA_W_J@Z */
2141 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PAGH@Z */
2142 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEAG_J@Z */
2143 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsetbuf, 12)
2144 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_pubsetbuf(basic_streambuf_wchar *this, wchar_t *buf, streamsize count)
2146 TRACE("(%p %p %ld)\n", this, buf, count);
2147 return call_basic_streambuf_wchar_setbuf(this, buf, count);
2150 /* ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
2151 /* ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ */
2152 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
2153 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAHXZ */
2154 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sync, 4)
2155 #define call_basic_streambuf_wchar_sync(this) CALL_VTBL_FUNC(this, 48, \
2156 int, (basic_streambuf_wchar*), (this))
2157 int __thiscall basic_streambuf_wchar_sync(basic_streambuf_wchar *this)
2159 TRACE("(%p)\n", this);
2163 /* ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
2164 /* ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAHXZ */
2165 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
2166 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHXZ */
2167 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsync, 4)
2168 int __thiscall basic_streambuf_wchar_pubsync(basic_streambuf_wchar *this)
2170 TRACE("(%p)\n", this);
2171 return call_basic_streambuf_wchar_sync(this);
2174 /* ?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPA_WH@Z */
2175 /* ?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z */
2176 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGH@Z */
2177 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z */
2178 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetn, 12)
2179 streamsize __thiscall basic_streambuf_wchar_sgetn(basic_streambuf_wchar *this, wchar_t *ptr, streamsize count)
2181 TRACE("(%p %p %ld)\n", this, ptr, count);
2182 return call_basic_streambuf_wchar__Xsgetn_s(this, ptr, -1, count);
2185 /* ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
2186 /* ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JXZ */
2187 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
2188 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JXZ */
2189 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_showmanyc, 4)
2190 #define call_basic_streambuf_wchar_showmanyc(this) CALL_VTBL_FUNC(this, 12, \
2191 streamsize, (basic_streambuf_wchar*), (this))
2192 streamsize __thiscall basic_streambuf_wchar_showmanyc(basic_streambuf_wchar *this)
2194 TRACE("(%p)\n", this);
2198 /* ?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
2199 /* ?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JXZ */
2200 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
2201 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JXZ */
2202 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_in_avail, 4)
2203 streamsize __thiscall basic_streambuf_wchar_in_avail(basic_streambuf_wchar *this)
2207 TRACE("(%p)\n", this);
2209 ret = basic_streambuf_wchar__Gnavail(this);
2210 return ret ? ret : call_basic_streambuf_wchar_showmanyc(this);
2213 /* ?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z */
2214 /* ?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z */
2215 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
2216 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z */
2217 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputbackc, 8)
2218 unsigned short __thiscall basic_streambuf_wchar_sputbackc(basic_streambuf_wchar *this, wchar_t ch)
2220 TRACE("(%p %d)\n", this, ch);
2221 if(*this->prpos && *this->prpos>*this->prbuf && (*this->prpos)[-1]==ch) {
2227 return call_basic_streambuf_wchar_pbackfail(this, ch);
2230 /* ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z */
2231 /* ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z */
2232 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
2233 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHG@Z */
2234 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputc, 8)
2235 unsigned short __thiscall basic_streambuf_wchar_sputc(basic_streambuf_wchar *this, wchar_t ch)
2237 TRACE("(%p %d)\n", this, ch);
2238 return basic_streambuf_wchar__Pnavail(this) ?
2239 (*basic_streambuf_wchar__Pninc(this) = ch) :
2240 call_basic_streambuf_wchar_overflow(this, ch);
2243 /* ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2244 /* ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2245 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2246 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2247 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sungetc, 4)
2248 unsigned short __thiscall basic_streambuf_wchar_sungetc(basic_streambuf_wchar *this)
2250 TRACE("(%p)\n", this);
2251 if(*this->prpos && *this->prpos>*this->prbuf) {
2254 return **this->prpos;
2257 return call_basic_streambuf_wchar_pbackfail(this, WEOF);
2260 /* ?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
2261 /* ?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
2262 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
2263 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
2264 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_stossc, 4)
2265 void __thiscall basic_streambuf_wchar_stossc(basic_streambuf_wchar *this)
2267 TRACE("(%p)\n", this);
2268 if(basic_streambuf_wchar__Gnavail(this))
2269 basic_streambuf_wchar__Gninc(this);
2271 call_basic_streambuf_wchar_uflow(this);
2274 /* ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2275 /* ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2276 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2277 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2278 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sbumpc, 4)
2279 unsigned short __thiscall basic_streambuf_wchar_sbumpc(basic_streambuf_wchar *this)
2281 TRACE("(%p)\n", this);
2282 return basic_streambuf_wchar__Gnavail(this) ?
2283 *basic_streambuf_wchar__Gninc(this) : call_basic_streambuf_wchar_uflow(this);
2286 /* ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2287 /* ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2288 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2289 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2290 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetc, 4)
2291 unsigned short __thiscall basic_streambuf_wchar_sgetc(basic_streambuf_wchar *this)
2293 TRACE("(%p)\n", this);
2294 return basic_streambuf_wchar__Gnavail(this) ?
2295 *basic_streambuf_wchar_gptr(this) : call_basic_streambuf_wchar_underflow(this);
2298 /* ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2299 /* ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2300 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2301 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2302 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_snextc, 4)
2303 unsigned short __thiscall basic_streambuf_wchar_snextc(basic_streambuf_wchar *this)
2305 TRACE("(%p)\n", this);
2307 if(basic_streambuf_wchar__Gnavail(this) > 1)
2308 return *basic_streambuf_wchar__Gnpreinc(this);
2309 return basic_streambuf_wchar_sbumpc(this)==WEOF ?
2310 WEOF : basic_streambuf_wchar_sgetc(this);
2313 /* ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WH@Z */
2314 /* ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_J@Z */
2315 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGH@Z */
2316 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_J@Z */
2317 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsgetn, 12)
2318 #define call_basic_streambuf_wchar_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, \
2319 streamsize, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, ptr, count))
2320 streamsize __thiscall basic_streambuf_wchar_xsgetn(basic_streambuf_wchar *this, wchar_t *ptr, streamsize count)
2322 TRACE("(%p %p %ld)\n", this, ptr, count);
2323 return call_basic_streambuf_wchar__Xsgetn_s(this, ptr, -1, count);
2326 /* ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPB_WH@Z */
2327 /* ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEB_W_J@Z */
2328 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPBGH@Z */
2329 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEBG_J@Z */
2330 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsputn, 12)
2331 #define call_basic_streambuf_wchar_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 32, \
2332 streamsize, (basic_streambuf_wchar*, const wchar_t*, streamsize), (this, ptr, count))
2333 streamsize __thiscall basic_streambuf_wchar_xsputn(basic_streambuf_wchar *this, const wchar_t *ptr, streamsize count)
2335 streamsize copied, chunk;
2337 TRACE("(%p %p %ld)\n", this, ptr, count);
2339 for(copied=0; copied<count;) {
2340 chunk = basic_streambuf_wchar__Pnavail(this);
2341 if(chunk > count-copied)
2342 chunk = count-copied;
2345 memcpy(*this->pwpos, ptr+copied, chunk*sizeof(wchar_t));
2346 *this->pwpos += chunk;
2347 *this->pwsize -= chunk;
2349 }else if(call_basic_streambuf_wchar_overflow(this, ptr[copied]) != WEOF) {
2359 /* ?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPB_WH@Z */
2360 /* ?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEB_W_J@Z */
2361 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPBGH@Z */
2362 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEBG_J@Z */
2363 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputn, 12)
2364 streamsize __thiscall basic_streambuf_wchar_sputn(basic_streambuf_wchar *this, const wchar_t *ptr, streamsize count)
2366 TRACE("(%p %p %ld)\n", this, ptr, count);
2367 return call_basic_streambuf_wchar_xsputn(this, ptr, count);
2370 /* ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
2371 /* ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
2372 int basic_filebuf_char__Init__Stinit = 0;
2374 /* ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
2375 /* ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
2376 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Init, 12)
2377 void __thiscall basic_filebuf_char__Init(basic_filebuf_char *this, FILE *file, basic_filebuf__Initfl which)
2379 TRACE("(%p %p %d)\n", this, file, which);
2382 this->wrotesome = FALSE;
2383 this->state = basic_filebuf_char__Init__Stinit;
2384 this->close = (which == INITFL_open);
2387 basic_streambuf_char__Init_empty(&this->base);
2389 basic_streambuf_char__Init(&this->base, &file->_base, &file->_ptr,
2390 &file->_cnt, &file->_base, &file->_ptr, &file->_cnt);
2393 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAV?$codecvt@DDH@2@@Z */
2394 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$codecvt@DDH@2@@Z */
2395 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Initcvt, 8)
2396 void __thiscall basic_filebuf_char__Initcvt(basic_filebuf_char *this, codecvt_char *cvt)
2398 TRACE("(%p %p)\n", this, cvt);
2400 if(codecvt_base_always_noconv(&cvt->base)) {
2403 basic_streambuf_char__Init_empty(&this->base);
2408 /* ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ */
2409 /* ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ */
2410 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Endwrite, 4)
2411 MSVCP_bool __thiscall basic_filebuf_char__Endwrite(basic_filebuf_char *this)
2413 TRACE("(%p)\n", this);
2415 if(!this->wrotesome || !this->cvt)
2419 if(call_basic_streambuf_char_overflow(&this->base, EOF) == EOF)
2423 /* TODO: check if we need a dynamic buffer here */
2428 ret = codecvt_char_unshift(this->cvt, &this->state, buf, buf+sizeof(buf), &next);
2431 this->wrotesome = FALSE;
2433 case CODECVT_partial:
2434 if(!fwrite(buf, next-buf, 1, this->file))
2439 case CODECVT_noconv:
2440 if(call_basic_streambuf_char_overflow(&this->base, EOF) == EOF)
2449 /* ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ */
2450 /* ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ */
2451 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_close, 4)
2452 basic_filebuf_char* __thiscall basic_filebuf_char_close(basic_filebuf_char *this)
2454 basic_filebuf_char *ret = this;
2456 TRACE("(%p)\n", this);
2461 /* TODO: handle exceptions */
2462 if(!basic_filebuf_char__Endwrite(this))
2464 if(fclose(this->file))
2467 basic_filebuf_char__Init(this, NULL, INITFL_close);
2471 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
2472 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
2473 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor_file, 8)
2474 basic_filebuf_char* __thiscall basic_filebuf_char_ctor_file(basic_filebuf_char *this, FILE *file)
2476 TRACE("(%p %p)\n", this, file);
2478 basic_streambuf_char_ctor(&this->base);
2479 this->base.vtable = &MSVCP_basic_filebuf_char_vtable;
2481 basic_filebuf_char__Init(this, file, INITFL_new);
2485 /* ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
2486 /* ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
2487 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor, 4)
2488 basic_filebuf_char* __thiscall basic_filebuf_char_ctor(basic_filebuf_char *this)
2490 return basic_filebuf_char_ctor_file(this, NULL);
2493 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
2494 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
2495 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor_uninitialized, 8)
2496 basic_filebuf_char* __thiscall basic_filebuf_char_ctor_uninitialized(basic_filebuf_char *this, int uninitialized)
2498 TRACE("(%p %d)\n", this, uninitialized);
2500 basic_streambuf_char_ctor(&this->base);
2501 this->base.vtable = &MSVCP_basic_filebuf_char_vtable;
2505 /* ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
2506 /* ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
2507 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_dtor, 4)
2508 void __thiscall basic_filebuf_char_dtor(basic_filebuf_char *this)
2510 TRACE("(%p)\n", this);
2513 basic_filebuf_char_close(this);
2514 basic_streambuf_char_dtor(&this->base);
2517 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_vector_dtor, 8)
2518 basic_filebuf_char* __thiscall basic_filebuf_char_vector_dtor(basic_filebuf_char *this, unsigned int flags)
2520 TRACE("(%p %x)\n", this, flags);
2522 /* we have an array, with the number of elements stored before the first object */
2523 INT_PTR i, *ptr = (INT_PTR *)this-1;
2525 for(i=*ptr-1; i>=0; i--)
2526 basic_filebuf_char_dtor(this+i);
2527 MSVCRT_operator_delete(ptr);
2529 basic_filebuf_char_dtor(this);
2531 MSVCRT_operator_delete(this);
2537 /* ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QBE_NXZ */
2538 /* ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
2539 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_is_open, 4)
2540 MSVCP_bool __thiscall basic_filebuf_char_is_open(const basic_filebuf_char *this)
2542 TRACE("(%p)\n", this);
2543 return this->file != NULL;
2546 /* ?_Fiopen@std@@YAPAU_iobuf@@PB_WHH@Z */
2547 /* ?_Fiopen@std@@YAPEAU_iobuf@@PEB_WHH@Z */
2548 static FILE* _Fiopen_wchar(const wchar_t *name, int mode, int prot)
2550 static const wchar_t rW[] = {'r',0};
2551 static const struct {
2553 const wchar_t str[4];
2554 const wchar_t str_bin[4];
2556 {OPENMODE_out, {'w',0}, {'w','b',0}},
2557 {OPENMODE_out|OPENMODE_app, {'a',0}, {'a','b',0}},
2558 {OPENMODE_app, {'a',0}, {'a','b',0}},
2559 {OPENMODE_out|OPENMODE_trunc, {'w',0}, {'w','b',0}},
2560 {OPENMODE_in, {'r',0}, {'r','b',0}},
2561 {OPENMODE_in|OPENMODE_out, {'r','+',0}, {'r','+','b',0}},
2562 {OPENMODE_in|OPENMODE_out|OPENMODE_trunc, {'w','+',0}, {'w','+','b',0}},
2563 {OPENMODE_in|OPENMODE_out|OPENMODE_app, {'a','+',0}, {'a','+','b',0}},
2564 {OPENMODE_in|OPENMODE_app, {'a','+',0}, {'a','+','b',0}}
2567 int real_mode = mode & ~(OPENMODE_ate|OPENMODE__Nocreate|OPENMODE__Noreplace|OPENMODE_binary);
2571 TRACE("(%s %d %d)\n", debugstr_w(name), mode, prot);
2573 for(mode_idx=0; mode_idx<sizeof(str_mode)/sizeof(str_mode[0]); mode_idx++)
2574 if(str_mode[mode_idx].mode == real_mode)
2576 if(mode_idx == sizeof(str_mode)/sizeof(str_mode[0]))
2579 if((mode & OPENMODE__Nocreate) && !(f = _wfopen(name, rW)))
2584 if((mode & OPENMODE__Noreplace) && (mode & (OPENMODE_out|OPENMODE_app))
2585 && (f = _wfopen(name, rW))) {
2590 f = _wfsopen(name, (mode & OPENMODE_binary) ? str_mode[mode_idx].str_bin
2591 : str_mode[mode_idx].str, prot);
2595 if((mode & OPENMODE_ate) && fseek(f, 0, SEEK_END)) {
2603 /* ?_Fiopen@std@@YAPAU_iobuf@@PBDHH@Z */
2604 /* ?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z */
2605 FILE* __cdecl _Fiopen(const char *name, int mode, int prot)
2607 wchar_t nameW[FILENAME_MAX];
2609 TRACE("(%s %d %d)\n", name, mode, prot);
2611 if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
2613 return _Fiopen_wchar(nameW, mode, prot);
2616 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PB_WHH@Z */
2617 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
2618 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBGHH@Z */
2619 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBGHH@Z */
2620 static basic_filebuf_char* basic_filebuf_char_open_wchar(basic_filebuf_char *this, const wchar_t *name, int mode, int prot)
2624 TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
2626 if(basic_filebuf_char_is_open(this))
2629 if(!(f = _Fiopen_wchar(name, mode, prot)))
2632 basic_filebuf_char__Init(this, f, INITFL_open);
2633 basic_filebuf_char__Initcvt(this, codecvt_char_use_facet(this->base.loc));
2637 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z */
2638 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z */
2639 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open, 16)
2640 basic_filebuf_char* __thiscall basic_filebuf_char_open(basic_filebuf_char *this, const char *name, int mode, int prot)
2642 wchar_t nameW[FILENAME_MAX];
2644 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
2646 if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
2648 return basic_filebuf_char_open_wchar(this, nameW, mode, prot);
2651 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDI@Z */
2652 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDI@Z */
2653 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_mode, 12)
2654 basic_filebuf_char* __thiscall basic_filebuf_char_open_mode(basic_filebuf_char *this, const char *name, unsigned int mode)
2656 return basic_filebuf_char_open(this, name, mode, SH_DENYNO);
2659 /* ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
2660 /* ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
2661 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_overflow, 8)
2662 int __thiscall basic_filebuf_char_overflow(basic_filebuf_char *this, int c)
2664 char buf[8], *dyn_buf;
2665 char ch = c, *to_next;
2666 const char *from_next;
2670 TRACE("(%p %d)\n", this, c);
2672 if(!basic_filebuf_char_is_open(this))
2678 return fwrite(&ch, sizeof(char), 1, this->file) ? c : EOF;
2682 ret = codecvt_char_out(this->cvt, &this->state, from_next, &ch+1,
2683 &from_next, buf, buf+sizeof(buf), &to_next);
2686 case CODECVT_partial:
2691 if(!fwrite(buf, to_next-buf, 1, this->file))
2693 if(ret == CODECVT_partial)
2696 case CODECVT_noconv:
2697 return fwrite(&ch, sizeof(char), 1, this->file) ? c : EOF;
2705 max_size = codecvt_base_max_length(&this->cvt->base);
2706 dyn_buf = malloc(max_size);
2710 ret = codecvt_char_out(this->cvt, &this->state, from_next, &ch+1,
2711 &from_next, dyn_buf, dyn_buf+max_size, &to_next);
2715 ret = fwrite(dyn_buf, to_next-dyn_buf, 1, this->file);
2717 return ret ? c : EOF;
2718 case CODECVT_partial:
2719 ERR("buffer should be big enough to store all output\n");
2727 /* ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
2728 /* ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
2729 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_pbackfail, 8)
2730 int __thiscall basic_filebuf_char_pbackfail(basic_filebuf_char *this, int c)
2732 TRACE("(%p %d)\n", this, c);
2734 if(!basic_filebuf_char_is_open(this))
2737 if(basic_streambuf_char_gptr(&this->base)>basic_streambuf_char_eback(&this->base)
2738 && (c==EOF || (int)(unsigned char)basic_streambuf_char_gptr(&this->base)[-1]==c)) {
2739 basic_streambuf_char__Gndec(&this->base);
2740 return c==EOF ? !c : c;
2741 }else if(c!=EOF && !this->cvt) {
2742 return ungetc(c, this->file);
2748 /* ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2749 /* ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2750 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_uflow, 4)
2751 int __thiscall basic_filebuf_char_uflow(basic_filebuf_char *this)
2753 char ch, buf[128], *to_next;
2754 const char *buf_next;
2757 TRACE("(%p)\n", this);
2759 if(!basic_filebuf_char_is_open(this))
2762 if(basic_streambuf_char_gptr(&this->base) < basic_streambuf_char_egptr(&this->base))
2763 return (unsigned char)*basic_streambuf_char__Gninc(&this->base);
2765 c = fgetc(this->file);
2766 if(!this->cvt || c==EOF)
2770 for(i=0; i < sizeof(buf)/sizeof(buf[0]); i++) {
2773 switch(codecvt_char_in(this->cvt, &this->state, buf_next,
2774 buf+i+1, &buf_next, &ch, &ch+1, &to_next)) {
2775 case CODECVT_partial:
2777 if(to_next == &ch) {
2778 c = fgetc(this->file);
2784 for(i--; i>=buf_next-buf; i--)
2785 ungetc(buf[i], this->file);
2787 case CODECVT_noconv:
2788 return (unsigned char)buf[0];
2794 FIXME("buffer is too small\n");
2798 /* ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2799 /* ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2800 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_underflow, 4)
2801 int __thiscall basic_filebuf_char_underflow(basic_filebuf_char *this)
2805 TRACE("(%p)\n", this);
2807 if(basic_streambuf_char_gptr(&this->base) < basic_streambuf_char_egptr(&this->base))
2808 return (unsigned char)*basic_streambuf_char_gptr(&this->base);
2810 ret = call_basic_streambuf_char_uflow(&this->base);
2812 ret = call_basic_streambuf_char_pbackfail(&this->base, ret);
2816 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
2817 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
2818 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_seekoff, 20)
2819 fpos_int* __thiscall basic_filebuf_char_seekoff(basic_filebuf_char *this,
2820 fpos_int *ret, streamoff off, int way, int mode)
2824 TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode);
2826 if(!basic_filebuf_char_is_open(this) || !basic_filebuf_char__Endwrite(this)
2827 || fseek(this->file, off, way)) {
2834 fgetpos(this->file, &pos);
2837 ret->state = this->state;
2841 /* ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2842 /* ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2843 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_seekpos, 36)
2844 fpos_int* __thiscall basic_filebuf_char_seekpos(basic_filebuf_char *this,
2845 fpos_int *ret, fpos_int pos, int mode)
2849 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
2851 if(!basic_filebuf_char_is_open(this) || !basic_filebuf_char__Endwrite(this)
2852 || fseek(this->file, (LONG)pos.pos, SEEK_SET)
2853 || (pos.off && fseek(this->file, pos.off, SEEK_CUR))) {
2860 fgetpos(this->file, &fpos);
2863 ret->state = this->state;
2867 /* ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PADH@Z */
2868 /* ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z */
2869 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_setbuf, 12)
2870 basic_streambuf_char* __thiscall basic_filebuf_char_setbuf(basic_filebuf_char *this, char *buf, streamsize count)
2872 TRACE("(%p %p %ld)\n", this, buf, count);
2874 if(!basic_filebuf_char_is_open(this))
2877 if(setvbuf(this->file, buf, (buf==NULL && count==0) ? _IONBF : _IOFBF, count))
2880 basic_filebuf_char__Init(this, this->file, INITFL_open);
2884 /* ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2885 /* ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2886 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_sync, 4)
2887 int __thiscall basic_filebuf_char_sync(basic_filebuf_char *this)
2889 TRACE("(%p)\n", this);
2891 if(!basic_filebuf_char_is_open(this))
2894 if(call_basic_streambuf_char_overflow(&this->base, EOF) == EOF)
2896 return fflush(this->file);
2899 /* ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z */
2900 /* ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z */
2901 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_imbue, 8)
2902 void __thiscall basic_filebuf_char_imbue(basic_filebuf_char *this, const locale *loc)
2904 TRACE("(%p %p)\n", this, loc);
2905 basic_filebuf_char__Initcvt(this, codecvt_char_use_facet(loc));
2908 /* ?_Stinit@?1??_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
2909 /* ?_Stinit@?1??_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
2910 int basic_filebuf_wchar__Init__Stinit = 0;
2912 /* ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
2913 /* ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
2914 int basic_filebuf_short__Init__Stinit = 0;
2916 /* ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
2917 /* ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
2918 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Init, 12)
2919 void __thiscall basic_filebuf_wchar__Init(basic_filebuf_wchar *this, FILE *file, basic_filebuf__Initfl which)
2921 TRACE("(%p %p %d)\n", this, file, which);
2924 this->wrotesome = FALSE;
2925 this->state = basic_filebuf_wchar__Init__Stinit;
2926 this->close = (which == INITFL_open);
2929 basic_streambuf_wchar__Init_empty(&this->base);
2932 /* ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
2933 /* ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
2934 DEFINE_THISCALL_WRAPPER(basic_filebuf_short__Init, 12)
2935 void __thiscall basic_filebuf_short__Init(basic_filebuf_wchar *this, FILE *file, basic_filebuf__Initfl which)
2937 TRACE("(%p %p %d)\n", this, file, which);
2940 this->wrotesome = FALSE;
2941 this->state = basic_filebuf_short__Init__Stinit;
2942 this->close = (which == INITFL_open);
2945 basic_streambuf_wchar__Init_empty(&this->base);
2948 /* ?_Initcvt@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAV?$codecvt@_WDH@2@@Z */
2949 /* ?_Initcvt@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$codecvt@_WDH@2@@Z */
2950 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAV?$codecvt@GDH@2@@Z */
2951 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$codecvt@GDH@2@@Z */
2952 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Initcvt, 8)
2953 void __thiscall basic_filebuf_wchar__Initcvt(basic_filebuf_wchar *this, codecvt_wchar *cvt)
2955 TRACE("(%p %p)\n", this, cvt);
2957 if(codecvt_base_always_noconv(&cvt->base)) {
2960 basic_streambuf_wchar__Init_empty(&this->base);
2965 /* ?_Endwrite@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAE_NXZ */
2966 /* ?_Endwrite@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAA_NXZ */
2967 /* ?_Endwrite@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAE_NXZ */
2968 /* ?_Endwrite@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAA_NXZ */
2969 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Endwrite, 4)
2970 MSVCP_bool __thiscall basic_filebuf_wchar__Endwrite(basic_filebuf_wchar *this)
2972 TRACE("(%p)\n", this);
2974 if(!this->wrotesome || !this->cvt)
2977 if(call_basic_streambuf_wchar_overflow(&this->base, WEOF) == WEOF)
2981 /* TODO: check if we need a dynamic buffer here */
2986 ret = codecvt_wchar_unshift(this->cvt, &this->state, buf, buf+sizeof(buf), &next);
2989 this->wrotesome = FALSE;
2991 case CODECVT_partial:
2992 if(!fwrite(buf, next-buf, 1, this->file))
2997 case CODECVT_noconv:
2998 if(call_basic_streambuf_wchar_overflow(&this->base, WEOF) == WEOF)
3007 /* ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@XZ */
3008 /* ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@XZ */
3009 /* ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@XZ */
3010 /* ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@XZ */
3011 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_close, 4)
3012 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_close(basic_filebuf_wchar *this)
3014 basic_filebuf_wchar *ret = this;
3016 TRACE("(%p)\n", this);
3021 /* TODO: handle exceptions */
3022 if(!basic_filebuf_wchar__Endwrite(this))
3024 if(fclose(this->file))
3027 basic_filebuf_wchar__Init(this, NULL, INITFL_close);
3031 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
3032 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
3033 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor_file, 8)
3034 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_ctor_file(basic_filebuf_wchar *this, FILE *file)
3036 TRACE("(%p %p)\n", this, file);
3038 basic_streambuf_wchar_ctor(&this->base);
3039 this->base.vtable = &MSVCP_basic_filebuf_wchar_vtable;
3041 basic_filebuf_wchar__Init(this, file, INITFL_new);
3045 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
3046 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
3047 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor_file, 8)
3048 basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor_file(basic_filebuf_wchar *this, FILE *file)
3050 TRACE("(%p %p)\n", this, file);
3052 basic_streambuf_short_ctor(&this->base);
3053 this->base.vtable = &MSVCP_basic_filebuf_short_vtable;
3055 basic_filebuf_short__Init(this, file, INITFL_new);
3059 /* ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
3060 /* ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
3061 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor, 4)
3062 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_ctor(basic_filebuf_wchar *this)
3064 return basic_filebuf_wchar_ctor_file(this, NULL);
3067 /* ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
3068 /* ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
3069 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor, 4)
3070 basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor(basic_filebuf_wchar *this)
3072 return basic_filebuf_short_ctor_file(this, NULL);
3075 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@@Z */
3076 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
3077 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor_uninitialized, 8)
3078 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_ctor_uninitialized(basic_filebuf_wchar *this, int uninitialized)
3080 TRACE("(%p %d)\n", this, uninitialized);
3082 basic_streambuf_wchar_ctor(&this->base);
3083 this->base.vtable = &MSVCP_basic_filebuf_wchar_vtable;
3087 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */
3088 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
3089 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor_uninitialized, 8)
3090 basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor_uninitialized(basic_filebuf_wchar *this, int uninitialized)
3092 TRACE("(%p %d)\n", this, uninitialized);
3094 basic_streambuf_short_ctor(&this->base);
3095 this->base.vtable = &MSVCP_basic_filebuf_short_vtable;
3099 /* ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
3100 /* ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
3101 /* ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UAE@XZ */
3102 /* ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */
3103 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_dtor, 4)
3104 void __thiscall basic_filebuf_wchar_dtor(basic_filebuf_wchar *this)
3106 TRACE("(%p)\n", this);
3109 basic_filebuf_wchar_close(this);
3110 basic_streambuf_wchar_dtor(&this->base);
3113 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_vector_dtor, 8)
3114 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_vector_dtor(basic_filebuf_wchar *this, unsigned int flags)
3116 TRACE("(%p %x)\n", this, flags);
3118 /* we have an array, with the number of elements stored before the first object */
3119 INT_PTR i, *ptr = (INT_PTR *)this-1;
3121 for(i=*ptr-1; i>=0; i--)
3122 basic_filebuf_wchar_dtor(this+i);
3123 MSVCRT_operator_delete(ptr);
3125 basic_filebuf_wchar_dtor(this);
3127 MSVCRT_operator_delete(this);
3133 /* ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
3134 /* ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
3135 /* ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QBE_NXZ */
3136 /* ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
3137 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_is_open, 4)
3138 MSVCP_bool __thiscall basic_filebuf_wchar_is_open(const basic_filebuf_wchar *this)
3140 TRACE("(%p)\n", this);
3141 return this->file != NULL;
3144 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PB_WHH@Z */
3145 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
3146 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBGHH@Z */
3147 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBGHH@Z */
3148 static basic_filebuf_wchar* basic_filebuf_wchar_open_wchar(basic_filebuf_wchar *this, const wchar_t *name, int mode, int prot)
3152 TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
3154 if(basic_filebuf_wchar_is_open(this))
3157 if(!(f = _Fiopen_wchar(name, mode, prot)))
3160 basic_filebuf_wchar__Init(this, f, INITFL_open);
3161 basic_filebuf_wchar__Initcvt(this, codecvt_wchar_use_facet(this->base.loc));
3165 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PB_WHH@Z */
3166 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
3167 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBGHH@Z */
3168 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBGHH@Z */
3169 static basic_filebuf_wchar* basic_filebuf_short_open_wchar(basic_filebuf_wchar *this, const wchar_t *name, int mode, int prot)
3173 TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
3175 if(basic_filebuf_wchar_is_open(this))
3178 if(!(f = _Fiopen_wchar(name, mode, prot)))
3181 basic_filebuf_short__Init(this, f, INITFL_open);
3182 basic_filebuf_wchar__Initcvt(this, codecvt_short_use_facet(this->base.loc));
3186 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDHH@Z */
3187 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDHH@Z */
3188 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open, 16)
3189 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open(basic_filebuf_wchar *this, const char *name, int mode, int prot)
3191 wchar_t nameW[FILENAME_MAX];
3193 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
3195 if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
3197 return basic_filebuf_wchar_open_wchar(this, nameW, mode, prot);
3200 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDHH@Z */
3201 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDHH@Z */
3202 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open, 16)
3203 basic_filebuf_wchar* __thiscall basic_filebuf_short_open(basic_filebuf_wchar *this, const char *name, int mode, int prot)
3205 wchar_t nameW[FILENAME_MAX];
3207 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
3209 if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
3211 return basic_filebuf_short_open_wchar(this, nameW, mode, prot);
3214 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDI@Z */
3215 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDI@Z */
3216 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open_mode, 12)
3217 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open_mode(basic_filebuf_wchar *this, const char *name, unsigned int mode)
3219 return basic_filebuf_wchar_open(this, name, mode, SH_DENYNO);
3222 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDI@Z */
3223 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDI@Z */
3224 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open_mode, 12)
3225 basic_filebuf_wchar* __thiscall basic_filebuf_short_open_mode(basic_filebuf_wchar *this, const char *name, unsigned int mode)
3227 return basic_filebuf_short_open(this, name, mode, SH_DENYNO);
3230 /* ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
3231 /* ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
3232 /* ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
3233 /* ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
3234 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_overflow, 8)
3235 unsigned short __thiscall basic_filebuf_wchar_overflow(basic_filebuf_wchar *this, unsigned short c)
3237 char buf[8], *dyn_buf, *to_next;
3239 const wchar_t *from_next;
3244 TRACE("(%p %d)\n", this, c);
3246 if(!basic_filebuf_wchar_is_open(this))
3252 return fwrite(&ch, sizeof(wchar_t), 1, this->file) ? c : WEOF;
3256 ret = codecvt_wchar_out(this->cvt, &this->state, from_next, &ch+1,
3257 &from_next, buf, buf+sizeof(buf), &to_next);
3260 case CODECVT_partial:
3265 if(!fwrite(buf, to_next-buf, 1, this->file))
3267 if(ret == CODECVT_partial)
3270 case CODECVT_noconv:
3271 return fwrite(&ch, sizeof(wchar_t), 1, this->file) ? c : WEOF;
3279 max_size = codecvt_base_max_length(&this->cvt->base);
3280 dyn_buf = malloc(max_size);
3284 ret = codecvt_wchar_out(this->cvt, &this->state, from_next, &ch+1,
3285 &from_next, dyn_buf, dyn_buf+max_size, &to_next);
3289 ret = fwrite(dyn_buf, to_next-dyn_buf, 1, this->file);
3291 return ret ? c : WEOF;
3292 case CODECVT_partial:
3293 ERR("buffer should be big enough to store all output\n");
3301 /* ?pbackfail@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
3302 /* ?pbackfail@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
3303 /* ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
3304 /* ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
3305 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_pbackfail, 8)
3306 unsigned short __thiscall basic_filebuf_wchar_pbackfail(basic_filebuf_wchar *this, unsigned short c)
3308 TRACE("(%p %d)\n", this, c);
3310 if(!basic_filebuf_wchar_is_open(this))
3313 if(basic_streambuf_wchar_gptr(&this->base)>basic_streambuf_wchar_eback(&this->base)
3314 && (c==WEOF || basic_streambuf_wchar_gptr(&this->base)[-1]==c)) {
3315 basic_streambuf_wchar__Gndec(&this->base);
3316 return c==WEOF ? !c : c;
3317 }else if(c!=WEOF && !this->cvt) {
3318 return ungetwc(c, this->file);
3319 }else if(c!=WEOF && basic_streambuf_wchar_gptr(&this->base)!=&this->putback) {
3321 basic_streambuf_wchar_setg(&this->base, &this->putback, &this->putback, &this->putback+1);
3328 /* ?uflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
3329 /* ?uflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
3330 /* ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
3331 /* ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
3332 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_uflow, 4)
3333 unsigned short __thiscall basic_filebuf_wchar_uflow(basic_filebuf_wchar *this)
3335 wchar_t ch, *to_next;
3337 const char *buf_next;
3340 TRACE("(%p)\n", this);
3342 if(!basic_filebuf_wchar_is_open(this))
3345 if(basic_streambuf_wchar_gptr(&this->base) < basic_streambuf_wchar_egptr(&this->base))
3346 return *basic_streambuf_wchar__Gninc(&this->base);
3349 return fgetwc(this->file);
3352 for(i=0; i < sizeof(buf)/sizeof(buf[0]); i++) {
3353 if((c = fgetc(this->file)) == EOF)
3357 switch(codecvt_wchar_in(this->cvt, &this->state, buf_next,
3358 buf+i+1, &buf_next, &ch, &ch+1, &to_next)) {
3359 case CODECVT_partial:
3364 for(i--; i>=buf_next-buf; i--)
3365 ungetc(buf[i], this->file);
3367 case CODECVT_noconv:
3368 if(i+1 < sizeof(wchar_t))
3371 memcpy(&ch, buf, sizeof(wchar_t));
3378 FIXME("buffer is too small\n");
3382 /* ?underflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
3383 /* ?underflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
3384 /* ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
3385 /* ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
3386 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_underflow, 4)
3387 unsigned short __thiscall basic_filebuf_wchar_underflow(basic_filebuf_wchar *this)
3391 TRACE("(%p)\n", this);
3393 if(basic_streambuf_wchar_gptr(&this->base) < basic_streambuf_wchar_egptr(&this->base))
3394 return *basic_streambuf_wchar_gptr(&this->base);
3396 ret = call_basic_streambuf_wchar_uflow(&this->base);
3398 ret = call_basic_streambuf_wchar_pbackfail(&this->base, ret);
3402 /* ?seekoff@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
3403 /* ?seekoff@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
3404 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
3405 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
3406 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_seekoff, 20)
3407 fpos_int* __thiscall basic_filebuf_wchar_seekoff(basic_filebuf_wchar *this,
3408 fpos_int *ret, streamoff off, int way, int mode)
3412 TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode);
3414 if(basic_streambuf_wchar_gptr(&this->base) == &this->putback) {
3415 if(way == SEEKDIR_cur)
3416 off -= sizeof(wchar_t);
3418 basic_streambuf_wchar_setg(&this->base, &this->putback, &this->putback+1, &this->putback+1);
3421 if(!basic_filebuf_wchar_is_open(this) || !basic_filebuf_wchar__Endwrite(this)
3422 || fseek(this->file, off, way)) {
3429 fgetpos(this->file, &pos);
3432 ret->state = this->state;
3436 /* ?seekpos@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3437 /* ?seekpos@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3438 /* ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3439 /* ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3440 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_seekpos, 36)
3441 fpos_int* __thiscall basic_filebuf_wchar_seekpos(basic_filebuf_wchar *this,
3442 fpos_int *ret, fpos_int pos, int mode)
3446 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
3448 if(!basic_filebuf_wchar_is_open(this) || !basic_filebuf_wchar__Endwrite(this)
3449 || fseek(this->file, (LONG)pos.pos, SEEK_SET)
3450 || (pos.off && fseek(this->file, pos.off, SEEK_CUR))) {
3457 if(basic_streambuf_wchar_gptr(&this->base) == &this->putback)
3458 basic_streambuf_wchar_setg(&this->base, &this->putback, &this->putback+1, &this->putback+1);
3460 fgetpos(this->file, &fpos);
3463 ret->state = this->state;
3467 /* ?setbuf@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PA_WH@Z */
3468 /* ?setbuf@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEA_W_J@Z */
3469 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_setbuf, 12)
3470 basic_streambuf_wchar* __thiscall basic_filebuf_wchar_setbuf(basic_filebuf_wchar *this, wchar_t *buf, streamsize count)
3472 TRACE("(%p %p %ld)\n", this, buf, count);
3474 if(!basic_filebuf_wchar_is_open(this))
3477 if(setvbuf(this->file, (char*)buf, (buf==NULL && count==0) ? _IONBF : _IOFBF, count*sizeof(wchar_t)))
3480 basic_filebuf_wchar__Init(this, this->file, INITFL_open);
3484 /* ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PAGH@Z */
3485 /* ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAG_J@Z */
3486 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_setbuf, 12)
3487 basic_streambuf_wchar* __thiscall basic_filebuf_short_setbuf(basic_filebuf_wchar *this, wchar_t *buf, streamsize count)
3489 TRACE("(%p %p %ld)\n", this, buf, count);
3491 if(!basic_filebuf_wchar_is_open(this))
3494 if(setvbuf(this->file, (char*)buf, (buf==NULL && count==0) ? _IONBF : _IOFBF, count*sizeof(wchar_t)))
3497 basic_filebuf_short__Init(this, this->file, INITFL_open);
3501 /* ?sync@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
3502 /* ?sync@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ */
3503 /* ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
3504 /* ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAHXZ */
3505 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_sync, 4)
3506 int __thiscall basic_filebuf_wchar_sync(basic_filebuf_wchar *this)
3508 TRACE("(%p)\n", this);
3510 if(!basic_filebuf_wchar_is_open(this))
3513 if(call_basic_streambuf_wchar_overflow(&this->base, WEOF) == WEOF)
3515 return fflush(this->file);
3518 /* ?imbue@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z */
3519 /* ?imbue@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z */
3520 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_imbue, 8)
3521 void __thiscall basic_filebuf_wchar_imbue(basic_filebuf_wchar *this, const locale *loc)
3523 TRACE("(%p %p)\n", this, loc);
3524 basic_filebuf_wchar__Initcvt(this, codecvt_wchar_use_facet(loc));
3527 /* ?imbue@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEXABVlocale@2@@Z */
3528 /* ?imbue@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z */
3529 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_imbue, 8)
3530 void __thiscall basic_filebuf_short_imbue(basic_filebuf_wchar *this, const locale *loc)
3532 TRACE("(%p %p)\n", this, loc);
3533 basic_filebuf_wchar__Initcvt(this, codecvt_short_use_facet(loc));
3536 /* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEHH@Z */
3537 /* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAHH@Z */
3538 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Getstate, 8)
3539 int __thiscall basic_stringbuf_char__Getstate(basic_stringbuf_char *this, IOSB_openmode mode)
3543 if(!(mode & OPENMODE_in))
3544 state |= STRINGBUF_no_read;
3546 if(!(mode & OPENMODE_out))
3547 state |= STRINGBUF_no_write;
3549 if(mode & OPENMODE_ate)
3550 state |= STRINGBUF_at_end;
3552 if(mode & OPENMODE_app)
3553 state |= STRINGBUF_append;
3558 /* ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXPBDIH@Z */
3559 /* ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAXPEBD_KH@Z */
3560 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Init, 16)
3561 void __thiscall basic_stringbuf_char__Init(basic_stringbuf_char *this, const char *str, MSVCP_size_t count, int state)
3563 TRACE("(%p, %p, %ld, %d)\n", this, str, count, state);
3565 basic_streambuf_char__Init_empty(&this->base);
3567 this->state = state;
3568 this->seekhigh = NULL;
3571 char *buf = MSVCRT_operator_new(count);
3573 ERR("Out of memory\n");
3574 throw_exception(EXCEPTION_BAD_ALLOC, NULL);
3577 memcpy(buf, str, count);
3578 this->seekhigh = buf + count;
3580 this->state |= STRINGBUF_allocated;
3582 if(!(state & STRINGBUF_no_read))
3583 basic_streambuf_char_setg(&this->base, buf, buf, buf + count);
3585 if(!(state & STRINGBUF_no_write)) {
3586 basic_streambuf_char_setp_next(&this->base, buf, (state & STRINGBUF_at_end) ? buf + count : buf, buf + count);
3588 if(!basic_streambuf_char_gptr(&this->base))
3589 basic_streambuf_char_setg(&this->base, buf, 0, buf);
3594 /* ??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 */
3595 /* ??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 */
3596 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor_str, 12)
3597 basic_stringbuf_char* __thiscall basic_stringbuf_char_ctor_str(basic_stringbuf_char *this,
3598 const basic_string_char *str, IOSB_openmode mode)
3600 TRACE("(%p %p %d)\n", this, str, mode);
3602 basic_streambuf_char_ctor(&this->base);
3603 this->base.vtable = &MSVCP_basic_stringbuf_char_vtable;
3605 basic_stringbuf_char__Init(this, MSVCP_basic_string_char_c_str(str),
3606 str->size, basic_stringbuf_char__Getstate(this, mode));
3610 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
3611 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
3612 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor_mode, 8)
3613 basic_stringbuf_char* __thiscall basic_stringbuf_char_ctor_mode(
3614 basic_stringbuf_char *this, IOSB_openmode mode)
3616 TRACE("(%p %d)\n", this, mode);
3618 basic_streambuf_char_ctor(&this->base);
3619 this->base.vtable = &MSVCP_basic_stringbuf_char_vtable;
3621 basic_stringbuf_char__Init(this, NULL, 0, basic_stringbuf_char__Getstate(this, mode));
3625 /* ??_F?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
3626 /* ??_F?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
3627 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor, 4)
3628 basic_stringbuf_char* __thiscall basic_stringbuf_char_ctor(basic_stringbuf_char *this)
3630 return basic_stringbuf_char_ctor_mode(this, OPENMODE_in|OPENMODE_out);
3633 /* ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXXZ */
3634 /* ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAXXZ */
3635 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Tidy, 4)
3636 void __thiscall basic_stringbuf_char__Tidy(basic_stringbuf_char *this)
3638 TRACE("(%p)\n", this);
3640 if(this->state & STRINGBUF_allocated) {
3641 MSVCRT_operator_delete(basic_streambuf_char_eback(&this->base));
3642 this->seekhigh = NULL;
3643 this->state &= ~STRINGBUF_allocated;
3646 basic_streambuf_char__Init_empty(&this->base);
3649 /* ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
3650 /* ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
3651 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_dtor, 4)
3652 void __thiscall basic_stringbuf_char_dtor(basic_stringbuf_char *this)
3654 TRACE("(%p)\n", this);
3656 basic_stringbuf_char__Tidy(this);
3657 basic_streambuf_char_dtor(&this->base);
3660 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_vector_dtor, 8)
3661 basic_stringbuf_char* __thiscall basic_stringbuf_char_vector_dtor(basic_stringbuf_char *this, unsigned int flags)
3663 TRACE("(%p %x)\n", this, flags);
3666 /* we have an array, with the number of elements stored before the first object */
3667 INT_PTR i, *ptr = (INT_PTR *) this - 1;
3669 for (i = *ptr - 1; i >= 0; i--)
3670 basic_stringbuf_char_dtor(this+i);
3672 MSVCRT_operator_delete(ptr);
3674 basic_stringbuf_char_dtor(this);
3677 MSVCRT_operator_delete(this);
3683 /* ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z */
3684 /* ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHH@Z */
3685 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_overflow, 8)
3686 int __thiscall basic_stringbuf_char_overflow(basic_stringbuf_char *this, int meta)
3688 MSVCP_size_t oldsize, size;
3691 TRACE("(%p %x)\n", this, meta);
3695 if(this->state & STRINGBUF_no_write)
3698 ptr = basic_streambuf_char_pptr(&this->base);
3699 if((this->state&STRINGBUF_append) && ptr<this->seekhigh)
3700 basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base),
3701 this->seekhigh, basic_streambuf_char_epptr(&this->base));
3703 if(ptr && ptr<basic_streambuf_char_epptr(&this->base))
3704 return (*basic_streambuf_char__Pninc(&this->base) = meta);
3706 oldsize = (ptr ? basic_streambuf_char_epptr(&this->base)-basic_streambuf_char_eback(&this->base): 0);
3709 buf = MSVCRT_operator_new(size);
3711 ERR("Out of memory\n");
3712 throw_exception(EXCEPTION_BAD_ALLOC, NULL);
3716 this->seekhigh = buf;
3717 basic_streambuf_char_setp(&this->base, buf, buf+size);
3718 if(this->state & STRINGBUF_no_read)
3719 basic_streambuf_char_setg(&this->base, buf, NULL, buf);
3721 basic_streambuf_char_setg(&this->base, buf, buf, buf+1);
3723 this->state |= STRINGBUF_allocated;
3725 ptr = basic_streambuf_char_eback(&this->base);
3726 memcpy(buf, ptr, oldsize);
3728 this->seekhigh = buf+(this->seekhigh-ptr);
3729 basic_streambuf_char_setp_next(&this->base, buf,
3730 buf+(basic_streambuf_char_pptr(&this->base)-ptr), buf+size);
3731 if(this->state & STRINGBUF_no_read)
3732 basic_streambuf_char_setg(&this->base, buf, NULL, buf);
3734 basic_streambuf_char_setg(&this->base, buf,
3735 buf+(basic_streambuf_char_gptr(&this->base)-ptr),
3736 basic_streambuf_char_pptr(&this->base)+1);
3738 MSVCRT_operator_delete(ptr);
3741 return (*basic_streambuf_char__Pninc(&this->base) = meta);
3744 /* ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z */
3745 /* ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHH@Z */
3746 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_pbackfail, 8)
3747 int __thiscall basic_stringbuf_char_pbackfail(basic_stringbuf_char *this, int c)
3751 TRACE("(%p %x)\n", this, c);
3753 cur = basic_streambuf_char_gptr(&this->base);
3754 if(!cur || cur==basic_streambuf_char_eback(&this->base)
3755 || (c!=EOF && c!=cur[-1] && this->state&STRINGBUF_no_write))
3760 basic_streambuf_char_gbump(&this->base, -1);
3761 return c==EOF ? !EOF : c;
3764 /* ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHXZ */
3765 /* ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHXZ */
3766 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_underflow, 4)
3767 int __thiscall basic_stringbuf_char_underflow(basic_stringbuf_char *this)
3771 TRACE("(%p)\n", this);
3773 cur = basic_streambuf_char_gptr(&this->base);
3774 if(!cur || this->state&STRINGBUF_no_read)
3777 ptr = basic_streambuf_char_pptr(&this->base);
3778 if(this->seekhigh < ptr)
3779 this->seekhigh = ptr;
3781 ptr = basic_streambuf_char_egptr(&this->base);
3782 if(this->seekhigh > ptr)
3783 basic_streambuf_char_setg(&this->base, basic_streambuf_char_eback(&this->base), cur, this->seekhigh);
3785 if(cur < this->seekhigh)
3786 return (unsigned char)*cur;
3790 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
3791 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
3792 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekoff, 20)
3793 fpos_int* __thiscall basic_stringbuf_char_seekoff(basic_stringbuf_char *this,
3794 fpos_int *ret, streamoff off, int way, int mode)
3796 char *beg, *cur_r, *cur_w;
3798 TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode);
3800 cur_w = basic_streambuf_char_pptr(&this->base);
3801 if(cur_w > this->seekhigh)
3802 this->seekhigh = cur_w;
3807 beg = basic_streambuf_char_eback(&this->base);
3808 cur_r = basic_streambuf_char_gptr(&this->base);
3809 if((mode & OPENMODE_in) && cur_r) {
3810 if(way==SEEKDIR_cur && !(mode & OPENMODE_out))
3812 else if(way == SEEKDIR_end)
3813 off += this->seekhigh-beg;
3814 else if(way != SEEKDIR_beg)
3817 if(off<0 || off>this->seekhigh-beg) {
3820 basic_streambuf_char_gbump(&this->base, beg-cur_r+off);
3821 if((mode & OPENMODE_out) && cur_w) {
3822 basic_streambuf_char_setp_next(&this->base, beg,
3823 basic_streambuf_char_gptr(&this->base),
3824 basic_streambuf_char_epptr(&this->base));
3827 }else if((mode & OPENMODE_out) && cur_w) {
3828 if(way == SEEKDIR_cur)
3830 else if(way == SEEKDIR_end)
3831 off += this->seekhigh-beg;
3832 else if(way != SEEKDIR_beg)
3835 if(off<0 || off>this->seekhigh-beg)
3838 basic_streambuf_char_pbump(&this->base, beg-cur_w+off);
3847 /* ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3848 /* ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3849 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekpos, 36)
3850 fpos_int* __thiscall basic_stringbuf_char_seekpos(basic_stringbuf_char *this,
3851 fpos_int *ret, fpos_int pos, int mode)
3853 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
3855 if(pos.off==0 && pos.pos==-1 && pos.state==0) {
3860 return basic_stringbuf_char_seekoff(this, ret, pos.off, SEEKDIR_beg, mode);
3863 /* ?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 */
3864 /* ?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 */
3865 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_str_set, 8)
3866 void __thiscall basic_stringbuf_char_str_set(basic_stringbuf_char *this, const basic_string_char *str)
3868 TRACE("(%p %p)\n", this, str);
3870 basic_stringbuf_char__Tidy(this);
3871 basic_stringbuf_char__Init(this, MSVCP_basic_string_char_c_str(str), str->size, this->state);
3874 /* ?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 */
3875 /* ?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 */
3876 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_str_get, 8)
3877 basic_string_char* __thiscall basic_stringbuf_char_str_get(const basic_stringbuf_char *this, basic_string_char *ret)
3881 TRACE("(%p)\n", this);
3883 if(!(this->state & STRINGBUF_no_write) && basic_streambuf_char_pptr(&this->base)) {
3886 ptr = basic_streambuf_char_pbase(&this->base);
3887 pptr = basic_streambuf_char_pptr(&this->base);
3889 return MSVCP_basic_string_char_ctor_cstr_len(ret, ptr, (this->seekhigh < pptr ? pptr : this->seekhigh) - ptr);
3892 if(!(this->state & STRINGBUF_no_read) && basic_streambuf_char_gptr(&this->base)) {
3893 ptr = basic_streambuf_char_eback(&this->base);
3894 return MSVCP_basic_string_char_ctor_cstr_len(ret, ptr, basic_streambuf_char_egptr(&this->base) - ptr);
3897 return MSVCP_basic_string_char_ctor(ret);
3900 /* ?_Getstate@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AAEHH@Z */
3901 /* ?_Getstate@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AEAAHH@Z */
3902 /* ?_Getstate@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AAEHH@Z */
3903 /* ?_Getstate@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AEAAHH@Z */
3904 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Getstate, 8)
3905 int __thiscall basic_stringbuf_wchar__Getstate(basic_stringbuf_wchar *this, IOSB_openmode mode)
3909 if(!(mode & OPENMODE_in))
3910 state |= STRINGBUF_no_read;
3912 if(!(mode & OPENMODE_out))
3913 state |= STRINGBUF_no_write;
3915 if(mode & OPENMODE_ate)
3916 state |= STRINGBUF_at_end;
3918 if(mode & OPENMODE_app)
3919 state |= STRINGBUF_append;
3924 /* ?_Init@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXPB_WIH@Z */
3925 /* ?_Init@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAXPEB_W_KH@Z */
3926 /* ?_Init@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXPBGIH@Z */
3927 /* ?_Init@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAXPEBG_KH@Z */
3928 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Init, 16)
3929 void __thiscall basic_stringbuf_wchar__Init(basic_stringbuf_wchar *this, const wchar_t *str, MSVCP_size_t count, int state)
3931 TRACE("(%p, %p, %lu, %d)\n", this, str, count, state);
3933 basic_streambuf_wchar__Init_empty(&this->base);
3935 this->state = state;
3936 this->seekhigh = NULL;
3939 wchar_t *buf = MSVCRT_operator_new(count*sizeof(wchar_t));
3941 ERR("Out of memory\n");
3942 throw_exception(EXCEPTION_BAD_ALLOC, NULL);
3945 memcpy(buf, str, count*sizeof(wchar_t));
3946 this->seekhigh = buf + count;
3948 this->state |= STRINGBUF_allocated;
3950 if(!(state & STRINGBUF_no_read))
3951 basic_streambuf_wchar_setg(&this->base, buf, buf, buf + count);
3953 if(!(state & STRINGBUF_no_write)) {
3954 basic_streambuf_wchar_setp_next(&this->base, buf, (state & STRINGBUF_at_end) ? buf + count : buf, buf + count);
3956 if(!basic_streambuf_wchar_gptr(&this->base))
3957 basic_streambuf_wchar_setg(&this->base, buf, 0, buf);
3962 /* ??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 */
3963 /* ??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 */
3964 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor_str, 12)
3965 basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_ctor_str(basic_stringbuf_wchar *this,
3966 const basic_string_wchar *str, IOSB_openmode mode)
3968 TRACE("(%p %p %d)\n", this, str, mode);
3970 basic_streambuf_wchar_ctor(&this->base);
3971 this->base.vtable = &MSVCP_basic_stringbuf_wchar_vtable;
3973 basic_stringbuf_wchar__Init(this, MSVCP_basic_string_wchar_c_str(str),
3974 str->size, basic_stringbuf_wchar__Getstate(this, mode));
3978 /* ??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 */
3979 /* ??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 */
3980 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor_str, 12)
3981 basic_stringbuf_wchar* __thiscall basic_stringbuf_short_ctor_str(basic_stringbuf_wchar *this,
3982 const basic_string_wchar *str, IOSB_openmode mode)
3984 basic_stringbuf_wchar_ctor_str(this, str, mode);
3985 this->base.vtable = &MSVCP_basic_stringbuf_short_vtable;
3989 /* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
3990 /* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
3991 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor_mode, 8)
3992 basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_ctor_mode(
3993 basic_stringbuf_wchar *this, IOSB_openmode mode)
3995 TRACE("(%p %d)\n", this, mode);
3997 basic_streambuf_wchar_ctor(&this->base);
3998 this->base.vtable = &MSVCP_basic_stringbuf_wchar_vtable;
4000 basic_stringbuf_wchar__Init(this, NULL, 0, basic_stringbuf_wchar__Getstate(this, mode));
4004 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
4005 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
4006 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor_mode, 8)
4007 basic_stringbuf_wchar* __thiscall basic_stringbuf_short_ctor_mode(
4008 basic_stringbuf_wchar *this, IOSB_openmode mode)
4010 basic_stringbuf_wchar_ctor_mode(this, mode);
4011 this->base.vtable = &MSVCP_basic_stringbuf_short_vtable;
4015 /* ??_F?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
4016 /* ??_F?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
4017 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor, 4)
4018 basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_ctor(basic_stringbuf_wchar *this)
4020 return basic_stringbuf_wchar_ctor_mode(this, OPENMODE_in|OPENMODE_out);
4023 /* ??_F?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
4024 /* ??_F?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
4025 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor, 4)
4026 basic_stringbuf_wchar* __thiscall basic_stringbuf_short_ctor(basic_stringbuf_wchar *this)
4028 return basic_stringbuf_short_ctor_mode(this, OPENMODE_in|OPENMODE_out);
4031 /* ?_Tidy@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXXZ */
4032 /* ?_Tidy@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAXXZ */
4033 /* ?_Tidy@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXXZ */
4034 /* ?_Tidy@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAXXZ */
4035 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Tidy, 4)
4036 void __thiscall basic_stringbuf_wchar__Tidy(basic_stringbuf_wchar *this)
4038 TRACE("(%p)\n", this);
4040 if(this->state & STRINGBUF_allocated) {
4041 MSVCRT_operator_delete(basic_streambuf_wchar_eback(&this->base));
4042 this->seekhigh = NULL;
4043 this->state &= ~STRINGBUF_allocated;
4046 basic_streambuf_wchar__Init_empty(&this->base);
4049 /* ??1?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
4050 /* ??1?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
4051 /* ??1?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
4052 /* ??1?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
4053 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_dtor, 4)
4054 void __thiscall basic_stringbuf_wchar_dtor(basic_stringbuf_wchar *this)
4056 TRACE("(%p)\n", this);
4058 basic_stringbuf_wchar__Tidy(this);
4059 basic_streambuf_wchar_dtor(&this->base);
4062 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_vector_dtor, 8)
4063 basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_vector_dtor(basic_stringbuf_wchar *this, unsigned int flags)
4065 TRACE("(%p %x)\n", this, flags);
4068 /* we have an array, with the number of elements stored before the first object */
4069 INT_PTR i, *ptr = (INT_PTR *) this - 1;
4071 for (i = *ptr - 1; i >= 0; i--)
4072 basic_stringbuf_wchar_dtor(this+i);
4074 MSVCRT_operator_delete(ptr);
4076 basic_stringbuf_wchar_dtor(this);
4079 MSVCRT_operator_delete(this);
4085 /* ?overflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGG@Z */
4086 /* ?overflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGG@Z */
4087 /* ?overflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGG@Z */
4088 /* ?overflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGG@Z */
4089 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_overflow, 8)
4090 unsigned short __thiscall basic_stringbuf_wchar_overflow(basic_stringbuf_wchar *this, unsigned short meta)
4092 MSVCP_size_t oldsize, size;
4095 TRACE("(%p %x)\n", this, meta);
4099 if(this->state & STRINGBUF_no_write)
4102 ptr = basic_streambuf_wchar_pptr(&this->base);
4103 if((this->state&STRINGBUF_append) && ptr<this->seekhigh)
4104 basic_streambuf_wchar_setp_next(&this->base, basic_streambuf_wchar_pbase(&this->base),
4105 this->seekhigh, basic_streambuf_wchar_epptr(&this->base));
4107 if(ptr && ptr<basic_streambuf_wchar_epptr(&this->base))
4108 return (*basic_streambuf_wchar__Pninc(&this->base) = meta);
4110 oldsize = (ptr ? basic_streambuf_wchar_epptr(&this->base)-basic_streambuf_wchar_eback(&this->base): 0);
4113 buf = MSVCRT_operator_new(size*sizeof(wchar_t));
4115 ERR("Out of memory\n");
4116 throw_exception(EXCEPTION_BAD_ALLOC, NULL);
4120 this->seekhigh = buf;
4121 basic_streambuf_wchar_setp(&this->base, buf, buf+size);
4122 if(this->state & STRINGBUF_no_read)
4123 basic_streambuf_wchar_setg(&this->base, buf, NULL, buf);
4125 basic_streambuf_wchar_setg(&this->base, buf, buf, buf+1);
4127 this->state |= STRINGBUF_allocated;
4129 ptr = basic_streambuf_wchar_eback(&this->base);
4130 memcpy(buf, ptr, oldsize*sizeof(wchar_t));
4132 this->seekhigh = buf+(this->seekhigh-ptr);
4133 basic_streambuf_wchar_setp_next(&this->base, buf,
4134 buf+(basic_streambuf_wchar_pptr(&this->base)-ptr), buf+size);
4135 if(this->state & STRINGBUF_no_read)
4136 basic_streambuf_wchar_setg(&this->base, buf, NULL, buf);
4138 basic_streambuf_wchar_setg(&this->base, buf,
4139 buf+(basic_streambuf_wchar_gptr(&this->base)-ptr),
4140 basic_streambuf_wchar_pptr(&this->base)+1);
4142 MSVCRT_operator_delete(ptr);
4145 return (*basic_streambuf_wchar__Pninc(&this->base) = meta);
4148 /* ?pbackfail@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGG@Z */
4149 /* ?pbackfail@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGG@Z */
4150 /* ?pbackfail@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGG@Z */
4151 /* ?pbackfail@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGG@Z */
4152 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_pbackfail, 8)
4153 unsigned short __thiscall basic_stringbuf_wchar_pbackfail(basic_stringbuf_wchar *this, unsigned short c)
4157 TRACE("(%p %x)\n", this, c);
4159 cur = basic_streambuf_wchar_gptr(&this->base);
4160 if(!cur || cur==basic_streambuf_wchar_eback(&this->base)
4161 || (c!=WEOF && c!=cur[-1] && this->state&STRINGBUF_no_write))
4166 basic_streambuf_wchar_gbump(&this->base, -1);
4167 return c==WEOF ? !WEOF : c;
4170 /* ?underflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGXZ */
4171 /* ?underflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGXZ */
4172 /* ?underflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGXZ */
4173 /* ?underflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGXZ */
4174 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_underflow, 4)
4175 unsigned short __thiscall basic_stringbuf_wchar_underflow(basic_stringbuf_wchar *this)
4179 TRACE("(%p)\n", this);
4181 cur = basic_streambuf_wchar_gptr(&this->base);
4182 if(!cur || this->state&STRINGBUF_no_read)
4185 ptr = basic_streambuf_wchar_pptr(&this->base);
4186 if(this->seekhigh < ptr)
4187 this->seekhigh = ptr;
4189 ptr = basic_streambuf_wchar_egptr(&this->base);
4190 if(this->seekhigh > ptr)
4191 basic_streambuf_wchar_setg(&this->base, basic_streambuf_wchar_eback(&this->base), cur, this->seekhigh);
4193 if(cur < this->seekhigh)
4198 /* ?seekoff@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
4199 /* ?seekoff@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
4200 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
4201 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
4202 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_seekoff, 20)
4203 fpos_int* __thiscall basic_stringbuf_wchar_seekoff(basic_stringbuf_wchar *this,
4204 fpos_int *ret, streamoff off, int way, int mode)
4206 wchar_t *beg, *cur_r, *cur_w;
4208 TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode);
4210 cur_w = basic_streambuf_wchar_pptr(&this->base);
4211 if(cur_w > this->seekhigh)
4212 this->seekhigh = cur_w;
4217 beg = basic_streambuf_wchar_eback(&this->base);
4218 cur_r = basic_streambuf_wchar_gptr(&this->base);
4219 if((mode & OPENMODE_in) && cur_r) {
4220 if(way==SEEKDIR_cur && !(mode & OPENMODE_out))
4222 else if(way == SEEKDIR_end)
4223 off += this->seekhigh-beg;
4224 else if(way != SEEKDIR_beg)
4227 if(off<0 || off>this->seekhigh-beg) {
4230 basic_streambuf_wchar_gbump(&this->base, beg-cur_r+off);
4231 if((mode & OPENMODE_out) && cur_w) {
4232 basic_streambuf_wchar_setp_next(&this->base, beg,
4233 basic_streambuf_wchar_gptr(&this->base),
4234 basic_streambuf_wchar_epptr(&this->base));
4237 }else if((mode & OPENMODE_out) && cur_w) {
4238 if(way == SEEKDIR_cur)
4240 else if(way == SEEKDIR_end)
4241 off += this->seekhigh-beg;
4242 else if(way != SEEKDIR_beg)
4245 if(off<0 || off>this->seekhigh-beg)
4248 basic_streambuf_wchar_pbump(&this->base, beg-cur_w+off);
4257 /* ?seekpos@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
4258 /* ?seekpos@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
4259 /* ?seekpos@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
4260 /* ?seekpos@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
4261 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_seekpos, 36)
4262 fpos_int* __thiscall basic_stringbuf_wchar_seekpos(basic_stringbuf_wchar *this,
4263 fpos_int *ret, fpos_int pos, int mode)
4265 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
4267 if(pos.off==0 && pos.pos==-1 && pos.state==0) {
4272 return basic_stringbuf_wchar_seekoff(this, ret, pos.off, SEEKDIR_beg, mode);
4275 /* ?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 */
4276 /* ?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 */
4277 /* ?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 */
4278 /* ?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 */
4279 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_str_set, 8)
4280 void __thiscall basic_stringbuf_wchar_str_set(basic_stringbuf_wchar *this, const basic_string_wchar *str)
4282 TRACE("(%p %p)\n", this, str);
4284 basic_stringbuf_wchar__Tidy(this);
4285 basic_stringbuf_wchar__Init(this, MSVCP_basic_string_wchar_c_str(str), str->size, this->state);
4288 /* ?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 */
4289 /* ?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 */
4290 /* ?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 */
4291 /* ?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 */
4292 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_str_get, 8)
4293 basic_string_wchar* __thiscall basic_stringbuf_wchar_str_get(const basic_stringbuf_wchar *this, basic_string_wchar *ret)
4297 TRACE("(%p)\n", this);
4299 if(!(this->state & STRINGBUF_no_write) && basic_streambuf_wchar_pptr(&this->base)) {
4302 ptr = basic_streambuf_wchar_pbase(&this->base);
4303 pptr = basic_streambuf_wchar_pptr(&this->base);
4305 return MSVCP_basic_string_wchar_ctor_cstr_len(ret, ptr, (this->seekhigh < pptr ? pptr : this->seekhigh) - ptr);
4308 if(!(this->state & STRINGBUF_no_read) && basic_streambuf_wchar_gptr(&this->base)) {
4309 ptr = basic_streambuf_wchar_eback(&this->base);
4310 return MSVCP_basic_string_wchar_ctor_cstr_len(ret, ptr, basic_streambuf_wchar_egptr(&this->base) - ptr);
4313 return MSVCP_basic_string_wchar_ctor(ret);
4316 /* ??0ios_base@std@@IAE@XZ */
4317 /* ??0ios_base@std@@IEAA@XZ */
4318 DEFINE_THISCALL_WRAPPER(ios_base_ctor, 4)
4319 ios_base* __thiscall ios_base_ctor(ios_base *this)
4321 TRACE("(%p)\n", this);
4322 this->vtable = &MSVCP_ios_base_vtable;
4326 /* ??0ios_base@std@@QAE@ABV01@@Z */
4327 /* ??0ios_base@std@@QEAA@AEBV01@@Z */
4328 DEFINE_THISCALL_WRAPPER(ios_base_copy_ctor, 8)
4329 ios_base* __thiscall ios_base_copy_ctor(ios_base *this, const ios_base *copy)
4331 TRACE("(%p %p)\n", this, copy);
4333 this->vtable = &MSVCP_ios_base_vtable;
4337 /* ?_Callfns@ios_base@std@@AAEXW4event@12@@Z */
4338 /* ?_Callfns@ios_base@std@@AEAAXW4event@12@@Z */
4339 DEFINE_THISCALL_WRAPPER(ios_base_Callfns, 8)
4340 void __thiscall ios_base_Callfns(ios_base *this, IOS_BASE_event event)
4342 IOS_BASE_fnarray *cur;
4344 TRACE("(%p %x)\n", this, event);
4346 for(cur=this->calls; cur; cur=cur->next)
4347 cur->event_handler(event, this, cur->index);
4350 /* ?_Tidy@ios_base@std@@AAAXXZ */
4351 /* ?_Tidy@ios_base@std@@AEAAXXZ */
4352 void CDECL ios_base_Tidy(ios_base *this)
4354 IOS_BASE_iosarray *arr_cur, *arr_next;
4355 IOS_BASE_fnarray *event_cur, *event_next;
4357 TRACE("(%p)\n", this);
4359 ios_base_Callfns(this, EVENT_erase_event);
4361 for(arr_cur=this->arr; arr_cur; arr_cur=arr_next) {
4362 arr_next = arr_cur->next;
4363 MSVCRT_operator_delete(arr_cur);
4367 for(event_cur=this->calls; event_cur; event_cur=event_next) {
4368 event_next = event_cur->next;
4369 MSVCRT_operator_delete(event_cur);
4374 /* ?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z */
4375 /* ?_Ios_base_dtor@ios_base@std@@CAXPEAV12@@Z */
4376 static void ios_base_Ios_base_dtor(ios_base *obj)
4378 TRACE("(%p)\n", obj);
4380 locale_dtor(obj->loc);
4381 MSVCRT_operator_delete(obj->loc);
4386 /* ??1ios_base@std@@UAE@XZ */
4387 /* ??1ios_base@std@@UEAA@XZ */
4388 DEFINE_THISCALL_WRAPPER(ios_base_dtor, 4)
4389 void __thiscall ios_base_dtor(ios_base *this)
4391 ios_base_Ios_base_dtor(this);
4394 DEFINE_THISCALL_WRAPPER(ios_base_vector_dtor, 8)
4395 ios_base* __thiscall ios_base_vector_dtor(ios_base *this, unsigned int flags)
4397 TRACE("(%p %x)\n", this, flags);
4399 /* we have an array, with the number of elements stored before the first object */
4400 INT_PTR i, *ptr = (INT_PTR *)this-1;
4402 for(i=*ptr-1; i>=0; i--)
4403 ios_base_dtor(this+i);
4404 MSVCRT_operator_delete(ptr);
4406 ios_base_dtor(this);
4408 MSVCRT_operator_delete(this);
4414 DEFINE_THISCALL_WRAPPER(iosb_vector_dtor, 8)
4415 void* __thiscall iosb_vector_dtor(void *this, unsigned int flags)
4417 TRACE("(%p %x)\n", this, flags);
4419 INT_PTR *ptr = (INT_PTR *)this-1;
4420 MSVCRT_operator_delete(ptr);
4423 MSVCRT_operator_delete(this);
4429 /* ?_Findarr@ios_base@std@@AAEAAU_Iosarray@12@H@Z */
4430 /* ?_Findarr@ios_base@std@@AEAAAEAU_Iosarray@12@H@Z */
4431 DEFINE_THISCALL_WRAPPER(ios_base_Findarr, 8)
4432 IOS_BASE_iosarray* __thiscall ios_base_Findarr(ios_base *this, int index)
4434 IOS_BASE_iosarray *p;
4436 TRACE("(%p %d)\n", this, index);
4438 for(p=this->arr; p; p=p->next) {
4439 if(p->index == index)
4443 for(p=this->arr; p; p=p->next) {
4444 if(!p->long_val && !p->ptr_val) {
4450 p = MSVCRT_operator_new(sizeof(IOS_BASE_iosarray));
4451 p->next = this->arr;
4459 /* ?iword@ios_base@std@@QAEAAJH@Z */
4460 /* ?iword@ios_base@std@@QEAAAEAJH@Z */
4461 DEFINE_THISCALL_WRAPPER(ios_base_iword, 8)
4462 LONG* __thiscall ios_base_iword(ios_base *this, int index)
4464 TRACE("(%p %d)\n", this, index);
4465 return &ios_base_Findarr(this, index)->long_val;
4468 /* ?pword@ios_base@std@@QAEAAPAXH@Z */
4469 /* ?pword@ios_base@std@@QEAAAEAPEAXH@Z */
4470 DEFINE_THISCALL_WRAPPER(ios_base_pword, 8)
4471 void** __thiscall ios_base_pword(ios_base *this, int index)
4473 TRACE("(%p %d)\n", this, index);
4474 return &ios_base_Findarr(this, index)->ptr_val;
4477 /* ?register_callback@ios_base@std@@QAEXP6AXW4event@12@AAV12@H@ZH@Z */
4478 /* ?register_callback@ios_base@std@@QEAAXP6AXW4event@12@AEAV12@H@ZH@Z */
4479 DEFINE_THISCALL_WRAPPER(ios_base_register_callback, 12)
4480 void __thiscall ios_base_register_callback(ios_base *this, IOS_BASE_event_callback callback, int index)
4482 IOS_BASE_fnarray *event;
4484 TRACE("(%p %p %d)\n", this, callback, index);
4486 event = MSVCRT_operator_new(sizeof(IOS_BASE_fnarray));
4487 event->next = this->calls;
4488 event->index = index;
4489 event->event_handler = callback;
4490 this->calls = event;
4493 /* ?clear@ios_base@std@@QAEXH_N@Z */
4494 /* ?clear@ios_base@std@@QEAAXH_N@Z */
4495 DEFINE_THISCALL_WRAPPER(ios_base_clear_reraise, 12)
4496 void __thiscall ios_base_clear_reraise(ios_base *this, IOSB_iostate state, MSVCP_bool reraise)
4498 TRACE("(%p %x %x)\n", this, state, reraise);
4500 this->state = state & IOSTATE_mask;
4501 if(!(this->state & this->except))
4505 throw_exception(EXCEPTION_RERAISE, NULL);
4506 else if(this->state & this->except & IOSTATE_eofbit)
4507 throw_exception(EXCEPTION_FAILURE, "eofbit is set");
4508 else if(this->state & this->except & IOSTATE_failbit)
4509 throw_exception(EXCEPTION_FAILURE, "failbit is set");
4510 else if(this->state & this->except & IOSTATE_badbit)
4511 throw_exception(EXCEPTION_FAILURE, "badbit is set");
4512 else if(this->state & this->except & IOSTATE__Hardfail)
4513 throw_exception(EXCEPTION_FAILURE, "_Hardfail is set");
4516 /* ?clear@ios_base@std@@QAEXH@Z */
4517 /* ?clear@ios_base@std@@QEAAXH@Z */
4518 DEFINE_THISCALL_WRAPPER(ios_base_clear, 8)
4519 void __thiscall ios_base_clear(ios_base *this, IOSB_iostate state)
4521 ios_base_clear_reraise(this, state, FALSE);
4524 /* ?clear@ios_base@std@@QAEXI@Z */
4525 /* ?clear@ios_base@std@@QEAAXI@Z */
4526 DEFINE_THISCALL_WRAPPER(ios_base_clear_unsigned, 8)
4527 void __thiscall ios_base_clear_unsigned(ios_base *this, unsigned int state)
4529 ios_base_clear_reraise(this, (IOSB_iostate)state, FALSE);
4532 /* ?exceptions@ios_base@std@@QAEXH@Z */
4533 /* ?exceptions@ios_base@std@@QEAAXH@Z */
4534 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_set, 8)
4535 void __thiscall ios_base_exceptions_set(ios_base *this, IOSB_iostate state)
4537 TRACE("(%p %x)\n", this, state);
4538 this->except = state & IOSTATE_mask;
4539 ios_base_clear(this, this->state);
4542 /* ?exceptions@ios_base@std@@QAEXI@Z */
4543 /* ?exceptions@ios_base@std@@QEAAXI@Z */
4544 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_set_unsigned, 8)
4545 void __thiscall ios_base_exceptions_set_unsigned(ios_base *this, unsigned int state)
4547 TRACE("(%p %x)\n", this, state);
4548 ios_base_exceptions_set(this, state);
4551 /* ?exceptions@ios_base@std@@QBEHXZ */
4552 /* ?exceptions@ios_base@std@@QEBAHXZ */
4553 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_get, 4)
4554 IOSB_iostate __thiscall ios_base_exceptions_get(ios_base *this)
4556 TRACE("(%p)\n", this);
4557 return this->except;
4560 /* ?copyfmt@ios_base@std@@QAEAAV12@ABV12@@Z */
4561 /* ?copyfmt@ios_base@std@@QEAAAEAV12@AEBV12@@Z */
4562 DEFINE_THISCALL_WRAPPER(ios_base_copyfmt, 8)
4563 ios_base* __thiscall ios_base_copyfmt(ios_base *this, const ios_base *rhs)
4565 TRACE("(%p %p)\n", this, rhs);
4568 IOS_BASE_iosarray *arr_cur;
4569 IOS_BASE_fnarray *event_cur;
4571 ios_base_Tidy(this);
4573 for(arr_cur=rhs->arr; arr_cur; arr_cur=arr_cur->next) {
4574 if(arr_cur->long_val)
4575 *ios_base_iword(this, arr_cur->index) = arr_cur->long_val;
4576 if(arr_cur->ptr_val)
4577 *ios_base_pword(this, arr_cur->index) = arr_cur->ptr_val;
4579 this->stdstr = rhs->stdstr;
4580 this->fmtfl = rhs->fmtfl;
4581 this->prec = rhs->prec;
4582 this->wide = rhs->wide;
4583 locale_operator_assign(this->loc, rhs->loc);
4585 for(event_cur=rhs->calls; event_cur; event_cur=event_cur->next)
4586 ios_base_register_callback(this, event_cur->event_handler, event_cur->index);
4588 ios_base_Callfns(this, EVENT_copyfmt_event);
4589 ios_base_exceptions_set(this, rhs->except);
4595 /* ??4ios_base@std@@QAEAAV01@ABV01@@Z */
4596 /* ??4ios_base@std@@QEAAAEAV01@AEBV01@@Z */
4597 DEFINE_THISCALL_WRAPPER(ios_base_assign, 8)
4598 ios_base* __thiscall ios_base_assign(ios_base *this, const ios_base *right)
4600 TRACE("(%p %p)\n", this, right);
4603 this->state = right->state;
4604 ios_base_copyfmt(this, right);
4610 /* ?fail@ios_base@std@@QBE_NXZ */
4611 /* ?fail@ios_base@std@@QEBA_NXZ */
4612 DEFINE_THISCALL_WRAPPER(ios_base_fail, 4)
4613 MSVCP_bool __thiscall ios_base_fail(const ios_base *this)
4615 TRACE("(%p)\n", this);
4616 return (this->state & (IOSTATE_failbit|IOSTATE_badbit)) != 0;
4619 /* ??7ios_base@std@@QBE_NXZ */
4620 /* ??7ios_base@std@@QEBA_NXZ */
4621 DEFINE_THISCALL_WRAPPER(ios_base_op_succ, 4)
4622 MSVCP_bool __thiscall ios_base_op_succ(const ios_base *this)
4624 TRACE("(%p)\n", this);
4625 return ios_base_fail(this);
4628 /* ??Bios_base@std@@QBEPAXXZ */
4629 /* ??Bios_base@std@@QEBAPEAXXZ */
4630 DEFINE_THISCALL_WRAPPER(ios_base_op_fail, 4)
4631 void* __thiscall ios_base_op_fail(const ios_base *this)
4633 TRACE("(%p)\n", this);
4634 return ios_base_fail(this) ? NULL : (void*)this;
4637 /* ?_Addstd@ios_base@std@@SAXPAV12@@Z */
4638 /* ?_Addstd@ios_base@std@@SAXPEAV12@@Z */
4639 static void ios_base_Addstd(ios_base *add)
4641 FIXME("(%p) stub\n", add);
4644 /* ?_Init@ios_base@std@@IAEXXZ */
4645 /* ?_Init@ios_base@std@@IEAAXXZ */
4646 DEFINE_THISCALL_WRAPPER(ios_base__Init, 4)
4647 void __thiscall ios_base__Init(ios_base *this)
4649 TRACE("(%p)\n", this);
4652 this->state = this->except = IOSTATE_goodbit;
4653 this->fmtfl = FMTFLAG_skipws | FMTFLAG_dec;
4658 this->loc = MSVCRT_operator_new(sizeof(locale));
4659 locale_ctor(this->loc);
4662 /* ?bad@ios_base@std@@QBE_NXZ */
4663 /* ?bad@ios_base@std@@QEBA_NXZ */
4664 DEFINE_THISCALL_WRAPPER(ios_base_bad, 4)
4665 MSVCP_bool __thiscall ios_base_bad(const ios_base *this)
4667 TRACE("(%p)\n", this);
4668 return (this->state & IOSTATE_badbit) != 0;
4671 /* ?eof@ios_base@std@@QBE_NXZ */
4672 /* ?eof@ios_base@std@@QEBA_NXZ */
4673 DEFINE_THISCALL_WRAPPER(ios_base_eof, 4)
4674 MSVCP_bool __thiscall ios_base_eof(const ios_base *this)
4676 TRACE("(%p)\n", this);
4677 return (this->state & IOSTATE_eofbit) != 0;
4680 /* ?flags@ios_base@std@@QAEHH@Z */
4681 /* ?flags@ios_base@std@@QEAAHH@Z */
4682 DEFINE_THISCALL_WRAPPER(ios_base_flags_set, 8)
4683 IOSB_fmtflags __thiscall ios_base_flags_set(ios_base *this, IOSB_fmtflags flags)
4685 IOSB_fmtflags ret = this->fmtfl;
4687 TRACE("(%p %x)\n", this, flags);
4689 this->fmtfl = flags & FMTFLAG_mask;
4693 /* ?flags@ios_base@std@@QBEHXZ */
4694 /* ?flags@ios_base@std@@QEBAHXZ */
4695 DEFINE_THISCALL_WRAPPER(ios_base_flags_get, 4)
4696 IOSB_fmtflags __thiscall ios_base_flags_get(const ios_base *this)
4698 TRACE("(%p)\n", this);
4702 /* ?getloc@ios_base@std@@QBE?AVlocale@2@XZ */
4703 /* ?getloc@ios_base@std@@QEBA?AVlocale@2@XZ */
4704 DEFINE_THISCALL_WRAPPER(ios_base_getloc, 8)
4705 locale* __thiscall ios_base_getloc(const ios_base *this, locale *ret)
4707 TRACE("(%p)\n", this);
4708 return locale_copy_ctor(ret, this->loc);
4711 /* ?good@ios_base@std@@QBE_NXZ */
4712 /* ?good@ios_base@std@@QEBA_NXZ */
4713 DEFINE_THISCALL_WRAPPER(ios_base_good, 4)
4714 MSVCP_bool __thiscall ios_base_good(const ios_base *this)
4716 TRACE("(%p)\n", this);
4717 return this->state == IOSTATE_goodbit;
4720 /* ?imbue@ios_base@std@@QAE?AVlocale@2@ABV32@@Z */
4721 /* ?imbue@ios_base@std@@QEAA?AVlocale@2@AEBV32@@Z */
4722 DEFINE_THISCALL_WRAPPER(ios_base_imbue, 12)
4723 locale* __thiscall ios_base_imbue(ios_base *this, locale *ret, const locale *loc)
4725 TRACE("(%p %p)\n", this, loc);
4727 locale_copy_ctor(this->loc, loc);
4731 /* ?precision@ios_base@std@@QAEHH@Z */
4732 /* ?precision@ios_base@std@@QEAA_J_J@Z */
4733 DEFINE_THISCALL_WRAPPER(ios_base_precision_set, 8)
4734 streamsize __thiscall ios_base_precision_set(ios_base *this, streamsize precision)
4736 streamsize ret = this->prec;
4738 TRACE("(%p %ld)\n", this, precision);
4740 this->prec = precision;
4744 /* ?precision@ios_base@std@@QBEHXZ */
4745 /* ?precision@ios_base@std@@QEBA_JXZ */
4746 DEFINE_THISCALL_WRAPPER(ios_base_precision_get, 4)
4747 streamsize __thiscall ios_base_precision_get(const ios_base *this)
4749 TRACE("(%p)\n", this);
4753 /* ?rdstate@ios_base@std@@QBEHXZ */
4754 /* ?rdstate@ios_base@std@@QEBAHXZ */
4755 DEFINE_THISCALL_WRAPPER(ios_base_rdstate, 4)
4756 IOSB_iostate __thiscall ios_base_rdstate(const ios_base *this)
4758 TRACE("(%p)\n", this);
4762 /* ?setf@ios_base@std@@QAEHHH@Z */
4763 /* ?setf@ios_base@std@@QEAAHHH@Z */
4764 DEFINE_THISCALL_WRAPPER(ios_base_setf_mask, 12)
4765 IOSB_fmtflags __thiscall ios_base_setf_mask(ios_base *this, IOSB_fmtflags flags, IOSB_fmtflags mask)
4767 IOSB_fmtflags ret = this->fmtfl;
4769 TRACE("(%p %x %x)\n", this, flags, mask);
4771 this->fmtfl = (this->fmtfl & (~mask)) | (flags & mask & FMTFLAG_mask);
4775 /* ?setf@ios_base@std@@QAEHH@Z */
4776 /* ?setf@ios_base@std@@QEAAHH@Z */
4777 DEFINE_THISCALL_WRAPPER(ios_base_setf, 8)
4778 IOSB_fmtflags __thiscall ios_base_setf(ios_base *this, IOSB_fmtflags flags)
4780 return ios_base_setf_mask(this, flags, ~0);
4783 /* ?setstate@ios_base@std@@QAEXH_N@Z */
4784 /* ?setstate@ios_base@std@@QEAAXH_N@Z */
4785 DEFINE_THISCALL_WRAPPER(ios_base_setstate_reraise, 12)
4786 void __thiscall ios_base_setstate_reraise(ios_base *this, IOSB_iostate state, MSVCP_bool reraise)
4788 TRACE("(%p %x %x)\n", this, state, reraise);
4790 if(state != IOSTATE_goodbit)
4791 ios_base_clear_reraise(this, this->state | state, reraise);
4794 /* ?setstate@ios_base@std@@QAEXH@Z */
4795 /* ?setstate@ios_base@std@@QEAAXH@Z */
4796 DEFINE_THISCALL_WRAPPER(ios_base_setstate, 8)
4797 void __thiscall ios_base_setstate(ios_base *this, IOSB_iostate state)
4799 ios_base_setstate_reraise(this, state, FALSE);
4802 /* ?setstate@ios_base@std@@QAEXI@Z */
4803 /* ?setstate@ios_base@std@@QEAAXI@Z */
4804 DEFINE_THISCALL_WRAPPER(ios_base_setstate_unsigned, 8)
4805 void __thiscall ios_base_setstate_unsigned(ios_base *this, unsigned int state)
4807 ios_base_setstate_reraise(this, (IOSB_iostate)state, FALSE);
4810 /* ?sync_with_stdio@ios_base@std@@SA_N_N@Z */
4811 MSVCP_bool CDECL ios_base_sync_with_stdio(MSVCP_bool sync)
4816 TRACE("(%x)\n", sync);
4818 _Lockit_ctor_locktype(&lock, _LOCK_STREAM);
4819 ret = ios_base_Sync;
4820 ios_base_Sync = sync;
4821 _Lockit_dtor(&lock);
4825 /* ?unsetf@ios_base@std@@QAEXH@Z */
4826 /* ?unsetf@ios_base@std@@QEAAXH@Z */
4827 DEFINE_THISCALL_WRAPPER(ios_base_unsetf, 8)
4828 void __thiscall ios_base_unsetf(ios_base *this, IOSB_fmtflags flags)
4830 TRACE("(%p %x)\n", this, flags);
4831 this->fmtfl &= ~flags;
4834 /* ?width@ios_base@std@@QAEHH@Z */
4835 /* ?width@ios_base@std@@QEAA_J_J@Z */
4836 DEFINE_THISCALL_WRAPPER(ios_base_width_set, 8)
4837 streamsize __thiscall ios_base_width_set(ios_base *this, streamsize width)
4839 streamsize ret = this->wide;
4841 TRACE("(%p %ld)\n", this, width);
4847 /* ?width@ios_base@std@@QBEHXZ */
4848 /* ?width@ios_base@std@@QEBA_JXZ */
4849 DEFINE_THISCALL_WRAPPER(ios_base_width_get, 4)
4850 streamsize __thiscall ios_base_width_get(ios_base *this)
4852 TRACE("(%p)\n", this);
4856 /* ?xalloc@ios_base@std@@SAHXZ */
4857 int CDECL ios_base_xalloc(void)
4864 _Lockit_ctor_locktype(&lock, _LOCK_STREAM);
4865 ret = ios_base_Index++;
4866 _Lockit_dtor(&lock);
4870 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ */
4871 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ */
4872 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor, 4)
4873 basic_ios_char* __thiscall basic_ios_char_ctor(basic_ios_char *this)
4875 TRACE("(%p)\n", this);
4877 ios_base_ctor(&this->base);
4878 this->base.vtable = &MSVCP_basic_ios_char_vtable;
4882 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
4883 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
4884 DEFINE_THISCALL_WRAPPER(basic_ios_char_init, 12)
4885 void __thiscall basic_ios_char_init(basic_ios_char *this, basic_streambuf_char *streambuf, MSVCP_bool isstd)
4887 TRACE("(%p %p %x)\n", this, streambuf, isstd);
4888 ios_base__Init(&this->base);
4889 this->strbuf = streambuf;
4890 this->stream = NULL;
4894 ios_base_setstate(&this->base, IOSTATE_badbit);
4897 FIXME("standard streams not handled yet\n");
4900 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
4901 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
4902 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor_streambuf, 8)
4903 basic_ios_char* __thiscall basic_ios_char_ctor_streambuf(basic_ios_char *this, basic_streambuf_char *strbuf)
4905 TRACE("(%p %p)\n", this, strbuf);
4907 basic_ios_char_ctor(this);
4908 basic_ios_char_init(this, strbuf, FALSE);
4912 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ */
4913 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ */
4914 DEFINE_THISCALL_WRAPPER(basic_ios_char_dtor, 4)
4915 void __thiscall basic_ios_char_dtor(basic_ios_char *this)
4917 TRACE("(%p)\n", this);
4918 ios_base_dtor(&this->base);
4921 DEFINE_THISCALL_WRAPPER(basic_ios_char_vector_dtor, 8)
4922 basic_ios_char* __thiscall basic_ios_char_vector_dtor(basic_ios_char *this, unsigned int flags)
4924 TRACE("(%p %x)\n", this, flags);
4926 /* we have an array, with the number of elements stored before the first object */
4927 INT_PTR i, *ptr = (INT_PTR *)this-1;
4929 for(i=*ptr-1; i>=0; i--)
4930 basic_ios_char_dtor(this+i);
4931 MSVCRT_operator_delete(ptr);
4933 basic_ios_char_dtor(this);
4935 MSVCRT_operator_delete(this);
4941 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
4942 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
4943 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear_reraise, 12)
4944 void __thiscall basic_ios_char_clear_reraise(basic_ios_char *this, IOSB_iostate state, MSVCP_bool reraise)
4946 TRACE("(%p %x %x)\n", this, state, reraise);
4947 ios_base_clear_reraise(&this->base, state | (this->strbuf ? IOSTATE_goodbit : IOSTATE_badbit), reraise);
4950 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
4951 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
4952 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear, 8)
4953 void __thiscall basic_ios_char_clear(basic_ios_char *this, unsigned int state)
4955 basic_ios_char_clear_reraise(this, (IOSB_iostate)state, FALSE);
4958 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEAAV12@ABV12@@Z */
4959 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEBV12@@Z */
4960 DEFINE_THISCALL_WRAPPER(basic_ios_char_copyfmt, 8)
4961 basic_ios_char* __thiscall basic_ios_char_copyfmt(basic_ios_char *this, basic_ios_char *copy)
4963 TRACE("(%p %p)\n", this, copy);
4967 this->stream = copy->stream;
4968 this->fillch = copy->fillch;
4969 ios_base_copyfmt(&this->base, ©->base);
4973 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEDD@Z */
4974 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z */
4975 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_set, 8)
4976 char __thiscall basic_ios_char_fill_set(basic_ios_char *this, char fill)
4978 char ret = this->fillch;
4980 TRACE("(%p %c)\n", this, fill);
4982 this->fillch = fill;
4986 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ */
4987 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ */
4988 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_get, 4)
4989 char __thiscall basic_ios_char_fill_get(basic_ios_char *this)
4991 TRACE("(%p)\n", this);
4992 return this->fillch;
4995 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
4996 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
4997 DEFINE_THISCALL_WRAPPER(basic_ios_char_imbue, 12)
4998 locale *__thiscall basic_ios_char_imbue(basic_ios_char *this, locale *ret, const locale *loc)
5000 TRACE("(%p %p %p)\n", this, ret, loc);
5003 basic_streambuf_char_pubimbue(this->strbuf, ret, loc);
5007 return ios_base_imbue(&this->base, ret, loc);
5010 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDDD@Z */
5011 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADDD@Z */
5012 DEFINE_THISCALL_WRAPPER(basic_ios_char_narrow, 12)
5013 char __thiscall basic_ios_char_narrow(basic_ios_char *this, char ch, char def)
5015 TRACE("(%p %c %c)\n", this, ch, def);
5016 return ctype_char_narrow_ch(ctype_char_use_facet(this->strbuf->loc), ch, def);
5019 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PAV32@@Z */
5020 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAV32@@Z */
5021 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_set, 8)
5022 basic_streambuf_char* __thiscall basic_ios_char_rdbuf_set(basic_ios_char *this, basic_streambuf_char *streambuf)
5024 basic_streambuf_char *ret = this->strbuf;
5026 TRACE("(%p %p)\n", this, streambuf);
5028 this->strbuf = streambuf;
5029 basic_ios_char_clear(this, IOSTATE_goodbit);
5033 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
5034 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
5035 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_get, 4)
5036 basic_streambuf_char* __thiscall basic_ios_char_rdbuf_get(const basic_ios_char *this)
5038 TRACE("(%p)\n", this);
5039 return this->strbuf;
5042 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
5043 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
5044 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate_reraise, 12)
5045 void __thiscall basic_ios_char_setstate_reraise(basic_ios_char *this, IOSB_iostate state, MSVCP_bool reraise)
5047 TRACE("(%p %x %x)\n", this, state, reraise);
5049 if(state != IOSTATE_goodbit)
5050 basic_ios_char_clear_reraise(this, this->base.state | state, reraise);
5053 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
5054 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
5055 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate, 8)
5056 void __thiscall basic_ios_char_setstate(basic_ios_char *this, unsigned int state)
5058 basic_ios_char_setstate_reraise(this, (IOSB_iostate)state, FALSE);
5061 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@PAV32@@Z */
5062 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@PEAV32@@Z */
5063 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_set, 8)
5064 basic_ostream_char* __thiscall basic_ios_char_tie_set(basic_ios_char *this, basic_ostream_char *ostream)
5066 basic_ostream_char *ret = this->stream;
5068 TRACE("(%p %p)\n", this, ostream);
5070 this->stream = ostream;
5074 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
5075 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
5076 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_get, 4)
5077 basic_ostream_char* __thiscall basic_ios_char_tie_get(const basic_ios_char *this)
5079 TRACE("(%p)\n", this);
5080 return this->stream;
5083 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z */
5084 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z */
5085 DEFINE_THISCALL_WRAPPER(basic_ios_char_widen, 8)
5086 char __thiscall basic_ios_char_widen(basic_ios_char *this, char ch)
5088 TRACE("(%p %c)\n", this, ch);
5089 return ctype_char_widen_ch(ctype_char_use_facet(this->strbuf->loc), ch);
5093 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
5094 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
5095 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_ctor, 4)
5096 basic_ios_wchar* __thiscall basic_ios_wchar_ctor(basic_ios_wchar *this)
5098 TRACE("(%p)\n", this);
5100 ios_base_ctor(&this->base);
5101 this->base.vtable = &MSVCP_basic_ios_wchar_vtable;
5105 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@IAE@XZ */
5106 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@IEAA@XZ */
5107 DEFINE_THISCALL_WRAPPER(basic_ios_short_ctor, 4)
5108 basic_ios_wchar* __thiscall basic_ios_short_ctor(basic_ios_wchar *this)
5110 basic_ios_wchar_ctor(this);
5111 this->base.vtable = &MSVCP_basic_ios_short_vtable;
5115 /* ?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAEXPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z */
5116 /* ?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z */
5117 /* ?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IAEXPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z */
5118 /* ?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z */
5119 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_init, 12)
5120 void __thiscall basic_ios_wchar_init(basic_ios_wchar *this, basic_streambuf_wchar *streambuf, MSVCP_bool isstd)
5122 TRACE("(%p %p %x)\n", this, streambuf, isstd);
5123 ios_base__Init(&this->base);
5124 this->strbuf = streambuf;
5125 this->stream = NULL;
5129 ios_base_setstate(&this->base, IOSTATE_badbit);
5132 FIXME("standard streams not handled yet\n");
5135 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
5136 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
5137 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_ctor_streambuf, 8)
5138 basic_ios_wchar* __thiscall basic_ios_wchar_ctor_streambuf(basic_ios_wchar *this, basic_streambuf_wchar *strbuf)
5140 TRACE("(%p %p)\n", this, strbuf);
5142 basic_ios_wchar_ctor(this);
5143 basic_ios_wchar_init(this, strbuf, FALSE);
5147 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
5148 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
5149 DEFINE_THISCALL_WRAPPER(basic_ios_short_ctor_streambuf, 8)
5150 basic_ios_wchar* __thiscall basic_ios_short_ctor_streambuf(basic_ios_wchar *this, basic_streambuf_wchar *strbuf)
5152 basic_ios_wchar_ctor_streambuf(this, strbuf);
5153 this->base.vtable = &MSVCP_basic_ios_short_vtable;
5157 /* ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
5158 /* ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
5159 /* ??1?$basic_ios@GU?$char_traits@G@std@@@std@@UAE@XZ */
5160 /* ??1?$basic_ios@GU?$char_traits@G@std@@@std@@UEAA@XZ */
5161 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_dtor, 4)
5162 void __thiscall basic_ios_wchar_dtor(basic_ios_wchar *this)
5164 TRACE("(%p)\n", this);
5165 ios_base_dtor(&this->base);
5168 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_vector_dtor, 8)
5169 basic_ios_wchar* __thiscall basic_ios_wchar_vector_dtor(basic_ios_wchar *this, unsigned int flags)
5171 TRACE("(%p %x)\n", this, flags);
5173 /* we have an array, with the number of elements stored before the first object */
5174 INT_PTR i, *ptr = (INT_PTR *)this-1;
5176 for(i=*ptr-1; i>=0; i--)
5177 basic_ios_wchar_dtor(this+i);
5178 MSVCRT_operator_delete(ptr);
5180 basic_ios_wchar_dtor(this);
5182 MSVCRT_operator_delete(this);
5188 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z */
5189 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z */
5190 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXH_N@Z */
5191 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z */
5192 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_clear_reraise, 12)
5193 void __thiscall basic_ios_wchar_clear_reraise(basic_ios_wchar *this, IOSB_iostate state, MSVCP_bool reraise)
5195 TRACE("(%p %x %x)\n", this, state, reraise);
5196 ios_base_clear_reraise(&this->base, state | (this->strbuf ? IOSTATE_goodbit : IOSTATE_badbit), reraise);
5199 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXI@Z */
5200 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z */
5201 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXI@Z */
5202 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z */
5203 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_clear, 8)
5204 void __thiscall basic_ios_wchar_clear(basic_ios_wchar *this, unsigned int state)
5206 basic_ios_wchar_clear_reraise(this, (IOSB_iostate)state, FALSE);
5209 /* ?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEAAV12@ABV12@@Z */
5210 /* ?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEBV12@@Z */
5211 /* ?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEAAV12@ABV12@@Z */
5212 /* ?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEBV12@@Z */
5213 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_copyfmt, 8)
5214 basic_ios_wchar* __thiscall basic_ios_wchar_copyfmt(basic_ios_wchar *this, basic_ios_wchar *copy)
5216 TRACE("(%p %p)\n", this, copy);
5220 this->stream = copy->stream;
5221 this->fillch = copy->fillch;
5222 ios_base_copyfmt(&this->base, ©->base);
5226 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE_W_W@Z */
5227 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA_W_W@Z */
5228 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEGG@Z */
5229 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAGG@Z */
5230 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_fill_set, 8)
5231 wchar_t __thiscall basic_ios_wchar_fill_set(basic_ios_wchar *this, wchar_t fill)
5233 wchar_t ret = this->fillch;
5235 TRACE("(%p %c)\n", this, fill);
5237 this->fillch = fill;
5241 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WXZ */
5242 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WXZ */
5243 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEGXZ */
5244 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGXZ */
5245 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_fill_get, 4)
5246 wchar_t __thiscall basic_ios_wchar_fill_get(basic_ios_wchar *this)
5248 TRACE("(%p)\n", this);
5249 return this->fillch;
5252 /* ?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
5253 /* ?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
5254 /* ?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
5255 /* ?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
5256 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_imbue, 12)
5257 locale *__thiscall basic_ios_wchar_imbue(basic_ios_wchar *this, locale *ret, const locale *loc)
5259 TRACE("(%p %p %p)\n", this, ret, loc);
5262 basic_streambuf_wchar_pubimbue(this->strbuf, ret, loc);
5266 return ios_base_imbue(&this->base, ret, loc);
5269 /* ?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBED_WD@Z */
5270 /* ?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAD_WD@Z */
5271 /* ?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEDGD@Z */
5272 /* ?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBADGD@Z */
5273 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_narrow, 12)
5274 char __thiscall basic_ios_wchar_narrow(basic_ios_wchar *this, wchar_t ch, char def)
5276 TRACE("(%p %c %c)\n", this, ch, def);
5277 return ctype_wchar_narrow_ch(ctype_wchar_use_facet(this->strbuf->loc), ch, def);
5280 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PAV32@@Z */
5281 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEAV32@@Z */
5282 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PAV32@@Z */
5283 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAV32@@Z */
5284 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_rdbuf_set, 8)
5285 basic_streambuf_wchar* __thiscall basic_ios_wchar_rdbuf_set(basic_ios_wchar *this, basic_streambuf_wchar *streambuf)
5287 basic_streambuf_wchar *ret = this->strbuf;
5289 TRACE("(%p %p)\n", this, streambuf);
5291 this->strbuf = streambuf;
5292 basic_ios_wchar_clear(this, IOSTATE_goodbit);
5296 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ */
5297 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ */
5298 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ */
5299 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ */
5300 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_rdbuf_get, 4)
5301 basic_streambuf_wchar* __thiscall basic_ios_wchar_rdbuf_get(const basic_ios_wchar *this)
5303 TRACE("(%p)\n", this);
5304 return this->strbuf;
5307 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z */
5308 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z */
5309 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXH_N@Z */
5310 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z */
5311 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_setstate_reraise, 12)
5312 void __thiscall basic_ios_wchar_setstate_reraise(basic_ios_wchar *this, IOSB_iostate state, MSVCP_bool reraise)
5314 TRACE("(%p %x %x)\n", this, state, reraise);
5316 if(state != IOSTATE_goodbit)
5317 basic_ios_wchar_clear_reraise(this, this->base.state | state, reraise);
5320 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXI@Z */
5321 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z */
5322 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXI@Z */
5323 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z */
5324 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_setstate, 8)
5325 void __thiscall basic_ios_wchar_setstate(basic_ios_wchar *this, IOSB_iostate state)
5327 basic_ios_wchar_setstate_reraise(this, state, FALSE);
5330 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PAV32@@Z */
5331 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PEAV32@@Z */
5332 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEPAV?$basic_ostream@GU?$char_traits@G@std@@@2@PAV32@@Z */
5333 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@PEAV32@@Z */
5334 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_tie_set, 8)
5335 basic_ostream_wchar* __thiscall basic_ios_wchar_tie_set(basic_ios_wchar *this, basic_ostream_wchar *ostream)
5337 basic_ostream_wchar *ret = this->stream;
5339 TRACE("(%p %p)\n", this, ostream);
5341 this->stream = ostream;
5345 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ */
5346 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ */
5347 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ */
5348 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ */
5349 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_tie_get, 4)
5350 basic_ostream_wchar* __thiscall basic_ios_wchar_tie_get(const basic_ios_wchar *this)
5352 TRACE("(%p)\n", this);
5353 return this->stream;
5356 /* ?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WD@Z */
5357 /* ?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WD@Z */
5358 /* ?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEGD@Z */
5359 /* ?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGD@Z */
5360 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_widen, 8)
5361 wchar_t __thiscall basic_ios_wchar_widen(basic_ios_wchar *this, char ch)
5363 TRACE("(%p %c)\n", this, ch);
5364 return ctype_wchar_widen_ch(ctype_wchar_use_facet(this->strbuf->loc), ch);
5367 /* Caution: basic_ostream uses virtual inheritance.
5368 * All constructors have additional parameter that says if base class should be initialized.
5369 * Base class needs to be accessed using vbtable.
5371 static inline basic_ios_char* basic_ostream_char_get_basic_ios(basic_ostream_char *this)
5373 return (basic_ios_char*)((char*)this+this->vbtable[1]);
5376 static inline basic_ios_char* basic_ostream_char_to_basic_ios(basic_ostream_char *ptr)
5378 return (basic_ios_char*)((char*)ptr+basic_ostream_char_vbtable[1]);
5381 static inline basic_ostream_char* basic_ostream_char_from_basic_ios(basic_ios_char *ptr)
5383 return (basic_ostream_char*)((char*)ptr-basic_ostream_char_vbtable[1]);
5386 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
5387 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
5388 DEFINE_THISCALL_WRAPPER(basic_ostream_char_ctor, 16)
5389 basic_ostream_char* __thiscall basic_ostream_char_ctor(basic_ostream_char *this,
5390 basic_streambuf_char *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
5392 basic_ios_char *base;
5394 TRACE("(%p %p %d %d)\n", this, strbuf, isstd, virt_init);
5397 this->vbtable = basic_ostream_char_vbtable;
5398 base = basic_ostream_char_get_basic_ios(this);
5399 basic_ios_char_ctor(base);
5401 base = basic_ostream_char_get_basic_ios(this);
5404 base->base.vtable = &MSVCP_basic_ostream_char_vtable;
5405 basic_ios_char_init(base, strbuf, isstd);
5409 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@_N@Z */
5410 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z */
5411 static basic_ostream_char* basic_ostream_char_ctor_uninitialized(basic_ostream_char *this,
5412 int uninitialized, MSVCP_bool addstd, MSVCP_bool virt_init)
5414 basic_ios_char *base;
5416 TRACE("(%p %d %x)\n", this, uninitialized, addstd);
5419 this->vbtable = basic_ostream_char_vbtable;
5420 base = basic_ostream_char_get_basic_ios(this);
5421 basic_ios_char_ctor(base);
5423 base = basic_ostream_char_get_basic_ios(this);
5426 base->base.vtable = &MSVCP_basic_ostream_char_vtable;
5428 ios_base_Addstd(&base->base);
5432 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
5433 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
5434 DEFINE_THISCALL_WRAPPER(basic_ostream_char_dtor, 4)
5435 void __thiscall basic_ostream_char_dtor(basic_ios_char *base)
5437 basic_ostream_char *this = basic_ostream_char_from_basic_ios(base);
5439 /* don't destroy virtual base here */
5440 TRACE("(%p)\n", this);
5443 /* ??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
5444 /* ??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
5445 DEFINE_THISCALL_WRAPPER(basic_ostream_char_vbase_dtor, 4)
5446 void __thiscall basic_ostream_char_vbase_dtor(basic_ostream_char *this)
5448 TRACE("(%p)\n", this);
5449 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(this));
5450 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(this));
5453 DEFINE_THISCALL_WRAPPER(basic_ostream_char_vector_dtor, 8)
5454 basic_ostream_char* __thiscall basic_ostream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
5456 basic_ostream_char *this = basic_ostream_char_from_basic_ios(base);
5458 TRACE("(%p %x)\n", this, flags);
5461 /* we have an array, with the number of elements stored before the first object */
5462 INT_PTR i, *ptr = (INT_PTR *)this-1;
5464 for(i=*ptr-1; i>=0; i--)
5465 basic_ostream_char_vbase_dtor(this+i);
5466 MSVCRT_operator_delete(ptr);
5468 basic_ostream_char_vbase_dtor(this);
5470 MSVCRT_operator_delete(this);
5476 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ */
5477 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ */
5478 DEFINE_THISCALL_WRAPPER(basic_ostream_char_flush, 4)
5479 basic_ostream_char* __thiscall basic_ostream_char_flush(basic_ostream_char *this)
5481 /* this function is not matching C++ specification */
5482 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5484 TRACE("(%p)\n", this);
5486 if(basic_ios_char_rdbuf_get(base) && ios_base_good(&base->base)
5487 && basic_streambuf_char_pubsync(basic_ios_char_rdbuf_get(base))==-1)
5488 basic_ios_char_setstate(base, IOSTATE_badbit);
5492 /* ?flush@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
5493 /* ?flush@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
5494 basic_ostream_char* __cdecl flush_ostream_char(basic_ostream_char *ostream)
5496 return basic_ostream_char_flush(ostream);
5499 /* ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
5500 /* ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
5501 DEFINE_THISCALL_WRAPPER(basic_ostream_char__Osfx, 4)
5502 void __thiscall basic_ostream_char__Osfx(basic_ostream_char *this)
5504 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5506 TRACE("(%p)\n", this);
5508 if(base->base.fmtfl & FMTFLAG_unitbuf)
5509 basic_ostream_char_flush(this);
5512 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
5513 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
5514 DEFINE_THISCALL_WRAPPER(basic_ostream_char_osfx, 4)
5515 void __thiscall basic_ostream_char_osfx(basic_ostream_char *this)
5517 TRACE("(%p)\n", this);
5518 basic_ostream_char__Osfx(this);
5521 static BOOL basic_ostream_char_sentry_create(basic_ostream_char *ostr)
5523 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
5525 if(basic_ios_char_rdbuf_get(base))
5526 basic_streambuf_char__Lock(base->strbuf);
5528 if(ios_base_good(&base->base) && base->stream)
5529 basic_ostream_char_flush(base->stream);
5531 return ios_base_good(&base->base);
5534 static void basic_ostream_char_sentry_destroy(basic_ostream_char *ostr)
5536 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
5538 if(ios_base_good(&base->base) && !__uncaught_exception())
5539 basic_ostream_char_osfx(ostr);
5541 if(basic_ios_char_rdbuf_get(base))
5542 basic_streambuf_char__Unlock(base->strbuf);
5545 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE_NXZ */
5546 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA_NXZ */
5547 DEFINE_THISCALL_WRAPPER(basic_ostream_char_opfx, 4)
5548 MSVCP_bool __thiscall basic_ostream_char_opfx(basic_ostream_char *this)
5550 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5552 TRACE("(%p)\n", this);
5554 if(ios_base_good(&base->base) && base->stream)
5555 basic_ostream_char_flush(base->stream);
5556 return ios_base_good(&base->base);
5559 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z */
5560 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z */
5561 DEFINE_THISCALL_WRAPPER(basic_ostream_char_put, 8)
5562 basic_ostream_char* __thiscall basic_ostream_char_put(basic_ostream_char *this, char ch)
5564 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5566 TRACE("(%p %c)\n", this, ch);
5568 if(!basic_ostream_char_sentry_create(this)
5569 || basic_streambuf_char_sputc(base->strbuf, ch)==EOF) {
5570 basic_ostream_char_sentry_destroy(this);
5571 basic_ios_char_setstate(base, IOSTATE_badbit);
5575 basic_ostream_char_sentry_destroy(this);
5579 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@JH@Z */
5580 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
5581 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp, 12)
5582 basic_ostream_char* __thiscall basic_ostream_char_seekp(basic_ostream_char *this, streamoff off, int way)
5584 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5586 TRACE("(%p %ld %d)\n", this, off, way);
5588 if(!ios_base_fail(&base->base)) {
5591 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base),
5592 &seek, off, way, OPENMODE_out);
5593 if(seek.off==0 && seek.pos==-1 && seek.state==0)
5594 basic_ios_char_setstate(base, IOSTATE_failbit);
5599 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
5600 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
5601 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp_fpos, 28)
5602 basic_ostream_char* __thiscall basic_ostream_char_seekp_fpos(basic_ostream_char *this, fpos_int pos)
5604 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5606 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos));
5608 if(!ios_base_fail(&base->base)) {
5611 basic_streambuf_char_pubseekpos(basic_ios_char_rdbuf_get(base),
5612 &seek, pos, OPENMODE_out);
5613 if(seek.off==0 && seek.pos==-1 && seek.state==0)
5614 basic_ios_char_setstate(base, IOSTATE_failbit);
5619 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
5620 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
5621 DEFINE_THISCALL_WRAPPER(basic_ostream_char_tellp, 8)
5622 fpos_int* __thiscall basic_ostream_char_tellp(basic_ostream_char *this, fpos_int *ret)
5624 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5626 TRACE("(%p)\n", this);
5628 if(!ios_base_fail(&base->base)) {
5629 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base),
5630 ret, 0, SEEKDIR_cur, OPENMODE_out);
5639 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@PBDH@Z */
5640 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z */
5641 DEFINE_THISCALL_WRAPPER(basic_ostream_char_write, 12)
5642 basic_ostream_char* __thiscall basic_ostream_char_write(basic_ostream_char *this, const char *str, streamsize count)
5644 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5646 TRACE("(%p %s %ld)\n", this, debugstr_a(str), count);
5648 if(!basic_ostream_char_sentry_create(this)
5649 || basic_streambuf_char_sputn(base->strbuf, str, count)!=count) {
5650 basic_ostream_char_sentry_destroy(this);
5651 basic_ios_char_setstate(base, IOSTATE_badbit);
5655 basic_ostream_char_sentry_destroy(this);
5659 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@F@Z */
5660 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@F@Z */
5661 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_short, 8)
5662 basic_ostream_char* __thiscall basic_ostream_char_print_short(basic_ostream_char *this, short val)
5664 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5665 int state = IOSTATE_goodbit;
5667 TRACE("(%p %d)\n", this, val);
5669 if(basic_ostream_char_sentry_create(this)) {
5670 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5671 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5672 ostreambuf_iterator_char dest = {0, strbuf};
5674 num_put_char_put_long(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base),
5675 (ios_base_flags_get(&base->base) & FMTFLAG_basefield & (FMTFLAG_oct | FMTFLAG_hex))
5676 ? (LONG)((unsigned short)val) : (LONG)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@G@Z */
5685 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@G@Z */
5686 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ushort, 8)
5687 basic_ostream_char* __thiscall basic_ostream_char_print_ushort(basic_ostream_char *this, unsigned short val)
5689 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5690 int state = IOSTATE_goodbit;
5692 TRACE("(%p %u)\n", this, val);
5694 if(basic_ostream_char_sentry_create(this)) {
5695 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5696 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5697 ostreambuf_iterator_char dest = {0, strbuf};
5699 num_put_char_put_ulong(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5701 basic_ostream_char_sentry_destroy(this);
5703 basic_ios_char_setstate(base, state);
5707 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@H@Z */
5708 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z */
5709 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@J@Z */
5710 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@J@Z */
5711 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int, 8)
5712 basic_ostream_char* __thiscall basic_ostream_char_print_int(basic_ostream_char *this, int val)
5714 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5715 int state = IOSTATE_goodbit;
5717 TRACE("(%p %d)\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_long(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@I@Z */
5733 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@I@Z */
5734 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@K@Z */
5735 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@K@Z */
5736 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint, 8)
5737 basic_ostream_char* __thiscall basic_ostream_char_print_uint(basic_ostream_char *this, unsigned int val)
5739 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5740 int state = IOSTATE_goodbit;
5742 TRACE("(%p %u)\n", this, val);
5744 if(basic_ostream_char_sentry_create(this)) {
5745 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5746 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5747 ostreambuf_iterator_char dest = {0, strbuf};
5749 num_put_char_put_ulong(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5751 basic_ostream_char_sentry_destroy(this);
5753 basic_ios_char_setstate(base, state);
5757 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@M@Z */
5758 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z */
5759 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_float, 8)
5760 basic_ostream_char* __thiscall basic_ostream_char_print_float(basic_ostream_char *this, float val)
5762 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5763 int state = IOSTATE_goodbit;
5765 TRACE("(%p %f)\n", this, val);
5767 if(basic_ostream_char_sentry_create(this)) {
5768 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5769 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5770 ostreambuf_iterator_char dest = {0, strbuf};
5772 num_put_char_put_double(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5774 basic_ostream_char_sentry_destroy(this);
5776 basic_ios_char_setstate(base, state);
5780 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@N@Z */
5781 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z */
5782 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_double, 12)
5783 basic_ostream_char* __thiscall basic_ostream_char_print_double(basic_ostream_char *this, double val)
5785 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5786 int state = IOSTATE_goodbit;
5788 TRACE("(%p %lf)\n", this, val);
5790 if(basic_ostream_char_sentry_create(this)) {
5791 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5792 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5793 ostreambuf_iterator_char dest = {0, strbuf};
5795 num_put_char_put_double(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5797 basic_ostream_char_sentry_destroy(this);
5799 basic_ios_char_setstate(base, state);
5803 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@O@Z */
5804 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@O@Z */
5805 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ldouble, 12)
5806 basic_ostream_char* __thiscall basic_ostream_char_print_ldouble(basic_ostream_char *this, double val)
5808 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5809 int state = IOSTATE_goodbit;
5811 TRACE("(%p %lf)\n", this, val);
5813 if(basic_ostream_char_sentry_create(this)) {
5814 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5815 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5816 ostreambuf_iterator_char dest = {0, strbuf};
5818 num_put_char_put_ldouble(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5820 basic_ostream_char_sentry_destroy(this);
5822 basic_ios_char_setstate(base, state);
5826 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
5827 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
5828 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_streambuf, 8)
5829 basic_ostream_char* __thiscall basic_ostream_char_print_streambuf(basic_ostream_char *this, basic_streambuf_char *val)
5831 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5832 IOSB_iostate state = IOSTATE_badbit;
5835 TRACE("(%p %p)\n", this, val);
5837 if(basic_ostream_char_sentry_create(this)) {
5838 for(c = basic_streambuf_char_sgetc(val); c!=EOF;
5839 c = basic_streambuf_char_snextc(val)) {
5840 state = IOSTATE_goodbit;
5842 if(basic_streambuf_char_sputc(base->strbuf, c) == EOF) {
5843 state = IOSTATE_badbit;
5848 state = IOSTATE_badbit;
5850 basic_ostream_char_sentry_destroy(this);
5852 ios_base_width_set(&base->base, 0);
5853 basic_ios_char_setstate(base, state);
5857 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PBX@Z */
5858 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEBX@Z */
5859 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ptr, 8)
5860 basic_ostream_char* __thiscall basic_ostream_char_print_ptr(basic_ostream_char *this, const void *val)
5862 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5863 int state = IOSTATE_goodbit;
5865 TRACE("(%p %p)\n", this, val);
5867 if(basic_ostream_char_sentry_create(this)) {
5868 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5869 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5870 ostreambuf_iterator_char dest = {0, strbuf};
5872 num_put_char_put_ptr(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5874 basic_ostream_char_sentry_destroy(this);
5876 basic_ios_char_setstate(base, state);
5880 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_J@Z */
5881 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_J@Z */
5882 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int64, 12)
5883 basic_ostream_char* __thiscall basic_ostream_char_print_int64(basic_ostream_char *this, __int64 val)
5885 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5886 int state = IOSTATE_goodbit;
5888 TRACE("(%p)\n", this);
5890 if(basic_ostream_char_sentry_create(this)) {
5891 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5892 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5893 ostreambuf_iterator_char dest = {0, strbuf};
5895 num_put_char_put_int64(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5897 basic_ostream_char_sentry_destroy(this);
5899 basic_ios_char_setstate(base, state);
5903 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_K@Z */
5904 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z */
5905 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint64, 12)
5906 basic_ostream_char* __thiscall basic_ostream_char_print_uint64(basic_ostream_char *this, unsigned __int64 val)
5908 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5909 int state = IOSTATE_goodbit;
5911 TRACE("(%p)\n", this);
5913 if(basic_ostream_char_sentry_create(this)) {
5914 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5915 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5916 ostreambuf_iterator_char dest = {0, strbuf};
5918 num_put_char_put_uint64(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5920 basic_ostream_char_sentry_destroy(this);
5922 basic_ios_char_setstate(base, state);
5926 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_N@Z */
5927 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_N@Z */
5928 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_bool, 8)
5929 basic_ostream_char* __thiscall basic_ostream_char_print_bool(basic_ostream_char *this, MSVCP_bool val)
5931 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5932 int state = IOSTATE_goodbit;
5934 TRACE("(%p %x)\n", this, val);
5936 if(basic_ostream_char_sentry_create(this)) {
5937 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5938 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5939 ostreambuf_iterator_char dest = {0, strbuf};
5941 num_put_char_put_bool(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5943 basic_ostream_char_sentry_destroy(this);
5945 basic_ios_char_setstate(base, state);
5949 /* ?endl@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
5950 /* ?endl@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
5951 basic_ostream_char* __cdecl basic_ostream_char_endl(basic_ostream_char *ostr)
5953 TRACE("(%p)\n", ostr);
5955 basic_ostream_char_put(ostr, '\n');
5956 basic_ostream_char_flush(ostr);
5960 /* $?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 */
5961 /* ??$?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 */
5962 basic_ostream_char* __cdecl basic_ostream_char_print_bstr(basic_ostream_char *ostr, const basic_string_char *str)
5964 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
5965 IOSB_iostate state = IOSTATE_goodbit;
5967 TRACE("(%p %p)\n", ostr, str);
5969 if(basic_ostream_char_sentry_create(ostr)) {
5970 MSVCP_size_t len = MSVCP_basic_string_char_length(str);
5971 streamsize pad = (base->base.wide>len ? base->base.wide-len : 0);
5973 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
5974 for(; pad!=0; pad--) {
5975 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
5976 state = IOSTATE_badbit;
5982 if(state == IOSTATE_goodbit) {
5983 if(basic_streambuf_char_sputn(base->strbuf, MSVCP_basic_string_char_c_str(str), len) != len)
5984 state = IOSTATE_badbit;
5987 if(state == IOSTATE_goodbit) {
5988 for(; pad!=0; pad--) {
5989 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
5990 state = IOSTATE_badbit;
5996 base->base.wide = 0;
5998 state = IOSTATE_badbit;
6000 basic_ostream_char_sentry_destroy(ostr);
6002 basic_ios_char_setstate(base, state);
6006 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@C@Z */
6007 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@C@Z */
6008 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@D@Z */
6009 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z */
6010 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@E@Z */
6011 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@E@Z */
6012 basic_ostream_char* __cdecl basic_ostream_char_print_ch(basic_ostream_char *ostr, char ch)
6014 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
6015 IOSB_iostate state = IOSTATE_goodbit;
6017 TRACE("(%p %d)\n", ostr, ch);
6019 if(basic_ostream_char_sentry_create(ostr)) {
6020 streamsize pad = (base->base.wide>1 ? base->base.wide-1 : 0);
6022 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
6023 for(; pad!=0; pad--) {
6024 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
6025 state = IOSTATE_badbit;
6031 if(state == IOSTATE_goodbit) {
6032 if(basic_streambuf_char_sputc(base->strbuf, ch) == EOF)
6033 state = IOSTATE_badbit;
6036 if(state == IOSTATE_goodbit) {
6037 for(; pad!=0; pad--) {
6038 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
6039 state = IOSTATE_badbit;
6045 base->base.wide = 0;
6047 state = IOSTATE_badbit;
6049 basic_ostream_char_sentry_destroy(ostr);
6051 basic_ios_char_setstate(base, state);
6055 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBC@Z */
6056 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBC@Z */
6057 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z */
6058 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBD@Z */
6059 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBE@Z */
6060 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBE@Z */
6061 basic_ostream_char* __cdecl basic_ostream_char_print_str(basic_ostream_char *ostr, const char *str)
6063 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
6064 IOSB_iostate state = IOSTATE_goodbit;
6066 TRACE("(%p %s)\n", ostr, str);
6068 if(basic_ostream_char_sentry_create(ostr)) {
6069 MSVCP_size_t len = strlen(str);
6070 streamsize pad = (base->base.wide>len ? base->base.wide-len : 0);
6072 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
6073 for(; pad!=0; pad--) {
6074 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
6075 state = IOSTATE_badbit;
6081 if(state == IOSTATE_goodbit) {
6082 if(basic_streambuf_char_sputn(base->strbuf, str, len) != len)
6083 state = IOSTATE_badbit;
6086 if(state == IOSTATE_goodbit) {
6087 for(; pad!=0; pad--) {
6088 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
6089 state = IOSTATE_badbit;
6095 base->base.wide = 0;
6097 state = IOSTATE_badbit;
6099 basic_ostream_char_sentry_destroy(ostr);
6101 basic_ios_char_setstate(base, state);
6105 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
6106 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
6107 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func, 8)
6108 basic_ostream_char* __thiscall basic_ostream_char_print_func(basic_ostream_char *this,
6109 basic_ostream_char* (__cdecl *pfunc)(basic_ostream_char*))
6111 TRACE("(%p %p)\n", this, pfunc);
6116 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@DU?$char_traits@D@std@@@1@AAV21@@Z@Z */
6117 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z */
6118 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func_basic_ios, 8)
6119 basic_ostream_char* __thiscall basic_ostream_char_print_func_basic_ios(basic_ostream_char *this,
6120 basic_ios_char* (__cdecl *pfunc)(basic_ios_char*))
6122 TRACE("(%p %p)\n", this, pfunc);
6123 pfunc(basic_ostream_char_get_basic_ios(this));
6127 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
6128 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
6129 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func_ios_base, 8)
6130 basic_ostream_char* __thiscall basic_ostream_char_print_func_ios_base(
6131 basic_ostream_char *this, ios_base* (__cdecl *pfunc)(ios_base*))
6133 TRACE("(%p %p)\n", this, pfunc);
6134 pfunc(&basic_ostream_char_get_basic_ios(this)->base);
6138 /* Caution: basic_ostream uses virtual inheritance. */
6139 static inline basic_ios_wchar* basic_ostream_wchar_get_basic_ios(basic_ostream_wchar *this)
6141 return (basic_ios_wchar*)((char*)this+this->vbtable[1]);
6144 static inline basic_ios_wchar* basic_ostream_wchar_to_basic_ios(basic_ostream_wchar *ptr)
6146 return (basic_ios_wchar*)((char*)ptr+basic_ostream_wchar_vbtable[1]);
6149 static inline basic_ostream_wchar* basic_ostream_wchar_from_basic_ios(basic_ios_wchar *ptr)
6151 return (basic_ostream_wchar*)((char*)ptr-basic_ostream_wchar_vbtable[1]);
6154 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
6155 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
6156 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_ctor, 16)
6157 basic_ostream_wchar* __thiscall basic_ostream_wchar_ctor(basic_ostream_wchar *this,
6158 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
6160 basic_ios_wchar *base;
6162 TRACE("(%p %p %d %d)\n", this, strbuf, isstd, virt_init);
6165 this->vbtable = basic_ostream_wchar_vbtable;
6166 base = basic_ostream_wchar_get_basic_ios(this);
6167 basic_ios_wchar_ctor(base);
6169 base = basic_ostream_wchar_get_basic_ios(this);
6172 base->base.vtable = &MSVCP_basic_ostream_wchar_vtable;
6173 basic_ios_wchar_init(base, strbuf, isstd);
6177 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
6178 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
6179 DEFINE_THISCALL_WRAPPER(basic_ostream_short_ctor, 16)
6180 basic_ostream_wchar* __thiscall basic_ostream_short_ctor(basic_ostream_wchar *this,
6181 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
6183 basic_ostream_wchar_ctor(this, strbuf, isstd, virt_init);
6184 basic_ostream_wchar_get_basic_ios(this)->base.vtable = &MSVCP_basic_ostream_short_vtable;
6188 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@_N@Z */
6189 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z */
6190 static basic_ostream_wchar* basic_ostream_wchar_ctor_uninitialized(basic_ostream_wchar *this,
6191 int uninitialized, MSVCP_bool addstd, MSVCP_bool virt_init)
6193 basic_ios_wchar *base;
6195 TRACE("(%p %d %x)\n", this, uninitialized, addstd);
6198 this->vbtable = basic_ostream_wchar_vbtable;
6199 base = basic_ostream_wchar_get_basic_ios(this);
6200 basic_ios_wchar_ctor(base);
6202 base = basic_ostream_wchar_get_basic_ios(this);
6205 base->base.vtable = &MSVCP_basic_ostream_wchar_vtable;
6207 ios_base_Addstd(&base->base);
6211 /* ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
6212 /* ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
6213 /* ??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UAE@XZ */
6214 /* ??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
6215 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_dtor, 4)
6216 void __thiscall basic_ostream_wchar_dtor(basic_ios_wchar *base)
6218 basic_ostream_wchar *this = basic_ostream_wchar_from_basic_ios(base);
6220 /* don't destroy virtual base here */
6221 TRACE("(%p)\n", this);
6224 /* ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
6225 /* ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
6226 /* ??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
6227 /* ??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
6228 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_vbase_dtor, 4)
6229 void __thiscall basic_ostream_wchar_vbase_dtor(basic_ostream_wchar *this)
6231 TRACE("(%p)\n", this);
6232 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(this));
6233 basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(this));
6236 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_vector_dtor, 8)
6237 basic_ostream_wchar* __thiscall basic_ostream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
6239 basic_ostream_wchar *this = basic_ostream_wchar_from_basic_ios(base);
6241 TRACE("(%p %x)\n", this, flags);
6244 /* we have an array, with the number of elements stored before the first object */
6245 INT_PTR i, *ptr = (INT_PTR *)this-1;
6247 for(i=*ptr-1; i>=0; i--)
6248 basic_ostream_wchar_vbase_dtor(this+i);
6249 MSVCRT_operator_delete(ptr);
6251 basic_ostream_wchar_vbase_dtor(this);
6253 MSVCRT_operator_delete(this);
6259 /* ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ */
6260 /* ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ */
6261 /* ?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@XZ */
6262 /* ?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ */
6263 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_flush, 4)
6264 basic_ostream_wchar* __thiscall basic_ostream_wchar_flush(basic_ostream_wchar *this)
6266 /* this function is not matching C++ specification */
6267 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6269 TRACE("(%p)\n", this);
6271 if(basic_ios_wchar_rdbuf_get(base) && ios_base_good(&base->base)
6272 && basic_streambuf_wchar_pubsync(basic_ios_wchar_rdbuf_get(base))==-1)
6273 basic_ios_wchar_setstate(base, IOSTATE_badbit);
6277 /* ?flush@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
6278 /* ?flush@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
6279 /* ?flush@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
6280 /* ?flush@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
6281 basic_ostream_wchar* __cdecl flush_ostream_wchar(basic_ostream_wchar *ostream)
6283 return basic_ostream_wchar_flush(ostream);
6286 /* ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
6287 /* ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
6288 /* ?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
6289 /* ?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
6290 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar__Osfx, 4)
6291 void __thiscall basic_ostream_wchar__Osfx(basic_ostream_wchar *this)
6293 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6295 TRACE("(%p)\n", this);
6297 if(base->base.fmtfl & FMTFLAG_unitbuf)
6298 basic_ostream_wchar_flush(this);
6301 /* ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
6302 /* ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
6303 /* ?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
6304 /* ?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
6305 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_osfx, 4)
6306 void __thiscall basic_ostream_wchar_osfx(basic_ostream_wchar *this)
6308 TRACE("(%p)\n", this);
6309 basic_ostream_wchar__Osfx(this);
6312 static BOOL basic_ostream_wchar_sentry_create(basic_ostream_wchar *ostr)
6314 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
6316 if(basic_ios_wchar_rdbuf_get(base))
6317 basic_streambuf_wchar__Lock(base->strbuf);
6319 if(ios_base_good(&base->base) && base->stream)
6320 basic_ostream_wchar_flush(base->stream);
6322 return ios_base_good(&base->base);
6325 static void basic_ostream_wchar_sentry_destroy(basic_ostream_wchar *ostr)
6327 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
6329 if(ios_base_good(&base->base) && !__uncaught_exception())
6330 basic_ostream_wchar_osfx(ostr);
6332 if(basic_ios_wchar_rdbuf_get(base))
6333 basic_streambuf_wchar__Unlock(base->strbuf);
6336 /* ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE_NXZ */
6337 /* ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA_NXZ */
6338 /* ?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE_NXZ */
6339 /* ?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA_NXZ */
6340 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_opfx, 4)
6341 MSVCP_bool __thiscall basic_ostream_wchar_opfx(basic_ostream_wchar *this)
6343 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6345 TRACE("(%p)\n", this);
6347 if(ios_base_good(&base->base) && base->stream)
6348 basic_ostream_wchar_flush(base->stream);
6349 return ios_base_good(&base->base);
6352 /* ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@_W@Z */
6353 /* ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z */
6354 /* ?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@G@Z */
6355 /* ?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z */
6356 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_put, 8)
6357 basic_ostream_wchar* __thiscall basic_ostream_wchar_put(basic_ostream_wchar *this, wchar_t ch)
6359 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6361 TRACE("(%p %c)\n", this, ch);
6363 if(!basic_ostream_wchar_sentry_create(this)
6364 || basic_streambuf_wchar_sputc(base->strbuf, ch)==WEOF) {
6365 basic_ostream_wchar_sentry_destroy(this);
6366 basic_ios_wchar_setstate(base, IOSTATE_badbit);
6370 basic_ostream_wchar_sentry_destroy(this);
6374 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@JH@Z */
6375 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z */
6376 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@JH@Z */
6377 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z */
6378 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_seekp, 12)
6379 basic_ostream_wchar* __thiscall basic_ostream_wchar_seekp(basic_ostream_wchar *this, streamoff off, int way)
6381 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6383 TRACE("(%p %ld %d)\n", this, off, way);
6385 if(!ios_base_fail(&base->base)) {
6388 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base),
6389 &seek, off, way, OPENMODE_out);
6390 if(seek.off==0 && seek.pos==-1 && seek.state==0)
6391 basic_ios_wchar_setstate(base, IOSTATE_failbit);
6396 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
6397 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
6398 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
6399 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
6400 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_seekp_fpos, 28)
6401 basic_ostream_wchar* __thiscall basic_ostream_wchar_seekp_fpos(basic_ostream_wchar *this, fpos_int pos)
6403 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6405 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos));
6407 if(!ios_base_fail(&base->base)) {
6410 basic_streambuf_wchar_pubseekpos(basic_ios_wchar_rdbuf_get(base),
6411 &seek, pos, OPENMODE_out);
6412 if(seek.off==0 && seek.pos==-1 && seek.state==0)
6413 basic_ios_wchar_setstate(base, IOSTATE_failbit);
6418 /* ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@XZ */
6419 /* ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
6420 /* ?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@XZ */
6421 /* ?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
6422 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_tellp, 8)
6423 fpos_int* __thiscall basic_ostream_wchar_tellp(basic_ostream_wchar *this, fpos_int *ret)
6425 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6427 TRACE("(%p)\n", this);
6429 if(!ios_base_fail(&base->base)) {
6430 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base),
6431 ret, 0, SEEKDIR_cur, OPENMODE_out);
6440 /* ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PB_WH@Z */
6441 /* ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEB_W_J@Z */
6442 /* ?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@PBGH@Z */
6443 /* ?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEBG_J@Z */
6444 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_write, 12)
6445 basic_ostream_wchar* __thiscall basic_ostream_wchar_write(basic_ostream_wchar *this, const wchar_t *str, streamsize count)
6447 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6449 TRACE("(%p %s %ld)\n", this, debugstr_w(str), count);
6451 if(!basic_ostream_wchar_sentry_create(this)
6452 || basic_streambuf_wchar_sputn(base->strbuf, str, count)!=count) {
6453 basic_ostream_wchar_sentry_destroy(this);
6454 basic_ios_wchar_setstate(base, IOSTATE_badbit);
6458 basic_ostream_wchar_sentry_destroy(this);
6462 static basic_ostream_wchar* basic_ostream_print_short(basic_ostream_wchar *this, short val, const num_put *numput)
6464 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6465 int state = IOSTATE_goodbit;
6467 TRACE("(%p %d)\n", this, val);
6469 if(basic_ostream_wchar_sentry_create(this)) {
6470 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6471 ostreambuf_iterator_wchar dest = {0, strbuf};
6473 num_put_wchar_put_long(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base),
6474 (ios_base_flags_get(&base->base) & FMTFLAG_basefield & (FMTFLAG_oct | FMTFLAG_hex))
6475 ? (LONG)((unsigned short)val) : (LONG)val);
6477 basic_ostream_wchar_sentry_destroy(this);
6479 basic_ios_wchar_setstate(base, state);
6483 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@F@Z */
6484 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@F@Z */
6485 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_short, 8)
6486 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_short(basic_ostream_wchar *this, short val)
6488 return basic_ostream_print_short(this, val, num_put_wchar_use_facet(
6489 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6492 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@F@Z */
6493 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@F@Z */
6494 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_short, 8)
6495 basic_ostream_wchar* __thiscall basic_ostream_short_print_short(basic_ostream_wchar *this, short val)
6497 return basic_ostream_print_short(this, val, num_put_short_use_facet(
6498 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6501 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@G@Z */
6502 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@G@Z */
6503 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ushort, 8)
6504 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_ushort(basic_ostream_wchar *this, unsigned short val)
6506 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6507 int state = IOSTATE_goodbit;
6509 TRACE("(%p %u)\n", this, val);
6511 if(basic_ostream_wchar_sentry_create(this)) {
6512 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6513 const num_put *numput = num_put_wchar_use_facet(strbuf->loc);
6514 ostreambuf_iterator_wchar dest = {0, strbuf};
6516 num_put_wchar_put_ulong(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6518 basic_ostream_wchar_sentry_destroy(this);
6520 basic_ios_wchar_setstate(base, state);
6524 static basic_ostream_wchar* basic_ostream_print_int(basic_ostream_wchar *this, int val, const num_put *numput)
6526 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6527 int state = IOSTATE_goodbit;
6529 TRACE("(%p %d)\n", this, val);
6531 if(basic_ostream_wchar_sentry_create(this)) {
6532 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6533 ostreambuf_iterator_wchar dest = {0, strbuf};
6535 num_put_wchar_put_long(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6537 basic_ostream_wchar_sentry_destroy(this);
6539 basic_ios_wchar_setstate(base, state);
6543 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@H@Z */
6544 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@H@Z */
6545 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@J@Z */
6546 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@J@Z */
6547 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_int, 8)
6548 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_int(basic_ostream_wchar *this, int val)
6550 return basic_ostream_print_int(this, val, num_put_wchar_use_facet(
6551 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6554 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@H@Z */
6555 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@H@Z */
6556 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@J@Z */
6557 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@J@Z */
6558 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_int, 8)
6559 basic_ostream_wchar* __thiscall basic_ostream_short_print_int(basic_ostream_wchar *this, int val)
6561 return basic_ostream_print_int(this, val, num_put_short_use_facet(
6562 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6565 static basic_ostream_wchar* basic_ostream_print_uint(basic_ostream_wchar *this, unsigned int val, const num_put *numput)
6567 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6568 int state = IOSTATE_goodbit;
6570 TRACE("(%p %u)\n", this, val);
6572 if(basic_ostream_wchar_sentry_create(this)) {
6573 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6574 ostreambuf_iterator_wchar dest = {0, strbuf};
6576 num_put_wchar_put_ulong(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6578 basic_ostream_wchar_sentry_destroy(this);
6580 basic_ios_wchar_setstate(base, state);
6584 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@I@Z */
6585 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@I@Z */
6586 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@K@Z */
6587 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@K@Z */
6588 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_uint, 8)
6589 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_uint(basic_ostream_wchar *this, unsigned int val)
6591 return basic_ostream_print_uint(this, val, num_put_wchar_use_facet(
6592 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6595 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@I@Z */
6596 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@I@Z */
6597 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@K@Z */
6598 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@K@Z */
6599 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_uint, 8)
6600 basic_ostream_wchar* __thiscall basic_ostream_short_print_uint(basic_ostream_wchar *this, unsigned int val)
6602 return basic_ostream_print_uint(this, val, num_put_short_use_facet(
6603 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6606 static basic_ostream_wchar* basic_ostream_print_float(basic_ostream_wchar *this, float val, const num_put *numput)
6608 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6609 int state = IOSTATE_goodbit;
6611 TRACE("(%p %f)\n", this, val);
6613 if(basic_ostream_wchar_sentry_create(this)) {
6614 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6615 ostreambuf_iterator_wchar dest = {0, strbuf};
6617 num_put_wchar_put_double(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6619 basic_ostream_wchar_sentry_destroy(this);
6621 basic_ios_wchar_setstate(base, state);
6625 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@M@Z */
6626 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@M@Z */
6627 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_float, 8)
6628 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_float(basic_ostream_wchar *this, float val)
6630 return basic_ostream_print_float(this, val, num_put_wchar_use_facet(
6631 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6634 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@M@Z */
6635 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@M@Z */
6636 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_float, 8)
6637 basic_ostream_wchar* __thiscall basic_ostream_short_print_float(basic_ostream_wchar *this, float val)
6639 return basic_ostream_print_float(this, val, num_put_short_use_facet(
6640 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6643 static basic_ostream_wchar* basic_ostream_print_double(basic_ostream_wchar *this, double val, const num_put *numput)
6645 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6646 int state = IOSTATE_goodbit;
6648 TRACE("(%p %lf)\n", this, val);
6650 if(basic_ostream_wchar_sentry_create(this)) {
6651 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6652 ostreambuf_iterator_wchar dest = {0, strbuf};
6654 num_put_wchar_put_double(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6656 basic_ostream_wchar_sentry_destroy(this);
6658 basic_ios_wchar_setstate(base, state);
6662 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@N@Z */
6663 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@N@Z */
6664 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_double, 12)
6665 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_double(basic_ostream_wchar *this, double val)
6667 return basic_ostream_print_double(this, val, num_put_wchar_use_facet(
6668 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6671 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@N@Z */
6672 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@N@Z */
6673 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_double, 12)
6674 basic_ostream_wchar* __thiscall basic_ostream_short_print_double(basic_ostream_wchar *this, double val)
6676 return basic_ostream_print_double(this, val, num_put_short_use_facet(
6677 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6680 static basic_ostream_wchar* basic_ostream_print_ldouble(basic_ostream_wchar *this, double val, const num_put *numput)
6682 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6683 int state = IOSTATE_goodbit;
6685 TRACE("(%p %lf)\n", this, val);
6687 if(basic_ostream_wchar_sentry_create(this)) {
6688 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6689 ostreambuf_iterator_wchar dest = {0, strbuf};
6691 num_put_wchar_put_ldouble(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6693 basic_ostream_wchar_sentry_destroy(this);
6695 basic_ios_wchar_setstate(base, state);
6699 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@O@Z */
6700 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@O@Z */
6701 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ldouble, 12)
6702 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_ldouble(basic_ostream_wchar *this, double val)
6704 return basic_ostream_print_ldouble(this, val, num_put_wchar_use_facet(
6705 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6708 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@O@Z */
6709 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@O@Z */
6710 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_ldouble, 12)
6711 basic_ostream_wchar* __thiscall basic_ostream_short_print_ldouble(basic_ostream_wchar *this, double val)
6713 return basic_ostream_print_ldouble(this, val, num_put_short_use_facet(
6714 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6717 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
6718 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
6719 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
6720 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
6721 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_streambuf, 8)
6722 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_streambuf(basic_ostream_wchar *this, basic_streambuf_wchar *val)
6724 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6725 IOSB_iostate state = IOSTATE_badbit;
6726 unsigned short c = '\n';
6728 TRACE("(%p %p)\n", this, val);
6730 if(basic_ostream_wchar_sentry_create(this)) {
6731 for(c = basic_streambuf_wchar_sgetc(val); c!=WEOF;
6732 c = basic_streambuf_wchar_snextc(val)) {
6733 state = IOSTATE_goodbit;
6735 if(basic_streambuf_wchar_sputc(base->strbuf, c) == WEOF) {
6736 state = IOSTATE_badbit;
6741 state = IOSTATE_badbit;
6743 basic_ostream_wchar_sentry_destroy(this);
6745 ios_base_width_set(&base->base, 0);
6746 basic_ios_wchar_setstate(base, state);
6750 static basic_ostream_wchar* basic_ostream_print_ptr(basic_ostream_wchar *this, const void *val, const num_put *numput)
6752 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6753 int state = IOSTATE_goodbit;
6755 TRACE("(%p %p)\n", this, val);
6757 if(basic_ostream_wchar_sentry_create(this)) {
6758 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6759 ostreambuf_iterator_wchar dest = {0, strbuf};
6761 num_put_wchar_put_ptr(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6763 basic_ostream_wchar_sentry_destroy(this);
6765 basic_ios_wchar_setstate(base, state);
6769 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PBX@Z */
6770 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEBX@Z */
6771 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ptr, 8)
6772 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_ptr(basic_ostream_wchar *this, const void *val)
6774 return basic_ostream_print_ptr(this, val, num_put_wchar_use_facet(
6775 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6778 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@PBX@Z */
6779 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEBX@Z */
6780 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_ptr, 8)
6781 basic_ostream_wchar* __thiscall basic_ostream_short_print_ptr(basic_ostream_wchar *this, const void *val)
6783 return basic_ostream_print_ptr(this, val, num_put_short_use_facet(
6784 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6787 static basic_ostream_wchar* basic_ostream_print_int64(basic_ostream_wchar *this, __int64 val, const num_put *numput)
6789 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6790 int state = IOSTATE_goodbit;
6792 TRACE("(%p)\n", this);
6794 if(basic_ostream_wchar_sentry_create(this)) {
6795 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6796 ostreambuf_iterator_wchar dest = {0, strbuf};
6798 num_put_wchar_put_int64(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6800 basic_ostream_wchar_sentry_destroy(this);
6802 basic_ios_wchar_setstate(base, state);
6806 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_J@Z */
6807 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_J@Z */
6808 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_int64, 12)
6809 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_int64(basic_ostream_wchar *this, __int64 val)
6811 return basic_ostream_print_int64(this, val, num_put_wchar_use_facet(
6812 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6815 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_J@Z */
6816 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_J@Z */
6817 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_int64, 12)
6818 basic_ostream_wchar* __thiscall basic_ostream_short_print_int64(basic_ostream_wchar *this, __int64 val)
6820 return basic_ostream_print_int64(this, val, num_put_short_use_facet(
6821 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6824 static basic_ostream_wchar* basic_ostream_print_uint64(basic_ostream_wchar *this, unsigned __int64 val, const num_put *numput)
6826 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6827 int state = IOSTATE_goodbit;
6829 TRACE("(%p)\n", this);
6831 if(basic_ostream_wchar_sentry_create(this)) {
6832 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6833 ostreambuf_iterator_wchar dest = {0, strbuf};
6835 num_put_wchar_put_uint64(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6837 basic_ostream_wchar_sentry_destroy(this);
6839 basic_ios_wchar_setstate(base, state);
6843 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_K@Z */
6844 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_K@Z */
6845 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_uint64, 12)
6846 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_uint64(basic_ostream_wchar *this, unsigned __int64 val)
6848 return basic_ostream_print_uint64(this, val, num_put_wchar_use_facet(
6849 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6852 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_K@Z */
6853 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_K@Z */
6854 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_uint64, 12)
6855 basic_ostream_wchar* __thiscall basic_ostream_short_print_uint64(basic_ostream_wchar *this, unsigned __int64 val)
6857 return basic_ostream_print_uint64(this, val, num_put_short_use_facet(
6858 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6861 static basic_ostream_wchar* basic_ostream_print_bool(basic_ostream_wchar *this, MSVCP_bool val, const num_put *numput)
6863 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6864 int state = IOSTATE_goodbit;
6866 TRACE("(%p %x)\n", this, val);
6868 if(basic_ostream_wchar_sentry_create(this)) {
6869 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6870 ostreambuf_iterator_wchar dest = {0, strbuf};
6872 num_put_wchar_put_bool(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6874 basic_ostream_wchar_sentry_destroy(this);
6876 basic_ios_wchar_setstate(base, state);
6880 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_N@Z */
6881 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_N@Z */
6882 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_bool, 8)
6883 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_bool(basic_ostream_wchar *this, MSVCP_bool val)
6885 return basic_ostream_print_bool(this, val, num_put_wchar_use_facet(
6886 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6889 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_N@Z */
6890 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_N@Z */
6891 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_bool, 8)
6892 basic_ostream_wchar* __thiscall basic_ostream_short_print_bool(basic_ostream_wchar *this, MSVCP_bool val)
6894 return basic_ostream_print_bool(this, val, num_put_short_use_facet(
6895 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6898 /* ?endl@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
6899 /* ?endl@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
6900 /* ?endl@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
6901 /* ?endl@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
6902 basic_ostream_wchar* __cdecl basic_ostream_wchar_endl(basic_ostream_wchar *ostr)
6904 TRACE("(%p)\n", ostr);
6906 basic_ostream_wchar_put(ostr, '\n');
6907 basic_ostream_wchar_flush(ostr);
6911 /* ??$?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 */
6912 /* ??$?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 */
6913 /* ??$?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 */
6914 /* ??$?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 */
6915 basic_ostream_wchar* __cdecl basic_ostream_wchar_print_bstr(basic_ostream_wchar *ostr, const basic_string_wchar *str)
6917 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
6918 IOSB_iostate state = IOSTATE_goodbit;
6920 TRACE("(%p %p)\n", ostr, str);
6922 if(basic_ostream_wchar_sentry_create(ostr)) {
6923 MSVCP_size_t len = MSVCP_basic_string_wchar_length(str);
6924 streamsize pad = (base->base.wide>len ? base->base.wide-len : 0);
6926 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
6927 for(; pad!=0; pad--) {
6928 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
6929 state = IOSTATE_badbit;
6935 if(state == IOSTATE_goodbit) {
6936 if(basic_streambuf_wchar_sputn(base->strbuf, MSVCP_basic_string_wchar_c_str(str), len) != len)
6937 state = IOSTATE_badbit;
6940 if(state == IOSTATE_goodbit) {
6941 for(; pad!=0; pad--) {
6942 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
6943 state = IOSTATE_badbit;
6949 base->base.wide = 0;
6951 state = IOSTATE_badbit;
6953 basic_ostream_wchar_sentry_destroy(ostr);
6955 basic_ios_wchar_setstate(base, state);
6959 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@_W@Z */
6960 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@_W@Z */
6961 /* ??$?6GU?$char_traits@G@std@@@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@G@Z */
6962 /* ??$?6GU?$char_traits@G@std@@@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@G@Z */
6963 basic_ostream_wchar* __cdecl basic_ostream_wchar_print_ch(basic_ostream_wchar *ostr, wchar_t ch)
6965 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
6966 IOSB_iostate state = IOSTATE_goodbit;
6968 TRACE("(%p %d)\n", ostr, ch);
6970 if(basic_ostream_wchar_sentry_create(ostr)) {
6971 streamsize pad = (base->base.wide>1 ? base->base.wide-1 : 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_sputc(base->strbuf, ch) == WEOF)
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_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@PB_W@Z */
7007 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@PEB_W@Z */
7008 /* ??$?6GU?$char_traits@G@std@@@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@PBG@Z */
7009 /* ??$?6GU?$char_traits@G@std@@@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@PEBG@Z */
7010 basic_ostream_wchar* __cdecl basic_ostream_wchar_print_str(basic_ostream_wchar *ostr, const wchar_t *str)
7012 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
7013 IOSB_iostate state = IOSTATE_goodbit;
7015 TRACE("(%p %s)\n", ostr, debugstr_w(str));
7017 if(basic_ostream_wchar_sentry_create(ostr)) {
7018 MSVCP_size_t len = wcslen(str);
7019 streamsize pad = (base->base.wide>len ? base->base.wide-len : 0);
7021 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
7022 for(; pad!=0; pad--) {
7023 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
7024 state = IOSTATE_badbit;
7030 if(state == IOSTATE_goodbit) {
7031 if(basic_streambuf_wchar_sputn(base->strbuf, str, len) != len)
7032 state = IOSTATE_badbit;
7035 if(state == IOSTATE_goodbit) {
7036 for(; pad!=0; pad--) {
7037 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
7038 state = IOSTATE_badbit;
7044 base->base.wide = 0;
7046 state = IOSTATE_badbit;
7048 basic_ostream_wchar_sentry_destroy(ostr);
7050 basic_ios_wchar_setstate(base, state);
7054 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
7055 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
7056 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
7057 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
7058 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func, 8)
7059 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_func(basic_ostream_wchar *this,
7060 basic_ostream_wchar* (__cdecl *pfunc)(basic_ostream_wchar*))
7062 TRACE("(%p %p)\n", this, pfunc);
7067 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AAV21@@Z@Z */
7068 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z */
7069 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@GU?$char_traits@G@std@@@1@AAV21@@Z@Z */
7070 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z */
7071 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func_basic_ios, 8)
7072 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_func_basic_ios(basic_ostream_wchar *this,
7073 basic_ios_wchar* (__cdecl *pfunc)(basic_ios_wchar*))
7075 TRACE("(%p %p)\n", this, pfunc);
7076 pfunc(basic_ostream_wchar_get_basic_ios(this));
7080 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
7081 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
7082 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
7083 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
7084 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func_ios_base, 8)
7085 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_func_ios_base(
7086 basic_ostream_wchar *this, ios_base* (__cdecl *pfunc)(ios_base*))
7088 TRACE("(%p %p)\n", this, pfunc);
7089 pfunc(&basic_ostream_wchar_get_basic_ios(this)->base);
7093 /* Caution: basic_istream uses virtual inheritance. */
7094 static inline basic_ios_char* basic_istream_char_get_basic_ios(basic_istream_char *this)
7096 return (basic_ios_char*)((char*)this+this->vbtable[1]);
7099 static inline basic_ios_char* basic_istream_char_to_basic_ios(basic_istream_char *ptr)
7101 return (basic_ios_char*)((char*)ptr+basic_istream_char_vbtable[1]);
7104 static inline basic_istream_char* basic_istream_char_from_basic_ios(basic_ios_char *ptr)
7106 return (basic_istream_char*)((char*)ptr-basic_istream_char_vbtable[1]);
7109 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
7110 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
7111 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor_init, 20)
7112 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)
7114 basic_ios_char *base;
7116 TRACE("(%p %p %d %d %d)\n", this, strbuf, isstd, noinit, virt_init);
7119 this->vbtable = basic_istream_char_vbtable;
7120 base = basic_istream_char_get_basic_ios(this);
7121 basic_ios_char_ctor(base);
7123 base = basic_istream_char_get_basic_ios(this);
7126 base->base.vtable = &MSVCP_basic_istream_char_vtable;
7129 basic_ios_char_init(base, strbuf, isstd);
7133 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
7134 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
7135 static basic_istream_char* basic_istream_char_ctor(basic_istream_char *this, basic_streambuf_char *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
7137 return basic_istream_char_ctor_init(this, strbuf, isstd, FALSE, virt_init);
7140 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
7141 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
7142 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor_uninitialized, 12)
7143 basic_istream_char* __thiscall basic_istream_char_ctor_uninitialized(basic_istream_char *this, int uninitialized, MSVCP_bool virt_init)
7145 basic_ios_char *base;
7147 TRACE("(%p %d %d)\n", this, uninitialized, virt_init);
7150 this->vbtable = basic_istream_char_vbtable;
7151 base = basic_istream_char_get_basic_ios(this);
7152 basic_ios_char_ctor(base);
7154 base = basic_istream_char_get_basic_ios(this);
7157 base->base.vtable = &MSVCP_basic_istream_char_vtable;
7158 ios_base_Addstd(&base->base);
7162 /* ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ */
7163 /* ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
7164 DEFINE_THISCALL_WRAPPER(basic_istream_char_dtor, 4)
7165 void __thiscall basic_istream_char_dtor(basic_ios_char *base)
7167 basic_istream_char *this = basic_istream_char_from_basic_ios(base);
7169 /* don't destroy virtual base here */
7170 TRACE("(%p)\n", this);
7173 /* ??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ */
7174 /* ??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
7175 DEFINE_THISCALL_WRAPPER(basic_istream_char_vbase_dtor, 4)
7176 void __thiscall basic_istream_char_vbase_dtor(basic_istream_char *this)
7178 TRACE("(%p)\n", this);
7179 basic_istream_char_dtor(basic_istream_char_to_basic_ios(this));
7180 basic_ios_char_dtor(basic_istream_char_get_basic_ios(this));
7183 DEFINE_THISCALL_WRAPPER(basic_istream_char_vector_dtor, 8)
7184 basic_istream_char* __thiscall basic_istream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
7186 basic_istream_char *this = basic_istream_char_from_basic_ios(base);
7188 TRACE("(%p %x)\n", this, flags);
7191 /* we have an array, with the number of elements stored before the first object */
7192 INT_PTR i, *ptr = (INT_PTR *)this-1;
7194 for(i=*ptr-1; i>=0; i--)
7195 basic_istream_char_vbase_dtor(this+i);
7196 MSVCRT_operator_delete(ptr);
7198 basic_istream_char_vbase_dtor(this);
7200 MSVCRT_operator_delete(this);
7206 /* ?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z */
7207 /* ?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z */
7208 DEFINE_THISCALL_WRAPPER(basic_istream_char__Ipfx, 8)
7209 MSVCP_bool __thiscall basic_istream_char__Ipfx(basic_istream_char *this, MSVCP_bool noskip)
7211 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7213 TRACE("(%p %d)\n", this, noskip);
7215 if(ios_base_good(&base->base)) {
7216 if(basic_ios_char_tie_get(base))
7217 basic_ostream_char_flush(basic_ios_char_tie_get(base));
7219 if(!noskip && (ios_base_flags_get(&base->base) & FMTFLAG_skipws)) {
7220 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7221 const ctype_char *ctype = ctype_char_use_facet(base->strbuf->loc);
7224 for(ch = basic_streambuf_char_sgetc(strbuf); ;
7225 ch = basic_streambuf_char_snextc(strbuf)) {
7227 basic_ios_char_setstate(base, IOSTATE_eofbit);
7231 if(!ctype_char_is_ch(ctype, _SPACE|_BLANK, ch))
7237 if(!ios_base_good(&base->base)) {
7238 basic_ios_char_setstate(base, IOSTATE_failbit);
7245 /* ?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z */
7246 /* ?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z */
7247 DEFINE_THISCALL_WRAPPER(basic_istream_char_ipfx, 8)
7248 MSVCP_bool __thiscall basic_istream_char_ipfx(basic_istream_char *this, MSVCP_bool noskip)
7250 return basic_istream_char__Ipfx(this, noskip);
7253 /* ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ */
7254 /* ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
7255 DEFINE_THISCALL_WRAPPER(basic_istream_char_isfx, 4)
7256 void __thiscall basic_istream_char_isfx(basic_istream_char *this)
7258 TRACE("(%p)\n", this);
7261 static BOOL basic_istream_char_sentry_create(basic_istream_char *istr, MSVCP_bool noskip)
7263 basic_ios_char *base = basic_istream_char_get_basic_ios(istr);
7265 if(basic_ios_char_rdbuf_get(base))
7266 basic_streambuf_char__Lock(base->strbuf);
7268 return basic_istream_char_ipfx(istr, noskip);
7271 static void basic_istream_char_sentry_destroy(basic_istream_char *istr)
7273 basic_ios_char *base = basic_istream_char_get_basic_ios(istr);
7275 if(basic_ios_char_rdbuf_get(base))
7276 basic_streambuf_char__Unlock(base->strbuf);
7279 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QBEHXZ */
7280 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QEBA_JXZ */
7281 DEFINE_THISCALL_WRAPPER(basic_istream_char_gcount, 4)
7282 int __thiscall basic_istream_char_gcount(const basic_istream_char *this)
7284 TRACE("(%p)\n", this);
7288 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
7289 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
7290 DEFINE_THISCALL_WRAPPER(basic_istream_char_get, 4)
7291 int __thiscall basic_istream_char_get(basic_istream_char *this)
7293 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7296 TRACE("(%p)\n", this);
7300 if(!basic_istream_char_sentry_create(this, TRUE)) {
7301 basic_istream_char_sentry_destroy(this);
7305 ret = basic_streambuf_char_sbumpc(basic_ios_char_rdbuf_get(base));
7306 basic_istream_char_sentry_destroy(this);
7308 basic_ios_char_setstate(base, IOSTATE_eofbit|IOSTATE_failbit);
7315 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAD@Z */
7316 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAD@Z */
7317 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_ch, 8)
7318 basic_istream_char* __thiscall basic_istream_char_get_ch(basic_istream_char *this, char *ch)
7322 TRACE("(%p %p)\n", this, ch);
7324 ret = basic_istream_char_get(this);
7330 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADHD@Z */
7331 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z */
7332 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_str_delim, 16)
7333 basic_istream_char* __thiscall basic_istream_char_get_str_delim(basic_istream_char *this, char *str, streamsize count, char delim)
7335 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7338 TRACE("(%p %p %ld %c)\n", this, str, count, delim);
7342 if(basic_istream_char_sentry_create(this, TRUE)) {
7343 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7345 for(ch = basic_streambuf_char_sgetc(strbuf); count>1;
7346 ch = basic_streambuf_char_snextc(strbuf)) {
7347 if(ch==EOF || ch==delim)
7355 basic_istream_char_sentry_destroy(this);
7357 basic_ios_char_setstate(base, (!this->count ? IOSTATE_failbit : IOSTATE_goodbit) |
7358 (ch==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
7364 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
7365 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
7366 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_str, 12)
7367 basic_istream_char* __thiscall basic_istream_char_get_str(basic_istream_char *this, char *str, streamsize count)
7369 return basic_istream_char_get_str_delim(this, str, count, '\n');
7372 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z */
7373 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z */
7374 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_streambuf_delim, 12)
7375 basic_istream_char* __thiscall basic_istream_char_get_streambuf_delim(basic_istream_char *this, basic_streambuf_char *strbuf, char delim)
7377 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7380 TRACE("(%p %p %c)\n", this, strbuf, delim);
7384 if(basic_istream_char_sentry_create(this, TRUE)) {
7385 basic_streambuf_char *strbuf_read = basic_ios_char_rdbuf_get(base);
7387 for(ch = basic_streambuf_char_sgetc(strbuf_read); ;
7388 ch = basic_streambuf_char_snextc(strbuf_read)) {
7389 if(ch==EOF || ch==delim)
7392 if(basic_streambuf_char_sputc(strbuf, ch) == EOF)
7397 basic_istream_char_sentry_destroy(this);
7399 basic_ios_char_setstate(base, (!this->count ? IOSTATE_failbit : IOSTATE_goodbit) |
7400 (ch==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
7404 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z */
7405 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z */
7406 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_streambuf, 8)
7407 basic_istream_char* __thiscall basic_istream_char_get_streambuf(basic_istream_char *this, basic_streambuf_char *strbuf)
7409 return basic_istream_char_get_streambuf_delim(this, strbuf, '\n');
7412 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADHD@Z */
7413 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z */
7414 DEFINE_THISCALL_WRAPPER(basic_istream_char_getline_delim, 16)
7415 basic_istream_char* __thiscall basic_istream_char_getline_delim(basic_istream_char *this, char *str, streamsize count, char delim)
7417 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7418 int ch = (unsigned char)delim;
7420 TRACE("(%p %p %ld %c)\n", this, str, count, delim);
7424 if(basic_istream_char_sentry_create(this, TRUE) && count>0) {
7425 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7428 ch = basic_streambuf_char_sbumpc(strbuf);
7430 if(ch==EOF || ch==(unsigned char)delim)
7438 if(ch == (unsigned char)delim)
7440 else if(ch != EOF) {
7441 ch = basic_streambuf_char_sgetc(strbuf);
7443 if(ch == (unsigned char)delim) {
7444 basic_streambuf_char__Gninc(strbuf);
7449 basic_istream_char_sentry_destroy(this);
7451 basic_ios_char_setstate(base, (ch==EOF ? IOSTATE_eofbit : IOSTATE_goodbit) |
7452 (!this->count || (ch!=(unsigned char)delim && ch!=EOF) ? IOSTATE_failbit : IOSTATE_goodbit));
7458 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
7459 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
7460 DEFINE_THISCALL_WRAPPER(basic_istream_char_getline, 12)
7461 basic_istream_char* __thiscall basic_istream_char_getline(basic_istream_char *this, char *str, streamsize count)
7463 return basic_istream_char_getline_delim(this, str, count, '\n');
7466 /* ?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@HH@Z */
7467 /* ?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
7468 DEFINE_THISCALL_WRAPPER(basic_istream_char_ignore, 12)
7469 basic_istream_char* __thiscall basic_istream_char_ignore(basic_istream_char *this, streamsize count, int delim)
7471 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7472 int ch = (unsigned char)delim;
7475 TRACE("(%p %ld %d)\n", this, count, delim);
7479 if(basic_istream_char_sentry_create(this, TRUE)) {
7480 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7481 state = IOSTATE_goodbit;
7484 ch = basic_streambuf_char_sbumpc(strbuf);
7487 state = IOSTATE_eofbit;
7491 if(ch==(unsigned char)delim)
7495 if(count != INT_MAX)
7499 state = IOSTATE_failbit;
7500 basic_istream_char_sentry_destroy(this);
7502 basic_ios_char_setstate(base, state);
7506 /* ?ws@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@1@AAV21@@Z */
7507 /* ?ws@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
7508 basic_istream_char* __cdecl ws_basic_istream_char(basic_istream_char *istream)
7510 basic_ios_char *base = basic_istream_char_get_basic_ios(istream);
7513 TRACE("(%p)\n", istream);
7515 if(basic_istream_char_sentry_create(istream, TRUE)) {
7516 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7517 const ctype_char *ctype = ctype_char_use_facet(strbuf->loc);
7519 for(ch = basic_streambuf_char_sgetc(strbuf); ctype_char_is_ch(ctype, _SPACE, ch);
7520 ch = basic_streambuf_char_snextc(strbuf)) {
7525 basic_istream_char_sentry_destroy(istream);
7528 basic_ios_char_setstate(base, IOSTATE_eofbit);
7532 /* ?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
7533 /* ?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
7534 DEFINE_THISCALL_WRAPPER(basic_istream_char_peek, 4)
7535 int __thiscall basic_istream_char_peek(basic_istream_char *this)
7537 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7540 TRACE("(%p)\n", this);
7544 if(basic_istream_char_sentry_create(this, TRUE))
7545 ret = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base));
7546 basic_istream_char_sentry_destroy(this);
7550 /* ?_Read_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADIH@Z */
7551 /* ?_Read_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_K_J@Z */
7552 static basic_istream_char* basic_istream_char__Read_s(basic_istream_char *this, char *str, MSVCP_size_t size, streamsize count)
7554 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7555 IOSB_iostate state = IOSTATE_goodbit;
7557 TRACE("(%p %p %lu %ld)\n", this, str, size, count);
7559 if(basic_istream_char_sentry_create(this, TRUE)) {
7560 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7562 this->count = basic_streambuf_char__Sgetn_s(strbuf, str, size, count);
7563 if(this->count != count)
7564 state |= IOSTATE_failbit | IOSTATE_eofbit;
7568 basic_istream_char_sentry_destroy(this);
7570 basic_ios_char_setstate(base, state);
7574 /* ?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
7575 /* ?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
7576 DEFINE_THISCALL_WRAPPER(basic_istream_char_read, 12)
7577 basic_istream_char* __thiscall basic_istream_char_read(basic_istream_char *this, char *str, streamsize count)
7579 return basic_istream_char__Read_s(this, str, count, count);
7582 /* ?_Readsome_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHPADIH@Z */
7583 /* ?_Readsome_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_K_J@Z */
7584 static streamsize basic_istream_char__Readsome_s(basic_istream_char *this, char *str, MSVCP_size_t size, streamsize count)
7586 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7587 IOSB_iostate state = IOSTATE_goodbit;
7589 TRACE("(%p %p %lu %ld)\n", this, str, size, count);
7593 if(basic_istream_char_sentry_create(this, TRUE)) {
7594 streamsize avail = basic_streambuf_char_in_avail(basic_ios_char_rdbuf_get(base));
7599 state |= IOSTATE_eofbit;
7601 basic_istream_char__Read_s(this, str, size, avail);
7603 state |= IOSTATE_failbit;
7605 basic_istream_char_sentry_destroy(this);
7607 basic_ios_char_setstate(base, state);
7611 /* ?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHPADH@Z */
7612 /* ?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z */
7613 DEFINE_THISCALL_WRAPPER(basic_istream_char_readsome, 12)
7614 streamsize __thiscall basic_istream_char_readsome(basic_istream_char *this, char *str, streamsize count)
7616 return basic_istream_char__Readsome_s(this, str, count, count);
7619 /* ?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z */
7620 /* ?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z */
7621 DEFINE_THISCALL_WRAPPER(basic_istream_char_putback, 8)
7622 basic_istream_char* __thiscall basic_istream_char_putback(basic_istream_char *this, char ch)
7624 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7625 IOSB_iostate state = IOSTATE_goodbit;
7627 TRACE("(%p %c)\n", this, ch);
7631 if(basic_istream_char_sentry_create(this, TRUE)) {
7632 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7634 if(!ios_base_good(&base->base))
7635 state |= IOSTATE_failbit;
7636 else if(!strbuf || basic_streambuf_char_sputbackc(strbuf, ch)==EOF)
7637 state |= IOSTATE_badbit;
7639 basic_istream_char_sentry_destroy(this);
7641 basic_ios_char_setstate(base, state);
7645 /* ?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ */
7646 /* ?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ */
7647 DEFINE_THISCALL_WRAPPER(basic_istream_char_unget, 4)
7648 basic_istream_char* __thiscall basic_istream_char_unget(basic_istream_char *this)
7650 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7651 IOSB_iostate state = IOSTATE_goodbit;
7653 TRACE("(%p)\n", this);
7657 if(basic_istream_char_sentry_create(this, TRUE)) {
7658 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7660 if(!ios_base_good(&base->base))
7661 state |= IOSTATE_failbit;
7662 else if(!strbuf || basic_streambuf_char_sungetc(strbuf)==EOF)
7663 state |= IOSTATE_badbit;
7665 basic_istream_char_sentry_destroy(this);
7667 basic_ios_char_setstate(base, state);
7671 /* ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
7672 /* ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
7673 DEFINE_THISCALL_WRAPPER(basic_istream_char_sync, 4)
7674 int __thiscall basic_istream_char_sync(basic_istream_char *this)
7676 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7677 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7679 TRACE("(%p)\n", this);
7684 if(basic_istream_char_sentry_create(this, TRUE)) {
7685 if(basic_streambuf_char_pubsync(strbuf) != -1) {
7686 basic_istream_char_sentry_destroy(this);
7690 basic_istream_char_sentry_destroy(this);
7692 basic_ios_char_setstate(base, IOSTATE_badbit);
7696 /* ?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
7697 /* ?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
7698 DEFINE_THISCALL_WRAPPER(basic_istream_char_tellg, 8)
7699 fpos_int* __thiscall basic_istream_char_tellg(basic_istream_char *this, fpos_int *ret)
7701 TRACE("(%p %p)\n", this, ret);
7703 if(basic_istream_char_sentry_create(this, TRUE)) {
7704 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7705 if(!ios_base_fail(&base->base)) {
7706 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base),
7707 ret, 0, SEEKDIR_cur, OPENMODE_in);
7708 basic_istream_char_sentry_destroy(this);
7710 if(ret->off==0 && ret->pos==-1 && ret->state==0)
7711 basic_ios_char_setstate(base, IOSTATE_failbit);
7715 basic_istream_char_sentry_destroy(this);
7723 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@JH@Z */
7724 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
7725 DEFINE_THISCALL_WRAPPER(basic_istream_char_seekg, 12)
7726 basic_istream_char* __thiscall basic_istream_char_seekg(basic_istream_char *this, streamoff off, int dir)
7728 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7730 TRACE("(%p %ld %d)\n", this, off, dir);
7732 if(!ios_base_fail(&base->base)) {
7733 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7736 basic_streambuf_char_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in);
7738 if(ret.off==0 && ret.pos==-1 && ret.state==0)
7739 basic_ios_char_setstate(base, IOSTATE_failbit);
7741 basic_ios_char_clear(base, IOSTATE_goodbit);
7744 basic_ios_char_clear(base, IOSTATE_goodbit);
7749 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
7750 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
7751 DEFINE_THISCALL_WRAPPER(basic_istream_char_seekg_fpos, 28)
7752 basic_istream_char* __thiscall basic_istream_char_seekg_fpos(basic_istream_char *this, fpos_int pos)
7754 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7756 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos));
7758 if(!ios_base_fail(&base->base)) {
7759 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7762 basic_streambuf_char_pubseekpos(strbuf, &ret, pos, OPENMODE_in);
7763 basic_istream_char_sentry_destroy(this);
7765 if(ret.off==0 && ret.pos==-1 && ret.state==0)
7766 basic_ios_char_setstate(base, IOSTATE_failbit);
7768 basic_ios_char_clear(base, IOSTATE_goodbit);
7771 basic_ios_char_clear(base, IOSTATE_goodbit);
7776 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAF@Z */
7777 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAF@Z */
7778 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_short, 8)
7779 basic_istream_char* __thiscall basic_istream_char_read_short(basic_istream_char *this, short *v)
7781 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7782 int state = IOSTATE_goodbit;
7784 TRACE("(%p %p)\n", this, v);
7786 if(basic_istream_char_sentry_create(this, FALSE)) {
7787 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7788 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7789 istreambuf_iterator_char first={0}, last={0};
7792 first.strbuf = strbuf;
7793 num_get_char_get_long(numget, &last, first, last, &base->base, &state, &tmp);
7795 if(!(state&IOSTATE_failbit) && tmp==(LONG)((short)tmp))
7798 state |= IOSTATE_failbit;
7800 basic_istream_char_sentry_destroy(this);
7802 basic_ios_char_setstate(base, state);
7806 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAG@Z */
7807 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAG@Z */
7808 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ushort, 8)
7809 basic_istream_char* __thiscall basic_istream_char_read_ushort(basic_istream_char *this, unsigned short *v)
7811 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7812 int state = IOSTATE_goodbit;
7814 TRACE("(%p %p)\n", this, v);
7816 if(basic_istream_char_sentry_create(this, FALSE)) {
7817 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7818 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7819 istreambuf_iterator_char first={0}, last={0};
7821 first.strbuf = strbuf;
7822 num_get_char_get_ushort(numget, &last, first, last, &base->base, &state, v);
7824 basic_istream_char_sentry_destroy(this);
7826 basic_ios_char_setstate(base, state);
7830 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z */
7831 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAH@Z */
7832 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_int, 8)
7833 basic_istream_char* __thiscall basic_istream_char_read_int(basic_istream_char *this, int *v)
7835 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7836 int state = IOSTATE_goodbit;
7838 TRACE("(%p %p)\n", this, v);
7840 if(basic_istream_char_sentry_create(this, FALSE)) {
7841 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7842 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7843 istreambuf_iterator_char first={0}, last={0};
7845 first.strbuf = strbuf;
7846 num_get_char_get_long(numget, &last, first, last, &base->base, &state, v);
7848 basic_istream_char_sentry_destroy(this);
7850 basic_ios_char_setstate(base, state);
7854 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAI@Z */
7855 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAI@Z */
7856 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_uint, 8)
7857 basic_istream_char* __thiscall basic_istream_char_read_uint(basic_istream_char *this, unsigned int *v)
7859 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7860 int state = IOSTATE_goodbit;
7862 TRACE("(%p %p)\n", this, v);
7864 if(basic_istream_char_sentry_create(this, FALSE)) {
7865 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7866 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7867 istreambuf_iterator_char first={0}, last={0};
7869 first.strbuf = strbuf;
7870 num_get_char_get_uint(numget, &last, first, last, &base->base, &state, v);
7872 basic_istream_char_sentry_destroy(this);
7874 basic_ios_char_setstate(base, state);
7878 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAJ@Z */
7879 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAJ@Z */
7880 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_long, 8)
7881 basic_istream_char* __thiscall basic_istream_char_read_long(basic_istream_char *this, LONG *v)
7883 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7884 int state = IOSTATE_goodbit;
7886 TRACE("(%p %p)\n", this, v);
7888 if(basic_istream_char_sentry_create(this, FALSE)) {
7889 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7890 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7891 istreambuf_iterator_char first={0}, last={0};
7893 first.strbuf = strbuf;
7894 num_get_char_get_long(numget, &last, first, last, &base->base, &state, v);
7896 basic_istream_char_sentry_destroy(this);
7898 basic_ios_char_setstate(base, state);
7902 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAK@Z */
7903 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAK@Z */
7904 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ulong, 8)
7905 basic_istream_char* __thiscall basic_istream_char_read_ulong(basic_istream_char *this, ULONG *v)
7907 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7908 int state = IOSTATE_goodbit;
7910 TRACE("(%p %p)\n", this, v);
7912 if(basic_istream_char_sentry_create(this, FALSE)) {
7913 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7914 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7915 istreambuf_iterator_char first={0}, last={0};
7917 first.strbuf = strbuf;
7918 num_get_char_get_ulong(numget, &last, first, last, &base->base, &state, v);
7920 basic_istream_char_sentry_destroy(this);
7922 basic_ios_char_setstate(base, state);
7926 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAM@Z */
7927 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAM@Z */
7928 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_float, 8)
7929 basic_istream_char* __thiscall basic_istream_char_read_float(basic_istream_char *this, float *v)
7931 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7932 int state = IOSTATE_goodbit;
7934 TRACE("(%p %p)\n", this, v);
7936 if(basic_istream_char_sentry_create(this, FALSE)) {
7937 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7938 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7939 istreambuf_iterator_char first={0}, last={0};
7941 first.strbuf = strbuf;
7942 num_get_char_get_float(numget, &last, first, last, &base->base, &state, v);
7944 basic_istream_char_sentry_destroy(this);
7946 basic_ios_char_setstate(base, state);
7950 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAN@Z */
7951 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAN@Z */
7952 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_double, 8)
7953 basic_istream_char* __thiscall basic_istream_char_read_double(basic_istream_char *this, double *v)
7955 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7956 int state = IOSTATE_goodbit;
7958 TRACE("(%p %p)\n", this, v);
7960 if(basic_istream_char_sentry_create(this, FALSE)) {
7961 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7962 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7963 istreambuf_iterator_char first={0}, last={0};
7965 first.strbuf = strbuf;
7966 num_get_char_get_double(numget, &last, first, last, &base->base, &state, v);
7968 basic_istream_char_sentry_destroy(this);
7970 basic_ios_char_setstate(base, state);
7974 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAO@Z */
7975 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAO@Z */
7976 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ldouble, 8)
7977 basic_istream_char* __thiscall basic_istream_char_read_ldouble(basic_istream_char *this, double *v)
7979 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7980 int state = IOSTATE_goodbit;
7982 TRACE("(%p %p)\n", this, v);
7984 if(basic_istream_char_sentry_create(this, FALSE)) {
7985 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7986 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7987 istreambuf_iterator_char first={0}, last={0};
7989 first.strbuf = strbuf;
7990 num_get_char_get_ldouble(numget, &last, first, last, &base->base, &state, v);
7992 basic_istream_char_sentry_destroy(this);
7994 basic_ios_char_setstate(base, state);
7998 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAPAX@Z */
7999 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
8000 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ptr, 8)
8001 basic_istream_char* __thiscall basic_istream_char_read_ptr(basic_istream_char *this, void **v)
8003 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8004 int state = IOSTATE_goodbit;
8006 TRACE("(%p %p)\n", this, v);
8008 if(basic_istream_char_sentry_create(this, FALSE)) {
8009 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8010 const num_get *numget = num_get_char_use_facet(strbuf->loc);
8011 istreambuf_iterator_char first={0}, last={0};
8013 first.strbuf = strbuf;
8014 num_get_char_get_void(numget, &last, first, last, &base->base, &state, v);
8016 basic_istream_char_sentry_destroy(this);
8018 basic_ios_char_setstate(base, state);
8022 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_J@Z */
8023 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_J@Z */
8024 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_int64, 8)
8025 basic_istream_char* __thiscall basic_istream_char_read_int64(basic_istream_char *this, __int64 *v)
8027 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8028 int state = IOSTATE_goodbit;
8030 TRACE("(%p %p)\n", this, v);
8032 if(basic_istream_char_sentry_create(this, FALSE)) {
8033 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8034 const num_get *numget = num_get_char_use_facet(strbuf->loc);
8035 istreambuf_iterator_char first={0}, last={0};
8037 first.strbuf = strbuf;
8038 num_get_char_get_int64(numget, &last, first, last, &base->base, &state, v);
8040 basic_istream_char_sentry_destroy(this);
8042 basic_ios_char_setstate(base, state);
8046 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_K@Z */
8047 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_K@Z */
8048 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_uint64, 8)
8049 basic_istream_char* __thiscall basic_istream_char_read_uint64(basic_istream_char *this, unsigned __int64 *v)
8051 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8052 int state = IOSTATE_goodbit;
8054 TRACE("(%p %p)\n", this, v);
8056 if(basic_istream_char_sentry_create(this, FALSE)) {
8057 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8058 const num_get *numget = num_get_char_use_facet(strbuf->loc);
8059 istreambuf_iterator_char first={0}, last={0};
8061 first.strbuf = strbuf;
8062 num_get_char_get_uint64(numget, &last, first, last, &base->base, &state, v);
8064 basic_istream_char_sentry_destroy(this);
8066 basic_ios_char_setstate(base, state);
8070 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_N@Z */
8071 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_N@Z */
8072 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_bool, 8)
8073 basic_istream_char* __thiscall basic_istream_char_read_bool(basic_istream_char *this, MSVCP_bool *v)
8075 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8076 int state = IOSTATE_goodbit;
8078 TRACE("(%p %p)\n", this, v);
8080 if(basic_istream_char_sentry_create(this, FALSE)) {
8081 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8082 const num_get *numget = num_get_char_use_facet(strbuf->loc);
8083 istreambuf_iterator_char first={0}, last={0};
8085 first.strbuf = strbuf;
8086 num_get_char_get_bool(numget, &last, first, last, &base->base, &state, v);
8088 basic_istream_char_sentry_destroy(this);
8090 basic_ios_char_setstate(base, state);
8094 /* ??$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 */
8095 /* ??$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 */
8096 basic_istream_char* __cdecl basic_istream_char_getline_bstr_delim(
8097 basic_istream_char *istream, basic_string_char *str, char delim)
8099 IOSB_iostate state = IOSTATE_failbit;
8100 int c = (unsigned char)delim;
8102 TRACE("(%p %p %c)\n", istream, str, delim);
8104 if(basic_istream_char_sentry_create(istream, TRUE)) {
8105 MSVCP_basic_string_char_clear(str);
8107 c = basic_istream_char_get(istream);
8109 state = IOSTATE_goodbit;
8111 for(; c!=(unsigned char)delim && c!=EOF; c = basic_istream_char_get(istream)) {
8112 state = IOSTATE_goodbit;
8113 MSVCP_basic_string_char_append_ch(str, c);
8116 basic_istream_char_sentry_destroy(istream);
8118 basic_ios_char_setstate(basic_istream_char_get_basic_ios(istream),
8119 state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8123 /* ??$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 */
8124 /* ??$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 */
8125 basic_istream_char* __cdecl basic_istream_char_getline_bstr(
8126 basic_istream_char *istream, basic_string_char *str)
8128 return basic_istream_char_getline_bstr_delim(istream, str, '\n');
8131 /* ??$?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 */
8132 /* ??$?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 */
8133 basic_istream_char* __cdecl basic_istream_char_read_bstr(
8134 basic_istream_char *istream, basic_string_char *str)
8136 basic_ios_char *base = basic_istream_char_get_basic_ios(istream);
8137 IOSB_iostate state = IOSTATE_failbit;
8140 TRACE("(%p %p)\n", istream, str);
8142 if(basic_istream_char_sentry_create(istream, FALSE)) {
8143 const ctype_char *ctype = ctype_char_use_facet(base->strbuf->loc);
8144 MSVCP_size_t count = ios_base_width_get(&base->base);
8149 MSVCP_basic_string_char_clear(str);
8151 for(c = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base));
8152 c!=EOF && !ctype_char_is_ch(ctype, _SPACE|_BLANK, c) && count>0;
8153 c = basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base)), count--) {
8154 state = IOSTATE_goodbit;
8155 MSVCP_basic_string_char_append_ch(str, c);
8158 basic_istream_char_sentry_destroy(istream);
8160 ios_base_width_set(&base->base, 0);
8161 basic_ios_char_setstate(base, state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8165 /* ??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z */
8166 /* ??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAD@Z */
8167 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAC@Z */
8168 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAC@Z */
8169 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAE@Z */
8170 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAE@Z */
8171 basic_istream_char* __cdecl basic_istream_char_read_str(basic_istream_char *istream, char *str)
8173 basic_ios_char *base = basic_istream_char_get_basic_ios(istream);
8174 IOSB_iostate state = IOSTATE_failbit;
8177 TRACE("(%p %p)\n", istream, str);
8179 if(basic_istream_char_sentry_create(istream, FALSE)) {
8180 const ctype_char *ctype = ctype_char_use_facet(base->strbuf->loc);
8181 MSVCP_size_t count = ios_base_width_get(&base->base)-1;
8183 for(c = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base));
8184 c!=EOF && !ctype_char_is_ch(ctype, _SPACE|_BLANK, c) && count>0;
8185 c = basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base)), count--) {
8186 state = IOSTATE_goodbit;
8190 basic_istream_char_sentry_destroy(istream);
8193 ios_base_width_set(&base->base, 0);
8194 basic_ios_char_setstate(base, state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8198 /* ??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAD@Z */
8199 /* ??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAD@Z */
8200 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAC@Z */
8201 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAC@Z */
8202 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAE@Z */
8203 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAE@Z */
8204 basic_istream_char* __cdecl basic_istream_char_read_ch(basic_istream_char *istream, char *ch)
8206 IOSB_iostate state = IOSTATE_failbit;
8209 TRACE("(%p %p)\n", istream, ch);
8211 if(basic_istream_char_sentry_create(istream, FALSE)) {
8212 c = basic_streambuf_char_sbumpc(basic_ios_char_rdbuf_get(
8213 basic_istream_char_get_basic_ios(istream)));
8215 state = IOSTATE_goodbit;
8219 basic_istream_char_sentry_destroy(istream);
8221 basic_ios_char_setstate(basic_istream_char_get_basic_ios(istream),
8222 state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8226 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
8227 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
8228 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_streambuf, 8)
8229 basic_istream_char* __thiscall basic_istream_char_read_streambuf(
8230 basic_istream_char *this, basic_streambuf_char *streambuf)
8232 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8233 IOSB_iostate state = IOSTATE_failbit;
8236 TRACE("(%p %p)\n", this, streambuf);
8238 if(basic_istream_char_sentry_create(this, FALSE)) {
8239 for(c = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base)); c!=EOF;
8240 c = basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base))) {
8241 state = IOSTATE_goodbit;
8242 if(basic_streambuf_char_sputc(streambuf, c) == EOF)
8246 basic_istream_char_sentry_destroy(this);
8248 basic_ios_char_setstate(base, state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8252 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
8253 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
8254 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func, 8)
8255 basic_istream_char* __thiscall basic_istream_char_read_func(basic_istream_char *this,
8256 basic_istream_char* (__cdecl *pfunc)(basic_istream_char*))
8258 TRACE("(%p %p)\n", this, pfunc);
8263 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@DU?$char_traits@D@std@@@1@AAV21@@Z@Z */
8264 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z */
8265 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func_basic_ios, 8)
8266 basic_istream_char* __thiscall basic_istream_char_read_func_basic_ios(basic_istream_char *this,
8267 basic_ios_char* (__cdecl *pfunc)(basic_ios_char*))
8269 TRACE("(%p %p)\n", this, pfunc);
8270 pfunc(basic_istream_char_get_basic_ios(this));
8274 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
8275 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
8276 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func_ios_base, 8)
8277 basic_istream_char* __thiscall basic_istream_char_read_func_ios_base(basic_istream_char *this,
8278 ios_base* (__cdecl *pfunc)(ios_base*))
8280 TRACE("(%p %p)\n", this, pfunc);
8281 pfunc(&basic_istream_char_get_basic_ios(this)->base);
8285 /* Caution: basic_istream uses virtual inheritance. */
8286 static inline basic_ios_wchar* basic_istream_wchar_get_basic_ios(basic_istream_wchar *this)
8288 return (basic_ios_wchar*)((char*)this+this->vbtable[1]);
8291 static inline basic_ios_wchar* basic_istream_wchar_to_basic_ios(basic_istream_wchar *ptr)
8293 return (basic_ios_wchar*)((char*)ptr+basic_istream_wchar_vbtable[1]);
8296 static inline basic_istream_wchar* basic_istream_wchar_from_basic_ios(basic_ios_wchar *ptr)
8298 return (basic_istream_wchar*)((char*)ptr-basic_istream_wchar_vbtable[1]);
8301 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z */
8302 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z */
8303 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ctor_init, 20)
8304 basic_istream_wchar* __thiscall basic_istream_wchar_ctor_init(basic_istream_wchar *this,
8305 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool noinit, MSVCP_bool virt_init)
8307 basic_ios_wchar *base;
8309 TRACE("(%p %p %d %d %d)\n", this, strbuf, isstd, noinit, virt_init);
8312 this->vbtable = basic_istream_wchar_vbtable;
8313 base = basic_istream_wchar_get_basic_ios(this);
8314 basic_ios_wchar_ctor(base);
8316 base = basic_istream_wchar_get_basic_ios(this);
8319 base->base.vtable = &MSVCP_basic_istream_wchar_vtable;
8322 basic_ios_wchar_init(base, strbuf, isstd);
8326 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z */
8327 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z */
8328 DEFINE_THISCALL_WRAPPER(basic_istream_short_ctor_init, 20)
8329 basic_istream_wchar* __thiscall basic_istream_short_ctor_init(basic_istream_wchar *this,
8330 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool noinit, MSVCP_bool virt_init)
8332 basic_istream_wchar_ctor_init(this, strbuf, isstd, noinit, virt_init);
8333 basic_istream_wchar_get_basic_ios(this)->base.vtable = &MSVCP_basic_istream_short_vtable;
8337 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
8338 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
8339 static basic_istream_wchar* basic_istream_wchar_ctor(basic_istream_wchar *this,
8340 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
8342 return basic_istream_wchar_ctor_init(this, strbuf, isstd, FALSE, virt_init);
8345 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
8346 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
8347 static basic_istream_wchar* basic_istream_short_ctor(basic_istream_wchar *this,
8348 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
8350 return basic_istream_short_ctor_init(this, strbuf, isstd, FALSE, virt_init);
8353 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@@Z */
8354 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
8355 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ctor_uninitialized, 12)
8356 basic_istream_wchar* __thiscall basic_istream_wchar_ctor_uninitialized(
8357 basic_istream_wchar *this, int uninitialized, MSVCP_bool virt_init)
8359 basic_ios_wchar *base;
8361 TRACE("(%p %d %d)\n", this, uninitialized, virt_init);
8364 this->vbtable = basic_istream_wchar_vbtable;
8365 base = basic_istream_wchar_get_basic_ios(this);
8366 basic_ios_wchar_ctor(base);
8368 base = basic_istream_wchar_get_basic_ios(this);
8371 base->base.vtable = &MSVCP_basic_istream_wchar_vtable;
8372 ios_base_Addstd(&base->base);
8376 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */
8377 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
8378 DEFINE_THISCALL_WRAPPER(basic_istream_short_ctor_uninitialized, 12)
8379 basic_istream_wchar* __thiscall basic_istream_short_ctor_uninitialized(
8380 basic_istream_wchar *this, int uninitialized, MSVCP_bool virt_init)
8382 basic_istream_wchar_ctor_uninitialized(this, uninitialized, virt_init);
8383 basic_istream_wchar_get_basic_ios(this)->base.vtable = &MSVCP_basic_istream_short_vtable;
8387 /* ??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
8388 /* ??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
8389 /* ??1?$basic_istream@GU?$char_traits@G@std@@@std@@UAE@XZ */
8390 /* ??1?$basic_istream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
8391 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_dtor, 4)
8392 void __thiscall basic_istream_wchar_dtor(basic_ios_wchar *base)
8394 basic_istream_wchar *this = basic_istream_wchar_from_basic_ios(base);
8396 /* don't destroy virtual base here */
8397 TRACE("(%p)\n", this);
8400 /* ??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
8401 /* ??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
8402 /* ??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXXZ */
8403 /* ??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
8404 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_vbase_dtor, 4)
8405 void __thiscall basic_istream_wchar_vbase_dtor(basic_istream_wchar *this)
8407 TRACE("(%p)\n", this);
8408 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(this));
8409 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(this));
8412 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_vector_dtor, 8)
8413 basic_istream_wchar* __thiscall basic_istream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
8415 basic_istream_wchar *this = basic_istream_wchar_from_basic_ios(base);
8417 TRACE("(%p %x)\n", this, flags);
8420 /* we have an array, with the number of elements stored before the first object */
8421 INT_PTR i, *ptr = (INT_PTR *)this-1;
8423 for(i=*ptr-1; i>=0; i--)
8424 basic_istream_wchar_vbase_dtor(this+i);
8425 MSVCRT_operator_delete(ptr);
8427 basic_istream_wchar_vbase_dtor(this);
8429 MSVCRT_operator_delete(this);
8435 /* ?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE_N_N@Z */
8436 /* ?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z */
8437 /* ?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE_N_N@Z */
8438 /* ?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z */
8439 DEFINE_THISCALL_WRAPPER(basic_istream_wchar__Ipfx, 8)
8440 MSVCP_bool __thiscall basic_istream_wchar__Ipfx(basic_istream_wchar *this, MSVCP_bool noskip)
8442 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8444 TRACE("(%p %d)\n", this, noskip);
8446 if(ios_base_good(&base->base)) {
8447 if(basic_ios_wchar_tie_get(base))
8448 basic_ostream_wchar_flush(basic_ios_wchar_tie_get(base));
8450 if(!noskip && (ios_base_flags_get(&base->base) & FMTFLAG_skipws)) {
8451 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8452 const ctype_wchar *ctype = ctype_wchar_use_facet(base->strbuf->loc);
8455 for(ch = basic_streambuf_wchar_sgetc(strbuf); ;
8456 ch = basic_streambuf_wchar_snextc(strbuf)) {
8458 basic_ios_wchar_setstate(base, IOSTATE_eofbit);
8462 if(!ctype_wchar_is_ch(ctype, _SPACE|_BLANK, ch))
8468 if(!ios_base_good(&base->base)) {
8469 basic_ios_wchar_setstate(base, IOSTATE_failbit);
8475 /* ?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE_N_N@Z */
8476 /* ?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z */
8477 /* ?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE_N_N@Z */
8478 /* ?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z */
8479 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ipfx, 8)
8480 MSVCP_bool __thiscall basic_istream_wchar_ipfx(basic_istream_wchar *this, MSVCP_bool noskip)
8482 return basic_istream_wchar__Ipfx(this, noskip);
8485 /* ?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
8486 /* ?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
8487 /* ?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXXZ */
8488 /* ?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
8489 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_isfx, 4)
8490 void __thiscall basic_istream_wchar_isfx(basic_istream_wchar *this)
8492 TRACE("(%p)\n", this);
8495 static BOOL basic_istream_wchar_sentry_create(basic_istream_wchar *istr, MSVCP_bool noskip)
8497 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istr);
8499 if(basic_ios_wchar_rdbuf_get(base))
8500 basic_streambuf_wchar__Lock(base->strbuf);
8502 return basic_istream_wchar_ipfx(istr, noskip);
8505 static void basic_istream_wchar_sentry_destroy(basic_istream_wchar *istr)
8507 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istr);
8509 if(basic_ios_wchar_rdbuf_get(base))
8510 basic_streambuf_wchar__Unlock(base->strbuf);
8513 /* ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QBEHXZ */
8514 /* ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEBA_JXZ */
8515 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QBEHXZ */
8516 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QEBA_JXZ */
8517 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_gcount, 4)
8518 int __thiscall basic_istream_wchar_gcount(const basic_istream_wchar *this)
8520 TRACE("(%p)\n", this);
8524 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
8525 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
8526 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEGXZ */
8527 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ */
8528 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get, 4)
8529 unsigned short __thiscall basic_istream_wchar_get(basic_istream_wchar *this)
8531 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8534 TRACE("(%p)\n", this);
8538 if(!basic_istream_wchar_sentry_create(this, TRUE)) {
8539 basic_istream_wchar_sentry_destroy(this);
8543 ret = basic_streambuf_wchar_sbumpc(basic_ios_wchar_rdbuf_get(base));
8544 basic_istream_wchar_sentry_destroy(this);
8546 basic_ios_wchar_setstate(base, IOSTATE_eofbit|IOSTATE_failbit);
8553 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AA_W@Z */
8554 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEA_W@Z */
8555 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAG@Z */
8556 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAG@Z */
8557 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_ch, 8)
8558 basic_istream_wchar* __thiscall basic_istream_wchar_get_ch(basic_istream_wchar *this, wchar_t *ch)
8562 TRACE("(%p %p)\n", this, ch);
8564 ret = basic_istream_wchar_get(this);
8570 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH_W@Z */
8571 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z */
8572 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGHG@Z */
8573 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z */
8574 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_str_delim, 16)
8575 basic_istream_wchar* __thiscall basic_istream_wchar_get_str_delim(basic_istream_wchar *this, wchar_t *str, streamsize count, wchar_t delim)
8577 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8578 unsigned short ch = delim;
8580 TRACE("(%p %p %ld %c)\n", this, str, count, delim);
8584 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8585 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8587 for(ch = basic_streambuf_wchar_sgetc(strbuf); count>1;
8588 ch = basic_streambuf_wchar_snextc(strbuf)) {
8589 if(ch==WEOF || ch==delim)
8597 basic_istream_wchar_sentry_destroy(this);
8599 basic_ios_wchar_setstate(base, (!this->count ? IOSTATE_failbit : IOSTATE_goodbit) |
8600 (ch==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8606 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
8607 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
8608 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
8609 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
8610 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_str, 12)
8611 basic_istream_wchar* __thiscall basic_istream_wchar_get_str(basic_istream_wchar *this, wchar_t *str, streamsize count)
8613 return basic_istream_wchar_get_str_delim(this, str, count, '\n');
8616 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z */
8617 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z */
8618 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAV?$basic_streambuf@GU?$char_traits@G@std@@@2@G@Z */
8619 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@G@Z */
8620 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_streambuf_delim, 12)
8621 basic_istream_wchar* __thiscall basic_istream_wchar_get_streambuf_delim(basic_istream_wchar *this, basic_streambuf_wchar *strbuf, wchar_t delim)
8623 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8624 unsigned short ch = delim;
8626 TRACE("(%p %p %c)\n", this, strbuf, delim);
8630 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8631 basic_streambuf_wchar *strbuf_read = basic_ios_wchar_rdbuf_get(base);
8633 for(ch = basic_streambuf_wchar_sgetc(strbuf_read); ;
8634 ch = basic_streambuf_wchar_snextc(strbuf_read)) {
8635 if(ch==WEOF || ch==delim)
8638 if(basic_streambuf_wchar_sputc(strbuf, ch) == WEOF)
8643 basic_istream_wchar_sentry_destroy(this);
8645 basic_ios_wchar_setstate(base, (!this->count ? IOSTATE_failbit : IOSTATE_goodbit) |
8646 (ch==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8650 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z */
8651 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z */
8652 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z */
8653 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z */
8654 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_streambuf, 8)
8655 basic_istream_wchar* __thiscall basic_istream_wchar_get_streambuf(basic_istream_wchar *this, basic_streambuf_wchar *strbuf)
8657 return basic_istream_wchar_get_streambuf_delim(this, strbuf, '\n');
8660 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH_W@Z */
8661 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z */
8662 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGHG@Z */
8663 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z */
8664 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_getline_delim, 16)
8665 basic_istream_wchar* __thiscall basic_istream_wchar_getline_delim(basic_istream_wchar *this, wchar_t *str, streamsize count, wchar_t delim)
8667 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8668 unsigned short ch = delim;
8670 TRACE("(%p %p %ld %c)\n", this, str, count, delim);
8674 if(basic_istream_wchar_sentry_create(this, TRUE) && count>0) {
8675 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8678 ch = basic_streambuf_wchar_sbumpc(strbuf);
8680 if(ch==WEOF || ch==delim)
8690 else if(ch != WEOF) {
8691 ch = basic_streambuf_wchar_sgetc(strbuf);
8694 basic_streambuf_wchar__Gninc(strbuf);
8699 basic_istream_wchar_sentry_destroy(this);
8701 basic_ios_wchar_setstate(base, (ch==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit) |
8702 (!this->count || (ch!=delim && ch!=WEOF) ? IOSTATE_failbit : IOSTATE_goodbit));
8708 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
8709 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
8710 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
8711 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
8712 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_getline, 12)
8713 basic_istream_wchar* __thiscall basic_istream_wchar_getline(basic_istream_wchar *this, wchar_t *str, streamsize count)
8715 return basic_istream_wchar_getline_delim(this, str, count, '\n');
8718 /* ?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@HG@Z */
8719 /* ?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JG@Z */
8720 /* ?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@HG@Z */
8721 /* ?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JG@Z */
8722 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ignore, 12)
8723 basic_istream_wchar* __thiscall basic_istream_wchar_ignore(basic_istream_wchar *this, streamsize count, unsigned short delim)
8725 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8726 unsigned short ch = delim;
8729 TRACE("(%p %ld %d)\n", this, count, delim);
8733 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8734 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8735 state = IOSTATE_goodbit;
8738 ch = basic_streambuf_wchar_sbumpc(strbuf);
8741 state = IOSTATE_eofbit;
8749 if(count != INT_MAX)
8753 state = IOSTATE_failbit;
8754 basic_istream_wchar_sentry_destroy(this);
8756 basic_ios_wchar_setstate(base, state);
8760 /* ?ws@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
8761 /* ?ws@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
8762 /* ?ws@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@1@AAV21@@Z */
8763 /* ?ws@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
8764 basic_istream_wchar* __cdecl ws_basic_istream_wchar(basic_istream_wchar *istream)
8766 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istream);
8767 unsigned short ch = '\n';
8769 TRACE("(%p)\n", istream);
8771 if(basic_istream_wchar_sentry_create(istream, TRUE)) {
8772 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8773 const ctype_wchar *ctype = ctype_wchar_use_facet(strbuf->loc);
8775 for(ch = basic_streambuf_wchar_sgetc(strbuf); ctype_wchar_is_ch(ctype, _SPACE, ch);
8776 ch = basic_streambuf_wchar_snextc(strbuf)) {
8781 basic_istream_wchar_sentry_destroy(istream);
8784 basic_ios_wchar_setstate(base, IOSTATE_eofbit);
8788 /* ?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
8789 /* ?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
8790 /* ?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEGXZ */
8791 /* ?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ */
8792 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_peek, 4)
8793 unsigned short __thiscall basic_istream_wchar_peek(basic_istream_wchar *this)
8795 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8796 unsigned short ret = WEOF;
8798 TRACE("(%p)\n", this);
8802 if(basic_istream_wchar_sentry_create(this, TRUE))
8803 ret = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base));
8804 basic_istream_wchar_sentry_destroy(this);
8808 /* ?_Read_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WIH@Z */
8809 /* ?_Read_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_K_J@Z */
8810 /* ?_Read_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGIH@Z */
8811 /* ?_Read_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_K_J@Z */
8812 static basic_istream_wchar* basic_istream_wchar__Read_s(basic_istream_wchar *this, wchar_t *str, MSVCP_size_t size, streamsize count)
8814 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8815 IOSB_iostate state = IOSTATE_goodbit;
8817 TRACE("(%p %p %lu %ld)\n", this, str, size, count);
8819 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8820 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8822 this->count = basic_streambuf_wchar__Sgetn_s(strbuf, str, size, count);
8823 if(this->count != count)
8824 state |= IOSTATE_failbit | IOSTATE_eofbit;
8828 basic_istream_wchar_sentry_destroy(this);
8830 basic_ios_wchar_setstate(base, state);
8834 /* ?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
8835 /* ?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
8836 /* ?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
8837 /* ?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
8838 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read, 12)
8839 basic_istream_wchar* __thiscall basic_istream_wchar_read(basic_istream_wchar *this, wchar_t *str, streamsize count)
8841 return basic_istream_wchar__Read_s(this, str, count, count);
8844 /* ?_Readsome_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHPA_WIH@Z */
8845 /* ?_Readsome_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_K_J@Z */
8846 /* ?_Readsome_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHPAGIH@Z */
8847 /* ?_Readsome_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_K_J@Z */
8848 static streamsize basic_istream_wchar__Readsome_s(basic_istream_wchar *this, wchar_t *str, MSVCP_size_t size, streamsize count)
8850 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8851 IOSB_iostate state = IOSTATE_goodbit;
8853 TRACE("(%p %p %lu %ld)\n", this, str, size, count);
8857 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8858 streamsize avail = basic_streambuf_wchar_in_avail(basic_ios_wchar_rdbuf_get(base));
8863 state |= IOSTATE_eofbit;
8865 basic_istream_wchar__Read_s(this, str, size, avail);
8867 state |= IOSTATE_failbit;
8869 basic_istream_wchar_sentry_destroy(this);
8871 basic_ios_wchar_setstate(base, state);
8875 /* ?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHPA_WH@Z */
8876 /* ?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z */
8877 /* ?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHPAGH@Z */
8878 /* ?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z */
8879 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_readsome, 12)
8880 streamsize __thiscall basic_istream_wchar_readsome(basic_istream_wchar *this, wchar_t *str, streamsize count)
8882 return basic_istream_wchar__Readsome_s(this, str, count, count);
8885 /* ?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@_W@Z */
8886 /* ?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z */
8887 /* ?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@G@Z */
8888 /* ?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z */
8889 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_putback, 8)
8890 basic_istream_wchar* __thiscall basic_istream_wchar_putback(basic_istream_wchar *this, wchar_t ch)
8892 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8893 IOSB_iostate state = IOSTATE_goodbit;
8895 TRACE("(%p %c)\n", this, ch);
8899 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8900 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8902 if(!ios_base_good(&base->base))
8903 state |= IOSTATE_failbit;
8904 else if(!strbuf || basic_streambuf_wchar_sputbackc(strbuf, ch)==WEOF)
8905 state |= IOSTATE_badbit;
8907 basic_istream_wchar_sentry_destroy(this);
8909 basic_ios_wchar_setstate(base, state);
8913 /* ?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ */
8914 /* ?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ */
8915 /* ?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@XZ */
8916 /* ?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ */
8917 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_unget, 4)
8918 basic_istream_wchar* __thiscall basic_istream_wchar_unget(basic_istream_wchar *this)
8920 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8921 IOSB_iostate state = IOSTATE_goodbit;
8923 TRACE("(%p)\n", this);
8927 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8928 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8930 if(!ios_base_good(&base->base))
8931 state |= IOSTATE_failbit;
8932 else if(!strbuf || basic_streambuf_wchar_sungetc(strbuf)==WEOF)
8933 state |= IOSTATE_badbit;
8935 basic_istream_wchar_sentry_destroy(this);
8937 basic_ios_wchar_setstate(base, state);
8941 /* ?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
8942 /* ?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAHXZ */
8943 /* ?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHXZ */
8944 /* ?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAHXZ */
8945 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_sync, 4)
8946 int __thiscall basic_istream_wchar_sync(basic_istream_wchar *this)
8948 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8949 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8951 TRACE("(%p)\n", this);
8956 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8957 if(basic_streambuf_wchar_pubsync(strbuf) != -1) {
8958 basic_istream_wchar_sentry_destroy(this);
8962 basic_istream_wchar_sentry_destroy(this);
8964 basic_ios_wchar_setstate(base, IOSTATE_badbit);
8968 /* ?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@XZ */
8969 /* ?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
8970 /* ?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@XZ */
8971 /* ?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
8972 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_tellg, 8)
8973 fpos_int* __thiscall basic_istream_wchar_tellg(basic_istream_wchar *this, fpos_int *ret)
8975 TRACE("(%p %p)\n", this, ret);
8977 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8978 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8979 if(!ios_base_fail(&base->base)) {
8980 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base),
8981 ret, 0, SEEKDIR_cur, OPENMODE_in);
8982 basic_istream_wchar_sentry_destroy(this);
8984 if(ret->off==0 && ret->pos==-1 && ret->state==0)
8985 basic_ios_wchar_setstate(base, IOSTATE_failbit);
8989 basic_istream_wchar_sentry_destroy(this);
8997 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@JH@Z */
8998 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z */
8999 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@JH@Z */
9000 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z */
9001 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_seekg, 12)
9002 basic_istream_wchar* __thiscall basic_istream_wchar_seekg(basic_istream_wchar *this, streamoff off, int dir)
9004 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9006 TRACE("(%p %ld %d)\n", this, off, dir);
9008 if(!ios_base_fail(&base->base)) {
9009 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9012 basic_streambuf_wchar_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in);
9013 basic_istream_wchar_sentry_destroy(this);
9015 if(ret.off==0 && ret.pos==-1 && ret.state==0)
9016 basic_ios_wchar_setstate(base, IOSTATE_failbit);
9018 basic_ios_wchar_clear(base, IOSTATE_goodbit);
9021 basic_ios_wchar_clear(base, IOSTATE_goodbit);
9026 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
9027 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
9028 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
9029 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
9030 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_seekg_fpos, 28)
9031 basic_istream_wchar* __thiscall basic_istream_wchar_seekg_fpos(basic_istream_wchar *this, fpos_int pos)
9033 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9035 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos));
9037 if(!ios_base_fail(&base->base)) {
9038 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9041 basic_streambuf_wchar_pubseekpos(strbuf, &ret, pos, OPENMODE_in);
9042 basic_istream_wchar_sentry_destroy(this);
9044 if(ret.off==0 && ret.pos==-1 && ret.state==0)
9045 basic_ios_wchar_setstate(base, IOSTATE_failbit);
9047 basic_ios_wchar_clear(base, IOSTATE_goodbit);
9050 basic_ios_wchar_clear(base, IOSTATE_goodbit);
9055 static basic_istream_wchar* basic_istream_read_short(basic_istream_wchar *this, short *v, const num_get *numget)
9057 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9058 int state = IOSTATE_goodbit;
9060 TRACE("(%p %p)\n", this, v);
9062 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9063 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9064 istreambuf_iterator_wchar first={0}, last={0};
9067 first.strbuf = strbuf;
9068 num_get_wchar_get_long(numget, &last, first, last, &base->base, &state, &tmp);
9070 if(!(state&IOSTATE_failbit) && tmp==(LONG)((short)tmp))
9073 state |= IOSTATE_failbit;
9075 basic_istream_wchar_sentry_destroy(this);
9077 basic_ios_wchar_setstate(base, state);
9081 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAF@Z */
9082 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAF@Z */
9083 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_short, 8)
9084 basic_istream_wchar* __thiscall basic_istream_wchar_read_short(basic_istream_wchar *this, short *v)
9086 return basic_istream_read_short(this, v, num_get_wchar_use_facet(
9087 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9090 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAF@Z */
9091 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAF@Z */
9092 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_short, 8)
9093 basic_istream_wchar* __thiscall basic_istream_short_read_short(basic_istream_wchar *this, short *v)
9095 return basic_istream_read_short(this, v, num_get_short_use_facet(
9096 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9099 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAG@Z */
9100 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAG@Z */
9101 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ushort, 8)
9102 basic_istream_wchar* __thiscall basic_istream_wchar_read_ushort(basic_istream_wchar *this, unsigned short *v)
9104 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9105 int state = IOSTATE_goodbit;
9107 TRACE("(%p %p)\n", this, v);
9109 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9110 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9111 const num_get *numget = num_get_wchar_use_facet(strbuf->loc);
9112 istreambuf_iterator_wchar first={0}, last={0};
9114 first.strbuf = strbuf;
9115 num_get_wchar_get_ushort(numget, &last, first, last, &base->base, &state, v);
9117 basic_istream_wchar_sentry_destroy(this);
9119 basic_ios_wchar_setstate(base, state);
9123 static basic_istream_wchar* basic_istream_read_int(basic_istream_wchar *this, int *v, const num_get *numget)
9125 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9126 int state = IOSTATE_goodbit;
9128 TRACE("(%p %p)\n", this, v);
9130 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9131 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9132 istreambuf_iterator_wchar first={0}, last={0};
9134 first.strbuf = strbuf;
9135 num_get_wchar_get_long(numget, &last, first, last, &base->base, &state, v);
9137 basic_istream_wchar_sentry_destroy(this);
9139 basic_ios_wchar_setstate(base, state);
9143 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAH@Z */
9144 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAH@Z */
9145 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_int, 8)
9146 basic_istream_wchar* __thiscall basic_istream_wchar_read_int(basic_istream_wchar *this, int *v)
9148 return basic_istream_read_int(this, v, num_get_wchar_use_facet(
9149 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9152 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAH@Z */
9153 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAH@Z */
9154 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_int, 8)
9155 basic_istream_wchar* __thiscall basic_istream_short_read_int(basic_istream_wchar *this, int *v)
9157 return basic_istream_read_int(this, v, num_get_short_use_facet(
9158 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9161 static basic_istream_wchar* basic_istream_read_uint(basic_istream_wchar *this, unsigned int *v, const num_get *numget)
9163 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9164 int state = IOSTATE_goodbit;
9166 TRACE("(%p %p)\n", this, v);
9168 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9169 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9170 istreambuf_iterator_wchar first={0}, last={0};
9172 first.strbuf = strbuf;
9173 num_get_wchar_get_uint(numget, &last, first, last, &base->base, &state, v);
9175 basic_istream_wchar_sentry_destroy(this);
9177 basic_ios_wchar_setstate(base, state);
9181 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAI@Z */
9182 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAI@Z */
9183 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_uint, 8)
9184 basic_istream_wchar* __thiscall basic_istream_wchar_read_uint(basic_istream_wchar *this, unsigned int *v)
9186 return basic_istream_read_uint(this, v, num_get_wchar_use_facet(
9187 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9190 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAI@Z */
9191 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAI@Z */
9192 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_uint, 8)
9193 basic_istream_wchar* __thiscall basic_istream_short_read_uint(basic_istream_wchar *this, unsigned int *v)
9195 return basic_istream_read_uint(this, v, num_get_short_use_facet(
9196 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9199 static basic_istream_wchar* basic_istream_read_long(basic_istream_wchar *this, LONG *v, const num_get *numget)
9201 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9202 int state = IOSTATE_goodbit;
9204 TRACE("(%p %p)\n", this, v);
9206 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9207 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9208 istreambuf_iterator_wchar first={0}, last={0};
9210 first.strbuf = strbuf;
9211 num_get_wchar_get_long(numget, &last, first, last, &base->base, &state, v);
9213 basic_istream_wchar_sentry_destroy(this);
9215 basic_ios_wchar_setstate(base, state);
9219 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAJ@Z */
9220 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAJ@Z */
9221 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_long, 8)
9222 basic_istream_wchar* __thiscall basic_istream_wchar_read_long(basic_istream_wchar *this, LONG *v)
9224 return basic_istream_read_long(this, v, num_get_wchar_use_facet(
9225 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9228 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAJ@Z */
9229 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAJ@Z */
9230 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_long, 8)
9231 basic_istream_wchar* __thiscall basic_istream_short_read_long(basic_istream_wchar *this, LONG *v)
9233 return basic_istream_read_long(this, v, num_get_short_use_facet(
9234 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9237 static basic_istream_wchar* basic_istream_read_ulong(basic_istream_wchar *this, ULONG *v, const num_get *numget)
9239 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9240 int state = IOSTATE_goodbit;
9242 TRACE("(%p %p)\n", this, v);
9244 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9245 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9246 istreambuf_iterator_wchar first={0}, last={0};
9248 first.strbuf = strbuf;
9249 num_get_wchar_get_ulong(numget, &last, first, last, &base->base, &state, v);
9251 basic_istream_wchar_sentry_destroy(this);
9253 basic_ios_wchar_setstate(base, state);
9257 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAK@Z */
9258 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAK@Z */
9259 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ulong, 8)
9260 basic_istream_wchar* __thiscall basic_istream_wchar_read_ulong(basic_istream_wchar *this, ULONG *v)
9262 return basic_istream_read_ulong(this, v, num_get_wchar_use_facet(
9263 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9266 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAK@Z */
9267 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAK@Z */
9268 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ulong, 8)
9269 basic_istream_wchar* __thiscall basic_istream_short_read_ulong(basic_istream_wchar *this, ULONG *v)
9271 return basic_istream_read_ulong(this, v, num_get_short_use_facet(
9272 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9275 static basic_istream_wchar* basic_istream_read_float(basic_istream_wchar *this, float *v, const num_get *numget)
9277 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9278 int state = IOSTATE_goodbit;
9280 TRACE("(%p %p)\n", this, v);
9282 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9283 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9284 istreambuf_iterator_wchar first={0}, last={0};
9286 first.strbuf = strbuf;
9287 num_get_wchar_get_float(numget, &last, first, last, &base->base, &state, v);
9289 basic_istream_wchar_sentry_destroy(this);
9291 basic_ios_wchar_setstate(base, state);
9295 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAM@Z */
9296 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAM@Z */
9297 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_float, 8)
9298 basic_istream_wchar* __thiscall basic_istream_wchar_read_float(basic_istream_wchar *this, float *v)
9300 return basic_istream_read_float(this, v, num_get_wchar_use_facet(
9301 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9304 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAM@Z */
9305 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAM@Z */
9306 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_float, 8)
9307 basic_istream_wchar* __thiscall basic_istream_short_read_float(basic_istream_wchar *this, float *v)
9309 return basic_istream_read_float(this, v, num_get_short_use_facet(
9310 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9313 static basic_istream_wchar* basic_istream_read_double(basic_istream_wchar *this, double *v, const num_get *numget)
9315 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9316 int state = IOSTATE_goodbit;
9318 TRACE("(%p %p)\n", this, v);
9320 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9321 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9322 istreambuf_iterator_wchar first={0}, last={0};
9324 first.strbuf = strbuf;
9325 num_get_wchar_get_double(numget, &last, first, last, &base->base, &state, v);
9327 basic_istream_wchar_sentry_destroy(this);
9329 basic_ios_wchar_setstate(base, state);
9333 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAN@Z */
9334 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAN@Z */
9335 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_double, 8)
9336 basic_istream_wchar* __thiscall basic_istream_wchar_read_double(basic_istream_wchar *this, double *v)
9338 return basic_istream_read_double(this, v, num_get_wchar_use_facet(
9339 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9342 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAN@Z */
9343 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAN@Z */
9344 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_double, 8)
9345 basic_istream_wchar* __thiscall basic_istream_short_read_double(basic_istream_wchar *this, double *v)
9347 return basic_istream_read_double(this, v, num_get_short_use_facet(
9348 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9351 static basic_istream_wchar* basic_istream_read_ldouble(basic_istream_wchar *this, double *v, const num_get *numget)
9353 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9354 int state = IOSTATE_goodbit;
9356 TRACE("(%p %p)\n", this, v);
9358 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9359 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9360 istreambuf_iterator_wchar first={0}, last={0};
9362 first.strbuf = strbuf;
9363 num_get_wchar_get_ldouble(numget, &last, first, last, &base->base, &state, v);
9365 basic_istream_wchar_sentry_destroy(this);
9367 basic_ios_wchar_setstate(base, state);
9371 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAO@Z */
9372 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAO@Z */
9373 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ldouble, 8)
9374 basic_istream_wchar* __thiscall basic_istream_wchar_read_ldouble(basic_istream_wchar *this, double *v)
9376 return basic_istream_read_ldouble(this, v, num_get_wchar_use_facet(
9377 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9380 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAO@Z */
9381 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAO@Z */
9382 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ldouble, 8)
9383 basic_istream_wchar* __thiscall basic_istream_short_read_ldouble(basic_istream_wchar *this, double *v)
9385 return basic_istream_read_ldouble(this, v, num_get_short_use_facet(
9386 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9389 static basic_istream_wchar* basic_istream_read_ptr(basic_istream_wchar *this, void **v, const num_get *numget)
9391 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9392 int state = IOSTATE_goodbit;
9394 TRACE("(%p %p)\n", this, v);
9396 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9397 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9398 istreambuf_iterator_wchar first={0}, last={0};
9400 first.strbuf = strbuf;
9401 num_get_wchar_get_void(numget, &last, first, last, &base->base, &state, v);
9403 basic_istream_wchar_sentry_destroy(this);
9405 basic_ios_wchar_setstate(base, state);
9409 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAPAX@Z */
9410 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
9411 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ptr, 8)
9412 basic_istream_wchar* __thiscall basic_istream_wchar_read_ptr(basic_istream_wchar *this, void **v)
9414 return basic_istream_read_ptr(this, v, num_get_wchar_use_facet(
9415 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9418 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAPAX@Z */
9419 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
9420 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ptr, 8)
9421 basic_istream_wchar* __thiscall basic_istream_short_read_ptr(basic_istream_wchar *this, void **v)
9423 return basic_istream_read_ptr(this, v, num_get_short_use_facet(
9424 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9427 static basic_istream_wchar* basic_istream_read_int64(basic_istream_wchar *this, __int64 *v, const num_get *numget)
9429 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9430 int state = IOSTATE_goodbit;
9432 TRACE("(%p %p)\n", this, v);
9434 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9435 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9436 istreambuf_iterator_wchar first={0}, last={0};
9438 first.strbuf = strbuf;
9439 num_get_wchar_get_int64(numget, &last, first, last, &base->base, &state, v);
9441 basic_istream_wchar_sentry_destroy(this);
9443 basic_ios_wchar_setstate(base, state);
9447 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_J@Z */
9448 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_J@Z */
9449 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_int64, 8)
9450 basic_istream_wchar* __thiscall basic_istream_wchar_read_int64(basic_istream_wchar *this, __int64 *v)
9452 return basic_istream_read_int64(this, v, num_get_wchar_use_facet(
9453 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9456 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_J@Z */
9457 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_J@Z */
9458 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_int64, 8)
9459 basic_istream_wchar* __thiscall basic_istream_short_read_int64(basic_istream_wchar *this, __int64 *v)
9461 return basic_istream_read_int64(this, v, num_get_short_use_facet(
9462 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9465 static basic_istream_wchar* basic_istream_read_uint64(basic_istream_wchar *this, unsigned __int64 *v, const num_get *numget)
9467 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9468 int state = IOSTATE_goodbit;
9470 TRACE("(%p %p)\n", this, v);
9472 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9473 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9474 istreambuf_iterator_wchar first={0}, last={0};
9476 first.strbuf = strbuf;
9477 num_get_wchar_get_uint64(numget, &last, first, last, &base->base, &state, v);
9479 basic_istream_wchar_sentry_destroy(this);
9481 basic_ios_wchar_setstate(base, state);
9485 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_K@Z */
9486 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_K@Z */
9487 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_uint64, 8)
9488 basic_istream_wchar* __thiscall basic_istream_wchar_read_uint64(basic_istream_wchar *this, unsigned __int64 *v)
9490 return basic_istream_read_uint64(this, v, num_get_wchar_use_facet(
9491 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9494 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_K@Z */
9495 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_K@Z */
9496 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_uint64, 8)
9497 basic_istream_wchar* __thiscall basic_istream_short_read_uint64(basic_istream_wchar *this, unsigned __int64 *v)
9499 return basic_istream_read_uint64(this, v, num_get_short_use_facet(
9500 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9503 static basic_istream_wchar* basic_istream_read_bool(basic_istream_wchar *this, MSVCP_bool *v, const num_get *numget)
9505 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9506 int state = IOSTATE_goodbit;
9508 TRACE("(%p %p)\n", this, v);
9510 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9511 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9512 istreambuf_iterator_wchar first={0}, last={0};
9514 first.strbuf = strbuf;
9515 num_get_wchar_get_bool(numget, &last, first, last, &base->base, &state, v);
9517 basic_istream_wchar_sentry_destroy(this);
9519 basic_ios_wchar_setstate(base, state);
9523 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_N@Z */
9524 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_N@Z */
9525 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_bool, 8)
9526 basic_istream_wchar* __thiscall basic_istream_wchar_read_bool(basic_istream_wchar *this, MSVCP_bool *v)
9528 return basic_istream_read_bool(this, v, num_get_wchar_use_facet(
9529 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9532 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_N@Z */
9533 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_N@Z */
9534 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_bool, 8)
9535 basic_istream_wchar* __thiscall basic_istream_short_read_bool(basic_istream_wchar *this, MSVCP_bool *v)
9537 return basic_istream_read_bool(this, v, num_get_short_use_facet(
9538 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9541 /* ??$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 */
9542 /* ??$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 */
9543 /* ??$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 */
9544 /* ??$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 */
9545 basic_istream_wchar* __cdecl basic_istream_wchar_getline_bstr_delim(
9546 basic_istream_wchar *istream, basic_string_wchar *str, wchar_t delim)
9548 IOSB_iostate state = IOSTATE_failbit;
9551 TRACE("(%p %p %c)\n", istream, str, delim);
9553 if(basic_istream_wchar_sentry_create(istream, TRUE)) {
9554 MSVCP_basic_string_wchar_clear(str);
9556 c = basic_istream_wchar_get(istream);
9558 state = IOSTATE_goodbit;
9560 for(; c!=delim && c!=WEOF; c = basic_istream_wchar_get(istream)) {
9561 state = IOSTATE_goodbit;
9562 MSVCP_basic_string_wchar_append_ch(str, c);
9565 basic_istream_wchar_sentry_destroy(istream);
9567 basic_ios_wchar_setstate(basic_istream_wchar_get_basic_ios(istream),
9568 state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
9572 /* ??$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 */
9573 /* ??$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 */
9574 /* ??$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 */
9575 /* ??$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 */
9576 basic_istream_wchar* __cdecl basic_istream_wchar_getline_bstr(
9577 basic_istream_wchar *istream, basic_string_wchar *str)
9579 return basic_istream_wchar_getline_bstr_delim(istream, str, '\n');
9582 static basic_istream_wchar* basic_istream_read_bstr(basic_istream_wchar *istream,
9583 basic_string_wchar *str, const ctype_wchar *ctype)
9585 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istream);
9586 IOSB_iostate state = IOSTATE_failbit;
9589 TRACE("(%p %p)\n", istream, str);
9591 if(basic_istream_wchar_sentry_create(istream, FALSE)) {
9592 MSVCP_size_t count = ios_base_width_get(&base->base);
9597 MSVCP_basic_string_wchar_clear(str);
9599 for(c = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base));
9600 c!=WEOF && !ctype_wchar_is_ch(ctype, _SPACE|_BLANK, c) && count>0;
9601 c = basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base)), count--) {
9602 state = IOSTATE_goodbit;
9603 MSVCP_basic_string_wchar_append_ch(str, c);
9606 basic_istream_wchar_sentry_destroy(istream);
9608 ios_base_width_set(&base->base, 0);
9609 basic_ios_wchar_setstate(base, state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
9613 /* ??$?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 */
9614 /* ??$?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 */
9615 basic_istream_wchar* __cdecl basic_istream_wchar_read_bstr(
9616 basic_istream_wchar *istream, basic_string_wchar *str)
9618 return basic_istream_read_bstr(istream, str, ctype_wchar_use_facet(
9619 basic_istream_wchar_get_basic_ios(istream)->strbuf->loc));
9622 /* ??$?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 */
9623 /* ??$?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 */
9624 basic_istream_wchar* __cdecl basic_istream_short_read_bstr(
9625 basic_istream_wchar *istream, basic_string_wchar *str)
9627 return basic_istream_read_bstr(istream, str, ctype_short_use_facet(
9628 basic_istream_wchar_get_basic_ios(istream)->strbuf->loc));
9631 static basic_istream_wchar* basic_istream_read_str(basic_istream_wchar *istream, wchar_t *str, const ctype_wchar *ctype)
9633 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istream);
9634 IOSB_iostate state = IOSTATE_failbit;
9635 unsigned short c = '\n';
9637 TRACE("(%p %p)\n", istream, str);
9639 if(basic_istream_wchar_sentry_create(istream, FALSE)) {
9640 MSVCP_size_t count = ios_base_width_get(&base->base)-1;
9642 for(c = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base));
9643 c!=WEOF && !ctype_wchar_is_ch(ctype, _SPACE|_BLANK, c) && count>0;
9644 c = basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base)), count--) {
9645 state = IOSTATE_goodbit;
9649 basic_istream_wchar_sentry_destroy(istream);
9652 ios_base_width_set(&base->base, 0);
9653 basic_ios_wchar_setstate(base, state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
9657 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@PA_W@Z */
9658 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@PEA_W@Z */
9659 basic_istream_wchar* __cdecl basic_istream_wchar_read_str(basic_istream_wchar *istream, wchar_t *str)
9661 return basic_istream_read_str(istream, str, ctype_wchar_use_facet(
9662 basic_istream_wchar_get_basic_ios(istream)->strbuf->loc));
9665 /* ??$?5GU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@PAG@Z */
9666 /* ??$?5GU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@PEAG@Z */
9667 basic_istream_wchar* __cdecl basic_istream_short_read_str(basic_istream_wchar *istream, wchar_t *str)
9669 return basic_istream_read_str(istream, str, ctype_short_use_facet(
9670 basic_istream_wchar_get_basic_ios(istream)->strbuf->loc));
9673 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AA_W@Z */
9674 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEA_W@Z */
9675 /* ??$?5GU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAG@Z */
9676 /* ??$?5GU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAG@Z */
9677 basic_istream_wchar* __cdecl basic_istream_wchar_read_ch(basic_istream_wchar *istream, wchar_t *ch)
9679 IOSB_iostate state = IOSTATE_failbit;
9680 unsigned short c = 0;
9682 TRACE("(%p %p)\n", istream, ch);
9684 if(basic_istream_wchar_sentry_create(istream, FALSE)) {
9685 c = basic_streambuf_wchar_sbumpc(basic_ios_wchar_rdbuf_get(
9686 basic_istream_wchar_get_basic_ios(istream)));
9688 state = IOSTATE_goodbit;
9692 basic_istream_wchar_sentry_destroy(istream);
9694 basic_ios_wchar_setstate(basic_istream_wchar_get_basic_ios(istream),
9695 state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
9699 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
9700 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
9701 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
9702 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
9703 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_streambuf, 8)
9704 basic_istream_wchar* __thiscall basic_istream_wchar_read_streambuf(
9705 basic_istream_wchar *this, basic_streambuf_wchar *streambuf)
9707 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9708 IOSB_iostate state = IOSTATE_failbit;
9709 unsigned short c = '\n';
9711 TRACE("(%p %p)\n", this, streambuf);
9713 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9714 for(c = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base)); c!=WEOF;
9715 c = basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base))) {
9716 state = IOSTATE_goodbit;
9717 if(basic_streambuf_wchar_sputc(streambuf, c) == WEOF)
9721 basic_istream_wchar_sentry_destroy(this);
9723 basic_ios_wchar_setstate(base, state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
9727 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
9728 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
9729 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
9730 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
9731 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func, 8)
9732 basic_istream_wchar* __thiscall basic_istream_wchar_read_func(basic_istream_wchar *this,
9733 basic_istream_wchar* (__cdecl *pfunc)(basic_istream_wchar*))
9735 TRACE("(%p %p)\n", this, pfunc);
9740 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AAV21@@Z@Z */
9741 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z */
9742 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@GU?$char_traits@G@std@@@1@AAV21@@Z@Z */
9743 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z */
9744 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func_basic_ios, 8)
9745 basic_istream_wchar* __thiscall basic_istream_wchar_read_func_basic_ios(basic_istream_wchar *this,
9746 basic_ios_wchar* (__cdecl *pfunc)(basic_ios_wchar*))
9748 TRACE("(%p %p)\n", this, pfunc);
9749 pfunc(basic_istream_wchar_get_basic_ios(this));
9753 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
9754 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
9755 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
9756 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
9757 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func_ios_base, 8)
9758 basic_istream_wchar* __thiscall basic_istream_wchar_read_func_ios_base(
9759 basic_istream_wchar *this, ios_base* (__cdecl *pfunc)(ios_base*))
9761 TRACE("(%p %p)\n", this, pfunc);
9762 pfunc(&basic_istream_wchar_get_basic_ios(this)->base);
9766 static inline basic_ios_char* basic_iostream_char_to_basic_ios(basic_iostream_char *ptr)
9768 return (basic_ios_char*)((char*)ptr+basic_iostream_char_vbtable1[1]);
9771 static inline basic_iostream_char* basic_iostream_char_from_basic_ios(basic_ios_char *ptr)
9773 return (basic_iostream_char*)((char*)ptr-basic_iostream_char_vbtable1[1]);
9776 /* ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
9777 /* ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
9778 DEFINE_THISCALL_WRAPPER(basic_iostream_char_ctor, 12)
9779 basic_iostream_char* __thiscall basic_iostream_char_ctor(basic_iostream_char *this, basic_streambuf_char *strbuf, MSVCP_bool virt_init)
9781 basic_ios_char *basic_ios;
9783 TRACE("(%p %p %d)\n", this, strbuf, virt_init);
9786 this->base1.vbtable = basic_iostream_char_vbtable1;
9787 this->base2.vbtable = basic_iostream_char_vbtable2;
9788 basic_ios = basic_istream_char_get_basic_ios(&this->base1);
9789 basic_ios_char_ctor(basic_ios);
9791 basic_ios = basic_istream_char_get_basic_ios(&this->base1);
9794 basic_ios->base.vtable = &MSVCP_basic_iostream_char_vtable;
9796 basic_istream_char_ctor(&this->base1, strbuf, FALSE, FALSE);
9797 basic_ostream_char_ctor_uninitialized(&this->base2, 0, FALSE, FALSE);
9801 /* ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
9802 /* ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
9803 DEFINE_THISCALL_WRAPPER(basic_iostream_char_dtor, 4)
9804 void __thiscall basic_iostream_char_dtor(basic_ios_char *base)
9806 basic_iostream_char *this = basic_iostream_char_from_basic_ios(base);
9808 TRACE("(%p)\n", this);
9809 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base2));
9810 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base1));
9813 /* ??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
9814 /* ??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
9815 DEFINE_THISCALL_WRAPPER(basic_iostream_char_vbase_dtor, 4)
9816 void __thiscall basic_iostream_char_vbase_dtor(basic_iostream_char *this)
9818 TRACE("(%p)\n", this);
9819 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(this));
9820 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base1));
9823 DEFINE_THISCALL_WRAPPER(basic_iostream_char_vector_dtor, 8)
9824 basic_iostream_char* __thiscall basic_iostream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
9826 basic_iostream_char *this = basic_iostream_char_from_basic_ios(base);
9828 TRACE("(%p %x)\n", this, flags);
9831 /* we have an array, with the number of elements stored before the first object */
9832 INT_PTR i, *ptr = (INT_PTR *)this-1;
9834 for(i=*ptr-1; i>=0; i--)
9835 basic_iostream_char_vbase_dtor(this+i);
9836 MSVCRT_operator_delete(ptr);
9838 basic_iostream_char_vbase_dtor(this);
9840 MSVCRT_operator_delete(this);
9846 static inline basic_ios_wchar* basic_iostream_wchar_to_basic_ios(basic_iostream_wchar *ptr)
9848 return (basic_ios_wchar*)((char*)ptr+basic_iostream_wchar_vbtable1[1]);
9851 static inline basic_iostream_wchar* basic_iostream_wchar_from_basic_ios(basic_ios_wchar *ptr)
9853 return (basic_iostream_wchar*)((char*)ptr-basic_iostream_wchar_vbtable1[1]);
9856 /* ??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
9857 /* ??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
9858 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_ctor, 12)
9859 basic_iostream_wchar* __thiscall basic_iostream_wchar_ctor(basic_iostream_wchar *this,
9860 basic_streambuf_wchar *strbuf, MSVCP_bool virt_init)
9862 basic_ios_wchar *basic_ios;
9864 TRACE("(%p %p %d)\n", this, strbuf, virt_init);
9867 this->base1.vbtable = basic_iostream_wchar_vbtable1;
9868 this->base2.vbtable = basic_iostream_wchar_vbtable2;
9869 basic_ios = basic_istream_wchar_get_basic_ios(&this->base1);
9870 basic_ios_wchar_ctor(basic_ios);
9872 basic_ios = basic_istream_wchar_get_basic_ios(&this->base1);
9875 basic_istream_wchar_ctor(&this->base1, strbuf, FALSE, FALSE);
9876 basic_ostream_wchar_ctor_uninitialized(&this->base2, 0, FALSE, FALSE);
9878 basic_ios->base.vtable = &MSVCP_basic_iostream_wchar_vtable;
9882 /* ??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
9883 /* ??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
9884 DEFINE_THISCALL_WRAPPER(basic_iostream_short_ctor, 12)
9885 basic_iostream_wchar* __thiscall basic_iostream_short_ctor(basic_iostream_wchar *this,
9886 basic_streambuf_wchar *strbuf, MSVCP_bool virt_init)
9888 basic_iostream_wchar_ctor(this, strbuf, virt_init);
9889 basic_istream_wchar_get_basic_ios(&this->base1)->base.vtable = &MSVCP_basic_iostream_short_vtable;
9893 /* ??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
9894 /* ??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
9895 /* ??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UAE@XZ */
9896 /* ??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
9897 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_dtor, 4)
9898 void __thiscall basic_iostream_wchar_dtor(basic_ios_wchar *base)
9900 basic_iostream_wchar *this = basic_iostream_wchar_from_basic_ios(base);
9902 TRACE("(%p)\n", this);
9903 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base2));
9904 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base1));
9907 /* ??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
9908 /* ??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
9909 /* ??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
9910 /* ??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
9911 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_vbase_dtor, 4)
9912 void __thiscall basic_iostream_wchar_vbase_dtor(basic_iostream_wchar *this)
9914 TRACE("(%p)\n", this);
9915 basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(this));
9916 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base1));
9919 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_vector_dtor, 8)
9920 basic_iostream_wchar* __thiscall basic_iostream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
9922 basic_iostream_wchar *this = basic_iostream_wchar_from_basic_ios(base);
9924 TRACE("(%p %x)\n", this, flags);
9927 /* we have an array, with the number of elements stored before the first object */
9928 INT_PTR i, *ptr = (INT_PTR *)this-1;
9930 for(i=*ptr-1; i>=0; i--)
9931 basic_iostream_wchar_vbase_dtor(this+i);
9932 MSVCRT_operator_delete(ptr);
9934 basic_iostream_wchar_vbase_dtor(this);
9936 MSVCRT_operator_delete(this);
9942 static inline basic_ios_char* basic_ofstream_char_to_basic_ios(basic_ofstream_char *ptr)
9944 return (basic_ios_char*)((char*)ptr+basic_ofstream_char_vbtable[1]);
9947 static inline basic_ofstream_char* basic_ofstream_char_from_basic_ios(basic_ios_char *ptr)
9949 return (basic_ofstream_char*)((char*)ptr-basic_ofstream_char_vbtable[1]);
9952 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
9953 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
9954 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor, 8)
9955 basic_ofstream_char* __thiscall basic_ofstream_char_ctor(basic_ofstream_char *this, MSVCP_bool virt_init)
9957 basic_ios_char *basic_ios;
9959 TRACE("(%p %d)\n", this, virt_init);
9962 this->base.vbtable = basic_ofstream_char_vbtable;
9963 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
9964 basic_ios_char_ctor(basic_ios);
9966 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
9969 basic_filebuf_char_ctor(&this->filebuf);
9970 basic_ostream_char_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
9971 basic_ios->base.vtable = &MSVCP_basic_ofstream_char_vtable;
9975 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
9976 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
9977 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_file, 12)
9978 basic_ofstream_char* __thiscall basic_ofstream_char_ctor_file(
9979 basic_ofstream_char *this, FILE *file, MSVCP_bool virt_init)
9981 basic_ios_char *basic_ios;
9983 TRACE("(%p %p %d)\n", this, file, virt_init);
9986 this->base.vbtable = basic_ofstream_char_vbtable;
9987 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
9988 basic_ios_char_ctor(basic_ios);
9990 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
9993 basic_filebuf_char_ctor_file(&this->filebuf, file);
9994 basic_ostream_char_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
9995 basic_ios->base.vtable = &MSVCP_basic_ofstream_char_vtable;
9999 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
10000 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
10001 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_name, 20)
10002 basic_ofstream_char* __thiscall basic_ofstream_char_ctor_name(basic_ofstream_char *this,
10003 const char *name, int mode, int prot, MSVCP_bool virt_init)
10005 TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
10007 basic_ofstream_char_ctor(this, virt_init);
10009 if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_out, prot)) {
10010 basic_ios_char *basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10011 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10016 /* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
10017 /* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
10018 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_dtor, 4)
10019 void __thiscall basic_ofstream_char_dtor(basic_ios_char *base)
10021 basic_ofstream_char *this = basic_ofstream_char_from_basic_ios(base);
10023 TRACE("(%p)\n", this);
10025 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base));
10026 basic_filebuf_char_dtor(&this->filebuf);
10029 /* ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10030 /* ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10031 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_vbase_dtor, 4)
10032 void __thiscall basic_ofstream_char_vbase_dtor(basic_ofstream_char *this)
10034 TRACE("(%p)\n", this);
10036 basic_ofstream_char_dtor(basic_ofstream_char_to_basic_ios(this));
10037 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base));
10040 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_vector_dtor, 8)
10041 basic_ofstream_char* __thiscall basic_ofstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
10043 basic_ofstream_char *this = basic_ofstream_char_from_basic_ios(base);
10045 TRACE("(%p %x)\n", this, flags);
10048 /* we have an array, with the number of elements stored before the first object */
10049 INT_PTR i, *ptr = (INT_PTR *)this-1;
10051 for(i=*ptr-1; i>=0; i--)
10052 basic_ofstream_char_vbase_dtor(this+i);
10053 MSVCRT_operator_delete(ptr);
10055 basic_ofstream_char_vbase_dtor(this);
10057 MSVCRT_operator_delete(this);
10063 /* ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10064 /* ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10065 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_close, 4)
10066 void __thiscall basic_ofstream_char_close(basic_ofstream_char *this)
10068 TRACE("(%p)\n", this);
10070 if(!basic_filebuf_char_close(&this->filebuf)) {
10071 basic_ios_char *basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10072 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10076 /* ?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
10077 /* ?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
10078 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_is_open, 4)
10079 MSVCP_bool __thiscall basic_ofstream_char_is_open(const basic_ofstream_char *this)
10081 TRACE("(%p)\n", this);
10082 return basic_filebuf_char_is_open(&this->filebuf);
10085 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
10086 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
10087 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open, 16)
10088 void __thiscall basic_ofstream_char_open(basic_ofstream_char *this,
10089 const char *name, int mode, int prot)
10091 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
10093 if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_out, prot)) {
10094 basic_ios_char *basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10095 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10099 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
10100 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
10101 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open_old, 12)
10102 void __thiscall basic_ofstream_char_open_old(basic_ofstream_char *this,
10103 const char *name, unsigned int mode)
10105 basic_ofstream_char_open(this, name, mode, _SH_DENYNO);
10108 /* ?rdbuf@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10109 /* ?rdbuf@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10110 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_rdbuf, 4)
10111 basic_filebuf_char* __thiscall basic_ofstream_char_rdbuf(const basic_ofstream_char *this)
10113 TRACE("(%p)\n", this);
10114 return (basic_filebuf_char*)&this->filebuf;
10117 static inline basic_ios_wchar* basic_ofstream_wchar_to_basic_ios(basic_ofstream_wchar *ptr)
10119 return (basic_ios_wchar*)((char*)ptr+basic_ofstream_wchar_vbtable[1]);
10122 static inline basic_ofstream_wchar* basic_ofstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
10124 return (basic_ofstream_wchar*)((char*)ptr-basic_ofstream_wchar_vbtable[1]);
10127 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
10128 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
10129 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor, 8)
10130 basic_ofstream_wchar* __thiscall basic_ofstream_wchar_ctor(basic_ofstream_wchar *this, MSVCP_bool virt_init)
10132 basic_ios_wchar *basic_ios;
10134 TRACE("(%p %d)\n", this, virt_init);
10137 this->base.vbtable = basic_ofstream_wchar_vbtable;
10138 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10139 basic_ios_wchar_ctor(basic_ios);
10141 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10144 basic_filebuf_wchar_ctor(&this->filebuf);
10145 basic_ostream_wchar_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10146 basic_ios->base.vtable = &MSVCP_basic_ofstream_wchar_vtable;
10150 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
10151 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
10152 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor, 8)
10153 basic_ofstream_wchar* __thiscall basic_ofstream_short_ctor(basic_ofstream_wchar *this, MSVCP_bool virt_init)
10155 basic_ofstream_wchar_ctor(this, virt_init);
10156 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ofstream_short_vtable;
10160 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
10161 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10162 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor_file, 12)
10163 basic_ofstream_wchar* __thiscall basic_ofstream_wchar_ctor_file(
10164 basic_ofstream_wchar *this, FILE *file, MSVCP_bool virt_init)
10166 basic_ios_wchar *basic_ios;
10168 TRACE("(%p %p %d)\n", this, file, virt_init);
10171 this->base.vbtable = basic_ofstream_wchar_vbtable;
10172 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10173 basic_ios_wchar_ctor(basic_ios);
10175 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10178 basic_filebuf_wchar_ctor_file(&this->filebuf, file);
10179 basic_ostream_wchar_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10180 basic_ios->base.vtable = &MSVCP_basic_ofstream_wchar_vtable;
10184 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
10185 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10186 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor_file, 12)
10187 basic_ofstream_wchar* __thiscall basic_ofstream_short_ctor_file(
10188 basic_ofstream_wchar *this, FILE *file, MSVCP_bool virt_init)
10190 basic_ofstream_wchar_ctor_file(this, file, virt_init);
10191 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ofstream_short_vtable;
10195 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@PBDHH@Z */
10196 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBDHH@Z */
10197 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor_name, 20)
10198 basic_ofstream_wchar* __thiscall basic_ofstream_wchar_ctor_name(basic_ofstream_wchar *this,
10199 const char *name, int mode, int prot, MSVCP_bool virt_init)
10201 TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
10203 basic_ofstream_wchar_ctor(this, virt_init);
10205 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_out, prot)) {
10206 basic_ios_wchar *basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10207 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10212 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PBDHH@Z */
10213 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDHH@Z */
10214 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor_name, 20)
10215 basic_ofstream_wchar* __thiscall basic_ofstream_short_ctor_name(basic_ofstream_wchar *this,
10216 const char *name, int mode, int prot, MSVCP_bool virt_init)
10218 basic_ofstream_wchar_ctor_name(this, name, mode, prot, virt_init);
10219 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ofstream_short_vtable;
10223 /* ??1?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
10224 /* ??1?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
10225 /* ??1?$basic_ofstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
10226 /* ??1?$basic_ofstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
10227 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_dtor, 4)
10228 void __thiscall basic_ofstream_wchar_dtor(basic_ios_wchar *base)
10230 basic_ofstream_wchar *this = basic_ofstream_wchar_from_basic_ios(base);
10232 TRACE("(%p)\n", this);
10234 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base));
10235 basic_filebuf_wchar_dtor(&this->filebuf);
10238 /* ??_D?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10239 /* ??_D?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10240 /* ??_D?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10241 /* ??_D?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10242 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_vbase_dtor, 4)
10243 void __thiscall basic_ofstream_wchar_vbase_dtor(basic_ofstream_wchar *this)
10245 TRACE("(%p)\n", this);
10247 basic_ofstream_wchar_dtor(basic_ofstream_wchar_to_basic_ios(this));
10248 basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(&this->base));
10251 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_vector_dtor, 8)
10252 basic_ofstream_wchar* __thiscall basic_ofstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
10254 basic_ofstream_wchar *this = basic_ofstream_wchar_from_basic_ios(base);
10256 TRACE("(%p %x)\n", this, flags);
10259 /* we have an array, with the number of elements stored before the first object */
10260 INT_PTR i, *ptr = (INT_PTR *)this-1;
10262 for(i=*ptr-1; i>=0; i--)
10263 basic_ofstream_wchar_vbase_dtor(this+i);
10264 MSVCRT_operator_delete(ptr);
10266 basic_ofstream_wchar_vbase_dtor(this);
10268 MSVCRT_operator_delete(this);
10274 /* ?close@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10275 /* ?close@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10276 /* ?close@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10277 /* ?close@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10278 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_close, 4)
10279 void __thiscall basic_ofstream_wchar_close(basic_ofstream_wchar *this)
10281 TRACE("(%p)\n", this);
10283 if(!basic_filebuf_wchar_close(&this->filebuf)) {
10284 basic_ios_wchar *basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10285 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10289 /* ?is_open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
10290 /* ?is_open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
10291 /* ?is_open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
10292 /* ?is_open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
10293 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_is_open, 4)
10294 MSVCP_bool __thiscall basic_ofstream_wchar_is_open(const basic_ofstream_wchar *this)
10296 TRACE("(%p)\n", this);
10297 return basic_filebuf_wchar_is_open(&this->filebuf);
10300 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDHH@Z */
10301 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDHH@Z */
10302 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBDHH@Z */
10303 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDHH@Z */
10304 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_open, 16)
10305 void __thiscall basic_ofstream_wchar_open(basic_ofstream_wchar *this,
10306 const char *name, int mode, int prot)
10308 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
10310 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_out, prot)) {
10311 basic_ios_wchar *basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10312 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10316 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDI@Z */
10317 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDI@Z */
10318 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBDI@Z */
10319 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDI@Z */
10320 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_open_old, 12)
10321 void __thiscall basic_ofstream_wchar_open_old(basic_ofstream_wchar *this,
10322 const char *name, unsigned int mode)
10324 basic_ofstream_wchar_open(this, name, mode, _SH_DENYNO);
10327 /* ?rdbuf@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10328 /* ?rdbuf@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10329 /* ?rdbuf@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10330 /* ?rdbuf@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10331 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_rdbuf, 4)
10332 basic_filebuf_wchar* __thiscall basic_ofstream_wchar_rdbuf(const basic_ofstream_wchar *this)
10334 TRACE("(%p)\n", this);
10335 return (basic_filebuf_wchar*)&this->filebuf;
10338 static inline basic_ios_char* basic_ifstream_char_to_basic_ios(basic_ifstream_char *ptr)
10340 return (basic_ios_char*)((char*)ptr+basic_ifstream_char_vbtable[1]);
10343 static inline basic_ifstream_char* basic_ifstream_char_from_basic_ios(basic_ios_char *ptr)
10345 return (basic_ifstream_char*)((char*)ptr-basic_ifstream_char_vbtable[1]);
10348 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
10349 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
10350 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor, 8)
10351 basic_ifstream_char* __thiscall basic_ifstream_char_ctor(basic_ifstream_char *this, MSVCP_bool virt_init)
10353 basic_ios_char *basic_ios;
10355 TRACE("(%p %d)\n", this, virt_init);
10358 this->base.vbtable = basic_ifstream_char_vbtable;
10359 basic_ios = basic_istream_char_get_basic_ios(&this->base);
10360 basic_ios_char_ctor(basic_ios);
10362 basic_ios = basic_istream_char_get_basic_ios(&this->base);
10365 basic_filebuf_char_ctor(&this->filebuf);
10366 basic_istream_char_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10367 basic_ios->base.vtable = &MSVCP_basic_ifstream_char_vtable;
10371 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
10372 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10373 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_file, 12)
10374 basic_ifstream_char* __thiscall basic_ifstream_char_ctor_file(
10375 basic_ifstream_char *this, FILE *file, MSVCP_bool virt_init)
10377 basic_ios_char *basic_ios;
10379 TRACE("(%p %p %d)\n", this, file, virt_init);
10382 this->base.vbtable = basic_ifstream_char_vbtable;
10383 basic_ios = basic_istream_char_get_basic_ios(&this->base);
10384 basic_ios_char_ctor(basic_ios);
10386 basic_ios = basic_istream_char_get_basic_ios(&this->base);
10389 basic_filebuf_char_ctor_file(&this->filebuf, file);
10390 basic_istream_char_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10391 basic_ios->base.vtable = &MSVCP_basic_ifstream_char_vtable;
10395 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
10396 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
10397 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_name, 20)
10398 basic_ifstream_char* __thiscall basic_ifstream_char_ctor_name(basic_ifstream_char *this,
10399 const char *name, int mode, int prot, MSVCP_bool virt_init)
10401 TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
10403 basic_ifstream_char_ctor(this, virt_init);
10405 if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_in, prot)) {
10406 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base);
10407 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10412 /* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
10413 /* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
10414 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_dtor, 4)
10415 void __thiscall basic_ifstream_char_dtor(basic_ios_char *base)
10417 basic_ifstream_char *this = basic_ifstream_char_from_basic_ios(base);
10419 TRACE("(%p)\n", this);
10421 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base));
10422 basic_filebuf_char_dtor(&this->filebuf);
10425 /* ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10426 /* ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10427 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_vbase_dtor, 4)
10428 void __thiscall basic_ifstream_char_vbase_dtor(basic_ifstream_char *this)
10430 TRACE("(%p)\n", this);
10432 basic_ifstream_char_dtor(basic_ifstream_char_to_basic_ios(this));
10433 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base));
10436 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_vector_dtor, 8)
10437 basic_ifstream_char* __thiscall basic_ifstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
10439 basic_ifstream_char *this = basic_ifstream_char_from_basic_ios(base);
10441 TRACE("(%p %x)\n", this, flags);
10444 /* we have an array, with the number of elements stored before the first object */
10445 INT_PTR i, *ptr = (INT_PTR *)this-1;
10447 for(i=*ptr-1; i>=0; i--)
10448 basic_ifstream_char_vbase_dtor(this+i);
10449 MSVCRT_operator_delete(ptr);
10451 basic_ifstream_char_vbase_dtor(this);
10453 MSVCRT_operator_delete(this);
10459 /* ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10460 /* ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10461 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_close, 4)
10462 void __thiscall basic_ifstream_char_close(basic_ifstream_char *this)
10464 TRACE("(%p)\n", this);
10466 if(!basic_filebuf_char_close(&this->filebuf)) {
10467 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base);
10468 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10472 /* ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
10473 /* ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
10474 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_is_open, 4)
10475 MSVCP_bool __thiscall basic_ifstream_char_is_open(const basic_ifstream_char *this)
10477 TRACE("(%p)\n", this);
10478 return basic_filebuf_char_is_open(&this->filebuf);
10481 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
10482 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
10483 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open, 16)
10484 void __thiscall basic_ifstream_char_open(basic_ifstream_char *this,
10485 const char *name, int mode, int prot)
10487 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
10489 if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_in, prot)) {
10490 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base);
10491 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10495 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
10496 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
10497 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open_old, 12)
10498 void __thiscall basic_ifstream_char_open_old(basic_ifstream_char *this,
10499 const char *name, unsigned int mode)
10501 basic_ifstream_char_open(this, name, mode, _SH_DENYNO);
10504 /* ?rdbuf@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10505 /* ?rdbuf@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10506 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_rdbuf, 4)
10507 basic_filebuf_char* __thiscall basic_ifstream_char_rdbuf(const basic_ifstream_char *this)
10509 TRACE("(%p)\n", this);
10510 return (basic_filebuf_char*)&this->filebuf;
10513 static inline basic_ios_wchar* basic_ifstream_wchar_to_basic_ios(basic_ifstream_wchar *ptr)
10515 return (basic_ios_wchar*)((char*)ptr+basic_ifstream_wchar_vbtable[1]);
10518 static inline basic_ifstream_wchar* basic_ifstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
10520 return (basic_ifstream_wchar*)((char*)ptr-basic_ifstream_wchar_vbtable[1]);
10523 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
10524 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
10525 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor, 8)
10526 basic_ifstream_wchar* __thiscall basic_ifstream_wchar_ctor(basic_ifstream_wchar *this, MSVCP_bool virt_init)
10528 basic_ios_wchar *basic_ios;
10530 TRACE("(%p %d)\n", this, virt_init);
10533 this->base.vbtable = basic_ifstream_wchar_vbtable;
10534 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10535 basic_ios_wchar_ctor(basic_ios);
10537 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10540 basic_filebuf_wchar_ctor(&this->filebuf);
10541 basic_istream_wchar_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10542 basic_ios->base.vtable = &MSVCP_basic_ifstream_wchar_vtable;
10546 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
10547 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
10548 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor, 8)
10549 basic_ifstream_wchar* __thiscall basic_ifstream_short_ctor(basic_ifstream_wchar *this, MSVCP_bool virt_init)
10551 basic_ifstream_wchar_ctor(this, virt_init);
10552 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ifstream_short_vtable;
10556 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
10557 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10558 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor_file, 12)
10559 basic_ifstream_wchar* __thiscall basic_ifstream_wchar_ctor_file(
10560 basic_ifstream_wchar *this, FILE *file, MSVCP_bool virt_init)
10562 basic_ios_wchar *basic_ios;
10564 TRACE("(%p %p %d)\n", this, file, virt_init);
10567 this->base.vbtable = basic_ifstream_wchar_vbtable;
10568 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10569 basic_ios_wchar_ctor(basic_ios);
10571 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10574 basic_filebuf_wchar_ctor_file(&this->filebuf, file);
10575 basic_istream_wchar_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10576 basic_ios->base.vtable = &MSVCP_basic_ifstream_wchar_vtable;
10580 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
10581 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10582 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor_file, 12)
10583 basic_ifstream_wchar* __thiscall basic_ifstream_short_ctor_file(
10584 basic_ifstream_wchar *this, FILE *file, MSVCP_bool virt_init)
10586 basic_ifstream_wchar_ctor_file(this, file, virt_init);
10587 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ifstream_short_vtable;
10591 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@PBDHH@Z */
10592 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBDHH@Z */
10593 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor_name, 20)
10594 basic_ifstream_wchar* __thiscall basic_ifstream_wchar_ctor_name(basic_ifstream_wchar *this,
10595 const char *name, int mode, int prot, MSVCP_bool virt_init)
10597 TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
10599 basic_ifstream_wchar_ctor(this, virt_init);
10601 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_in, prot)) {
10602 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10603 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10608 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PBDHH@Z */
10609 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDHH@Z */
10610 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor_name, 20)
10611 basic_ifstream_wchar* __thiscall basic_ifstream_short_ctor_name(basic_ifstream_wchar *this,
10612 const char *name, int mode, int prot, MSVCP_bool virt_init)
10614 basic_ifstream_wchar_ctor_name(this, name, mode, prot, virt_init);
10615 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ifstream_short_vtable;
10619 /* ??1?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
10620 /* ??1?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
10621 /* ??1?$basic_ifstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
10622 /* ??1?$basic_ifstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
10623 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_dtor, 4)
10624 void __thiscall basic_ifstream_wchar_dtor(basic_ios_wchar *base)
10626 basic_ifstream_wchar *this = basic_ifstream_wchar_from_basic_ios(base);
10628 TRACE("(%p)\n", this);
10630 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base));
10631 basic_filebuf_wchar_dtor(&this->filebuf);
10634 /* ??_D?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10635 /* ??_D?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10636 /* ??_D?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10637 /* ??_D?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10638 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_vbase_dtor, 4)
10639 void __thiscall basic_ifstream_wchar_vbase_dtor(basic_ifstream_wchar *this)
10641 TRACE("(%p)\n", this);
10643 basic_ifstream_wchar_dtor(basic_ifstream_wchar_to_basic_ios(this));
10644 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base));
10647 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_vector_dtor, 8)
10648 basic_ifstream_wchar* __thiscall basic_ifstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
10650 basic_ifstream_wchar *this = basic_ifstream_wchar_from_basic_ios(base);
10652 TRACE("(%p %x)\n", this, flags);
10655 /* we have an array, with the number of elements stored before the first object */
10656 INT_PTR i, *ptr = (INT_PTR *)this-1;
10658 for(i=*ptr-1; i>=0; i--)
10659 basic_ifstream_wchar_vbase_dtor(this+i);
10660 MSVCRT_operator_delete(ptr);
10662 basic_ifstream_wchar_vbase_dtor(this);
10664 MSVCRT_operator_delete(this);
10670 /* ?close@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10671 /* ?close@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10672 /* ?close@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10673 /* ?close@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10674 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_close, 4)
10675 void __thiscall basic_ifstream_wchar_close(basic_ifstream_wchar *this)
10677 TRACE("(%p)\n", this);
10679 if(!basic_filebuf_wchar_close(&this->filebuf)) {
10680 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10681 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10685 /* ?is_open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
10686 /* ?is_open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
10687 /* ?is_open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
10688 /* ?is_open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
10689 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_is_open, 4)
10690 MSVCP_bool __thiscall basic_ifstream_wchar_is_open(const basic_ifstream_wchar *this)
10692 TRACE("(%p)\n", this);
10693 return basic_filebuf_wchar_is_open(&this->filebuf);
10696 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDHH@Z */
10697 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDHH@Z */
10698 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBDHH@Z */
10699 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDHH@Z */
10700 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_open, 16)
10701 void __thiscall basic_ifstream_wchar_open(basic_ifstream_wchar *this,
10702 const char *name, int mode, int prot)
10704 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
10706 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_in, prot)) {
10707 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10708 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10712 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDI@Z */
10713 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDI@Z */
10714 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBDI@Z */
10715 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDI@Z */
10716 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_open_old, 12)
10717 void __thiscall basic_ifstream_wchar_open_old(basic_ifstream_wchar *this,
10718 const char *name, unsigned int mode)
10720 basic_ifstream_wchar_open(this, name, mode, _SH_DENYNO);
10723 /* ?rdbuf@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10724 /* ?rdbuf@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10725 /* ?rdbuf@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10726 /* ?rdbuf@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10727 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_rdbuf, 4)
10728 basic_filebuf_wchar* __thiscall basic_ifstream_wchar_rdbuf(const basic_ifstream_wchar *this)
10730 TRACE("(%p)\n", this);
10731 return (basic_filebuf_wchar*)&this->filebuf;
10734 static inline basic_ios_char* basic_fstream_char_to_basic_ios(basic_fstream_char *ptr)
10736 return (basic_ios_char*)((char*)ptr+basic_fstream_char_vbtable1[1]);
10739 static inline basic_fstream_char* basic_fstream_char_from_basic_ios(basic_ios_char *ptr)
10741 return (basic_fstream_char*)((char*)ptr-basic_fstream_char_vbtable1[1]);
10744 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
10745 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
10746 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor, 8)
10747 basic_fstream_char* __thiscall basic_fstream_char_ctor(basic_fstream_char *this, MSVCP_bool virt_init)
10749 basic_ios_char *basic_ios;
10751 TRACE("(%p %d)\n", this, virt_init);
10754 this->base.base1.vbtable = basic_fstream_char_vbtable1;
10755 this->base.base2.vbtable = basic_fstream_char_vbtable2;
10756 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10757 basic_ios_char_ctor(basic_ios);
10759 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10762 basic_filebuf_char_ctor(&this->filebuf);
10763 basic_iostream_char_ctor(&this->base, &this->filebuf.base, FALSE);
10764 basic_ios->base.vtable = &MSVCP_basic_fstream_char_vtable;
10768 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
10769 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10770 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_file, 12)
10771 basic_fstream_char* __thiscall basic_fstream_char_ctor_file(basic_fstream_char *this,
10772 FILE *file, MSVCP_bool virt_init)
10774 basic_ios_char *basic_ios;
10776 TRACE("(%p %p %d)\n", this, file, virt_init);
10779 this->base.base1.vbtable = basic_fstream_char_vbtable1;
10780 this->base.base2.vbtable = basic_fstream_char_vbtable2;
10781 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10782 basic_ios_char_ctor(basic_ios);
10784 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10787 basic_filebuf_char_ctor_file(&this->filebuf, file);
10788 basic_iostream_char_ctor(&this->base, &this->filebuf.base, FALSE);
10789 basic_ios->base.vtable = &MSVCP_basic_fstream_char_vtable;
10793 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
10794 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
10795 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_name, 20)
10796 basic_fstream_char* __thiscall basic_fstream_char_ctor_name(basic_fstream_char *this,
10797 const char *name, int mode, int prot, MSVCP_bool virt_init)
10799 TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
10801 basic_fstream_char_ctor(this, virt_init);
10803 if(!basic_filebuf_char_open(&this->filebuf, name, mode, prot)) {
10804 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10805 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10810 /* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
10811 /* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
10812 DEFINE_THISCALL_WRAPPER(basic_fstream_char_dtor, 4)
10813 void __thiscall basic_fstream_char_dtor(basic_ios_char *base)
10815 basic_fstream_char *this = basic_fstream_char_from_basic_ios(base);
10817 TRACE("(%p)\n", this);
10819 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base));
10820 basic_filebuf_char_dtor(&this->filebuf);
10823 /* ??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10824 /* ??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10825 DEFINE_THISCALL_WRAPPER(basic_fstream_char_vbase_dtor, 4)
10826 void __thiscall basic_fstream_char_vbase_dtor(basic_fstream_char *this)
10828 TRACE("(%p)\n", this);
10830 basic_fstream_char_dtor(basic_fstream_char_to_basic_ios(this));
10831 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base.base1));
10834 DEFINE_THISCALL_WRAPPER(basic_fstream_char_vector_dtor, 8)
10835 basic_fstream_char* __thiscall basic_fstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
10837 basic_fstream_char *this = basic_fstream_char_from_basic_ios(base);
10839 TRACE("(%p %x)\n", this, flags);
10842 /* we have an array, with the number of elements stored before the first object */
10843 INT_PTR i, *ptr = (INT_PTR *)this-1;
10845 for(i=*ptr-1; i>=0; i--)
10846 basic_fstream_char_vbase_dtor(this+i);
10847 MSVCRT_operator_delete(ptr);
10849 basic_fstream_char_vbase_dtor(this);
10851 MSVCRT_operator_delete(this);
10857 /* ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10858 /* ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10859 DEFINE_THISCALL_WRAPPER(basic_fstream_char_close, 4)
10860 void __thiscall basic_fstream_char_close(basic_fstream_char *this)
10862 TRACE("(%p)\n", this);
10864 if(!basic_filebuf_char_close(&this->filebuf)) {
10865 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10866 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10870 /* ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
10871 /* ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
10872 DEFINE_THISCALL_WRAPPER(basic_fstream_char_is_open, 4)
10873 MSVCP_bool __thiscall basic_fstream_char_is_open(const basic_fstream_char *this)
10875 TRACE("(%p)\n", this);
10876 return basic_filebuf_char_is_open(&this->filebuf);
10879 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
10880 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
10881 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open, 16)
10882 void __thiscall basic_fstream_char_open(basic_fstream_char *this,
10883 const char *name, int mode, int prot)
10885 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
10887 if(!basic_filebuf_char_open(&this->filebuf, name, mode, prot)) {
10888 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10889 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10893 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
10894 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
10895 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open_old, 12)
10896 void __thiscall basic_fstream_char_open_old(basic_fstream_char *this,
10897 const char *name, unsigned int mode)
10899 basic_fstream_char_open(this, name, mode, _SH_DENYNO);
10902 /* ?rdbuf@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10903 /* ?rdbuf@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10904 DEFINE_THISCALL_WRAPPER(basic_fstream_char_rdbuf, 4)
10905 basic_filebuf_char* __thiscall basic_fstream_char_rdbuf(const basic_fstream_char *this)
10907 TRACE("(%p)\n", this);
10908 return (basic_filebuf_char*)&this->filebuf;
10911 static inline basic_ios_wchar* basic_fstream_wchar_to_basic_ios(basic_fstream_wchar *ptr)
10913 return (basic_ios_wchar*)((char*)ptr+basic_fstream_wchar_vbtable1[1]);
10916 static inline basic_fstream_wchar* basic_fstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
10918 return (basic_fstream_wchar*)((char*)ptr-basic_fstream_wchar_vbtable1[1]);
10921 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
10922 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
10923 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor, 8)
10924 basic_fstream_wchar* __thiscall basic_fstream_wchar_ctor(basic_fstream_wchar *this, MSVCP_bool virt_init)
10926 basic_ios_wchar *basic_ios;
10928 TRACE("(%p %d)\n", this, virt_init);
10931 this->base.base1.vbtable = basic_fstream_wchar_vbtable1;
10932 this->base.base2.vbtable = basic_fstream_wchar_vbtable2;
10933 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
10934 basic_ios_wchar_ctor(basic_ios);
10936 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
10939 basic_filebuf_wchar_ctor(&this->filebuf);
10940 basic_iostream_wchar_ctor(&this->base, &this->filebuf.base, FALSE);
10941 basic_ios->base.vtable = &MSVCP_basic_fstream_wchar_vtable;
10945 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
10946 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
10947 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor, 8)
10948 basic_fstream_wchar* __thiscall basic_fstream_short_ctor(basic_fstream_wchar *this, MSVCP_bool virt_init)
10950 basic_fstream_wchar_ctor(this, virt_init);
10951 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_fstream_short_vtable;
10955 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
10956 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10957 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor_file, 12)
10958 basic_fstream_wchar* __thiscall basic_fstream_wchar_ctor_file(basic_fstream_wchar *this,
10959 FILE *file, MSVCP_bool virt_init)
10961 basic_ios_wchar *basic_ios;
10963 TRACE("(%p %p %d)\n", this, file, virt_init);
10966 this->base.base1.vbtable = basic_fstream_wchar_vbtable1;
10967 this->base.base2.vbtable = basic_fstream_wchar_vbtable2;
10968 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
10969 basic_ios_wchar_ctor(basic_ios);
10971 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
10974 basic_filebuf_wchar_ctor_file(&this->filebuf, file);
10975 basic_iostream_wchar_ctor(&this->base, &this->filebuf.base, FALSE);
10976 basic_ios->base.vtable = &MSVCP_basic_fstream_wchar_vtable;
10980 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
10981 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10982 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor_file, 12)
10983 basic_fstream_wchar* __thiscall basic_fstream_short_ctor_file(basic_fstream_wchar *this,
10984 FILE *file, MSVCP_bool virt_init)
10986 basic_fstream_wchar_ctor_file(this, file, virt_init);
10987 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_fstream_short_vtable;
10991 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PB_WHH@Z */
10992 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEB_WHH@Z */
10993 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor_name, 20)
10994 basic_fstream_wchar* __thiscall basic_fstream_wchar_ctor_name(basic_fstream_wchar *this,
10995 const char *name, int mode, int prot, MSVCP_bool virt_init)
10997 TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
10999 basic_fstream_wchar_ctor(this, virt_init);
11001 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode, prot)) {
11002 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11003 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
11008 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PBGHH@Z */
11009 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEBGHH@Z */
11010 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor_name, 20)
11011 basic_fstream_wchar* __thiscall basic_fstream_short_ctor_name(basic_fstream_wchar *this,
11012 const char *name, int mode, int prot, MSVCP_bool virt_init)
11014 basic_fstream_wchar_ctor_name(this, name, mode, prot, virt_init);
11015 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_fstream_short_vtable;
11019 /* ??1?$basic_fstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
11020 /* ??1?$basic_fstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
11021 /* ??1?$basic_fstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
11022 /* ??1?$basic_fstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
11023 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_dtor, 4)
11024 void __thiscall basic_fstream_wchar_dtor(basic_ios_wchar *base)
11026 basic_fstream_wchar *this = basic_fstream_wchar_from_basic_ios(base);
11028 TRACE("(%p)\n", this);
11030 basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(&this->base));
11031 basic_filebuf_wchar_dtor(&this->filebuf);
11034 /* ??_D?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
11035 /* ??_D?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
11036 /* ??_D?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
11037 /* ??_D?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
11038 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_vbase_dtor, 4)
11039 void __thiscall basic_fstream_wchar_vbase_dtor(basic_fstream_wchar *this)
11041 TRACE("(%p)\n", this);
11043 basic_fstream_wchar_dtor(basic_fstream_wchar_to_basic_ios(this));
11044 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base.base1));
11047 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_vector_dtor, 8)
11048 basic_fstream_wchar* __thiscall basic_fstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
11050 basic_fstream_wchar *this = basic_fstream_wchar_from_basic_ios(base);
11052 TRACE("(%p %x)\n", this, flags);
11055 /* we have an array, with the number of elements stored before the first object */
11056 INT_PTR i, *ptr = (INT_PTR *)this-1;
11058 for(i=*ptr-1; i>=0; i--)
11059 basic_fstream_wchar_vbase_dtor(this+i);
11060 MSVCRT_operator_delete(ptr);
11062 basic_fstream_wchar_vbase_dtor(this);
11064 MSVCRT_operator_delete(this);
11070 /* ?close@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
11071 /* ?close@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
11072 /* ?close@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
11073 /* ?close@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
11074 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_close, 4)
11075 void __thiscall basic_fstream_wchar_close(basic_fstream_wchar *this)
11077 TRACE("(%p)\n", this);
11079 if(!basic_filebuf_wchar_close(&this->filebuf)) {
11080 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11081 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
11085 /* ?is_open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
11086 /* ?is_open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
11087 /* ?is_open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
11088 /* ?is_open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
11089 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_is_open, 4)
11090 MSVCP_bool __thiscall basic_fstream_wchar_is_open(const basic_fstream_wchar *this)
11092 TRACE("(%p)\n", this);
11093 return basic_filebuf_wchar_is_open(&this->filebuf);
11096 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDHH@Z */
11097 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDHH@Z */
11098 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPBDHH@Z */
11099 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDHH@Z */
11100 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_open, 16)
11101 void __thiscall basic_fstream_wchar_open(basic_fstream_wchar *this,
11102 const char *name, int mode, int prot)
11104 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
11106 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode, prot)) {
11107 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11108 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
11112 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDI@Z */
11113 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDI@Z */
11114 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPBDI@Z */
11115 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDI@Z */
11116 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_open_old, 12)
11117 void __thiscall basic_fstream_wchar_open_old(basic_fstream_wchar *this,
11118 const char *name, unsigned int mode)
11120 basic_fstream_wchar_open(this, name, mode, _SH_DENYNO);
11123 /* ?rdbuf@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
11124 /* ?rdbuf@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
11125 /* ?rdbuf@?$basic_fstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
11126 /* ?rdbuf@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
11127 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_rdbuf, 4)
11128 basic_filebuf_wchar* __thiscall basic_fstream_wchar_rdbuf(const basic_fstream_wchar *this)
11130 TRACE("(%p)\n", this);
11131 return (basic_filebuf_wchar*)&this->filebuf;
11134 static inline basic_ios_char* basic_ostringstream_char_to_basic_ios(basic_ostringstream_char *ptr)
11136 return (basic_ios_char*)((char*)ptr+basic_ostringstream_char_vbtable[1]);
11139 static inline basic_ostringstream_char* basic_ostringstream_char_from_basic_ios(basic_ios_char *ptr)
11141 return (basic_ostringstream_char*)((char*)ptr-basic_ostringstream_char_vbtable[1]);
11144 /* ??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 */
11145 /* ??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 */
11146 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_str, 16)
11147 basic_ostringstream_char* __thiscall basic_ostringstream_char_ctor_str(basic_ostringstream_char *this,
11148 const basic_string_char *str, int mode, MSVCP_bool virt_init)
11150 basic_ios_char *basic_ios;
11152 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11155 this->base.vbtable = basic_ostringstream_char_vbtable;
11156 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
11157 basic_ios_char_ctor(basic_ios);
11159 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
11162 basic_stringbuf_char_ctor_str(&this->strbuf, str, mode|OPENMODE_out);
11163 basic_ostream_char_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11164 basic_ios->base.vtable = &MSVCP_basic_ostringstream_char_vtable;
11168 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
11169 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
11170 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_mode, 12)
11171 basic_ostringstream_char* __thiscall basic_ostringstream_char_ctor_mode(
11172 basic_ostringstream_char *this, int mode, MSVCP_bool virt_init)
11174 basic_ios_char *basic_ios;
11176 TRACE("(%p %d %d)\n", this, mode, virt_init);
11179 this->base.vbtable = basic_ostringstream_char_vbtable;
11180 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
11181 basic_ios_char_ctor(basic_ios);
11183 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
11186 basic_stringbuf_char_ctor_mode(&this->strbuf, mode|OPENMODE_out);
11187 basic_ostream_char_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11188 basic_ios->base.vtable = &MSVCP_basic_ostringstream_char_vtable;
11192 /* ??_F?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11193 /* ??_F?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11194 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor, 8)
11195 basic_ostringstream_char* __thiscall basic_ostringstream_char_ctor(
11196 basic_ostringstream_char *this, MSVCP_bool virt_init)
11198 return basic_ostringstream_char_ctor_mode(this, 0, virt_init);
11201 /* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
11202 /* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
11203 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_dtor, 4)
11204 void __thiscall basic_ostringstream_char_dtor(basic_ios_char *base)
11206 basic_ostringstream_char *this = basic_ostringstream_char_from_basic_ios(base);
11208 TRACE("(%p)\n", this);
11210 basic_stringbuf_char_dtor(&this->strbuf);
11211 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base));
11214 /* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11215 /* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11216 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_vbase_dtor, 4)
11217 void __thiscall basic_ostringstream_char_vbase_dtor(basic_ostringstream_char *this)
11219 TRACE("(%p)\n", this);
11221 basic_ostringstream_char_dtor(basic_ostringstream_char_to_basic_ios(this));
11222 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base));
11225 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_vector_dtor, 8)
11226 basic_ostringstream_char* __thiscall basic_ostringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
11228 basic_ostringstream_char *this = basic_ostringstream_char_from_basic_ios(base);
11230 TRACE("(%p %x)\n", this, flags);
11233 /* we have an array, with the number of elements stored before the first object */
11234 INT_PTR i, *ptr = (INT_PTR *)this-1;
11236 for(i=*ptr-1; i>=0; i--)
11237 basic_ostringstream_char_vbase_dtor(this+i);
11238 MSVCRT_operator_delete(ptr);
11240 basic_ostringstream_char_vbase_dtor(this);
11242 MSVCRT_operator_delete(this);
11248 /* ?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 */
11249 /* ?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 */
11250 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_rdbuf, 4)
11251 basic_stringbuf_char* __thiscall basic_ostringstream_char_rdbuf(const basic_ostringstream_char *this)
11253 TRACE("(%p)\n", this);
11254 return (basic_stringbuf_char*)&this->strbuf;
11257 /* ?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 */
11258 /* ?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 */
11259 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_str_set, 8)
11260 void __thiscall basic_ostringstream_char_str_set(basic_ostringstream_char *this, const basic_string_char *str)
11262 TRACE("(%p %p)\n", this, str);
11263 basic_stringbuf_char_str_set(&this->strbuf, str);
11266 /* ?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 */
11267 /* ?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 */
11268 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_str_get, 8)
11269 basic_string_char* __thiscall basic_ostringstream_char_str_get(const basic_ostringstream_char *this, basic_string_char *ret)
11271 TRACE("(%p %p)\n", this, ret);
11272 return basic_stringbuf_char_str_get(&this->strbuf, ret);
11275 static inline basic_ios_wchar* basic_ostringstream_wchar_to_basic_ios(basic_ostringstream_wchar *ptr)
11277 return (basic_ios_wchar*)((char*)ptr+basic_ostringstream_wchar_vbtable[1]);
11280 static inline basic_ostringstream_wchar* basic_ostringstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
11282 return (basic_ostringstream_wchar*)((char*)ptr-basic_ostringstream_wchar_vbtable[1]);
11285 /* ??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 */
11286 /* ??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 */
11287 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor_str, 16)
11288 basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_ctor_str(basic_ostringstream_wchar *this,
11289 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
11291 basic_ios_wchar *basic_ios;
11293 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11296 this->base.vbtable = basic_ostringstream_wchar_vbtable;
11297 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
11298 basic_ios_wchar_ctor(basic_ios);
11300 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
11303 basic_stringbuf_wchar_ctor_str(&this->strbuf, str, mode|OPENMODE_out);
11304 basic_ostream_wchar_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11305 basic_ios->base.vtable = &MSVCP_basic_ostringstream_wchar_vtable;
11309 /* ??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 */
11310 /* ??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 */
11311 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor_str, 16)
11312 basic_ostringstream_wchar* __thiscall basic_ostringstream_short_ctor_str(basic_ostringstream_wchar *this,
11313 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
11315 basic_ostringstream_wchar_ctor_str(this, str, mode, virt_init);
11316 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ostringstream_short_vtable;
11320 /* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
11321 /* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
11322 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor_mode, 12)
11323 basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_ctor_mode(
11324 basic_ostringstream_wchar *this, int mode, MSVCP_bool virt_init)
11326 basic_ios_wchar *basic_ios;
11328 TRACE("(%p %d %d)\n", this, mode, virt_init);
11331 this->base.vbtable = basic_ostringstream_wchar_vbtable;
11332 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
11333 basic_ios_wchar_ctor(basic_ios);
11335 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
11338 basic_stringbuf_wchar_ctor_mode(&this->strbuf, mode|OPENMODE_out);
11339 basic_ostream_wchar_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11340 basic_ios->base.vtable = &MSVCP_basic_ostringstream_wchar_vtable;
11344 /* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
11345 /* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
11346 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor_mode, 12)
11347 basic_ostringstream_wchar* __thiscall basic_ostringstream_short_ctor_mode(
11348 basic_ostringstream_wchar *this, int mode, MSVCP_bool virt_init)
11350 basic_ostringstream_wchar_ctor_mode(this, mode, virt_init);
11351 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ostringstream_short_vtable;
11355 /* ??_F?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11356 /* ??_F?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11357 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor, 8)
11358 basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_ctor(
11359 basic_ostringstream_wchar *this, MSVCP_bool virt_init)
11361 return basic_ostringstream_wchar_ctor_mode(this, 0, virt_init);
11364 /* ??_F?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11365 /* ??_F?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11366 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor, 8)
11367 basic_ostringstream_wchar* __thiscall basic_ostringstream_short_ctor(
11368 basic_ostringstream_wchar *this, MSVCP_bool virt_init)
11370 return basic_ostringstream_short_ctor_mode(this, 0, virt_init);
11373 /* ??1?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
11374 /* ??1?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
11375 /* ??1?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
11376 /* ??1?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
11377 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_dtor, 4)
11378 void __thiscall basic_ostringstream_wchar_dtor(basic_ios_wchar *base)
11380 basic_ostringstream_wchar *this = basic_ostringstream_wchar_from_basic_ios(base);
11382 TRACE("(%p)\n", this);
11384 basic_stringbuf_wchar_dtor(&this->strbuf);
11385 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base));
11388 /* ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11389 /* ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11390 /* ??_D?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11391 /* ??_D?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11392 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_vbase_dtor, 4)
11393 void __thiscall basic_ostringstream_wchar_vbase_dtor(basic_ostringstream_wchar *this)
11395 TRACE("(%p)\n", this);
11397 basic_ostringstream_wchar_dtor(basic_ostringstream_wchar_to_basic_ios(this));
11398 basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(&this->base));
11401 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_vector_dtor, 8)
11402 basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
11404 basic_ostringstream_wchar *this = basic_ostringstream_wchar_from_basic_ios(base);
11406 TRACE("(%p %x)\n", this, flags);
11409 /* we have an array, with the number of elements stored before the first object */
11410 INT_PTR i, *ptr = (INT_PTR *)this-1;
11412 for(i=*ptr-1; i>=0; i--)
11413 basic_ostringstream_wchar_vbase_dtor(this+i);
11414 MSVCRT_operator_delete(ptr);
11416 basic_ostringstream_wchar_vbase_dtor(this);
11418 MSVCRT_operator_delete(this);
11424 /* ?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 */
11425 /* ?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 */
11426 /* ?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 */
11427 /* ?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 */
11428 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_rdbuf, 4)
11429 basic_stringbuf_wchar* __thiscall basic_ostringstream_wchar_rdbuf(const basic_ostringstream_wchar *this)
11431 TRACE("(%p)\n", this);
11432 return (basic_stringbuf_wchar*)&this->strbuf;
11435 /* ?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 */
11436 /* ?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 */
11437 /* ?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 */
11438 /* ?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 */
11439 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_str_set, 8)
11440 void __thiscall basic_ostringstream_wchar_str_set(basic_ostringstream_wchar *this, const basic_string_wchar *str)
11442 TRACE("(%p %p)\n", this, str);
11443 basic_stringbuf_wchar_str_set(&this->strbuf, str);
11446 /* ?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 */
11447 /* ?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 */
11448 /* ?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 */
11449 /* ?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 */
11450 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_str_get, 8)
11451 basic_string_wchar* __thiscall basic_ostringstream_wchar_str_get(const basic_ostringstream_wchar *this, basic_string_wchar *ret)
11453 TRACE("(%p %p)\n", this, ret);
11454 return basic_stringbuf_wchar_str_get(&this->strbuf, ret);
11457 static inline basic_ios_char* basic_istringstream_char_to_basic_ios(basic_istringstream_char *ptr)
11459 return (basic_ios_char*)((char*)ptr+basic_istringstream_char_vbtable[1]);
11462 static inline basic_istringstream_char* basic_istringstream_char_from_basic_ios(basic_ios_char *ptr)
11464 return (basic_istringstream_char*)((char*)ptr-basic_istringstream_char_vbtable[1]);
11467 /* ??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 */
11468 /* ??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 */
11469 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_str, 16)
11470 basic_istringstream_char* __thiscall basic_istringstream_char_ctor_str(basic_istringstream_char *this,
11471 const basic_string_char *str, int mode, MSVCP_bool virt_init)
11473 basic_ios_char *basic_ios;
11475 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11478 this->base.vbtable = basic_istringstream_char_vbtable;
11479 basic_ios = basic_istream_char_get_basic_ios(&this->base);
11480 basic_ios_char_ctor(basic_ios);
11482 basic_ios = basic_istream_char_get_basic_ios(&this->base);
11485 basic_stringbuf_char_ctor_str(&this->strbuf, str, mode|OPENMODE_in);
11486 basic_istream_char_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11487 basic_ios->base.vtable = &MSVCP_basic_istringstream_char_vtable;
11491 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
11492 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
11493 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_mode, 12)
11494 basic_istringstream_char* __thiscall basic_istringstream_char_ctor_mode(
11495 basic_istringstream_char *this, int mode, MSVCP_bool virt_init)
11497 basic_ios_char *basic_ios;
11499 TRACE("(%p %d %d)\n", this, mode, virt_init);
11502 this->base.vbtable = basic_istringstream_char_vbtable;
11503 basic_ios = basic_istream_char_get_basic_ios(&this->base);
11504 basic_ios_char_ctor(basic_ios);
11506 basic_ios = basic_istream_char_get_basic_ios(&this->base);
11509 basic_stringbuf_char_ctor_mode(&this->strbuf, mode|OPENMODE_in);
11510 basic_istream_char_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11511 basic_ios->base.vtable = &MSVCP_basic_istringstream_char_vtable;
11515 /* ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11516 /* ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11517 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor, 8)
11518 basic_istringstream_char* __thiscall basic_istringstream_char_ctor(
11519 basic_istringstream_char *this, MSVCP_bool virt_init)
11521 return basic_istringstream_char_ctor_mode(this, 0, virt_init);
11524 /* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
11525 /* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
11526 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_dtor, 4)
11527 void __thiscall basic_istringstream_char_dtor(basic_ios_char *base)
11529 basic_istringstream_char *this = basic_istringstream_char_from_basic_ios(base);
11531 TRACE("(%p)\n", this);
11533 basic_stringbuf_char_dtor(&this->strbuf);
11534 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base));
11537 /* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11538 /* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11539 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_vbase_dtor, 4)
11540 void __thiscall basic_istringstream_char_vbase_dtor(basic_istringstream_char *this)
11542 TRACE("(%p)\n", this);
11544 basic_istringstream_char_dtor(basic_istringstream_char_to_basic_ios(this));
11545 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base));
11548 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_vector_dtor, 8)
11549 basic_istringstream_char* __thiscall basic_istringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
11551 basic_istringstream_char *this = basic_istringstream_char_from_basic_ios(base);
11553 TRACE("(%p %x)\n", this, flags);
11556 /* we have an array, with the number of elements stored before the first object */
11557 INT_PTR i, *ptr = (INT_PTR *)this-1;
11559 for(i=*ptr-1; i>=0; i--)
11560 basic_istringstream_char_vbase_dtor(this+i);
11561 MSVCRT_operator_delete(ptr);
11563 basic_istringstream_char_vbase_dtor(this);
11565 MSVCRT_operator_delete(this);
11571 /* ?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 */
11572 /* ?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 */
11573 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_rdbuf, 4)
11574 basic_stringbuf_char* __thiscall basic_istringstream_char_rdbuf(const basic_istringstream_char *this)
11576 TRACE("(%p)\n", this);
11577 return (basic_stringbuf_char*)&this->strbuf;
11580 /* ?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 */
11581 /* ?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 */
11582 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_str_set, 8)
11583 void __thiscall basic_istringstream_char_str_set(basic_istringstream_char *this, const basic_string_char *str)
11585 TRACE("(%p %p)\n", this, str);
11586 basic_stringbuf_char_str_set(&this->strbuf, str);
11589 /* ?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 */
11590 /* ?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 */
11591 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_str_get, 8)
11592 basic_string_char* __thiscall basic_istringstream_char_str_get(const basic_istringstream_char *this, basic_string_char *ret)
11594 TRACE("(%p %p)\n", this, ret);
11595 return basic_stringbuf_char_str_get(&this->strbuf, ret);
11598 static inline basic_ios_wchar* basic_istringstream_wchar_to_basic_ios(basic_istringstream_wchar *ptr)
11600 return (basic_ios_wchar*)((char*)ptr+basic_istringstream_wchar_vbtable[1]);
11603 static inline basic_istringstream_wchar* basic_istringstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
11605 return (basic_istringstream_wchar*)((char*)ptr-basic_istringstream_wchar_vbtable[1]);
11608 /* ??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 */
11609 /* ??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 */
11610 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor_str, 16)
11611 basic_istringstream_wchar* __thiscall basic_istringstream_wchar_ctor_str(basic_istringstream_wchar *this,
11612 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
11614 basic_ios_wchar *basic_ios;
11616 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11619 this->base.vbtable = basic_istringstream_wchar_vbtable;
11620 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
11621 basic_ios_wchar_ctor(basic_ios);
11623 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
11626 basic_stringbuf_wchar_ctor_str(&this->strbuf, str, mode|OPENMODE_in);
11627 basic_istream_wchar_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11628 basic_ios->base.vtable = &MSVCP_basic_istringstream_wchar_vtable;
11632 /* ??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 */
11633 /* ??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 */
11634 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor_str, 16)
11635 basic_istringstream_wchar* __thiscall basic_istringstream_short_ctor_str(basic_istringstream_wchar *this,
11636 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
11638 basic_istringstream_wchar_ctor_str(this, str, mode, virt_init);
11639 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_istringstream_short_vtable;
11643 /* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
11644 /* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
11645 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor_mode, 12)
11646 basic_istringstream_wchar* __thiscall basic_istringstream_wchar_ctor_mode(
11647 basic_istringstream_wchar *this, int mode, MSVCP_bool virt_init)
11649 basic_ios_wchar *basic_ios;
11651 TRACE("(%p %d %d)\n", this, mode, virt_init);
11654 this->base.vbtable = basic_istringstream_wchar_vbtable;
11655 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
11656 basic_ios_wchar_ctor(basic_ios);
11658 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
11661 basic_stringbuf_wchar_ctor_mode(&this->strbuf, mode|OPENMODE_in);
11662 basic_istream_wchar_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11663 basic_ios->base.vtable = &MSVCP_basic_istringstream_wchar_vtable;
11667 /* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
11668 /* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
11669 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor_mode, 12)
11670 basic_istringstream_wchar* __thiscall basic_istringstream_short_ctor_mode(
11671 basic_istringstream_wchar *this, int mode, MSVCP_bool virt_init)
11673 basic_istringstream_wchar_ctor_mode(this, mode, virt_init);
11674 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_istringstream_short_vtable;
11678 /* ??_F?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11679 /* ??_F?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11680 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor, 8)
11681 basic_istringstream_wchar* __thiscall basic_istringstream_wchar_ctor(
11682 basic_istringstream_wchar *this, MSVCP_bool virt_init)
11684 return basic_istringstream_wchar_ctor_mode(this, 0, virt_init);
11687 /* ??_F?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11688 /* ??_F?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11689 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor, 8)
11690 basic_istringstream_wchar* __thiscall basic_istringstream_short_ctor(
11691 basic_istringstream_wchar *this, MSVCP_bool virt_init)
11693 return basic_istringstream_short_ctor_mode(this, 0, virt_init);
11696 /* ??1?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
11697 /* ??1?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
11698 /* ??1?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
11699 /* ??1?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
11700 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_dtor, 4)
11701 void __thiscall basic_istringstream_wchar_dtor(basic_ios_wchar *base)
11703 basic_istringstream_wchar *this = basic_istringstream_wchar_from_basic_ios(base);
11705 TRACE("(%p)\n", this);
11707 basic_stringbuf_wchar_dtor(&this->strbuf);
11708 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base));
11711 /* ??_D?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11712 /* ??_D?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11713 /* ??_D?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11714 /* ??_D?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11715 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_vbase_dtor, 4)
11716 void __thiscall basic_istringstream_wchar_vbase_dtor(basic_istringstream_wchar *this)
11718 TRACE("(%p)\n", this);
11720 basic_istringstream_wchar_dtor(basic_istringstream_wchar_to_basic_ios(this));
11721 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base));
11724 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_vector_dtor, 8)
11725 basic_istringstream_wchar* __thiscall basic_istringstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
11727 basic_istringstream_wchar *this = basic_istringstream_wchar_from_basic_ios(base);
11729 TRACE("(%p %x)\n", this, flags);
11732 /* we have an array, with the number of elements stored before the first object */
11733 INT_PTR i, *ptr = (INT_PTR *)this-1;
11735 for(i=*ptr-1; i>=0; i--)
11736 basic_istringstream_wchar_vbase_dtor(this+i);
11737 MSVCRT_operator_delete(ptr);
11739 basic_istringstream_wchar_vbase_dtor(this);
11741 MSVCRT_operator_delete(this);
11747 /* ?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 */
11748 /* ?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 */
11749 /* ?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 */
11750 /* ?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 */
11751 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_rdbuf, 4)
11752 basic_stringbuf_wchar* __thiscall basic_istringstream_wchar_rdbuf(const basic_istringstream_wchar *this)
11754 TRACE("(%p)\n", this);
11755 return (basic_stringbuf_wchar*)&this->strbuf;
11758 /* ?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 */
11759 /* ?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 */
11760 /* ?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 */
11761 /* ?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 */
11762 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_str_set, 8)
11763 void __thiscall basic_istringstream_wchar_str_set(basic_istringstream_wchar *this, const basic_string_wchar *str)
11765 TRACE("(%p %p)\n", this, str);
11766 basic_stringbuf_wchar_str_set(&this->strbuf, str);
11769 /* ?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 */
11770 /* ?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 */
11771 /* ?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 */
11772 /* ?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 */
11773 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_str_get, 8)
11774 basic_string_wchar* __thiscall basic_istringstream_wchar_str_get(const basic_istringstream_wchar *this, basic_string_wchar *ret)
11776 TRACE("(%p %p)\n", this, ret);
11777 return basic_stringbuf_wchar_str_get(&this->strbuf, ret);
11780 static inline basic_ios_char* basic_stringstream_char_to_basic_ios(basic_stringstream_char *ptr)
11782 return (basic_ios_char*)((char*)ptr+basic_stringstream_char_vbtable1[1]);
11785 static inline basic_stringstream_char* basic_stringstream_char_from_basic_ios(basic_ios_char *ptr)
11787 return (basic_stringstream_char*)((char*)ptr-basic_stringstream_char_vbtable1[1]);
11790 /* ??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 */
11791 /* ??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 */
11792 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_str, 16)
11793 basic_stringstream_char* __thiscall basic_stringstream_char_ctor_str(basic_stringstream_char *this,
11794 const basic_string_char *str, int mode, MSVCP_bool virt_init)
11796 basic_ios_char *basic_ios;
11798 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11801 this->base.base1.vbtable = basic_stringstream_char_vbtable1;
11802 this->base.base2.vbtable = basic_stringstream_char_vbtable2;
11803 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11804 basic_ios_char_ctor(basic_ios);
11806 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11809 basic_stringbuf_char_ctor_str(&this->strbuf, str, mode);
11810 basic_iostream_char_ctor(&this->base, &this->strbuf.base, FALSE);
11811 basic_ios->base.vtable = &MSVCP_basic_stringstream_char_vtable;
11815 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
11816 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
11817 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_mode, 12)
11818 basic_stringstream_char* __thiscall basic_stringstream_char_ctor_mode(
11819 basic_stringstream_char *this, int mode, MSVCP_bool virt_init)
11821 basic_ios_char *basic_ios;
11823 TRACE("(%p %d %d)\n", this, mode, virt_init);
11826 this->base.base1.vbtable = basic_stringstream_char_vbtable1;
11827 this->base.base2.vbtable = basic_stringstream_char_vbtable2;
11828 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11829 basic_ios_char_ctor(basic_ios);
11831 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11834 basic_stringbuf_char_ctor_mode(&this->strbuf, mode);
11835 basic_iostream_char_ctor(&this->base, &this->strbuf.base, FALSE);
11836 basic_ios->base.vtable = &MSVCP_basic_stringstream_char_vtable;
11840 /* ??_F?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11841 /* ??_F?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11842 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor, 8)
11843 basic_stringstream_char* __thiscall basic_stringstream_char_ctor(
11844 basic_stringstream_char *this, MSVCP_bool virt_init)
11846 return basic_stringstream_char_ctor_mode(
11847 this, OPENMODE_out|OPENMODE_in, virt_init);
11850 /* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
11851 /* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
11852 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_dtor, 4)
11853 void __thiscall basic_stringstream_char_dtor(basic_ios_char *base)
11855 basic_stringstream_char *this = basic_stringstream_char_from_basic_ios(base);
11857 TRACE("(%p)\n", this);
11859 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base));
11860 basic_stringbuf_char_dtor(&this->strbuf);
11863 /* ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11864 /* ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11865 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_vbase_dtor, 4)
11866 void __thiscall basic_stringstream_char_vbase_dtor(basic_stringstream_char *this)
11868 TRACE("(%p)\n", this);
11870 basic_stringstream_char_dtor(basic_stringstream_char_to_basic_ios(this));
11871 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base.base1));
11874 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_vector_dtor, 8)
11875 basic_stringstream_char* __thiscall basic_stringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
11877 basic_stringstream_char *this = basic_stringstream_char_from_basic_ios(base);
11879 TRACE("(%p %x)\n", this, flags);
11882 /* we have an array, with the number of elements stored before the first object */
11883 INT_PTR i, *ptr = (INT_PTR *)this-1;
11885 for(i=*ptr-1; i>=0; i--)
11886 basic_stringstream_char_vbase_dtor(this+i);
11887 MSVCRT_operator_delete(ptr);
11889 basic_stringstream_char_vbase_dtor(this);
11891 MSVCRT_operator_delete(this);
11897 /* ?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 */
11898 /* ?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 */
11899 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_rdbuf, 4)
11900 basic_stringbuf_char* __thiscall basic_stringstream_char_rdbuf(const basic_stringstream_char *this)
11902 TRACE("(%p)\n", this);
11903 return (basic_stringbuf_char*)&this->strbuf;
11906 /* ?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 */
11907 /* ?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 */
11908 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_str_set, 8)
11909 void __thiscall basic_stringstream_char_str_set(basic_stringstream_char *this, const basic_string_char *str)
11911 TRACE("(%p %p)\n", this, str);
11912 basic_stringbuf_char_str_set(&this->strbuf, str);
11915 /* ?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 */
11916 /* ?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 */
11917 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_str_get, 8)
11918 basic_string_char* __thiscall basic_stringstream_char_str_get(const basic_stringstream_char *this, basic_string_char *ret)
11920 TRACE("(%p %p)\n", this, ret);
11921 return basic_stringbuf_char_str_get(&this->strbuf, ret);
11924 static inline basic_ios_wchar* basic_stringstream_wchar_to_basic_ios(basic_stringstream_wchar *ptr)
11926 return (basic_ios_wchar*)((char*)ptr+basic_stringstream_wchar_vbtable1[1]);
11929 static inline basic_stringstream_wchar* basic_stringstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
11931 return (basic_stringstream_wchar*)((char*)ptr-basic_stringstream_wchar_vbtable1[1]);
11934 /* ??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 */
11935 /* ??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 */
11936 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor_str, 16)
11937 basic_stringstream_wchar* __thiscall basic_stringstream_wchar_ctor_str(basic_stringstream_wchar *this,
11938 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
11940 basic_ios_wchar *basic_ios;
11942 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11945 this->base.base1.vbtable = basic_stringstream_wchar_vbtable1;
11946 this->base.base2.vbtable = basic_stringstream_wchar_vbtable2;
11947 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11948 basic_ios_wchar_ctor(basic_ios);
11950 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11953 basic_stringbuf_wchar_ctor_str(&this->strbuf, str, mode);
11954 basic_iostream_wchar_ctor(&this->base, &this->strbuf.base, FALSE);
11955 basic_ios->base.vtable = &MSVCP_basic_stringstream_wchar_vtable;
11959 /* ??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 */
11960 /* ??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 */
11961 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor_str, 16)
11962 basic_stringstream_wchar* __thiscall basic_stringstream_short_ctor_str(basic_stringstream_wchar *this,
11963 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
11965 basic_stringstream_wchar_ctor_str(this, str, mode, virt_init);
11966 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_stringstream_short_vtable;
11970 /* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
11971 /* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
11972 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor_mode, 12)
11973 basic_stringstream_wchar* __thiscall basic_stringstream_wchar_ctor_mode(
11974 basic_stringstream_wchar *this, int mode, MSVCP_bool virt_init)
11976 basic_ios_wchar *basic_ios;
11978 TRACE("(%p %d %d)\n", this, mode, virt_init);
11981 this->base.base1.vbtable = basic_stringstream_wchar_vbtable1;
11982 this->base.base2.vbtable = basic_stringstream_wchar_vbtable2;
11983 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11984 basic_ios_wchar_ctor(basic_ios);
11986 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11989 basic_stringbuf_wchar_ctor_mode(&this->strbuf, mode);
11990 basic_iostream_wchar_ctor(&this->base, &this->strbuf.base, FALSE);
11991 basic_ios->base.vtable = &MSVCP_basic_stringstream_wchar_vtable;
11995 /* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
11996 /* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
11997 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor_mode, 12)
11998 basic_stringstream_wchar* __thiscall basic_stringstream_short_ctor_mode(
11999 basic_stringstream_wchar *this, int mode, MSVCP_bool virt_init)
12001 basic_stringstream_wchar_ctor_mode(this, mode, virt_init);
12002 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_stringstream_short_vtable;
12006 /* ??_F?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
12007 /* ??_F?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
12008 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor, 8)
12009 basic_stringstream_wchar* __thiscall basic_stringstream_wchar_ctor(
12010 basic_stringstream_wchar *this, MSVCP_bool virt_init)
12012 return basic_stringstream_wchar_ctor_mode(
12013 this, OPENMODE_out|OPENMODE_in, virt_init);
12016 /* ??_F?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
12017 /* ??_F?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
12018 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor, 8)
12019 basic_stringstream_wchar* __thiscall basic_stringstream_short_ctor(
12020 basic_stringstream_wchar *this, MSVCP_bool virt_init)
12022 return basic_stringstream_short_ctor_mode(
12023 this, OPENMODE_out|OPENMODE_in, virt_init);
12026 /* ??1?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
12027 /* ??1?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
12028 /* ??1?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
12029 /* ??1?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
12030 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_dtor, 4)
12031 void __thiscall basic_stringstream_wchar_dtor(basic_ios_wchar *base)
12033 basic_stringstream_wchar *this = basic_stringstream_wchar_from_basic_ios(base);
12035 TRACE("(%p)\n", this);
12037 basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(&this->base));
12038 basic_stringbuf_wchar_dtor(&this->strbuf);
12041 /* ??_D?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
12042 /* ??_D?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
12043 /* ??_D?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
12044 /* ??_D?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
12045 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_vbase_dtor, 4)
12046 void __thiscall basic_stringstream_wchar_vbase_dtor(basic_stringstream_wchar *this)
12048 TRACE("(%p)\n", this);
12050 basic_stringstream_wchar_dtor(basic_stringstream_wchar_to_basic_ios(this));
12051 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base.base1));
12054 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_vector_dtor, 8)
12055 basic_stringstream_wchar* __thiscall basic_stringstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
12057 basic_stringstream_wchar *this = basic_stringstream_wchar_from_basic_ios(base);
12059 TRACE("(%p %x)\n", this, flags);
12062 /* we have an array, with the number of elements stored before the first object */
12063 INT_PTR i, *ptr = (INT_PTR *)this-1;
12065 for(i=*ptr-1; i>=0; i--)
12066 basic_stringstream_wchar_vbase_dtor(this+i);
12067 MSVCRT_operator_delete(ptr);
12069 basic_stringstream_wchar_vbase_dtor(this);
12071 MSVCRT_operator_delete(this);
12077 /* ?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 */
12078 /* ?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 */
12079 /* ?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 */
12080 /* ?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 */
12081 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_rdbuf, 4)
12082 basic_stringbuf_wchar* __thiscall basic_stringstream_wchar_rdbuf(const basic_stringstream_wchar *this)
12084 TRACE("(%p)\n", this);
12085 return (basic_stringbuf_wchar*)&this->strbuf;
12088 /* ?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 */
12089 /* ?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 */
12090 /* ?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 */
12091 /* ?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 */
12092 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_str_set, 8)
12093 void __thiscall basic_stringstream_wchar_str_set(basic_stringstream_wchar *this, const basic_string_wchar *str)
12095 TRACE("(%p %p)\n", this, str);
12096 basic_stringbuf_wchar_str_set(&this->strbuf, str);
12099 /* ?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 */
12100 /* ?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 */
12101 /* ?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 */
12102 /* ?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 */
12103 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_str_get, 8)
12104 basic_string_wchar* __thiscall basic_stringstream_wchar_str_get(const basic_stringstream_wchar *this, basic_string_wchar *ret)
12106 TRACE("(%p %p)\n", this, ret);
12107 return basic_stringbuf_wchar_str_get(&this->strbuf, ret);
12110 /* ?_Init@strstreambuf@std@@IAEXHPAD0H@Z */
12111 /* ?_Init@strstreambuf@std@@IEAAX_JPEAD1H@Z */
12112 DEFINE_THISCALL_WRAPPER(strstreambuf__Init, 20)
12113 void __thiscall strstreambuf__Init(strstreambuf *this, streamsize len, char *g, char *p, int mode)
12115 TRACE("(%p %ld %p %p %d)\n", this, len, g, p, mode);
12117 this->minsize = 32;
12118 this->endsave = NULL;
12119 this->strmode = mode;
12120 this->palloc = NULL;
12121 this->pfree = NULL;
12124 this->strmode |= STRSTATE_Dynamic;
12125 if(len > this->minsize)
12126 this->minsize = len;
12127 this->seekhigh = NULL;
12136 this->seekhigh = g+len;
12137 basic_streambuf_char_setg(&this->base, g, g, p ? p : this->seekhigh);
12139 basic_streambuf_char_setp(&this->base, p, this->seekhigh);
12142 /* ??0strstreambuf@std@@QAE@PACH0@Z */
12143 /* ??0strstreambuf@std@@QEAA@PEAC_J0@Z */
12144 /* ??0strstreambuf@std@@QAE@PADH0@Z */
12145 /* ??0strstreambuf@std@@QEAA@PEAD_J0@Z */
12146 /* ??0strstreambuf@std@@QAE@PAEH0@Z */
12147 /* ??0strstreambuf@std@@QEAA@PEAE_J0@Z */
12148 static strstreambuf* strstreambuf_ctor_get_put(strstreambuf *this, char *g, streamsize len, char *p)
12150 TRACE("(%p %p %ld %p)\n", this, g, len, p);
12152 basic_streambuf_char_ctor(&this->base);
12153 this->base.vtable = &MSVCP_strstreambuf_vtable;
12155 strstreambuf__Init(this, len, g, p, 0);
12159 /* ?_Tidy@strstreambuf@std@@IAEXXZ */
12160 /* ?_Tidy@strstreambuf@std@@IEAAXXZ */
12161 DEFINE_THISCALL_WRAPPER(strstreambuf__Tidy, 4)
12162 void __thiscall strstreambuf__Tidy(strstreambuf *this)
12164 TRACE("(%p)\n", this);
12166 if((this->strmode & STRSTATE_Allocated) && !(this->strmode & STRSTATE_Frozen)) {
12168 this->pfree(basic_streambuf_char_eback(&this->base));
12170 MSVCRT_operator_delete(basic_streambuf_char_eback(&this->base));
12173 this->endsave = NULL;
12174 this->seekhigh = NULL;
12175 this->strmode &= ~(STRSTATE_Allocated | STRSTATE_Frozen);
12176 basic_streambuf_char_setg(&this->base, NULL, NULL, NULL);
12177 basic_streambuf_char_setp(&this->base, NULL, NULL);
12180 /* ??1strstreambuf@std@@UAE@XZ */
12181 /* ??1strstreambuf@std@@UEAA@XZ */
12182 DEFINE_THISCALL_WRAPPER(strstreambuf_dtor, 4)
12183 void __thiscall strstreambuf_dtor(strstreambuf *this)
12185 TRACE("(%p)\n", this);
12187 strstreambuf__Tidy(this);
12188 basic_streambuf_char_dtor(&this->base);
12191 DEFINE_THISCALL_WRAPPER(strstreambuf_vector_dtor, 8)
12192 strstreambuf* __thiscall strstreambuf_vector_dtor(strstreambuf *this, unsigned int flags)
12194 TRACE("(%p %x)\n", this, flags);
12196 /* we have an array, with the number of elements stored before the first object */
12197 INT_PTR i, *ptr = (INT_PTR *)this-1;
12199 for(i=*ptr-1; i>=0; i--)
12200 strstreambuf_dtor(this+i);
12201 MSVCRT_operator_delete(ptr);
12203 strstreambuf_dtor(this);
12205 MSVCRT_operator_delete(this);
12211 /* ?freeze@strstreambuf@std@@QAEX_N@Z */
12212 /* ?freeze@strstreambuf@std@@QEAAX_N@Z */
12213 DEFINE_THISCALL_WRAPPER(strstreambuf_freeze, 8)
12214 void __thiscall strstreambuf_freeze(strstreambuf *this, MSVCP_bool freeze)
12216 TRACE("(%p %d)\n", this, freeze);
12218 if(!freeze == !(this->strmode *STRSTATE_Frozen))
12222 this->strmode |= STRSTATE_Frozen;
12223 this->endsave = basic_streambuf_char_epptr(&this->base);
12224 basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base),
12225 basic_streambuf_char_pptr(&this->base), basic_streambuf_char_eback(&this->base));
12227 this->strmode &= ~STRSTATE_Frozen;
12228 basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base),
12229 basic_streambuf_char_pptr(&this->base), this->endsave);
12233 /* ?overflow@strstreambuf@std@@MAEHH@Z */
12234 /* ?overflow@strstreambuf@std@@MEAAHH@Z */
12235 DEFINE_THISCALL_WRAPPER(strstreambuf_overflow, 8)
12236 int __thiscall strstreambuf_overflow(strstreambuf *this, int c)
12238 MSVCP_size_t old_size, size;
12241 TRACE("(%p %d)\n", this, c);
12246 if(this->strmode & STRSTATE_Frozen)
12249 ptr = basic_streambuf_char_pptr(&this->base);
12250 if(ptr && ptr<basic_streambuf_char_epptr(&this->base))
12251 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = c);
12253 if(!(this->strmode & STRSTATE_Dynamic) || (this->strmode & STRSTATE_Constant))
12256 ptr = basic_streambuf_char_eback(&this->base);
12257 old_size = ptr ? basic_streambuf_char_epptr(&this->base) - ptr : 0;
12259 size = old_size + old_size/2;
12260 if(size < this->minsize)
12261 size = this->minsize;
12264 buf = this->palloc(size);
12266 buf = MSVCRT_operator_new(size);
12270 memcpy(buf, ptr, old_size);
12271 if(this->strmode & STRSTATE_Allocated) {
12275 MSVCRT_operator_delete(ptr);
12278 this->strmode |= STRSTATE_Allocated;
12280 this->seekhigh = buf;
12281 basic_streambuf_char_setp(&this->base, buf, buf+size);
12282 basic_streambuf_char_setg(&this->base, buf, buf, buf);
12284 this->seekhigh = this->seekhigh-ptr+buf;
12285 basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base)-ptr+buf,
12286 basic_streambuf_char_pptr(&this->base)-ptr+buf, buf+size);
12287 basic_streambuf_char_setg(&this->base, buf, basic_streambuf_char_gptr(&this->base)-ptr+buf,
12288 basic_streambuf_char_pptr(&this->base));
12291 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = c);
12294 /* ?pbackfail@strstreambuf@std@@MAEHH@Z */
12295 /* ?pbackfail@strstreambuf@std@@MEAAHH@Z */
12296 DEFINE_THISCALL_WRAPPER(strstreambuf_pbackfail, 8)
12297 int __thiscall strstreambuf_pbackfail(strstreambuf *this, int c)
12299 char *ptr = basic_streambuf_char_gptr(&this->base);
12301 TRACE("(%p %d)\n", this, c);
12303 if(ptr<=basic_streambuf_char_eback(&this->base)
12304 || ((this->strmode & STRSTATE_Constant) && c!=ptr[-1]))
12307 basic_streambuf_char_gbump(&this->base, -1);
12310 if(this->strmode & STRSTATE_Constant)
12311 return (unsigned char)c;
12313 return (unsigned char)(ptr[0] = c);
12316 /* ?seekoff@strstreambuf@std@@MAE?AV?$fpos@H@2@JHH@Z */
12317 /* ?seekoff@strstreambuf@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
12318 DEFINE_THISCALL_WRAPPER(strstreambuf_seekoff, 20)
12319 fpos_int* __thiscall strstreambuf_seekoff(strstreambuf *this, fpos_int *ret, streamoff off, int way, int mode)
12321 char *eback = basic_streambuf_char_eback(&this->base);
12322 char *pptr = basic_streambuf_char_pptr(&this->base);
12323 char *gptr = basic_streambuf_char_gptr(&this->base);
12325 TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode);
12330 if(pptr > this->seekhigh)
12331 this->seekhigh = pptr;
12333 if((mode & OPENMODE_in) && gptr) {
12334 if(way==SEEKDIR_cur && !(mode & OPENMODE_out))
12336 else if(way == SEEKDIR_end)
12337 off += this->seekhigh-eback;
12338 else if(way != SEEKDIR_beg)
12341 if(off<0 || off>this->seekhigh-eback) {
12344 basic_streambuf_char_gbump(&this->base, eback-gptr+off);
12345 if((mode & OPENMODE_out) && pptr) {
12346 basic_streambuf_char_setp_next(&this->base, eback,
12347 gptr, basic_streambuf_char_epptr(&this->base));
12350 }else if((mode & OPENMODE_out) && pptr) {
12351 if(way == SEEKDIR_cur)
12353 else if(way == SEEKDIR_end)
12354 off += this->seekhigh-eback;
12355 else if(way != SEEKDIR_beg)
12358 if(off<0 || off>this->seekhigh-eback)
12361 basic_streambuf_char_pbump(&this->base, eback-pptr+off);
12370 /* ?seekpos@strstreambuf@std@@MAE?AV?$fpos@H@2@V32@H@Z */
12371 /* ?seekpos@strstreambuf@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
12372 DEFINE_THISCALL_WRAPPER(strstreambuf_seekpos, 36)
12373 fpos_int* __thiscall strstreambuf_seekpos(strstreambuf *this, fpos_int *ret, fpos_int pos, int mode)
12375 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
12377 if(pos.off==0 && pos.pos==-1 && pos.state==0) {
12382 return strstreambuf_seekoff(this, ret, pos.off, SEEKDIR_beg, mode);
12385 /* ?underflow@strstreambuf@std@@MAEHXZ */
12386 /* ?underflow@strstreambuf@std@@MEAAHXZ */
12387 DEFINE_THISCALL_WRAPPER(strstreambuf_underflow, 4)
12388 int __thiscall strstreambuf_underflow(strstreambuf *this)
12390 char *gptr = basic_streambuf_char_gptr(&this->base);
12393 TRACE("(%p)\n", this);
12398 if(gptr < basic_streambuf_char_egptr(&this->base))
12399 return (unsigned char)(*gptr);
12401 pptr = basic_streambuf_char_gptr(&this->base);
12402 if(pptr > this->seekhigh)
12403 this->seekhigh = pptr;
12405 if(this->seekhigh <= gptr)
12408 basic_streambuf_char_setg(&this->base, basic_streambuf_char_eback(&this->base),
12409 gptr, this->seekhigh);
12410 return (unsigned char)(*gptr);
12413 static inline basic_ios_char* ostrstream_to_basic_ios(ostrstream *ptr)
12415 return (basic_ios_char*)((char*)ptr+ostrstream_vbtable[1]);
12418 static inline ostrstream* ostrstream_from_basic_ios(basic_ios_char *ptr)
12420 return (ostrstream*)((char*)ptr-ostrstream_vbtable[1]);
12423 /* ??0ostrstream@std@@QAE@PADHH@Z */
12424 DEFINE_THISCALL_WRAPPER(ostrstream_ctor, 20)
12425 ostrstream* __thiscall ostrstream_ctor(ostrstream *this, char *buf, streamsize size, int mode, MSVCP_bool virt_init)
12427 basic_ios_char *basic_ios;
12429 TRACE("(%p %p %ld %d %d)\n", this, buf, size, mode, virt_init);
12432 this->base.vbtable = ostrstream_vbtable;
12433 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
12434 basic_ios_char_ctor(basic_ios);
12436 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
12439 strstreambuf_ctor_get_put(&this->buf, buf, size,
12440 buf && (mode & OPENMODE_app) ? buf+strlen(buf) : buf);
12441 basic_ostream_char_ctor(&this->base, &this->buf.base, FALSE, FALSE);
12442 basic_ios->base.vtable = &MSVCP_ostrstream_vtable;
12446 /* ??1ostrstream@std@@UAE@XZ */
12447 /* ??1ostrstream@std@@UEAA@XZ */
12448 DEFINE_THISCALL_WRAPPER(ostrstream_dtor, 4)
12449 void __thiscall ostrstream_dtor(basic_ios_char *base)
12451 ostrstream *this = ostrstream_from_basic_ios(base);
12453 TRACE("(%p)\n", this);
12455 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base));
12456 strstreambuf_dtor(&this->buf);
12459 static void ostrstream_vbase_dtor(ostrstream *this)
12461 TRACE("(%p)\n", this);
12463 ostrstream_dtor(ostrstream_to_basic_ios(this));
12464 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base));
12467 DEFINE_THISCALL_WRAPPER(ostrstream_vector_dtor, 8)
12468 ostrstream* __thiscall ostrstream_vector_dtor(basic_ios_char *base, unsigned int flags)
12470 ostrstream *this = ostrstream_from_basic_ios(base);
12472 TRACE("(%p %x)\n", this, flags);
12475 /* we have an array, with the number of elements stored before the first object */
12476 INT_PTR i, *ptr = (INT_PTR *)this-1;
12478 for(i=*ptr-1; i>=0; i--)
12479 ostrstream_vbase_dtor(this+i);
12480 MSVCRT_operator_delete(ptr);
12482 ostrstream_vbase_dtor(this);
12484 MSVCRT_operator_delete(this);
12490 static inline istrstream* istrstream_from_basic_ios(basic_ios_char *ptr)
12492 return (istrstream*)((char*)ptr-istrstream_vbtable[1]);
12495 /* ??1istrstream@std@@UAE@XZ */
12496 /* ??1istrstream@std@@UEAA@XZ */
12497 DEFINE_THISCALL_WRAPPER(istrstream_dtor, 4)
12498 void __thiscall istrstream_dtor(basic_ios_char *base)
12500 istrstream *this = istrstream_from_basic_ios(base);
12502 TRACE("(%p)\n", this);
12504 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base));
12505 strstreambuf_dtor(&this->buf);
12508 static inline basic_ios_char* strstream_to_basic_ios(strstream *ptr)
12510 return (basic_ios_char*)((char*)ptr+strstream_vbtable1[1]);
12513 static inline strstream* strstream_from_basic_ios(basic_ios_char *ptr)
12515 return (strstream*)((char*)ptr-strstream_vbtable1[1]);
12518 /* ??0strstream@std@@QAE@PADHH@Z */
12519 /* ??0strstream@std@@QEAA@PEAD_JH@Z */
12520 DEFINE_THISCALL_WRAPPER(strstream_ctor, 20)
12521 strstream* __thiscall strstream_ctor(strstream *this, char *buf, streamsize size, int mode, MSVCP_bool virt_init)
12523 basic_ios_char *basic_ios;
12525 TRACE("(%p %p %ld %d %d)\n", this, buf, size, mode, virt_init);
12528 this->base.base1.vbtable = strstream_vbtable1;
12529 this->base.base2.vbtable = strstream_vbtable2;
12530 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
12531 basic_ios_char_ctor(basic_ios);
12533 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
12536 strstreambuf_ctor_get_put(&this->buf, buf, size,
12537 buf && (mode & OPENMODE_app) ? buf+strlen(buf) : buf);
12538 basic_iostream_char_ctor(&this->base, &this->buf.base, FALSE);
12539 basic_ios->base.vtable = &MSVCP_strstream_vtable;
12543 /* ??1strstream@std@@UAE@XZ */
12544 /* ??1strstream@std@@UEAA@XZ */
12545 DEFINE_THISCALL_WRAPPER(strstream_dtor, 4)
12546 void __thiscall strstream_dtor(basic_ios_char *base)
12548 strstream *this = strstream_from_basic_ios(base);
12550 TRACE("(%p)\n", this);
12552 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base));
12553 strstreambuf_dtor(&this->buf);
12556 static void strstream_vbase_dtor(strstream *this)
12558 TRACE("(%p)\n", this);
12560 strstream_dtor(strstream_to_basic_ios(this));
12561 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base.base1));
12564 DEFINE_THISCALL_WRAPPER(strstream_vector_dtor, 8)
12565 strstream* __thiscall strstream_vector_dtor(basic_ios_char *base, unsigned int flags)
12567 strstream *this = strstream_from_basic_ios(base);
12569 TRACE("(%p %x)\n", this, flags);
12572 /* we have an array, with the number of elements stored before the first object */
12573 INT_PTR i, *ptr = (INT_PTR *)this-1;
12575 for(i=*ptr-1; i>=0; i--)
12576 strstream_vbase_dtor(this+i);
12577 MSVCRT_operator_delete(ptr);
12579 strstream_vbase_dtor(this);
12581 MSVCRT_operator_delete(this);
12587 static void __cdecl setprecision_func(ios_base *base, streamsize prec)
12589 ios_base_precision_set(base, prec);
12592 /* ?setprecision@std@@YA?AU?$_Smanip@H@1@H@Z */
12593 /* ?setprecision@std@@YA?AU?$_Smanip@_J@1@_J@Z */
12594 manip_streamsize* __cdecl setprecision(manip_streamsize *ret, streamsize prec)
12596 TRACE("(%p %ld)\n", ret, prec);
12598 ret->pfunc = setprecision_func;
12603 static void __cdecl setw_func(ios_base *base, streamsize width)
12605 ios_base_width_set(base, width);
12608 /* ?setw@std@@YA?AU?$_Smanip@H@1@H@Z */
12609 /* ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z */
12610 manip_streamsize* __cdecl setw(manip_streamsize *ret, streamsize width)
12612 TRACE("(%p %ld)\n", ret, width);
12614 ret->pfunc = setw_func;
12619 static void __cdecl resetioflags_func(ios_base *base, int mask)
12621 ios_base_setf_mask(base, 0, mask);
12624 /* ?resetiosflags@std@@YA?AU?$_Smanip@H@1@H@Z */
12625 manip_int* __cdecl resetiosflags(manip_int *ret, int mask)
12627 TRACE("(%p %d)\n", ret, mask);
12629 ret->pfunc = resetioflags_func;
12634 static void __cdecl setiosflags_func(ios_base *base, int mask)
12636 ios_base_setf_mask(base, FMTFLAG_mask, mask);
12639 /* ?setiosflags@std@@YA?AU?$_Smanip@H@1@H@Z */
12640 manip_int* __cdecl setiosflags(manip_int *ret, int mask)
12642 TRACE("(%p %d)\n", ret, mask);
12644 ret->pfunc = setiosflags_func;
12649 static void __cdecl setbase_func(ios_base *base, int set_base)
12652 set_base = FMTFLAG_dec;
12653 else if(set_base == 8)
12654 set_base = FMTFLAG_oct;
12655 else if(set_base == 16)
12656 set_base = FMTFLAG_hex;
12660 ios_base_setf_mask(base, set_base, FMTFLAG_basefield);
12663 /* ?setbase@std@@YA?AU?$_Smanip@H@1@H@Z */
12664 manip_int* __cdecl setbase(manip_int *ret, int base)
12666 TRACE("(%p %d)\n", ret, base);
12668 ret->pfunc = setbase_func;
12673 static basic_filebuf_char filebuf_char_stdin;
12674 /* ?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A */
12676 basic_istream_char obj;
12677 basic_ios_char vbase;
12679 /* ?_Ptr_cin@std@@3PAV?$basic_istream@DU?$char_traits@D@std@@@1@A */
12680 /* ?_Ptr_cin@std@@3PEAV?$basic_istream@DU?$char_traits@D@std@@@1@EA */
12681 basic_istream_char *_Ptr_cin = &cin.obj;
12683 static basic_filebuf_wchar filebuf_short_stdin;
12684 /* ?wcin@std@@3V?$basic_istream@GU?$char_traits@G@std@@@1@A */
12686 basic_istream_wchar obj;
12687 basic_ios_wchar vbase;
12688 } ucin = { { 0 } };
12689 /* ?_Ptr_wcin@std@@3PAV?$basic_istream@GU?$char_traits@G@std@@@1@A */
12690 /* ?_Ptr_wcin@std@@3PEAV?$basic_istream@GU?$char_traits@G@std@@@1@EA */
12691 basic_istream_wchar *_Ptr_ucin = &ucin.obj;
12693 static basic_filebuf_wchar filebuf_wchar_stdin;
12694 /* ?wcin@std@@3V?$basic_istream@_WU?$char_traits@_W@std@@@1@A */
12696 basic_istream_wchar obj;
12697 basic_ios_wchar vbase;
12698 } wcin = { { 0 } };
12699 /* ?_Ptr_wcin@std@@3PAV?$basic_istream@_WU?$char_traits@_W@std@@@1@A */
12700 /* ?_Ptr_wcin@std@@3PEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@EA */
12701 basic_istream_wchar *_Ptr_wcin = &wcin.obj;
12703 static basic_filebuf_char filebuf_char_stdout;
12704 /* ?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12706 basic_ostream_char obj;
12707 basic_ios_char vbase;
12708 } cout = { { 0 } };
12709 /* ?_Ptr_cout@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12710 /* ?_Ptr_cout@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
12711 basic_ostream_char *_Ptr_cout = &cout.obj;
12713 static basic_filebuf_wchar filebuf_short_stdout;
12714 /* ?wcout@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12716 basic_ostream_wchar obj;
12717 basic_ios_wchar vbase;
12718 } ucout = { { 0 } };
12719 /* ?_Ptr_wcout@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12720 /* ?_Ptr_wcout@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
12721 basic_ostream_wchar *_Ptr_ucout = &ucout.obj;
12723 static basic_filebuf_wchar filebuf_wchar_stdout;
12724 /* ?wcout@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12726 basic_ostream_wchar obj;
12727 basic_ios_wchar vbase;
12728 } wcout = { { 0 } };
12729 /* ?_Ptr_wcout@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12730 /* ?_Ptr_wcout@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
12731 basic_ostream_wchar *_Ptr_wcout = &wcout.obj;
12733 static basic_filebuf_char filebuf_char_stderr;
12734 /* ?cerr@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12736 basic_ostream_char obj;
12737 basic_ios_char vbase;
12738 } cerr = { { 0 } };
12739 /* ?_Ptr_cerr@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12740 /* ?_Ptr_cerr@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
12741 basic_ostream_char *_Ptr_cerr = &cerr.obj;
12743 static basic_filebuf_wchar filebuf_short_stderr;
12744 /* ?wcerr@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12746 basic_ostream_wchar obj;
12747 basic_ios_wchar vbase;
12748 } ucerr = { { 0 } };
12749 /* ?_Ptr_wcerr@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12750 /* ?_Ptr_wcerr@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
12751 basic_ostream_wchar *_Ptr_ucerr = &ucerr.obj;
12753 static basic_filebuf_wchar filebuf_wchar_stderr;
12754 /* ?wcerr@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12756 basic_ostream_wchar obj;
12757 basic_ios_wchar vbase;
12758 } wcerr = { { 0 } };
12759 /* ?_Ptr_wcerr@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12760 /* ?_Ptr_wcerr@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
12761 basic_ostream_wchar *_Ptr_wcerr = &wcerr.obj;
12763 static basic_filebuf_char filebuf_char_log;
12764 /* ?clog@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12766 basic_ostream_char obj;
12767 basic_ios_char vbase;
12768 } clog = { { 0 } };
12769 /* ?_Ptr_clog@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12770 /* ?_Ptr_clog@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
12771 basic_ostream_char *_Ptr_clog = &clog.obj;
12773 static basic_filebuf_wchar filebuf_short_log;
12774 /* ?wclog@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12776 basic_ostream_wchar obj;
12777 basic_ios_wchar vbase;
12778 } uclog = { { 0 } };
12779 /* ?_Ptr_wclog@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12780 /* ?_Ptr_wclog@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
12781 basic_ostream_wchar *_Ptr_uclog = &uclog.obj;
12783 static basic_filebuf_wchar filebuf_wchar_log;
12784 /* ?wclog@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12786 basic_ostream_wchar obj;
12787 basic_ios_wchar vbase;
12788 } wclog = { { 0 } };
12789 /* ?_Ptr_wclog@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12790 /* ?_Ptr_wclog@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
12791 basic_ostream_wchar *_Ptr_wclog = &wclog.obj;
12793 /* ?_Init_cnt@Init@ios_base@std@@0HA */
12794 int ios_base_Init__Init_cnt = -1;
12796 /* ?_Init_ctor@Init@ios_base@std@@CAXPAV123@@Z */
12797 /* ?_Init_ctor@Init@ios_base@std@@CAXPEAV123@@Z */
12798 static void ios_base_Init__Init_ctor(void *this)
12800 TRACE("(%p)\n", this);
12802 if(ios_base_Init__Init_cnt < 0)
12803 ios_base_Init__Init_cnt = 1;
12805 ios_base_Init__Init_cnt++;
12808 /* ??0Init@ios_base@std@@QAE@XZ */
12809 /* ??0Init@ios_base@std@@QEAA@XZ */
12810 DEFINE_THISCALL_WRAPPER(ios_base_Init_ctor, 4)
12811 void* __thiscall ios_base_Init_ctor(void *this)
12813 ios_base_Init__Init_ctor(this);
12817 /* ?_Init_dtor@Init@ios_base@std@@CAXPAV123@@Z */
12818 /* ?_Init_dtor@Init@ios_base@std@@CAXPEAV123@@Z */
12819 static void ios_base_Init__Init_dtor(void *this)
12821 TRACE("(%p)\n", this);
12823 ios_base_Init__Init_cnt--;
12824 if(!ios_base_Init__Init_cnt) {
12825 basic_ostream_char_flush(&cout.obj);
12826 basic_ostream_char_flush(&cerr.obj);
12827 basic_ostream_char_flush(&clog.obj);
12831 /* ??1Init@ios_base@std@@QAE@XZ */
12832 /* ??1Init@ios_base@std@@QEAA@XZ */
12833 DEFINE_THISCALL_WRAPPER(ios_base_Init_dtor, 4)
12834 void __thiscall ios_base_Init_dtor(void *this)
12836 ios_base_Init__Init_dtor(this);
12839 /* ??4Init@ios_base@std@@QAEAAV012@ABV012@@Z */
12840 /* ??4Init@ios_base@std@@QEAAAEAV012@AEBV012@@Z */
12841 DEFINE_THISCALL_WRAPPER(ios_base_Init_op_assign, 8)
12842 void* __thiscall ios_base_Init_op_assign(void *this, void *rhs)
12844 TRACE("(%p %p)\n", this, rhs);
12848 /* ?_Init_cnt@_Winit@std@@0HA */
12849 int _Winit__Init_cnt = -1;
12851 /* ??0_Winit@std@@QAE@XZ */
12852 /* ??0_Winit@std@@QEAA@XZ */
12853 DEFINE_THISCALL_WRAPPER(_Winit_ctor, 4)
12854 void* __thiscall _Winit_ctor(void *this)
12856 TRACE("(%p)\n", this);
12858 if(_Winit__Init_cnt < 0)
12859 _Winit__Init_cnt = 1;
12861 _Winit__Init_cnt++;
12866 /* ??1_Winit@std@@QAE@XZ */
12867 /* ??1_Winit@std@@QAE@XZ */
12868 DEFINE_THISCALL_WRAPPER(_Winit_dtor, 4)
12869 void __thiscall _Winit_dtor(void *this)
12871 TRACE("(%p)\n", this);
12873 _Winit__Init_cnt--;
12874 if(!_Winit__Init_cnt) {
12875 basic_ostream_wchar_flush(&wcout.obj);
12876 basic_ostream_wchar_flush(&wcerr.obj);
12877 basic_ostream_wchar_flush(&wclog.obj);
12881 /* ??4_Winit@std@@QAEAAV01@ABV01@@Z */
12882 /* ??4_Winit@std@@QEAAAEAV01@AEBV01@@Z */
12883 DEFINE_THISCALL_WRAPPER(_Winit_op_assign, 8)
12884 void* __thiscall _Winit_op_assign(void *this, void *rhs)
12886 TRACE("(%p %p)\n", this, rhs);
12890 void init_io(void *base)
12893 init_iosb_rtti(base);
12894 init_ios_base_rtti(base);
12895 init_basic_ios_char_rtti(base);
12896 init_basic_ios_wchar_rtti(base);
12897 init_basic_ios_short_rtti(base);
12898 init_basic_streambuf_char_rtti(base);
12899 init_basic_streambuf_wchar_rtti(base);
12900 init_basic_streambuf_short_rtti(base);
12901 init_basic_filebuf_char_rtti(base);
12902 init_basic_filebuf_wchar_rtti(base);
12903 init_basic_filebuf_short_rtti(base);
12904 init_basic_stringbuf_char_rtti(base);
12905 init_basic_stringbuf_wchar_rtti(base);
12906 init_basic_stringbuf_short_rtti(base);
12907 init_basic_ostream_char_rtti(base);
12908 init_basic_ostream_wchar_rtti(base);
12909 init_basic_ostream_short_rtti(base);
12910 init_basic_istream_char_rtti(base);
12911 init_basic_istream_wchar_rtti(base);
12912 init_basic_istream_short_rtti(base);
12913 init_basic_iostream_char_rtti(base);
12914 init_basic_iostream_wchar_rtti(base);
12915 init_basic_iostream_short_rtti(base);
12916 init_basic_ofstream_char_rtti(base);
12917 init_basic_ofstream_wchar_rtti(base);
12918 init_basic_ofstream_short_rtti(base);
12919 init_basic_ifstream_char_rtti(base);
12920 init_basic_ifstream_wchar_rtti(base);
12921 init_basic_ifstream_short_rtti(base);
12922 init_basic_fstream_char_rtti(base);
12923 init_basic_fstream_wchar_rtti(base);
12924 init_basic_fstream_short_rtti(base);
12925 init_basic_ostringstream_char_rtti(base);
12926 init_basic_ostringstream_wchar_rtti(base);
12927 init_basic_ostringstream_short_rtti(base);
12928 init_basic_istringstream_char_rtti(base);
12929 init_basic_istringstream_wchar_rtti(base);
12930 init_basic_istringstream_short_rtti(base);
12931 init_basic_stringstream_char_rtti(base);
12932 init_basic_stringstream_wchar_rtti(base);
12933 init_basic_stringstream_short_rtti(base);
12934 init_strstreambuf_rtti(base);
12935 init_strstream_rtti(base);
12936 init_ostrstream_rtti(base);
12939 basic_filebuf_char_ctor_file(&filebuf_char_stdin, stdin);
12940 basic_istream_char_ctor(&cin.obj, &filebuf_char_stdin.base, FALSE/*FIXME*/, TRUE);
12942 basic_filebuf_short_ctor_file(&filebuf_short_stdin, stdin);
12943 basic_istream_short_ctor(&ucin.obj, &filebuf_short_stdin.base, FALSE/*FIXME*/, TRUE);
12945 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stdin, stdin);
12946 basic_istream_wchar_ctor(&wcin.obj, &filebuf_wchar_stdin.base, FALSE/*FIXME*/, TRUE);
12948 basic_filebuf_char_ctor_file(&filebuf_char_stdout, stdout);
12949 basic_ostream_char_ctor(&cout.obj, &filebuf_char_stdout.base, FALSE/*FIXME*/, TRUE);
12951 basic_filebuf_short_ctor_file(&filebuf_short_stdout, stdout);
12952 basic_ostream_short_ctor(&ucout.obj, &filebuf_short_stdout.base, FALSE/*FIXME*/, TRUE);
12954 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stdout, stdout);
12955 basic_ostream_wchar_ctor(&wcout.obj, &filebuf_wchar_stdout.base, FALSE/*FIXME*/, TRUE);
12957 basic_filebuf_char_ctor_file(&filebuf_char_stderr, stderr);
12958 basic_ostream_char_ctor(&cerr.obj, &filebuf_char_stderr.base, FALSE/*FIXME*/, TRUE);
12960 basic_filebuf_short_ctor_file(&filebuf_short_stderr, stderr);
12961 basic_ostream_short_ctor(&ucerr.obj, &filebuf_short_stderr.base, FALSE/*FIXME*/, TRUE);
12963 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stderr, stderr);
12964 basic_ostream_wchar_ctor(&wcerr.obj, &filebuf_wchar_stderr.base, FALSE/*FIXME*/, TRUE);
12966 basic_filebuf_char_ctor_file(&filebuf_char_log, stderr);
12967 basic_ostream_char_ctor(&clog.obj, &filebuf_char_log.base, FALSE/*FIXME*/, TRUE);
12969 basic_filebuf_short_ctor_file(&filebuf_short_log, stderr);
12970 basic_ostream_short_ctor(&uclog.obj, &filebuf_short_log.base, FALSE/*FIXME*/, TRUE);
12972 basic_filebuf_wchar_ctor_file(&filebuf_wchar_log, stderr);
12973 basic_ostream_wchar_ctor(&wclog.obj, &filebuf_wchar_log.base, FALSE/*FIXME*/, TRUE);
12978 basic_istream_char_vbase_dtor(&cin.obj);
12979 basic_filebuf_char_dtor(&filebuf_char_stdin);
12981 basic_istream_wchar_vbase_dtor(&ucin.obj);
12982 basic_filebuf_wchar_dtor(&filebuf_short_stdin);
12984 basic_istream_wchar_vbase_dtor(&wcin.obj);
12985 basic_filebuf_wchar_dtor(&filebuf_wchar_stdin);
12987 basic_ostream_char_vbase_dtor(&cout.obj);
12988 basic_filebuf_char_dtor(&filebuf_char_stdout);
12990 basic_ostream_wchar_vbase_dtor(&ucout.obj);
12991 basic_filebuf_wchar_dtor(&filebuf_short_stdout);
12993 basic_ostream_wchar_vbase_dtor(&wcout.obj);
12994 basic_filebuf_wchar_dtor(&filebuf_wchar_stdout);
12996 basic_ostream_char_vbase_dtor(&cerr.obj);
12997 basic_filebuf_char_dtor(&filebuf_char_stderr);
12999 basic_ostream_wchar_vbase_dtor(&ucerr.obj);
13000 basic_filebuf_wchar_dtor(&filebuf_short_stderr);
13002 basic_ostream_wchar_vbase_dtor(&wcerr.obj);
13003 basic_filebuf_wchar_dtor(&filebuf_wchar_stderr);
13005 basic_ostream_char_vbase_dtor(&clog.obj);
13006 basic_filebuf_char_dtor(&filebuf_char_log);
13008 basic_ostream_wchar_vbase_dtor(&uclog.obj);
13009 basic_filebuf_wchar_dtor(&filebuf_short_log);
13011 basic_ostream_wchar_vbase_dtor(&wclog.obj);
13012 basic_filebuf_wchar_dtor(&filebuf_wchar_log);