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_xsputn)
698 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff)
699 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos)
700 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
701 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
702 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
703 __ASM_VTABLE(basic_streambuf_short,
704 VTABLE_ADD_FUNC(basic_streambuf_wchar_vector_dtor)
705 VTABLE_ADD_FUNC(basic_streambuf_wchar_overflow)
706 VTABLE_ADD_FUNC(basic_streambuf_wchar_pbackfail)
707 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
708 VTABLE_ADD_FUNC(basic_streambuf_wchar_underflow)
709 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
710 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
711 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
712 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff)
713 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos)
714 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
715 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
716 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
717 __ASM_VTABLE(basic_filebuf_char,
718 VTABLE_ADD_FUNC(basic_filebuf_char_vector_dtor)
719 VTABLE_ADD_FUNC(basic_filebuf_char_overflow)
720 VTABLE_ADD_FUNC(basic_filebuf_char_pbackfail)
721 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
722 VTABLE_ADD_FUNC(basic_filebuf_char_underflow)
723 VTABLE_ADD_FUNC(basic_filebuf_char_uflow)
724 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
725 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
726 VTABLE_ADD_FUNC(basic_filebuf_char_seekoff)
727 VTABLE_ADD_FUNC(basic_filebuf_char_seekpos)
728 VTABLE_ADD_FUNC(basic_filebuf_char_setbuf)
729 VTABLE_ADD_FUNC(basic_filebuf_char_sync)
730 VTABLE_ADD_FUNC(basic_filebuf_char_imbue));
731 __ASM_VTABLE(basic_filebuf_wchar,
732 VTABLE_ADD_FUNC(basic_filebuf_wchar_vector_dtor)
733 VTABLE_ADD_FUNC(basic_filebuf_wchar_overflow)
734 VTABLE_ADD_FUNC(basic_filebuf_wchar_pbackfail)
735 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
736 VTABLE_ADD_FUNC(basic_filebuf_wchar_underflow)
737 VTABLE_ADD_FUNC(basic_filebuf_wchar_uflow)
738 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
739 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
740 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekoff)
741 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekpos)
742 VTABLE_ADD_FUNC(basic_filebuf_wchar_setbuf)
743 VTABLE_ADD_FUNC(basic_filebuf_wchar_sync)
744 VTABLE_ADD_FUNC(basic_filebuf_wchar_imbue));
745 __ASM_VTABLE(basic_filebuf_short,
746 VTABLE_ADD_FUNC(basic_filebuf_wchar_vector_dtor)
747 VTABLE_ADD_FUNC(basic_filebuf_wchar_overflow)
748 VTABLE_ADD_FUNC(basic_filebuf_wchar_pbackfail)
749 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
750 VTABLE_ADD_FUNC(basic_filebuf_wchar_underflow)
751 VTABLE_ADD_FUNC(basic_filebuf_wchar_uflow)
752 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
753 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
754 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekoff)
755 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekpos)
756 VTABLE_ADD_FUNC(basic_filebuf_short_setbuf)
757 VTABLE_ADD_FUNC(basic_filebuf_wchar_sync)
758 VTABLE_ADD_FUNC(basic_filebuf_short_imbue));
759 __ASM_VTABLE(basic_stringbuf_char,
760 VTABLE_ADD_FUNC(basic_stringbuf_char_vector_dtor)
761 VTABLE_ADD_FUNC(basic_stringbuf_char_overflow)
762 VTABLE_ADD_FUNC(basic_stringbuf_char_pbackfail)
763 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
764 VTABLE_ADD_FUNC(basic_stringbuf_char_underflow)
765 VTABLE_ADD_FUNC(basic_streambuf_char_uflow)
766 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
767 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
768 VTABLE_ADD_FUNC(basic_stringbuf_char_seekoff)
769 VTABLE_ADD_FUNC(basic_stringbuf_char_seekpos)
770 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf)
771 VTABLE_ADD_FUNC(basic_streambuf_char_sync)
772 VTABLE_ADD_FUNC(basic_streambuf_char_imbue));
773 __ASM_VTABLE(basic_stringbuf_wchar,
774 VTABLE_ADD_FUNC(basic_stringbuf_wchar_vector_dtor)
775 VTABLE_ADD_FUNC(basic_stringbuf_wchar_overflow)
776 VTABLE_ADD_FUNC(basic_stringbuf_wchar_pbackfail)
777 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
778 VTABLE_ADD_FUNC(basic_stringbuf_wchar_underflow)
779 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
780 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
781 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
782 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekoff)
783 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekpos)
784 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
785 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
786 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
787 __ASM_VTABLE(basic_stringbuf_short,
788 VTABLE_ADD_FUNC(basic_stringbuf_wchar_vector_dtor)
789 VTABLE_ADD_FUNC(basic_stringbuf_wchar_overflow)
790 VTABLE_ADD_FUNC(basic_stringbuf_wchar_pbackfail)
791 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
792 VTABLE_ADD_FUNC(basic_stringbuf_wchar_underflow)
793 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
794 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
795 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
796 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekoff)
797 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekpos)
798 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
799 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
800 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
801 __ASM_VTABLE(basic_ostream_char,
802 VTABLE_ADD_FUNC(basic_ostream_char_vector_dtor));
803 __ASM_VTABLE(basic_ostream_wchar,
804 VTABLE_ADD_FUNC(basic_ostream_wchar_vector_dtor));
805 __ASM_VTABLE(basic_ostream_short,
806 VTABLE_ADD_FUNC(basic_ostream_wchar_vector_dtor));
807 __ASM_VTABLE(basic_istream_char,
808 VTABLE_ADD_FUNC(basic_istream_char_vector_dtor));
809 __ASM_VTABLE(basic_istream_wchar,
810 VTABLE_ADD_FUNC(basic_istream_wchar_vector_dtor));
811 __ASM_VTABLE(basic_istream_short,
812 VTABLE_ADD_FUNC(basic_istream_wchar_vector_dtor));
813 __ASM_VTABLE(basic_iostream_char,
814 VTABLE_ADD_FUNC(basic_iostream_char_vector_dtor));
815 __ASM_VTABLE(basic_iostream_wchar,
816 VTABLE_ADD_FUNC(basic_iostream_wchar_vector_dtor));
817 __ASM_VTABLE(basic_iostream_short,
818 VTABLE_ADD_FUNC(basic_iostream_wchar_vector_dtor));
819 __ASM_VTABLE(basic_ofstream_char,
820 VTABLE_ADD_FUNC(basic_ofstream_char_vector_dtor));
821 __ASM_VTABLE(basic_ofstream_wchar,
822 VTABLE_ADD_FUNC(basic_ofstream_wchar_vector_dtor));
823 __ASM_VTABLE(basic_ofstream_short,
824 VTABLE_ADD_FUNC(basic_ofstream_wchar_vector_dtor));
825 __ASM_VTABLE(basic_ifstream_char,
826 VTABLE_ADD_FUNC(basic_ifstream_char_vector_dtor));
827 __ASM_VTABLE(basic_ifstream_wchar,
828 VTABLE_ADD_FUNC(basic_ifstream_wchar_vector_dtor));
829 __ASM_VTABLE(basic_ifstream_short,
830 VTABLE_ADD_FUNC(basic_ifstream_wchar_vector_dtor));
831 __ASM_VTABLE(basic_fstream_char,
832 VTABLE_ADD_FUNC(basic_fstream_char_vector_dtor));
833 __ASM_VTABLE(basic_fstream_wchar,
834 VTABLE_ADD_FUNC(basic_fstream_wchar_vector_dtor));
835 __ASM_VTABLE(basic_fstream_short,
836 VTABLE_ADD_FUNC(basic_fstream_wchar_vector_dtor));
837 __ASM_VTABLE(basic_ostringstream_char,
838 VTABLE_ADD_FUNC(basic_ostringstream_char_vector_dtor));
839 __ASM_VTABLE(basic_ostringstream_wchar,
840 VTABLE_ADD_FUNC(basic_ostringstream_wchar_vector_dtor));
841 __ASM_VTABLE(basic_ostringstream_short,
842 VTABLE_ADD_FUNC(basic_ostringstream_wchar_vector_dtor));
843 __ASM_VTABLE(basic_istringstream_char,
844 VTABLE_ADD_FUNC(basic_istringstream_char_vector_dtor));
845 __ASM_VTABLE(basic_istringstream_wchar,
846 VTABLE_ADD_FUNC(basic_istringstream_wchar_vector_dtor));
847 __ASM_VTABLE(basic_istringstream_short,
848 VTABLE_ADD_FUNC(basic_istringstream_wchar_vector_dtor));
849 __ASM_VTABLE(basic_stringstream_char,
850 VTABLE_ADD_FUNC(basic_stringstream_char_vector_dtor));
851 __ASM_VTABLE(basic_stringstream_wchar,
852 VTABLE_ADD_FUNC(basic_stringstream_wchar_vector_dtor));
853 __ASM_VTABLE(basic_stringstream_short,
854 VTABLE_ADD_FUNC(basic_stringstream_wchar_vector_dtor));
855 __ASM_VTABLE(strstreambuf,
856 VTABLE_ADD_FUNC(strstreambuf_vector_dtor)
857 VTABLE_ADD_FUNC(strstreambuf_overflow)
858 VTABLE_ADD_FUNC(strstreambuf_pbackfail)
859 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
860 VTABLE_ADD_FUNC(strstreambuf_underflow)
861 VTABLE_ADD_FUNC(basic_streambuf_char_uflow)
862 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
863 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
864 VTABLE_ADD_FUNC(strstreambuf_seekoff)
865 VTABLE_ADD_FUNC(strstreambuf_seekpos)
866 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf)
867 VTABLE_ADD_FUNC(basic_streambuf_char_sync)
868 VTABLE_ADD_FUNC(basic_streambuf_char_imbue));
869 __ASM_VTABLE(ostrstream,
870 VTABLE_ADD_FUNC(ostrstream_vector_dtor));
871 __ASM_VTABLE(strstream,
872 VTABLE_ADD_FUNC(strstream_vector_dtor));
877 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
878 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
879 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp_next, 16)
880 void __thiscall basic_streambuf_char_setp_next(basic_streambuf_char *this, char *first, char *next, char *last)
882 TRACE("(%p %p %p %p)\n", this, first, next, last);
886 this->wsize = last-next;
889 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z */
890 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z */
891 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp, 12)
892 void __thiscall basic_streambuf_char_setp(basic_streambuf_char *this, char *first, char *last)
894 basic_streambuf_char_setp_next(this, first, first, last);
897 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
898 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
899 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setg, 16)
900 void __thiscall basic_streambuf_char_setg(basic_streambuf_char *this, char *first, char *next, char *last)
902 TRACE("(%p %p %p %p)\n", this, first, next, last);
906 this->rsize = last-next;
909 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ */
910 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ */
911 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init_empty, 4)
912 void __thiscall basic_streambuf_char__Init_empty(basic_streambuf_char *this)
914 TRACE("(%p)\n", this);
916 this->prbuf = &this->rbuf;
917 this->pwbuf = &this->wbuf;
918 this->prpos = &this->rpos;
919 this->pwpos = &this->wpos;
920 this->prsize = &this->rsize;
921 this->pwsize = &this->wsize;
923 basic_streambuf_char_setp(this, NULL, NULL);
924 basic_streambuf_char_setg(this, NULL, NULL, NULL);
927 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@W4_Uninitialized@1@@Z */
928 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
929 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor_uninitialized, 8)
930 basic_streambuf_char* __thiscall basic_streambuf_char_ctor_uninitialized(basic_streambuf_char *this, int uninitialized)
932 TRACE("(%p %d)\n", this, uninitialized);
933 this->vtable = &MSVCP_basic_streambuf_char_vtable;
934 mutex_ctor(&this->lock);
938 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ */
939 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ */
940 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor, 4)
941 basic_streambuf_char* __thiscall basic_streambuf_char_ctor(basic_streambuf_char *this)
943 TRACE("(%p)\n", this);
945 this->vtable = &MSVCP_basic_streambuf_char_vtable;
946 mutex_ctor(&this->lock);
947 this->loc = MSVCRT_operator_new(sizeof(locale));
948 locale_ctor(this->loc);
949 basic_streambuf_char__Init_empty(this);
954 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
955 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
956 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_dtor, 4)
957 void __thiscall basic_streambuf_char_dtor(basic_streambuf_char *this)
959 TRACE("(%p)\n", this);
961 mutex_dtor(&this->lock);
962 locale_dtor(this->loc);
963 MSVCRT_operator_delete(this->loc);
966 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_vector_dtor, 8)
967 basic_streambuf_char* __thiscall basic_streambuf_char_vector_dtor(basic_streambuf_char *this, unsigned int flags)
969 TRACE("(%p %x)\n", this, flags);
971 /* we have an array, with the number of elements stored before the first object */
972 INT_PTR i, *ptr = (INT_PTR *)this-1;
974 for(i=*ptr-1; i>=0; i--)
975 basic_streambuf_char_dtor(this+i);
976 MSVCRT_operator_delete(ptr);
978 basic_streambuf_char_dtor(this);
980 MSVCRT_operator_delete(this);
986 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
987 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
988 static streamsize basic_streambuf_char__Gnavail(const basic_streambuf_char *this)
990 TRACE("(%p)\n", this);
991 return *this->prpos ? *this->prsize : 0;
994 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
995 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
996 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gndec, 4)
997 char* __thiscall basic_streambuf_char__Gndec(basic_streambuf_char *this)
999 TRACE("(%p)\n", this);
1002 return *this->prpos;
1005 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
1006 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
1007 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gninc, 4)
1008 char* __thiscall basic_streambuf_char__Gninc(basic_streambuf_char *this)
1010 TRACE("(%p)\n", this);
1012 return (*this->prpos)++;
1015 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
1016 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
1017 static char* basic_streambuf_char__Gnpreinc(basic_streambuf_char *this)
1019 TRACE("(%p)\n", this);
1022 return *this->prpos;
1025 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z */
1026 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAPEAD0PEAH001@Z */
1027 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init, 28)
1028 void __thiscall basic_streambuf_char__Init(basic_streambuf_char *this, char **gf, char **gn, int *gc, char **pf, char **pn, int *pc)
1030 TRACE("(%p %p %p %p %p %p %p)\n", this, gf, gn, gc, pf, pn, pc);
1040 /* ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1041 /* ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1042 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Lock, 4)
1043 void __thiscall basic_streambuf_char__Lock(basic_streambuf_char *this)
1045 TRACE("(%p)\n", this);
1046 mutex_lock(&this->lock);
1049 /* ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
1050 /* ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
1051 static streamsize basic_streambuf_char__Pnavail(const basic_streambuf_char *this)
1053 TRACE("(%p)\n", this);
1054 return *this->pwpos ? *this->pwsize : 0;
1057 /* ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
1058 /* ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
1059 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Pninc, 4)
1060 char* __thiscall basic_streambuf_char__Pninc(basic_streambuf_char *this)
1062 TRACE("(%p)\n", this);
1064 return (*this->pwpos)++;
1067 /* ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1068 /* ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1069 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_underflow, 4)
1070 #define call_basic_streambuf_char_underflow(this) CALL_VTBL_FUNC(this, 16, \
1071 int, (basic_streambuf_char*), (this))
1072 int __thiscall basic_streambuf_char_underflow(basic_streambuf_char *this)
1074 TRACE("(%p)\n", this);
1078 /* ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1079 /* ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1080 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_uflow, 4)
1081 #define call_basic_streambuf_char_uflow(this) CALL_VTBL_FUNC(this, 20, \
1082 int, (basic_streambuf_char*), (this))
1083 int __thiscall basic_streambuf_char_uflow(basic_streambuf_char *this)
1087 TRACE("(%p)\n", this);
1089 if(call_basic_streambuf_char_underflow(this)==EOF)
1092 ret = (unsigned char)**this->prpos;
1098 /* ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADIH@Z */
1099 /* ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_K_J@Z */
1100 static streamsize basic_streambuf_char__Xsgetn_s(basic_streambuf_char *this, char *ptr, MSVCP_size_t size, streamsize count)
1102 streamsize copied, chunk;
1105 TRACE("(%p %p %lu %ld)\n", this, ptr, size, count);
1107 for(copied=0; copied<count && size;) {
1108 chunk = basic_streambuf_char__Gnavail(this);
1109 if(chunk > count-copied)
1110 chunk = count-copied;
1113 memcpy_s(ptr+copied, size, *this->prpos, chunk);
1114 *this->prpos += chunk;
1115 *this->prsize -= chunk;
1118 }else if((c = call_basic_streambuf_char_uflow(this)) != EOF) {
1130 /* ?_Sgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADIH@Z */
1131 /* ?_Sgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_K_J@Z */
1132 static streamsize basic_streambuf_char__Sgetn_s(basic_streambuf_char *this, char *ptr, MSVCP_size_t size, streamsize count)
1134 TRACE("(%p %p %lu %ld)\n", this, ptr, size, count);
1135 return basic_streambuf_char__Xsgetn_s(this, ptr, size, count);
1138 /* ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1139 /* ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1140 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Unlock, 4)
1141 void __thiscall basic_streambuf_char__Unlock(basic_streambuf_char *this)
1143 TRACE("(%p)\n", this);
1144 mutex_unlock(&this->lock);
1147 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1148 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1149 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_eback, 4)
1150 char* __thiscall basic_streambuf_char_eback(const basic_streambuf_char *this)
1152 TRACE("(%p)\n", this);
1153 return *this->prbuf;
1156 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1157 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1158 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gptr, 4)
1159 char* __thiscall basic_streambuf_char_gptr(const basic_streambuf_char *this)
1161 TRACE("(%p)\n", this);
1162 return *this->prpos;
1165 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1166 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1167 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_egptr, 4)
1168 char* __thiscall basic_streambuf_char_egptr(const basic_streambuf_char *this)
1170 TRACE("(%p)\n", this);
1171 return *this->prpos+*this->prsize;
1174 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1175 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1176 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_epptr, 4)
1177 char* __thiscall basic_streambuf_char_epptr(const basic_streambuf_char *this)
1179 TRACE("(%p)\n", this);
1180 return *this->pwpos+*this->pwsize;
1183 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
1184 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
1185 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gbump, 8)
1186 void __thiscall basic_streambuf_char_gbump(basic_streambuf_char *this, int off)
1188 TRACE("(%p %d)\n", this, off);
1189 *this->prpos += off;
1190 *this->prsize -= off;
1193 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ */
1194 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?AVlocale@2@XZ */
1195 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_getloc, 8)
1196 locale* __thiscall basic_streambuf_char_getloc(const basic_streambuf_char *this, locale *ret)
1198 TRACE("(%p)\n", this);
1199 return locale_copy_ctor(ret, this->loc);
1202 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z */
1203 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z */
1204 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_imbue, 8)
1205 #define call_basic_streambuf_char_imbue(this, loc) CALL_VTBL_FUNC(this, 48, \
1206 void, (basic_streambuf_char*, const locale*), (this, loc))
1207 void __thiscall basic_streambuf_char_imbue(basic_streambuf_char *this, const locale *loc)
1209 TRACE("(%p %p)\n", this, loc);
1212 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
1213 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
1214 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_overflow, 8)
1215 #define call_basic_streambuf_char_overflow(this, ch) CALL_VTBL_FUNC(this, 4, \
1216 int, (basic_streambuf_char*, int), (this, ch))
1217 int __thiscall basic_streambuf_char_overflow(basic_streambuf_char *this, int ch)
1219 TRACE("(%p %d)\n", this, ch);
1223 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
1224 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
1225 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbackfail, 8)
1226 #define call_basic_streambuf_char_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, \
1227 int, (basic_streambuf_char*, int), (this, ch))
1228 int __thiscall basic_streambuf_char_pbackfail(basic_streambuf_char *this, int ch)
1230 TRACE("(%p %d)\n", this, ch);
1234 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1235 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1236 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbase, 4)
1237 char* __thiscall basic_streambuf_char_pbase(const basic_streambuf_char *this)
1239 TRACE("(%p)\n", this);
1240 return *this->pwbuf;
1243 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
1244 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
1245 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbump, 8)
1246 void __thiscall basic_streambuf_char_pbump(basic_streambuf_char *this, int off)
1248 TRACE("(%p %d)\n", this, off);
1249 *this->pwpos += off;
1250 *this->pwsize -= off;
1253 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1254 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1255 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pptr, 4)
1256 char* __thiscall basic_streambuf_char_pptr(const basic_streambuf_char *this)
1258 TRACE("(%p)\n", this);
1259 return *this->pwpos;
1262 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
1263 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
1264 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubimbue, 12)
1265 locale* __thiscall basic_streambuf_char_pubimbue(basic_streambuf_char *this, locale *ret, const locale *loc)
1267 TRACE("(%p %p)\n", this, loc);
1268 memcpy(ret, this->loc, sizeof(locale));
1269 call_basic_streambuf_char_imbue(this, loc);
1270 locale_copy_ctor(this->loc, loc);
1274 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
1275 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
1276 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekoff, 20)
1277 #define call_basic_streambuf_char_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 32, \
1278 fpos_int*, (basic_streambuf_char*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
1279 fpos_int* __thiscall basic_streambuf_char_seekoff(basic_streambuf_char *this,
1280 fpos_int *ret, streamoff off, int way, int mode)
1282 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
1289 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
1290 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
1291 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff, 20)
1292 fpos_int* __thiscall basic_streambuf_char_pubseekoff(basic_streambuf_char *this,
1293 fpos_int *ret, streamoff off, int way, int mode)
1295 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
1296 return call_basic_streambuf_char_seekoff(this, ret, off, way, mode);
1299 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
1300 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
1301 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff_old, 20)
1302 fpos_int* __thiscall basic_streambuf_char_pubseekoff_old(basic_streambuf_char *this,
1303 fpos_int *ret, streamoff off, unsigned int way, unsigned int mode)
1305 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
1306 return basic_streambuf_char_pubseekoff(this, ret, off, way, mode);
1309 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
1310 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
1311 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekpos, 36)
1312 #define call_basic_streambuf_char_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 36, \
1313 fpos_int*, (basic_streambuf_char*, fpos_int*, fpos_int, int), (this, ret, pos, mode))
1314 fpos_int* __thiscall basic_streambuf_char_seekpos(basic_streambuf_char *this,
1315 fpos_int *ret, fpos_int pos, int mode)
1317 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
1324 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
1325 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
1326 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos, 36)
1327 fpos_int* __thiscall basic_streambuf_char_pubseekpos(basic_streambuf_char *this,
1328 fpos_int *ret, fpos_int pos, int mode)
1330 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
1331 return call_basic_streambuf_char_seekpos(this, ret, pos, mode);
1334 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
1335 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
1336 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos_old, 36)
1337 fpos_int* __thiscall basic_streambuf_char_pubseekpos_old(basic_streambuf_char *this,
1338 fpos_int *ret, fpos_int pos, unsigned int mode)
1340 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
1341 return basic_streambuf_char_pubseekpos(this, ret, pos, mode);
1344 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z */
1345 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@PEAD_J@Z */
1346 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setbuf, 12)
1347 #define call_basic_streambuf_char_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 40, \
1348 basic_streambuf_char*, (basic_streambuf_char*, char*, streamsize), (this, buf, count))
1349 basic_streambuf_char* __thiscall basic_streambuf_char_setbuf(basic_streambuf_char *this, char *buf, streamsize count)
1351 TRACE("(%p %p %ld)\n", this, buf, count);
1355 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PADH@Z */
1356 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEAD_J@Z */
1357 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsetbuf, 12)
1358 basic_streambuf_char* __thiscall basic_streambuf_char_pubsetbuf(basic_streambuf_char *this, char *buf, streamsize count)
1360 TRACE("(%p %p %ld)\n", this, buf, count);
1361 return call_basic_streambuf_char_setbuf(this, buf, count);
1364 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1365 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1366 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sync, 4)
1367 #define call_basic_streambuf_char_sync(this) CALL_VTBL_FUNC(this, 44, \
1368 int, (basic_streambuf_char*), (this))
1369 int __thiscall basic_streambuf_char_sync(basic_streambuf_char *this)
1371 TRACE("(%p)\n", this);
1375 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1376 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1377 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsync, 4)
1378 int __thiscall basic_streambuf_char_pubsync(basic_streambuf_char *this)
1380 TRACE("(%p)\n", this);
1381 return call_basic_streambuf_char_sync(this);
1384 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z */
1385 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z */
1386 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsgetn, 12)
1387 #define call_basic_streambuf_char_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, \
1388 streamsize, (basic_streambuf_char*, char*, streamsize), (this, ptr, count))
1389 streamsize __thiscall basic_streambuf_char_xsgetn(basic_streambuf_char *this, char *ptr, streamsize count)
1391 TRACE("(%p %p %ld)\n", this, ptr, count);
1392 return basic_streambuf_char__Xsgetn_s(this, ptr, -1, count);
1395 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADH@Z */
1396 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z */
1397 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetn, 12)
1398 streamsize __thiscall basic_streambuf_char_sgetn(basic_streambuf_char *this, char *ptr, streamsize count)
1400 TRACE("(%p %p %ld)\n", this, ptr, count);
1401 return call_basic_streambuf_char_xsgetn(this, ptr, count);
1404 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1405 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ */
1406 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_showmanyc, 4)
1407 #define call_basic_streambuf_char_showmanyc(this) CALL_VTBL_FUNC(this, 12, \
1408 streamsize, (basic_streambuf_char*), (this))
1409 streamsize __thiscall basic_streambuf_char_showmanyc(basic_streambuf_char *this)
1411 TRACE("(%p)\n", this);
1415 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1416 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JXZ */
1417 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_in_avail, 4)
1418 streamsize __thiscall basic_streambuf_char_in_avail(basic_streambuf_char *this)
1422 TRACE("(%p)\n", this);
1424 ret = basic_streambuf_char__Gnavail(this);
1425 return ret ? ret : call_basic_streambuf_char_showmanyc(this);
1428 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
1429 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
1430 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputbackc, 8)
1431 int __thiscall basic_streambuf_char_sputbackc(basic_streambuf_char *this, char ch)
1433 TRACE("(%p %d)\n", this, ch);
1434 if(*this->prpos && *this->prpos>*this->prbuf && (*this->prpos)[-1]==ch) {
1437 return (unsigned char)ch;
1440 return call_basic_streambuf_char_pbackfail(this, (unsigned char)ch);
1443 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
1444 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
1445 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputc, 8)
1446 int __thiscall basic_streambuf_char_sputc(basic_streambuf_char *this, char ch)
1448 TRACE("(%p %d)\n", this, ch);
1449 return basic_streambuf_char__Pnavail(this) ?
1450 (*basic_streambuf_char__Pninc(this) = ch) :
1451 call_basic_streambuf_char_overflow(this, (unsigned char)ch);
1454 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1455 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1456 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sungetc, 4)
1457 int __thiscall basic_streambuf_char_sungetc(basic_streambuf_char *this)
1459 TRACE("(%p)\n", this);
1460 if(*this->prpos && *this->prpos>*this->prbuf) {
1463 return (unsigned char)**this->prpos;
1466 return call_basic_streambuf_char_pbackfail(this, EOF);
1469 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1470 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1471 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_stossc, 4)
1472 void __thiscall basic_streambuf_char_stossc(basic_streambuf_char *this)
1474 TRACE("(%p)\n", this);
1475 if(basic_streambuf_char__Gnavail(this))
1476 basic_streambuf_char__Gninc(this);
1478 call_basic_streambuf_char_uflow(this);
1481 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1482 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1483 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sbumpc, 4)
1484 int __thiscall basic_streambuf_char_sbumpc(basic_streambuf_char *this)
1486 TRACE("(%p)\n", this);
1487 return basic_streambuf_char__Gnavail(this) ?
1488 (int)(unsigned char)*basic_streambuf_char__Gninc(this) : call_basic_streambuf_char_uflow(this);
1491 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1492 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1493 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetc, 4)
1494 int __thiscall basic_streambuf_char_sgetc(basic_streambuf_char *this)
1496 TRACE("(%p)\n", this);
1497 return basic_streambuf_char__Gnavail(this) ?
1498 (int)(unsigned char)*basic_streambuf_char_gptr(this) : call_basic_streambuf_char_underflow(this);
1501 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1502 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1503 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_snextc, 4)
1504 int __thiscall basic_streambuf_char_snextc(basic_streambuf_char *this)
1506 TRACE("(%p)\n", this);
1508 if(basic_streambuf_char__Gnavail(this) > 1)
1509 return (unsigned char)*basic_streambuf_char__Gnpreinc(this);
1510 return basic_streambuf_char_sbumpc(this)==EOF ?
1511 EOF : basic_streambuf_char_sgetc(this);
1514 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z */
1515 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z */
1516 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsputn, 12)
1517 #define call_basic_streambuf_char_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 28, \
1518 streamsize, (basic_streambuf_char*, const char*, streamsize), (this, ptr, count))
1519 streamsize __thiscall basic_streambuf_char_xsputn(basic_streambuf_char *this, const char *ptr, streamsize count)
1521 streamsize copied, chunk;
1523 TRACE("(%p %p %ld)\n", this, ptr, count);
1525 for(copied=0; copied<count;) {
1526 chunk = basic_streambuf_char__Pnavail(this);
1527 if(chunk > count-copied)
1528 chunk = count-copied;
1531 memcpy(*this->pwpos, ptr+copied, chunk);
1532 *this->pwpos += chunk;
1533 *this->pwsize -= chunk;
1535 }else if(call_basic_streambuf_char_overflow(this, (unsigned char)ptr[copied]) != EOF) {
1545 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z */
1546 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@Z */
1547 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputn, 12)
1548 streamsize __thiscall basic_streambuf_char_sputn(basic_streambuf_char *this, const char *ptr, streamsize count)
1550 TRACE("(%p %p %ld)\n", this, ptr, count);
1551 return call_basic_streambuf_char_xsputn(this, ptr, count);
1554 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z */
1555 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z */
1556 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG00@Z */
1557 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z */
1558 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setp_next, 16)
1559 void __thiscall basic_streambuf_wchar_setp_next(basic_streambuf_wchar *this, wchar_t *first, wchar_t *next, wchar_t *last)
1561 TRACE("(%p %p %p %p)\n", this, first, next, last);
1565 this->wsize = last-next;
1568 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W0@Z */
1569 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W0@Z */
1570 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG0@Z */
1571 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG0@Z */
1572 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setp, 12)
1573 void __thiscall basic_streambuf_wchar_setp(basic_streambuf_wchar *this, wchar_t *first, wchar_t *last)
1575 basic_streambuf_wchar_setp_next(this, first, first, last);
1578 /* ?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z */
1579 /* ?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z */
1580 /* ?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG00@Z */
1581 /* ?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z */
1582 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setg, 16)
1583 void __thiscall basic_streambuf_wchar_setg(basic_streambuf_wchar *this, wchar_t *first, wchar_t *next, wchar_t *last)
1585 TRACE("(%p %p %p %p)\n", this, first, next, last);
1589 this->rsize = last-next;
1592 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXXZ */
1593 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXXZ */
1594 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXXZ */
1595 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXXZ */
1596 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init_empty, 4)
1597 void __thiscall basic_streambuf_wchar__Init_empty(basic_streambuf_wchar *this)
1599 TRACE("(%p)\n", this);
1601 this->prbuf = &this->rbuf;
1602 this->pwbuf = &this->wbuf;
1603 this->prpos = &this->rpos;
1604 this->pwpos = &this->wpos;
1605 this->prsize = &this->rsize;
1606 this->pwsize = &this->wsize;
1608 basic_streambuf_wchar_setp(this, NULL, NULL);
1609 basic_streambuf_wchar_setg(this, NULL, NULL, NULL);
1612 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAE@W4_Uninitialized@1@@Z */
1613 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
1614 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_ctor_uninitialized, 8)
1615 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_ctor_uninitialized(basic_streambuf_wchar *this, int uninitialized)
1617 TRACE("(%p %d)\n", this, uninitialized);
1618 this->vtable = &MSVCP_basic_streambuf_wchar_vtable;
1619 mutex_ctor(&this->lock);
1623 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@W4_Uninitialized@1@@Z */
1624 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
1625 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor_uninitialized, 8)
1626 basic_streambuf_wchar* __thiscall basic_streambuf_short_ctor_uninitialized(basic_streambuf_wchar *this, int uninitialized)
1628 TRACE("(%p %d)\n", this, uninitialized);
1629 basic_streambuf_wchar_ctor_uninitialized(this, uninitialized);
1630 this->vtable = &MSVCP_basic_streambuf_short_vtable;
1634 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
1635 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
1636 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_ctor, 4)
1637 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_ctor(basic_streambuf_wchar *this)
1639 TRACE("(%p)\n", this);
1641 this->vtable = &MSVCP_basic_streambuf_wchar_vtable;
1642 mutex_ctor(&this->lock);
1643 this->loc = MSVCRT_operator_new(sizeof(locale));
1644 locale_ctor(this->loc);
1645 basic_streambuf_wchar__Init_empty(this);
1650 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@XZ */
1651 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@XZ */
1652 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor, 4)
1653 basic_streambuf_wchar* __thiscall basic_streambuf_short_ctor(basic_streambuf_wchar *this)
1655 TRACE("(%p)\n", this);
1656 basic_streambuf_wchar_ctor(this);
1657 this->vtable = &MSVCP_basic_streambuf_short_vtable;
1661 /* ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
1662 /* ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
1663 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UAE@XZ */
1664 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */
1665 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_dtor, 4)
1666 void __thiscall basic_streambuf_wchar_dtor(basic_streambuf_wchar *this)
1668 TRACE("(%p)\n", this);
1670 mutex_dtor(&this->lock);
1671 locale_dtor(this->loc);
1672 MSVCRT_operator_delete(this->loc);
1675 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_vector_dtor, 8)
1676 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_vector_dtor(basic_streambuf_wchar *this, unsigned int flags)
1678 TRACE("(%p %x)\n", this, flags);
1680 /* we have an array, with the number of elements stored before the first object */
1681 INT_PTR i, *ptr = (INT_PTR *)this-1;
1683 for(i=*ptr-1; i>=0; i--)
1684 basic_streambuf_wchar_dtor(this+i);
1685 MSVCRT_operator_delete(ptr);
1687 basic_streambuf_wchar_dtor(this);
1689 MSVCRT_operator_delete(this);
1695 /* ?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEHXZ */
1696 /* ?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ */
1697 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
1698 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
1699 static streamsize basic_streambuf_wchar__Gnavail(const basic_streambuf_wchar *this)
1701 TRACE("(%p)\n", this);
1702 return *this->prpos ? *this->prsize : 0;
1705 /* ?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1706 /* ?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1707 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1708 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1709 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gndec, 4)
1710 wchar_t* __thiscall basic_streambuf_wchar__Gndec(basic_streambuf_wchar *this)
1712 TRACE("(%p)\n", this);
1715 return *this->prpos;
1718 /* ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1719 /* ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1720 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1721 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1722 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gninc, 4)
1723 wchar_t* __thiscall basic_streambuf_wchar__Gninc(basic_streambuf_wchar *this)
1725 TRACE("(%p)\n", this);
1727 return (*this->prpos)++;
1730 /* ?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1731 /* ?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1732 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1733 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1734 static wchar_t* basic_streambuf_wchar__Gnpreinc(basic_streambuf_wchar *this)
1736 TRACE("(%p)\n", this);
1739 return *this->prpos;
1742 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPAPA_W0PAH001@Z */
1743 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAPEA_W0PEAH001@Z */
1744 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAPAG0PAH001@Z */
1745 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAPEAG0PEAH001@Z */
1746 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init, 28)
1747 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)
1749 TRACE("(%p %p %p %p %p %p %p)\n", this, gf, gn, gc, pf, pn, pc);
1759 /* ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1760 /* ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1761 /* ?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1762 /* ?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1763 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Lock, 4)
1764 void __thiscall basic_streambuf_wchar__Lock(basic_streambuf_wchar *this)
1766 TRACE("(%p)\n", this);
1767 mutex_lock(&this->lock);
1770 /* ?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEHXZ */
1771 /* ?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ */
1772 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
1773 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
1774 static streamsize basic_streambuf_wchar__Pnavail(const basic_streambuf_wchar *this)
1776 TRACE("(%p)\n", this);
1777 return *this->pwpos ? *this->pwsize : 0;
1780 /* ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1781 /* ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1782 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1783 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1784 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Pninc, 4)
1785 wchar_t* __thiscall basic_streambuf_wchar__Pninc(basic_streambuf_wchar *this)
1787 TRACE("(%p)\n", this);
1789 return (*this->pwpos)++;
1792 /* ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
1793 /* ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
1794 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
1795 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
1796 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_underflow, 4)
1797 #define call_basic_streambuf_wchar_underflow(this) CALL_VTBL_FUNC(this, 16, \
1798 unsigned short, (basic_streambuf_wchar*), (this))
1799 unsigned short __thiscall basic_streambuf_wchar_underflow(basic_streambuf_wchar *this)
1801 TRACE("(%p)\n", this);
1805 /* ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
1806 /* ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
1807 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
1808 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
1809 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_uflow, 4)
1810 #define call_basic_streambuf_wchar_uflow(this) CALL_VTBL_FUNC(this, 20, \
1811 unsigned short, (basic_streambuf_wchar*), (this))
1812 unsigned short __thiscall basic_streambuf_wchar_uflow(basic_streambuf_wchar *this)
1816 TRACE("(%p)\n", this);
1818 if(call_basic_streambuf_wchar_underflow(this)==WEOF)
1821 ret = **this->prpos;
1827 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WIH@Z */
1828 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_K_J@Z */
1829 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGIH@Z */
1830 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_K_J@Z */
1831 static streamsize basic_streambuf_wchar__Xsgetn_s(basic_streambuf_wchar *this, wchar_t *ptr, MSVCP_size_t size, streamsize count)
1833 streamsize copied, chunk;
1836 TRACE("(%p %p %lu %ld)\n", this, ptr, size, count);
1838 for(copied=0; copied<count && size;) {
1839 chunk = basic_streambuf_wchar__Gnavail(this);
1840 if(chunk > count-copied)
1841 chunk = count-copied;
1844 memcpy_s(ptr+copied, size, *this->prpos, chunk*sizeof(wchar_t));
1845 *this->prpos += chunk;
1846 *this->prsize -= chunk;
1848 size -= chunk*sizeof(wchar_t);
1849 }else if((c = call_basic_streambuf_wchar_uflow(this)) != WEOF) {
1861 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPA_WIH@Z */
1862 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_K_J@Z */
1863 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGIH@Z */
1864 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_K_J@Z */
1865 static streamsize basic_streambuf_wchar__Sgetn_s(basic_streambuf_wchar *this, wchar_t *ptr, MSVCP_size_t size, streamsize count)
1867 TRACE("(%p %p %lu %ld)\n", this, ptr, size, count);
1868 return basic_streambuf_wchar__Xsgetn_s(this, ptr, size, count);
1871 /* ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1872 /* ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1873 /* ?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1874 /* ?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1875 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Unlock, 4)
1876 void __thiscall basic_streambuf_wchar__Unlock(basic_streambuf_wchar *this)
1878 TRACE("(%p)\n", this);
1879 mutex_unlock(&this->lock);
1882 /* ?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1883 /* ?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1884 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1885 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1886 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_eback, 4)
1887 wchar_t* __thiscall basic_streambuf_wchar_eback(const basic_streambuf_wchar *this)
1889 TRACE("(%p)\n", this);
1890 return *this->prbuf;
1893 /* ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1894 /* ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1895 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1896 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1897 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gptr, 4)
1898 wchar_t* __thiscall basic_streambuf_wchar_gptr(const basic_streambuf_wchar *this)
1900 TRACE("(%p)\n", this);
1901 return *this->prpos;
1904 /* ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1905 /* ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1906 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1907 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1908 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_egptr, 4)
1909 wchar_t* __thiscall basic_streambuf_wchar_egptr(const basic_streambuf_wchar *this)
1911 TRACE("(%p)\n", this);
1912 return *this->prpos+*this->prsize;
1915 /* ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1916 /* ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1917 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1918 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1919 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_epptr, 4)
1920 wchar_t* __thiscall basic_streambuf_wchar_epptr(const basic_streambuf_wchar *this)
1922 TRACE("(%p)\n", this);
1923 return *this->pwpos+*this->pwsize;
1926 /* ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z */
1927 /* ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z */
1928 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
1929 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
1930 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gbump, 8)
1931 void __thiscall basic_streambuf_wchar_gbump(basic_streambuf_wchar *this, int off)
1933 TRACE("(%p %d)\n", this, off);
1934 *this->prpos += off;
1935 *this->prsize -= off;
1938 /* ?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QBE?AVlocale@2@XZ */
1939 /* ?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEBA?AVlocale@2@XZ */
1940 /* ?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QBE?AVlocale@2@XZ */
1941 /* ?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEBA?AVlocale@2@XZ */
1942 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_getloc, 8)
1943 locale* __thiscall basic_streambuf_wchar_getloc(const basic_streambuf_wchar *this, locale *ret)
1945 TRACE("(%p)\n", this);
1946 return locale_copy_ctor(ret, this->loc);
1949 /* ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z */
1950 /* ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z */
1951 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEXABVlocale@2@@Z */
1952 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z */
1953 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_imbue, 8)
1954 #define call_basic_streambuf_wchar_imbue(this, loc) CALL_VTBL_FUNC(this, 48, \
1955 void, (basic_streambuf_wchar*, const locale*), (this, loc))
1956 void __thiscall basic_streambuf_wchar_imbue(basic_streambuf_wchar *this, const locale *loc)
1958 TRACE("(%p %p)\n", this, loc);
1961 /* ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
1962 /* ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
1963 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
1964 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
1965 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_overflow, 8)
1966 #define call_basic_streambuf_wchar_overflow(this, ch) CALL_VTBL_FUNC(this, 4, \
1967 unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
1968 unsigned short __thiscall basic_streambuf_wchar_overflow(basic_streambuf_wchar *this, unsigned short ch)
1970 TRACE("(%p %d)\n", this, ch);
1974 /* ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
1975 /* ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
1976 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
1977 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
1978 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbackfail, 8)
1979 #define call_basic_streambuf_wchar_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, \
1980 unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
1981 unsigned short __thiscall basic_streambuf_wchar_pbackfail(basic_streambuf_wchar *this, unsigned short ch)
1983 TRACE("(%p %d)\n", this, ch);
1987 /* ?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1988 /* ?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1989 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1990 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1991 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbase, 4)
1992 wchar_t* __thiscall basic_streambuf_wchar_pbase(const basic_streambuf_wchar *this)
1994 TRACE("(%p)\n", this);
1995 return *this->pwbuf;
1998 /* ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z */
1999 /* ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z */
2000 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
2001 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
2002 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbump, 8)
2003 void __thiscall basic_streambuf_wchar_pbump(basic_streambuf_wchar *this, int off)
2005 TRACE("(%p %d)\n", this, off);
2006 *this->pwpos += off;
2007 *this->pwsize -= off;
2010 /* ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
2011 /* ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
2012 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
2013 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
2014 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pptr, 4)
2015 wchar_t* __thiscall basic_streambuf_wchar_pptr(const basic_streambuf_wchar *this)
2017 TRACE("(%p)\n", this);
2018 return *this->pwpos;
2021 /* ?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
2022 /* ?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
2023 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
2024 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
2025 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubimbue, 12)
2026 locale* __thiscall basic_streambuf_wchar_pubimbue(basic_streambuf_wchar *this, locale *ret, const locale *loc)
2028 TRACE("(%p %p)\n", this, loc);
2029 memcpy(ret, this->loc, sizeof(locale));
2030 call_basic_streambuf_wchar_imbue(this, loc);
2031 locale_copy_ctor(this->loc, loc);
2035 /* ?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
2036 /* ?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
2037 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
2038 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
2039 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekoff, 20)
2040 #define call_basic_streambuf_wchar_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 32, \
2041 fpos_int*, (basic_streambuf_wchar*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
2042 fpos_int* __thiscall basic_streambuf_wchar_seekoff(basic_streambuf_wchar *this,
2043 fpos_int *ret, streamoff off, int way, int mode)
2045 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
2052 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
2053 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
2054 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
2055 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
2056 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff, 20)
2057 fpos_int* __thiscall basic_streambuf_wchar_pubseekoff(basic_streambuf_wchar *this,
2058 fpos_int *ret, streamoff off, int way, int mode)
2060 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
2061 return call_basic_streambuf_wchar_seekoff(this, ret, off, way, mode);
2064 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
2065 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
2066 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
2067 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
2068 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff_old, 20)
2069 fpos_int* __thiscall basic_streambuf_wchar_pubseekoff_old(basic_streambuf_wchar *this,
2070 fpos_int *ret, streamoff off, unsigned int way, unsigned int mode)
2072 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
2073 return basic_streambuf_wchar_pubseekoff(this, ret, off, way, mode);
2076 /* ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2077 /* ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2078 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2079 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2080 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekpos, 36)
2081 #define call_basic_streambuf_wchar_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 36, \
2082 fpos_int*, (basic_streambuf_wchar*, fpos_int*, fpos_int, int), (this, ret, pos, mode))
2083 fpos_int* __thiscall basic_streambuf_wchar_seekpos(basic_streambuf_wchar *this,
2084 fpos_int *ret, fpos_int pos, int mode)
2086 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
2093 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
2094 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
2095 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
2096 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
2097 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekpos, 36)
2098 fpos_int* __thiscall basic_streambuf_wchar_pubseekpos(basic_streambuf_wchar *this,
2099 fpos_int *ret, fpos_int pos, int mode)
2101 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
2102 return call_basic_streambuf_wchar_seekpos(this, ret, pos, mode);
2105 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
2106 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
2107 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
2108 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
2109 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekpos_old, 36)
2110 fpos_int* __thiscall basic_streambuf_wchar_pubseekpos_old(basic_streambuf_wchar *this,
2111 fpos_int *ret, fpos_int pos, unsigned int mode)
2113 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
2114 return basic_streambuf_wchar_pubseekpos(this, ret, pos, mode);
2117 /* ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEPAV12@PA_WH@Z */
2118 /* ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV12@PEA_W_J@Z */
2119 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEPAV12@PAGH@Z */
2120 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAPEAV12@PEAG_J@Z */
2121 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setbuf, 12)
2122 #define call_basic_streambuf_wchar_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 40, \
2123 basic_streambuf_wchar*, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, buf, count))
2124 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_setbuf(basic_streambuf_wchar *this, wchar_t *buf, streamsize count)
2126 TRACE("(%p %p %ld)\n", this, buf, count);
2130 /* ?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PA_WH@Z */
2131 /* ?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEA_W_J@Z */
2132 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PAGH@Z */
2133 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEAG_J@Z */
2134 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsetbuf, 12)
2135 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_pubsetbuf(basic_streambuf_wchar *this, wchar_t *buf, streamsize count)
2137 TRACE("(%p %p %ld)\n", this, buf, count);
2138 return call_basic_streambuf_wchar_setbuf(this, buf, count);
2141 /* ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
2142 /* ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ */
2143 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
2144 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAHXZ */
2145 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sync, 4)
2146 #define call_basic_streambuf_wchar_sync(this) CALL_VTBL_FUNC(this, 44, \
2147 int, (basic_streambuf_wchar*), (this))
2148 int __thiscall basic_streambuf_wchar_sync(basic_streambuf_wchar *this)
2150 TRACE("(%p)\n", this);
2154 /* ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
2155 /* ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAHXZ */
2156 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
2157 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHXZ */
2158 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsync, 4)
2159 int __thiscall basic_streambuf_wchar_pubsync(basic_streambuf_wchar *this)
2161 TRACE("(%p)\n", this);
2162 return call_basic_streambuf_wchar_sync(this);
2165 /* ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WH@Z */
2166 /* ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_J@Z */
2167 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGH@Z */
2168 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_J@Z */
2169 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsgetn, 12)
2170 #define call_basic_streambuf_wchar_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, \
2171 streamsize, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, ptr, count))
2172 streamsize __thiscall basic_streambuf_wchar_xsgetn(basic_streambuf_wchar *this, wchar_t *ptr, streamsize count)
2174 TRACE("(%p %p %ld)\n", this, ptr, count);
2175 return call_basic_streambuf_wchar_xsgetn(this, ptr, count);
2178 /* ?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPA_WH@Z */
2179 /* ?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z */
2180 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGH@Z */
2181 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z */
2182 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetn, 12)
2183 streamsize __thiscall basic_streambuf_wchar_sgetn(basic_streambuf_wchar *this, wchar_t *ptr, streamsize count)
2185 TRACE("(%p %p %ld)\n", this, ptr, count);
2186 return call_basic_streambuf_wchar_xsgetn(this, ptr, count);
2189 /* ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
2190 /* ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JXZ */
2191 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
2192 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JXZ */
2193 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_showmanyc, 4)
2194 #define call_basic_streambuf_wchar_showmanyc(this) CALL_VTBL_FUNC(this, 12, \
2195 streamsize, (basic_streambuf_wchar*), (this))
2196 streamsize __thiscall basic_streambuf_wchar_showmanyc(basic_streambuf_wchar *this)
2198 TRACE("(%p)\n", this);
2202 /* ?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
2203 /* ?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JXZ */
2204 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
2205 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JXZ */
2206 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_in_avail, 4)
2207 streamsize __thiscall basic_streambuf_wchar_in_avail(basic_streambuf_wchar *this)
2211 TRACE("(%p)\n", this);
2213 ret = basic_streambuf_wchar__Gnavail(this);
2214 return ret ? ret : call_basic_streambuf_wchar_showmanyc(this);
2217 /* ?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z */
2218 /* ?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z */
2219 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
2220 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z */
2221 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputbackc, 8)
2222 unsigned short __thiscall basic_streambuf_wchar_sputbackc(basic_streambuf_wchar *this, wchar_t ch)
2224 TRACE("(%p %d)\n", this, ch);
2225 if(*this->prpos && *this->prpos>*this->prbuf && (*this->prpos)[-1]==ch) {
2231 return call_basic_streambuf_wchar_pbackfail(this, ch);
2234 /* ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z */
2235 /* ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z */
2236 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
2237 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHG@Z */
2238 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputc, 8)
2239 unsigned short __thiscall basic_streambuf_wchar_sputc(basic_streambuf_wchar *this, wchar_t ch)
2241 TRACE("(%p %d)\n", this, ch);
2242 return basic_streambuf_wchar__Pnavail(this) ?
2243 (*basic_streambuf_wchar__Pninc(this) = ch) :
2244 call_basic_streambuf_wchar_overflow(this, ch);
2247 /* ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2248 /* ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2249 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2250 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2251 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sungetc, 4)
2252 unsigned short __thiscall basic_streambuf_wchar_sungetc(basic_streambuf_wchar *this)
2254 TRACE("(%p)\n", this);
2255 if(*this->prpos && *this->prpos>*this->prbuf) {
2258 return **this->prpos;
2261 return call_basic_streambuf_wchar_pbackfail(this, WEOF);
2264 /* ?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
2265 /* ?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
2266 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
2267 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
2268 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_stossc, 4)
2269 void __thiscall basic_streambuf_wchar_stossc(basic_streambuf_wchar *this)
2271 TRACE("(%p)\n", this);
2272 if(basic_streambuf_wchar__Gnavail(this))
2273 basic_streambuf_wchar__Gninc(this);
2275 call_basic_streambuf_wchar_uflow(this);
2278 /* ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2279 /* ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2280 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2281 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2282 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sbumpc, 4)
2283 unsigned short __thiscall basic_streambuf_wchar_sbumpc(basic_streambuf_wchar *this)
2285 TRACE("(%p)\n", this);
2286 return basic_streambuf_wchar__Gnavail(this) ?
2287 *basic_streambuf_wchar__Gninc(this) : call_basic_streambuf_wchar_uflow(this);
2290 /* ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2291 /* ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2292 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2293 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2294 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetc, 4)
2295 unsigned short __thiscall basic_streambuf_wchar_sgetc(basic_streambuf_wchar *this)
2297 TRACE("(%p)\n", this);
2298 return basic_streambuf_wchar__Gnavail(this) ?
2299 *basic_streambuf_wchar_gptr(this) : call_basic_streambuf_wchar_underflow(this);
2302 /* ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2303 /* ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2304 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2305 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2306 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_snextc, 4)
2307 unsigned short __thiscall basic_streambuf_wchar_snextc(basic_streambuf_wchar *this)
2309 TRACE("(%p)\n", this);
2311 if(basic_streambuf_wchar__Gnavail(this) > 1)
2312 return *basic_streambuf_wchar__Gnpreinc(this);
2313 return basic_streambuf_wchar_sbumpc(this)==WEOF ?
2314 WEOF : basic_streambuf_wchar_sgetc(this);
2317 /* ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPB_WH@Z */
2318 /* ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEB_W_J@Z */
2319 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPBGH@Z */
2320 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEBG_J@Z */
2321 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsputn, 12)
2322 #define call_basic_streambuf_wchar_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 28, \
2323 streamsize, (basic_streambuf_wchar*, const wchar_t*, streamsize), (this, ptr, count))
2324 streamsize __thiscall basic_streambuf_wchar_xsputn(basic_streambuf_wchar *this, const wchar_t *ptr, streamsize count)
2326 streamsize copied, chunk;
2328 TRACE("(%p %p %ld)\n", this, ptr, count);
2330 for(copied=0; copied<count;) {
2331 chunk = basic_streambuf_wchar__Pnavail(this);
2332 if(chunk > count-copied)
2333 chunk = count-copied;
2336 memcpy(*this->pwpos, ptr+copied, chunk*sizeof(wchar_t));
2337 *this->pwpos += chunk;
2338 *this->pwsize -= chunk;
2340 }else if(call_basic_streambuf_wchar_overflow(this, ptr[copied]) != WEOF) {
2350 /* ?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPB_WH@Z */
2351 /* ?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEB_W_J@Z */
2352 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPBGH@Z */
2353 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEBG_J@Z */
2354 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputn, 12)
2355 streamsize __thiscall basic_streambuf_wchar_sputn(basic_streambuf_wchar *this, const wchar_t *ptr, streamsize count)
2357 TRACE("(%p %p %ld)\n", this, ptr, count);
2358 return call_basic_streambuf_wchar_xsputn(this, ptr, count);
2361 /* ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
2362 /* ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
2363 int basic_filebuf_char__Init__Stinit = 0;
2365 /* ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
2366 /* ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
2367 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Init, 12)
2368 void __thiscall basic_filebuf_char__Init(basic_filebuf_char *this, FILE *file, basic_filebuf__Initfl which)
2370 TRACE("(%p %p %d)\n", this, file, which);
2373 this->wrotesome = FALSE;
2374 this->state = basic_filebuf_char__Init__Stinit;
2375 this->close = (which == INITFL_open);
2378 basic_streambuf_char__Init_empty(&this->base);
2380 basic_streambuf_char__Init(&this->base, &file->_base, &file->_ptr,
2381 &file->_cnt, &file->_base, &file->_ptr, &file->_cnt);
2384 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAV?$codecvt@DDH@2@@Z */
2385 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$codecvt@DDH@2@@Z */
2386 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Initcvt, 8)
2387 void __thiscall basic_filebuf_char__Initcvt(basic_filebuf_char *this, codecvt_char *cvt)
2389 TRACE("(%p %p)\n", this, cvt);
2391 if(codecvt_base_always_noconv(&cvt->base)) {
2394 basic_streambuf_char__Init_empty(&this->base);
2399 /* ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ */
2400 /* ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ */
2401 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Endwrite, 4)
2402 MSVCP_bool __thiscall basic_filebuf_char__Endwrite(basic_filebuf_char *this)
2404 TRACE("(%p)\n", this);
2406 if(!this->wrotesome || !this->cvt)
2410 if(call_basic_streambuf_char_overflow(&this->base, EOF) == EOF)
2414 /* TODO: check if we need a dynamic buffer here */
2419 ret = codecvt_char_unshift(this->cvt, &this->state, buf, buf+sizeof(buf), &next);
2422 this->wrotesome = FALSE;
2424 case CODECVT_partial:
2425 if(!fwrite(buf, next-buf, 1, this->file))
2430 case CODECVT_noconv:
2431 if(call_basic_streambuf_char_overflow(&this->base, EOF) == EOF)
2440 /* ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ */
2441 /* ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ */
2442 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_close, 4)
2443 basic_filebuf_char* __thiscall basic_filebuf_char_close(basic_filebuf_char *this)
2445 basic_filebuf_char *ret = this;
2447 TRACE("(%p)\n", this);
2452 /* TODO: handle exceptions */
2453 if(!basic_filebuf_char__Endwrite(this))
2455 if(fclose(this->file))
2458 basic_filebuf_char__Init(this, NULL, INITFL_close);
2462 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
2463 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
2464 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor_file, 8)
2465 basic_filebuf_char* __thiscall basic_filebuf_char_ctor_file(basic_filebuf_char *this, FILE *file)
2467 TRACE("(%p %p)\n", this, file);
2469 basic_streambuf_char_ctor(&this->base);
2470 this->base.vtable = &MSVCP_basic_filebuf_char_vtable;
2472 basic_filebuf_char__Init(this, file, INITFL_new);
2476 /* ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
2477 /* ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
2478 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor, 4)
2479 basic_filebuf_char* __thiscall basic_filebuf_char_ctor(basic_filebuf_char *this)
2481 return basic_filebuf_char_ctor_file(this, NULL);
2484 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
2485 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
2486 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor_uninitialized, 8)
2487 basic_filebuf_char* __thiscall basic_filebuf_char_ctor_uninitialized(basic_filebuf_char *this, int uninitialized)
2489 TRACE("(%p %d)\n", this, uninitialized);
2491 basic_streambuf_char_ctor(&this->base);
2492 this->base.vtable = &MSVCP_basic_filebuf_char_vtable;
2496 /* ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
2497 /* ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
2498 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_dtor, 4)
2499 void __thiscall basic_filebuf_char_dtor(basic_filebuf_char *this)
2501 TRACE("(%p)\n", this);
2504 basic_filebuf_char_close(this);
2505 basic_streambuf_char_dtor(&this->base);
2508 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_vector_dtor, 8)
2509 basic_filebuf_char* __thiscall basic_filebuf_char_vector_dtor(basic_filebuf_char *this, unsigned int flags)
2511 TRACE("(%p %x)\n", this, flags);
2513 /* we have an array, with the number of elements stored before the first object */
2514 INT_PTR i, *ptr = (INT_PTR *)this-1;
2516 for(i=*ptr-1; i>=0; i--)
2517 basic_filebuf_char_dtor(this+i);
2518 MSVCRT_operator_delete(ptr);
2520 basic_filebuf_char_dtor(this);
2522 MSVCRT_operator_delete(this);
2528 /* ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QBE_NXZ */
2529 /* ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
2530 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_is_open, 4)
2531 MSVCP_bool __thiscall basic_filebuf_char_is_open(const basic_filebuf_char *this)
2533 TRACE("(%p)\n", this);
2534 return this->file != NULL;
2537 /* ?_Fiopen@std@@YAPAU_iobuf@@PB_WHH@Z */
2538 /* ?_Fiopen@std@@YAPEAU_iobuf@@PEB_WHH@Z */
2539 static FILE* _Fiopen_wchar(const wchar_t *name, int mode, int prot)
2541 static const wchar_t rW[] = {'r',0};
2542 static const struct {
2544 const wchar_t str[4];
2545 const wchar_t str_bin[4];
2547 {OPENMODE_out, {'w',0}, {'w','b',0}},
2548 {OPENMODE_out|OPENMODE_app, {'a',0}, {'a','b',0}},
2549 {OPENMODE_app, {'a',0}, {'a','b',0}},
2550 {OPENMODE_out|OPENMODE_trunc, {'w',0}, {'w','b',0}},
2551 {OPENMODE_in, {'r',0}, {'r','b',0}},
2552 {OPENMODE_in|OPENMODE_out, {'r','+',0}, {'r','+','b',0}},
2553 {OPENMODE_in|OPENMODE_out|OPENMODE_trunc, {'w','+',0}, {'w','+','b',0}},
2554 {OPENMODE_in|OPENMODE_out|OPENMODE_app, {'a','+',0}, {'a','+','b',0}},
2555 {OPENMODE_in|OPENMODE_app, {'a','+',0}, {'a','+','b',0}}
2558 int real_mode = mode & ~(OPENMODE_ate|OPENMODE__Nocreate|OPENMODE__Noreplace|OPENMODE_binary);
2562 TRACE("(%s %d %d)\n", debugstr_w(name), mode, prot);
2564 for(mode_idx=0; mode_idx<sizeof(str_mode)/sizeof(str_mode[0]); mode_idx++)
2565 if(str_mode[mode_idx].mode == real_mode)
2567 if(mode_idx == sizeof(str_mode)/sizeof(str_mode[0]))
2570 if((mode & OPENMODE__Nocreate) && !(f = _wfopen(name, rW)))
2575 if((mode & OPENMODE__Noreplace) && (mode & (OPENMODE_out|OPENMODE_app))
2576 && (f = _wfopen(name, rW))) {
2581 /* msvcp60 - msvcp71 are ignoring prot argument */
2582 f = _wfsopen(name, (mode & OPENMODE_binary) ? str_mode[mode_idx].str_bin
2583 : str_mode[mode_idx].str, SH_DENYNO);
2587 if((mode & OPENMODE_ate) && fseek(f, 0, SEEK_END)) {
2595 /* ?_Fiopen@std@@YAPAU_iobuf@@PBDHH@Z */
2596 /* ?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z */
2597 FILE* __cdecl _Fiopen(const char *name, int mode, int prot)
2599 wchar_t nameW[FILENAME_MAX];
2601 TRACE("(%s %d %d)\n", name, mode, prot);
2603 if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
2605 return _Fiopen_wchar(nameW, mode, prot);
2608 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PB_WHH@Z */
2609 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
2610 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBGHH@Z */
2611 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBGHH@Z */
2612 static basic_filebuf_char* basic_filebuf_char_open_wchar(basic_filebuf_char *this, const wchar_t *name, int mode, int prot)
2616 TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
2618 if(basic_filebuf_char_is_open(this))
2621 if(!(f = _Fiopen_wchar(name, mode, prot)))
2624 basic_filebuf_char__Init(this, f, INITFL_open);
2625 basic_filebuf_char__Initcvt(this, codecvt_char_use_facet(this->base.loc));
2629 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z */
2630 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z */
2631 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open, 16)
2632 basic_filebuf_char* __thiscall basic_filebuf_char_open(basic_filebuf_char *this, const char *name, int mode, int prot)
2634 wchar_t nameW[FILENAME_MAX];
2636 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
2638 if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
2640 return basic_filebuf_char_open_wchar(this, nameW, mode, prot);
2643 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDI@Z */
2644 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDI@Z */
2645 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_mode, 12)
2646 basic_filebuf_char* __thiscall basic_filebuf_char_open_mode(basic_filebuf_char *this, const char *name, unsigned int mode)
2648 return basic_filebuf_char_open(this, name, mode, SH_DENYNO);
2651 /* ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
2652 /* ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
2653 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_overflow, 8)
2654 int __thiscall basic_filebuf_char_overflow(basic_filebuf_char *this, int c)
2656 char buf[8], *dyn_buf;
2657 char ch = c, *to_next;
2658 const char *from_next;
2662 TRACE("(%p %d)\n", this, c);
2664 if(!basic_filebuf_char_is_open(this))
2670 return fwrite(&ch, sizeof(char), 1, this->file) ? c : EOF;
2674 ret = codecvt_char_out(this->cvt, &this->state, from_next, &ch+1,
2675 &from_next, buf, buf+sizeof(buf), &to_next);
2678 case CODECVT_partial:
2683 if(!fwrite(buf, to_next-buf, 1, this->file))
2685 if(ret == CODECVT_partial)
2688 case CODECVT_noconv:
2689 return fwrite(&ch, sizeof(char), 1, this->file) ? c : EOF;
2697 max_size = codecvt_base_max_length(&this->cvt->base);
2698 dyn_buf = malloc(max_size);
2702 ret = codecvt_char_out(this->cvt, &this->state, from_next, &ch+1,
2703 &from_next, dyn_buf, dyn_buf+max_size, &to_next);
2707 ret = fwrite(dyn_buf, to_next-dyn_buf, 1, this->file);
2709 return ret ? c : EOF;
2710 case CODECVT_partial:
2711 ERR("buffer should be big enough to store all output\n");
2719 /* ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
2720 /* ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
2721 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_pbackfail, 8)
2722 int __thiscall basic_filebuf_char_pbackfail(basic_filebuf_char *this, int c)
2724 TRACE("(%p %d)\n", this, c);
2726 if(!basic_filebuf_char_is_open(this))
2729 if(basic_streambuf_char_gptr(&this->base)>basic_streambuf_char_eback(&this->base)
2730 && (c==EOF || (int)(unsigned char)basic_streambuf_char_gptr(&this->base)[-1]==c)) {
2731 basic_streambuf_char__Gndec(&this->base);
2732 return c==EOF ? !c : c;
2733 }else if(c!=EOF && !this->cvt) {
2734 return ungetc(c, this->file);
2740 /* ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2741 /* ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2742 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_uflow, 4)
2743 int __thiscall basic_filebuf_char_uflow(basic_filebuf_char *this)
2745 char ch, buf[128], *to_next;
2746 const char *buf_next;
2749 TRACE("(%p)\n", this);
2751 if(!basic_filebuf_char_is_open(this))
2754 if(basic_streambuf_char_gptr(&this->base) < basic_streambuf_char_egptr(&this->base))
2755 return (unsigned char)*basic_streambuf_char__Gninc(&this->base);
2757 c = fgetc(this->file);
2758 if(!this->cvt || c==EOF)
2762 for(i=0; i < sizeof(buf)/sizeof(buf[0]); i++) {
2765 switch(codecvt_char_in(this->cvt, &this->state, buf_next,
2766 buf+i+1, &buf_next, &ch, &ch+1, &to_next)) {
2767 case CODECVT_partial:
2769 if(to_next == &ch) {
2770 c = fgetc(this->file);
2776 for(i--; i>=buf_next-buf; i--)
2777 ungetc(buf[i], this->file);
2779 case CODECVT_noconv:
2780 return (unsigned char)buf[0];
2786 FIXME("buffer is too small\n");
2790 /* ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2791 /* ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2792 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_underflow, 4)
2793 int __thiscall basic_filebuf_char_underflow(basic_filebuf_char *this)
2797 TRACE("(%p)\n", this);
2799 if(basic_streambuf_char_gptr(&this->base) < basic_streambuf_char_egptr(&this->base))
2800 return (unsigned char)*basic_streambuf_char_gptr(&this->base);
2802 ret = call_basic_streambuf_char_uflow(&this->base);
2804 ret = call_basic_streambuf_char_pbackfail(&this->base, ret);
2808 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
2809 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
2810 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_seekoff, 20)
2811 fpos_int* __thiscall basic_filebuf_char_seekoff(basic_filebuf_char *this,
2812 fpos_int *ret, streamoff off, int way, int mode)
2816 TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode);
2818 if(!basic_filebuf_char_is_open(this) || !basic_filebuf_char__Endwrite(this)
2819 || fseek(this->file, off, way)) {
2826 fgetpos(this->file, &pos);
2829 ret->state = this->state;
2833 /* ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2834 /* ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2835 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_seekpos, 36)
2836 fpos_int* __thiscall basic_filebuf_char_seekpos(basic_filebuf_char *this,
2837 fpos_int *ret, fpos_int pos, int mode)
2841 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
2843 if(!basic_filebuf_char_is_open(this) || !basic_filebuf_char__Endwrite(this)
2844 || fseek(this->file, (LONG)pos.pos, SEEK_SET)
2845 || (pos.off && fseek(this->file, pos.off, SEEK_CUR))) {
2852 fgetpos(this->file, &fpos);
2855 ret->state = this->state;
2859 /* ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PADH@Z */
2860 /* ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z */
2861 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_setbuf, 12)
2862 basic_streambuf_char* __thiscall basic_filebuf_char_setbuf(basic_filebuf_char *this, char *buf, streamsize count)
2864 TRACE("(%p %p %ld)\n", this, buf, count);
2866 if(!basic_filebuf_char_is_open(this))
2869 if(setvbuf(this->file, buf, (buf==NULL && count==0) ? _IONBF : _IOFBF, count))
2872 basic_filebuf_char__Init(this, this->file, INITFL_open);
2876 /* ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2877 /* ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2878 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_sync, 4)
2879 int __thiscall basic_filebuf_char_sync(basic_filebuf_char *this)
2881 TRACE("(%p)\n", this);
2883 if(!basic_filebuf_char_is_open(this))
2886 if(call_basic_streambuf_char_overflow(&this->base, EOF) == EOF)
2888 return fflush(this->file);
2891 /* ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z */
2892 /* ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z */
2893 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_imbue, 8)
2894 void __thiscall basic_filebuf_char_imbue(basic_filebuf_char *this, const locale *loc)
2896 TRACE("(%p %p)\n", this, loc);
2897 basic_filebuf_char__Initcvt(this, codecvt_char_use_facet(loc));
2900 /* ?_Stinit@?1??_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
2901 /* ?_Stinit@?1??_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
2902 int basic_filebuf_wchar__Init__Stinit = 0;
2904 /* ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
2905 /* ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
2906 int basic_filebuf_short__Init__Stinit = 0;
2908 /* ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
2909 /* ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
2910 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Init, 12)
2911 void __thiscall basic_filebuf_wchar__Init(basic_filebuf_wchar *this, FILE *file, basic_filebuf__Initfl which)
2913 TRACE("(%p %p %d)\n", this, file, which);
2916 this->wrotesome = FALSE;
2917 this->state = basic_filebuf_wchar__Init__Stinit;
2918 this->close = (which == INITFL_open);
2921 basic_streambuf_wchar__Init_empty(&this->base);
2924 /* ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
2925 /* ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
2926 DEFINE_THISCALL_WRAPPER(basic_filebuf_short__Init, 12)
2927 void __thiscall basic_filebuf_short__Init(basic_filebuf_wchar *this, FILE *file, basic_filebuf__Initfl which)
2929 TRACE("(%p %p %d)\n", this, file, which);
2932 this->wrotesome = FALSE;
2933 this->state = basic_filebuf_short__Init__Stinit;
2934 this->close = (which == INITFL_open);
2937 basic_streambuf_wchar__Init_empty(&this->base);
2940 /* ?_Initcvt@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAV?$codecvt@_WDH@2@@Z */
2941 /* ?_Initcvt@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$codecvt@_WDH@2@@Z */
2942 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAV?$codecvt@GDH@2@@Z */
2943 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$codecvt@GDH@2@@Z */
2944 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Initcvt, 8)
2945 void __thiscall basic_filebuf_wchar__Initcvt(basic_filebuf_wchar *this, codecvt_wchar *cvt)
2947 TRACE("(%p %p)\n", this, cvt);
2949 if(codecvt_base_always_noconv(&cvt->base)) {
2952 basic_streambuf_wchar__Init_empty(&this->base);
2957 /* ?_Endwrite@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAE_NXZ */
2958 /* ?_Endwrite@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAA_NXZ */
2959 /* ?_Endwrite@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAE_NXZ */
2960 /* ?_Endwrite@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAA_NXZ */
2961 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Endwrite, 4)
2962 MSVCP_bool __thiscall basic_filebuf_wchar__Endwrite(basic_filebuf_wchar *this)
2964 TRACE("(%p)\n", this);
2966 if(!this->wrotesome || !this->cvt)
2969 if(call_basic_streambuf_wchar_overflow(&this->base, WEOF) == WEOF)
2973 /* TODO: check if we need a dynamic buffer here */
2978 ret = codecvt_wchar_unshift(this->cvt, &this->state, buf, buf+sizeof(buf), &next);
2981 this->wrotesome = FALSE;
2983 case CODECVT_partial:
2984 if(!fwrite(buf, next-buf, 1, this->file))
2989 case CODECVT_noconv:
2990 if(call_basic_streambuf_wchar_overflow(&this->base, WEOF) == WEOF)
2999 /* ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@XZ */
3000 /* ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@XZ */
3001 /* ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@XZ */
3002 /* ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@XZ */
3003 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_close, 4)
3004 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_close(basic_filebuf_wchar *this)
3006 basic_filebuf_wchar *ret = this;
3008 TRACE("(%p)\n", this);
3013 /* TODO: handle exceptions */
3014 if(!basic_filebuf_wchar__Endwrite(this))
3016 if(fclose(this->file))
3019 basic_filebuf_wchar__Init(this, NULL, INITFL_close);
3023 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
3024 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
3025 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor_file, 8)
3026 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_ctor_file(basic_filebuf_wchar *this, FILE *file)
3028 TRACE("(%p %p)\n", this, file);
3030 basic_streambuf_wchar_ctor(&this->base);
3031 this->base.vtable = &MSVCP_basic_filebuf_wchar_vtable;
3033 basic_filebuf_wchar__Init(this, file, INITFL_new);
3037 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
3038 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
3039 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor_file, 8)
3040 basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor_file(basic_filebuf_wchar *this, FILE *file)
3042 TRACE("(%p %p)\n", this, file);
3044 basic_streambuf_short_ctor(&this->base);
3045 this->base.vtable = &MSVCP_basic_filebuf_short_vtable;
3047 basic_filebuf_short__Init(this, file, INITFL_new);
3051 /* ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
3052 /* ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
3053 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor, 4)
3054 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_ctor(basic_filebuf_wchar *this)
3056 return basic_filebuf_wchar_ctor_file(this, NULL);
3059 /* ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
3060 /* ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
3061 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor, 4)
3062 basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor(basic_filebuf_wchar *this)
3064 return basic_filebuf_short_ctor_file(this, NULL);
3067 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@@Z */
3068 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
3069 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor_uninitialized, 8)
3070 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_ctor_uninitialized(basic_filebuf_wchar *this, int uninitialized)
3072 TRACE("(%p %d)\n", this, uninitialized);
3074 basic_streambuf_wchar_ctor(&this->base);
3075 this->base.vtable = &MSVCP_basic_filebuf_wchar_vtable;
3079 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */
3080 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
3081 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor_uninitialized, 8)
3082 basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor_uninitialized(basic_filebuf_wchar *this, int uninitialized)
3084 TRACE("(%p %d)\n", this, uninitialized);
3086 basic_streambuf_short_ctor(&this->base);
3087 this->base.vtable = &MSVCP_basic_filebuf_short_vtable;
3091 /* ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
3092 /* ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
3093 /* ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UAE@XZ */
3094 /* ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */
3095 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_dtor, 4)
3096 void __thiscall basic_filebuf_wchar_dtor(basic_filebuf_wchar *this)
3098 TRACE("(%p)\n", this);
3101 basic_filebuf_wchar_close(this);
3102 basic_streambuf_wchar_dtor(&this->base);
3105 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_vector_dtor, 8)
3106 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_vector_dtor(basic_filebuf_wchar *this, unsigned int flags)
3108 TRACE("(%p %x)\n", this, flags);
3110 /* we have an array, with the number of elements stored before the first object */
3111 INT_PTR i, *ptr = (INT_PTR *)this-1;
3113 for(i=*ptr-1; i>=0; i--)
3114 basic_filebuf_wchar_dtor(this+i);
3115 MSVCRT_operator_delete(ptr);
3117 basic_filebuf_wchar_dtor(this);
3119 MSVCRT_operator_delete(this);
3125 /* ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
3126 /* ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
3127 /* ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QBE_NXZ */
3128 /* ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
3129 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_is_open, 4)
3130 MSVCP_bool __thiscall basic_filebuf_wchar_is_open(const basic_filebuf_wchar *this)
3132 TRACE("(%p)\n", this);
3133 return this->file != NULL;
3136 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PB_WHH@Z */
3137 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
3138 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBGHH@Z */
3139 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBGHH@Z */
3140 static basic_filebuf_wchar* basic_filebuf_wchar_open_wchar(basic_filebuf_wchar *this, const wchar_t *name, int mode, int prot)
3144 TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
3146 if(basic_filebuf_wchar_is_open(this))
3149 if(!(f = _Fiopen_wchar(name, mode, prot)))
3152 basic_filebuf_wchar__Init(this, f, INITFL_open);
3153 basic_filebuf_wchar__Initcvt(this, codecvt_wchar_use_facet(this->base.loc));
3157 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PB_WHH@Z */
3158 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
3159 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBGHH@Z */
3160 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBGHH@Z */
3161 static basic_filebuf_wchar* basic_filebuf_short_open_wchar(basic_filebuf_wchar *this, const wchar_t *name, int mode, int prot)
3165 TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
3167 if(basic_filebuf_wchar_is_open(this))
3170 if(!(f = _Fiopen_wchar(name, mode, prot)))
3173 basic_filebuf_short__Init(this, f, INITFL_open);
3174 basic_filebuf_wchar__Initcvt(this, codecvt_short_use_facet(this->base.loc));
3178 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDHH@Z */
3179 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDHH@Z */
3180 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open, 16)
3181 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open(basic_filebuf_wchar *this, const char *name, int mode, int prot)
3183 wchar_t nameW[FILENAME_MAX];
3185 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
3187 if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
3189 return basic_filebuf_wchar_open_wchar(this, nameW, mode, prot);
3192 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDHH@Z */
3193 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDHH@Z */
3194 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open, 16)
3195 basic_filebuf_wchar* __thiscall basic_filebuf_short_open(basic_filebuf_wchar *this, const char *name, int mode, int prot)
3197 wchar_t nameW[FILENAME_MAX];
3199 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
3201 if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
3203 return basic_filebuf_short_open_wchar(this, nameW, mode, prot);
3206 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDI@Z */
3207 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDI@Z */
3208 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open_mode, 12)
3209 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open_mode(basic_filebuf_wchar *this, const char *name, unsigned int mode)
3211 return basic_filebuf_wchar_open(this, name, mode, SH_DENYNO);
3214 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDI@Z */
3215 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDI@Z */
3216 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open_mode, 12)
3217 basic_filebuf_wchar* __thiscall basic_filebuf_short_open_mode(basic_filebuf_wchar *this, const char *name, unsigned int mode)
3219 return basic_filebuf_short_open(this, name, mode, SH_DENYNO);
3222 /* ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
3223 /* ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
3224 /* ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
3225 /* ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
3226 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_overflow, 8)
3227 unsigned short __thiscall basic_filebuf_wchar_overflow(basic_filebuf_wchar *this, unsigned short c)
3229 char buf[8], *dyn_buf, *to_next;
3231 const wchar_t *from_next;
3236 TRACE("(%p %d)\n", this, c);
3238 if(!basic_filebuf_wchar_is_open(this))
3244 return fwrite(&ch, sizeof(wchar_t), 1, this->file) ? c : WEOF;
3248 ret = codecvt_wchar_out(this->cvt, &this->state, from_next, &ch+1,
3249 &from_next, buf, buf+sizeof(buf), &to_next);
3252 case CODECVT_partial:
3257 if(!fwrite(buf, to_next-buf, 1, this->file))
3259 if(ret == CODECVT_partial)
3262 case CODECVT_noconv:
3263 return fwrite(&ch, sizeof(wchar_t), 1, this->file) ? c : WEOF;
3271 max_size = codecvt_base_max_length(&this->cvt->base);
3272 dyn_buf = malloc(max_size);
3276 ret = codecvt_wchar_out(this->cvt, &this->state, from_next, &ch+1,
3277 &from_next, dyn_buf, dyn_buf+max_size, &to_next);
3281 ret = fwrite(dyn_buf, to_next-dyn_buf, 1, this->file);
3283 return ret ? c : WEOF;
3284 case CODECVT_partial:
3285 ERR("buffer should be big enough to store all output\n");
3293 /* ?pbackfail@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
3294 /* ?pbackfail@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
3295 /* ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
3296 /* ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
3297 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_pbackfail, 8)
3298 unsigned short __thiscall basic_filebuf_wchar_pbackfail(basic_filebuf_wchar *this, unsigned short c)
3300 TRACE("(%p %d)\n", this, c);
3302 if(!basic_filebuf_wchar_is_open(this))
3305 if(basic_streambuf_wchar_gptr(&this->base)>basic_streambuf_wchar_eback(&this->base)
3306 && (c==WEOF || basic_streambuf_wchar_gptr(&this->base)[-1]==c)) {
3307 basic_streambuf_wchar__Gndec(&this->base);
3308 return c==WEOF ? !c : c;
3309 }else if(c!=WEOF && !this->cvt) {
3310 return ungetwc(c, this->file);
3311 }else if(c!=WEOF && basic_streambuf_wchar_gptr(&this->base)!=&this->putback) {
3313 basic_streambuf_wchar_setg(&this->base, &this->putback, &this->putback, &this->putback+1);
3320 /* ?uflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
3321 /* ?uflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
3322 /* ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
3323 /* ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
3324 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_uflow, 4)
3325 unsigned short __thiscall basic_filebuf_wchar_uflow(basic_filebuf_wchar *this)
3327 wchar_t ch, *to_next;
3329 const char *buf_next;
3332 TRACE("(%p)\n", this);
3334 if(!basic_filebuf_wchar_is_open(this))
3337 if(basic_streambuf_wchar_gptr(&this->base) < basic_streambuf_wchar_egptr(&this->base))
3338 return *basic_streambuf_wchar__Gninc(&this->base);
3341 return fgetwc(this->file);
3344 for(i=0; i < sizeof(buf)/sizeof(buf[0]); i++) {
3345 if((c = fgetc(this->file)) == EOF)
3349 switch(codecvt_wchar_in(this->cvt, &this->state, buf_next,
3350 buf+i+1, &buf_next, &ch, &ch+1, &to_next)) {
3351 case CODECVT_partial:
3356 for(i--; i>=buf_next-buf; i--)
3357 ungetc(buf[i], this->file);
3359 case CODECVT_noconv:
3360 if(i+1 < sizeof(wchar_t))
3363 memcpy(&ch, buf, sizeof(wchar_t));
3370 FIXME("buffer is too small\n");
3374 /* ?underflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
3375 /* ?underflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
3376 /* ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
3377 /* ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
3378 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_underflow, 4)
3379 unsigned short __thiscall basic_filebuf_wchar_underflow(basic_filebuf_wchar *this)
3383 TRACE("(%p)\n", this);
3385 if(basic_streambuf_wchar_gptr(&this->base) < basic_streambuf_wchar_egptr(&this->base))
3386 return *basic_streambuf_wchar_gptr(&this->base);
3388 ret = call_basic_streambuf_wchar_uflow(&this->base);
3390 ret = call_basic_streambuf_wchar_pbackfail(&this->base, ret);
3394 /* ?seekoff@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
3395 /* ?seekoff@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
3396 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
3397 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
3398 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_seekoff, 20)
3399 fpos_int* __thiscall basic_filebuf_wchar_seekoff(basic_filebuf_wchar *this,
3400 fpos_int *ret, streamoff off, int way, int mode)
3404 TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode);
3406 if(basic_streambuf_wchar_gptr(&this->base) == &this->putback) {
3407 if(way == SEEKDIR_cur)
3408 off -= sizeof(wchar_t);
3410 basic_streambuf_wchar_setg(&this->base, &this->putback, &this->putback+1, &this->putback+1);
3413 if(!basic_filebuf_wchar_is_open(this) || !basic_filebuf_wchar__Endwrite(this)
3414 || fseek(this->file, off, way)) {
3421 fgetpos(this->file, &pos);
3424 ret->state = this->state;
3428 /* ?seekpos@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3429 /* ?seekpos@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3430 /* ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3431 /* ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3432 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_seekpos, 36)
3433 fpos_int* __thiscall basic_filebuf_wchar_seekpos(basic_filebuf_wchar *this,
3434 fpos_int *ret, fpos_int pos, int mode)
3438 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
3440 if(!basic_filebuf_wchar_is_open(this) || !basic_filebuf_wchar__Endwrite(this)
3441 || fseek(this->file, (LONG)pos.pos, SEEK_SET)
3442 || (pos.off && fseek(this->file, pos.off, SEEK_CUR))) {
3449 if(basic_streambuf_wchar_gptr(&this->base) == &this->putback)
3450 basic_streambuf_wchar_setg(&this->base, &this->putback, &this->putback+1, &this->putback+1);
3452 fgetpos(this->file, &fpos);
3455 ret->state = this->state;
3459 /* ?setbuf@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PA_WH@Z */
3460 /* ?setbuf@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEA_W_J@Z */
3461 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_setbuf, 12)
3462 basic_streambuf_wchar* __thiscall basic_filebuf_wchar_setbuf(basic_filebuf_wchar *this, wchar_t *buf, streamsize count)
3464 TRACE("(%p %p %ld)\n", this, buf, count);
3466 if(!basic_filebuf_wchar_is_open(this))
3469 if(setvbuf(this->file, (char*)buf, (buf==NULL && count==0) ? _IONBF : _IOFBF, count*sizeof(wchar_t)))
3472 basic_filebuf_wchar__Init(this, this->file, INITFL_open);
3476 /* ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PAGH@Z */
3477 /* ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAG_J@Z */
3478 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_setbuf, 12)
3479 basic_streambuf_wchar* __thiscall basic_filebuf_short_setbuf(basic_filebuf_wchar *this, wchar_t *buf, streamsize count)
3481 TRACE("(%p %p %ld)\n", this, buf, count);
3483 if(!basic_filebuf_wchar_is_open(this))
3486 if(setvbuf(this->file, (char*)buf, (buf==NULL && count==0) ? _IONBF : _IOFBF, count*sizeof(wchar_t)))
3489 basic_filebuf_short__Init(this, this->file, INITFL_open);
3493 /* ?sync@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
3494 /* ?sync@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ */
3495 /* ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
3496 /* ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAHXZ */
3497 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_sync, 4)
3498 int __thiscall basic_filebuf_wchar_sync(basic_filebuf_wchar *this)
3500 TRACE("(%p)\n", this);
3502 if(!basic_filebuf_wchar_is_open(this))
3505 if(call_basic_streambuf_wchar_overflow(&this->base, WEOF) == WEOF)
3507 return fflush(this->file);
3510 /* ?imbue@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z */
3511 /* ?imbue@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z */
3512 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_imbue, 8)
3513 void __thiscall basic_filebuf_wchar_imbue(basic_filebuf_wchar *this, const locale *loc)
3515 TRACE("(%p %p)\n", this, loc);
3516 basic_filebuf_wchar__Initcvt(this, codecvt_wchar_use_facet(loc));
3519 /* ?imbue@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEXABVlocale@2@@Z */
3520 /* ?imbue@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z */
3521 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_imbue, 8)
3522 void __thiscall basic_filebuf_short_imbue(basic_filebuf_wchar *this, const locale *loc)
3524 TRACE("(%p %p)\n", this, loc);
3525 basic_filebuf_wchar__Initcvt(this, codecvt_short_use_facet(loc));
3528 /* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEHH@Z */
3529 /* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAHH@Z */
3530 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Getstate, 8)
3531 int __thiscall basic_stringbuf_char__Getstate(basic_stringbuf_char *this, IOSB_openmode mode)
3535 if(!(mode & OPENMODE_in))
3536 state |= STRINGBUF_no_read;
3538 if(!(mode & OPENMODE_out))
3539 state |= STRINGBUF_no_write;
3541 if(mode & OPENMODE_ate)
3542 state |= STRINGBUF_at_end;
3544 if(mode & OPENMODE_app)
3545 state |= STRINGBUF_append;
3550 /* ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXPBDIH@Z */
3551 /* ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAXPEBD_KH@Z */
3552 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Init, 16)
3553 void __thiscall basic_stringbuf_char__Init(basic_stringbuf_char *this, const char *str, MSVCP_size_t count, int state)
3555 TRACE("(%p, %p, %ld, %d)\n", this, str, count, state);
3557 basic_streambuf_char__Init_empty(&this->base);
3559 this->state = state;
3560 this->seekhigh = NULL;
3563 char *buf = MSVCRT_operator_new(count);
3565 ERR("Out of memory\n");
3566 throw_exception(EXCEPTION_BAD_ALLOC, NULL);
3569 memcpy(buf, str, count);
3570 this->seekhigh = buf + count;
3572 this->state |= STRINGBUF_allocated;
3574 if(!(state & STRINGBUF_no_read))
3575 basic_streambuf_char_setg(&this->base, buf, buf, buf + count);
3577 if(!(state & STRINGBUF_no_write)) {
3578 basic_streambuf_char_setp_next(&this->base, buf, (state & STRINGBUF_at_end) ? buf + count : buf, buf + count);
3580 if(!basic_streambuf_char_gptr(&this->base))
3581 basic_streambuf_char_setg(&this->base, buf, 0, buf);
3586 /* ??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 */
3587 /* ??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 */
3588 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor_str, 12)
3589 basic_stringbuf_char* __thiscall basic_stringbuf_char_ctor_str(basic_stringbuf_char *this,
3590 const basic_string_char *str, IOSB_openmode mode)
3592 TRACE("(%p %p %d)\n", this, str, mode);
3594 basic_streambuf_char_ctor(&this->base);
3595 this->base.vtable = &MSVCP_basic_stringbuf_char_vtable;
3597 basic_stringbuf_char__Init(this, MSVCP_basic_string_char_c_str(str),
3598 str->size, basic_stringbuf_char__Getstate(this, mode));
3602 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
3603 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
3604 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor_mode, 8)
3605 basic_stringbuf_char* __thiscall basic_stringbuf_char_ctor_mode(
3606 basic_stringbuf_char *this, IOSB_openmode mode)
3608 TRACE("(%p %d)\n", this, mode);
3610 basic_streambuf_char_ctor(&this->base);
3611 this->base.vtable = &MSVCP_basic_stringbuf_char_vtable;
3613 basic_stringbuf_char__Init(this, NULL, 0, basic_stringbuf_char__Getstate(this, mode));
3617 /* ??_F?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
3618 /* ??_F?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
3619 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor, 4)
3620 basic_stringbuf_char* __thiscall basic_stringbuf_char_ctor(basic_stringbuf_char *this)
3622 return basic_stringbuf_char_ctor_mode(this, OPENMODE_in|OPENMODE_out);
3625 /* ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXXZ */
3626 /* ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAXXZ */
3627 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Tidy, 4)
3628 void __thiscall basic_stringbuf_char__Tidy(basic_stringbuf_char *this)
3630 TRACE("(%p)\n", this);
3632 if(this->state & STRINGBUF_allocated) {
3633 MSVCRT_operator_delete(basic_streambuf_char_eback(&this->base));
3634 this->seekhigh = NULL;
3635 this->state &= ~STRINGBUF_allocated;
3638 basic_streambuf_char__Init_empty(&this->base);
3641 /* ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
3642 /* ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
3643 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_dtor, 4)
3644 void __thiscall basic_stringbuf_char_dtor(basic_stringbuf_char *this)
3646 TRACE("(%p)\n", this);
3648 basic_stringbuf_char__Tidy(this);
3649 basic_streambuf_char_dtor(&this->base);
3652 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_vector_dtor, 8)
3653 basic_stringbuf_char* __thiscall basic_stringbuf_char_vector_dtor(basic_stringbuf_char *this, unsigned int flags)
3655 TRACE("(%p %x)\n", this, flags);
3658 /* we have an array, with the number of elements stored before the first object */
3659 INT_PTR i, *ptr = (INT_PTR *) this - 1;
3661 for (i = *ptr - 1; i >= 0; i--)
3662 basic_stringbuf_char_dtor(this+i);
3664 MSVCRT_operator_delete(ptr);
3666 basic_stringbuf_char_dtor(this);
3669 MSVCRT_operator_delete(this);
3675 /* ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z */
3676 /* ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHH@Z */
3677 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_overflow, 8)
3678 int __thiscall basic_stringbuf_char_overflow(basic_stringbuf_char *this, int meta)
3680 MSVCP_size_t oldsize, size;
3683 TRACE("(%p %x)\n", this, meta);
3687 if(this->state & STRINGBUF_no_write)
3690 ptr = basic_streambuf_char_pptr(&this->base);
3691 if((this->state&STRINGBUF_append) && ptr<this->seekhigh)
3692 basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base),
3693 this->seekhigh, basic_streambuf_char_epptr(&this->base));
3695 if(ptr && ptr<basic_streambuf_char_epptr(&this->base))
3696 return (*basic_streambuf_char__Pninc(&this->base) = meta);
3698 oldsize = (ptr ? basic_streambuf_char_epptr(&this->base)-basic_streambuf_char_eback(&this->base): 0);
3701 buf = MSVCRT_operator_new(size);
3703 ERR("Out of memory\n");
3704 throw_exception(EXCEPTION_BAD_ALLOC, NULL);
3708 this->seekhigh = buf;
3709 basic_streambuf_char_setp(&this->base, buf, buf+size);
3710 if(this->state & STRINGBUF_no_read)
3711 basic_streambuf_char_setg(&this->base, buf, NULL, buf);
3713 basic_streambuf_char_setg(&this->base, buf, buf, buf+1);
3715 this->state |= STRINGBUF_allocated;
3717 ptr = basic_streambuf_char_eback(&this->base);
3718 memcpy(buf, ptr, oldsize);
3720 this->seekhigh = buf+(this->seekhigh-ptr);
3721 basic_streambuf_char_setp_next(&this->base, buf,
3722 buf+(basic_streambuf_char_pptr(&this->base)-ptr), buf+size);
3723 if(this->state & STRINGBUF_no_read)
3724 basic_streambuf_char_setg(&this->base, buf, NULL, buf);
3726 basic_streambuf_char_setg(&this->base, buf,
3727 buf+(basic_streambuf_char_gptr(&this->base)-ptr),
3728 basic_streambuf_char_pptr(&this->base)+1);
3730 MSVCRT_operator_delete(ptr);
3733 return (*basic_streambuf_char__Pninc(&this->base) = meta);
3736 /* ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z */
3737 /* ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHH@Z */
3738 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_pbackfail, 8)
3739 int __thiscall basic_stringbuf_char_pbackfail(basic_stringbuf_char *this, int c)
3743 TRACE("(%p %x)\n", this, c);
3745 cur = basic_streambuf_char_gptr(&this->base);
3746 if(!cur || cur==basic_streambuf_char_eback(&this->base)
3747 || (c!=EOF && c!=cur[-1] && this->state&STRINGBUF_no_write))
3752 basic_streambuf_char_gbump(&this->base, -1);
3753 return c==EOF ? !EOF : c;
3756 /* ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHXZ */
3757 /* ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHXZ */
3758 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_underflow, 4)
3759 int __thiscall basic_stringbuf_char_underflow(basic_stringbuf_char *this)
3763 TRACE("(%p)\n", this);
3765 cur = basic_streambuf_char_gptr(&this->base);
3766 if(!cur || this->state&STRINGBUF_no_read)
3769 ptr = basic_streambuf_char_pptr(&this->base);
3770 if(this->seekhigh < ptr)
3771 this->seekhigh = ptr;
3773 ptr = basic_streambuf_char_egptr(&this->base);
3774 if(this->seekhigh > ptr)
3775 basic_streambuf_char_setg(&this->base, basic_streambuf_char_eback(&this->base), cur, this->seekhigh);
3777 if(cur < this->seekhigh)
3778 return (unsigned char)*cur;
3782 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
3783 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
3784 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekoff, 20)
3785 fpos_int* __thiscall basic_stringbuf_char_seekoff(basic_stringbuf_char *this,
3786 fpos_int *ret, streamoff off, int way, int mode)
3788 char *beg, *cur_r, *cur_w;
3790 TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode);
3792 cur_w = basic_streambuf_char_pptr(&this->base);
3793 if(cur_w > this->seekhigh)
3794 this->seekhigh = cur_w;
3800 beg = basic_streambuf_char_eback(&this->base);
3801 cur_r = basic_streambuf_char_gptr(&this->base);
3802 if((mode & OPENMODE_in) && cur_r) {
3803 if(way==SEEKDIR_cur && !(mode & OPENMODE_out))
3805 else if(way == SEEKDIR_end)
3806 off += this->seekhigh-beg;
3807 else if(way != SEEKDIR_beg)
3810 if(off<0 || off>this->seekhigh-beg) {
3813 basic_streambuf_char_gbump(&this->base, beg-cur_r+off);
3814 if((mode & OPENMODE_out) && cur_w) {
3815 basic_streambuf_char_setp_next(&this->base, beg,
3816 basic_streambuf_char_gptr(&this->base),
3817 basic_streambuf_char_epptr(&this->base));
3820 }else if((mode & OPENMODE_out) && cur_w) {
3821 if(way == SEEKDIR_cur)
3823 else if(way == SEEKDIR_end)
3824 off += this->seekhigh-beg;
3825 else if(way != SEEKDIR_beg)
3828 if(off<0 || off>this->seekhigh-beg)
3831 basic_streambuf_char_pbump(&this->base, beg-cur_w+off);
3840 /* ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3841 /* ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3842 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekpos, 36)
3843 fpos_int* __thiscall basic_stringbuf_char_seekpos(basic_stringbuf_char *this,
3844 fpos_int *ret, fpos_int pos, int mode)
3846 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
3848 if(pos.off==-1 && pos.pos==0 && pos.state==0) {
3853 return basic_stringbuf_char_seekoff(this, ret, pos.off, SEEKDIR_beg, mode);
3856 /* ?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 */
3857 /* ?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 */
3858 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_str_set, 8)
3859 void __thiscall basic_stringbuf_char_str_set(basic_stringbuf_char *this, const basic_string_char *str)
3861 TRACE("(%p %p)\n", this, str);
3863 basic_stringbuf_char__Tidy(this);
3864 basic_stringbuf_char__Init(this, MSVCP_basic_string_char_c_str(str), str->size, this->state);
3867 /* ?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 */
3868 /* ?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 */
3869 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_str_get, 8)
3870 basic_string_char* __thiscall basic_stringbuf_char_str_get(const basic_stringbuf_char *this, basic_string_char *ret)
3874 TRACE("(%p)\n", this);
3876 if(!(this->state & STRINGBUF_no_write) && basic_streambuf_char_pptr(&this->base)) {
3879 ptr = basic_streambuf_char_pbase(&this->base);
3880 pptr = basic_streambuf_char_pptr(&this->base);
3882 return MSVCP_basic_string_char_ctor_cstr_len(ret, ptr, (this->seekhigh < pptr ? pptr : this->seekhigh) - ptr);
3885 if(!(this->state & STRINGBUF_no_read) && basic_streambuf_char_gptr(&this->base)) {
3886 ptr = basic_streambuf_char_eback(&this->base);
3887 return MSVCP_basic_string_char_ctor_cstr_len(ret, ptr, basic_streambuf_char_egptr(&this->base) - ptr);
3890 return MSVCP_basic_string_char_ctor(ret);
3893 /* ?_Getstate@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AAEHH@Z */
3894 /* ?_Getstate@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AEAAHH@Z */
3895 /* ?_Getstate@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AAEHH@Z */
3896 /* ?_Getstate@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AEAAHH@Z */
3897 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Getstate, 8)
3898 int __thiscall basic_stringbuf_wchar__Getstate(basic_stringbuf_wchar *this, IOSB_openmode mode)
3902 if(!(mode & OPENMODE_in))
3903 state |= STRINGBUF_no_read;
3905 if(!(mode & OPENMODE_out))
3906 state |= STRINGBUF_no_write;
3908 if(mode & OPENMODE_ate)
3909 state |= STRINGBUF_at_end;
3911 if(mode & OPENMODE_app)
3912 state |= STRINGBUF_append;
3917 /* ?_Init@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXPB_WIH@Z */
3918 /* ?_Init@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAXPEB_W_KH@Z */
3919 /* ?_Init@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXPBGIH@Z */
3920 /* ?_Init@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAXPEBG_KH@Z */
3921 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Init, 16)
3922 void __thiscall basic_stringbuf_wchar__Init(basic_stringbuf_wchar *this, const wchar_t *str, MSVCP_size_t count, int state)
3924 TRACE("(%p, %p, %lu, %d)\n", this, str, count, state);
3926 basic_streambuf_wchar__Init_empty(&this->base);
3928 this->state = state;
3929 this->seekhigh = NULL;
3932 wchar_t *buf = MSVCRT_operator_new(count*sizeof(wchar_t));
3934 ERR("Out of memory\n");
3935 throw_exception(EXCEPTION_BAD_ALLOC, NULL);
3938 memcpy(buf, str, count*sizeof(wchar_t));
3939 this->seekhigh = buf + count;
3941 this->state |= STRINGBUF_allocated;
3943 if(!(state & STRINGBUF_no_read))
3944 basic_streambuf_wchar_setg(&this->base, buf, buf, buf + count);
3946 if(!(state & STRINGBUF_no_write)) {
3947 basic_streambuf_wchar_setp_next(&this->base, buf, (state & STRINGBUF_at_end) ? buf + count : buf, buf + count);
3949 if(!basic_streambuf_wchar_gptr(&this->base))
3950 basic_streambuf_wchar_setg(&this->base, buf, 0, buf);
3955 /* ??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 */
3956 /* ??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 */
3957 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor_str, 12)
3958 basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_ctor_str(basic_stringbuf_wchar *this,
3959 const basic_string_wchar *str, IOSB_openmode mode)
3961 TRACE("(%p %p %d)\n", this, str, mode);
3963 basic_streambuf_wchar_ctor(&this->base);
3964 this->base.vtable = &MSVCP_basic_stringbuf_wchar_vtable;
3966 basic_stringbuf_wchar__Init(this, MSVCP_basic_string_wchar_c_str(str),
3967 str->size, basic_stringbuf_wchar__Getstate(this, mode));
3971 /* ??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 */
3972 /* ??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 */
3973 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor_str, 12)
3974 basic_stringbuf_wchar* __thiscall basic_stringbuf_short_ctor_str(basic_stringbuf_wchar *this,
3975 const basic_string_wchar *str, IOSB_openmode mode)
3977 basic_stringbuf_wchar_ctor_str(this, str, mode);
3978 this->base.vtable = &MSVCP_basic_stringbuf_short_vtable;
3982 /* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
3983 /* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
3984 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor_mode, 8)
3985 basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_ctor_mode(
3986 basic_stringbuf_wchar *this, IOSB_openmode mode)
3988 TRACE("(%p %d)\n", this, mode);
3990 basic_streambuf_wchar_ctor(&this->base);
3991 this->base.vtable = &MSVCP_basic_stringbuf_wchar_vtable;
3993 basic_stringbuf_wchar__Init(this, NULL, 0, basic_stringbuf_wchar__Getstate(this, mode));
3997 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
3998 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
3999 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor_mode, 8)
4000 basic_stringbuf_wchar* __thiscall basic_stringbuf_short_ctor_mode(
4001 basic_stringbuf_wchar *this, IOSB_openmode mode)
4003 basic_stringbuf_wchar_ctor_mode(this, mode);
4004 this->base.vtable = &MSVCP_basic_stringbuf_short_vtable;
4008 /* ??_F?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
4009 /* ??_F?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
4010 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor, 4)
4011 basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_ctor(basic_stringbuf_wchar *this)
4013 return basic_stringbuf_wchar_ctor_mode(this, OPENMODE_in|OPENMODE_out);
4016 /* ??_F?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
4017 /* ??_F?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
4018 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor, 4)
4019 basic_stringbuf_wchar* __thiscall basic_stringbuf_short_ctor(basic_stringbuf_wchar *this)
4021 return basic_stringbuf_short_ctor_mode(this, OPENMODE_in|OPENMODE_out);
4024 /* ?_Tidy@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXXZ */
4025 /* ?_Tidy@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAXXZ */
4026 /* ?_Tidy@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXXZ */
4027 /* ?_Tidy@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAXXZ */
4028 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Tidy, 4)
4029 void __thiscall basic_stringbuf_wchar__Tidy(basic_stringbuf_wchar *this)
4031 TRACE("(%p)\n", this);
4033 if(this->state & STRINGBUF_allocated) {
4034 MSVCRT_operator_delete(basic_streambuf_wchar_eback(&this->base));
4035 this->seekhigh = NULL;
4036 this->state &= ~STRINGBUF_allocated;
4039 basic_streambuf_wchar__Init_empty(&this->base);
4042 /* ??1?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
4043 /* ??1?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
4044 /* ??1?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
4045 /* ??1?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
4046 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_dtor, 4)
4047 void __thiscall basic_stringbuf_wchar_dtor(basic_stringbuf_wchar *this)
4049 TRACE("(%p)\n", this);
4051 basic_stringbuf_wchar__Tidy(this);
4052 basic_streambuf_wchar_dtor(&this->base);
4055 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_vector_dtor, 8)
4056 basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_vector_dtor(basic_stringbuf_wchar *this, unsigned int flags)
4058 TRACE("(%p %x)\n", this, flags);
4061 /* we have an array, with the number of elements stored before the first object */
4062 INT_PTR i, *ptr = (INT_PTR *) this - 1;
4064 for (i = *ptr - 1; i >= 0; i--)
4065 basic_stringbuf_wchar_dtor(this+i);
4067 MSVCRT_operator_delete(ptr);
4069 basic_stringbuf_wchar_dtor(this);
4072 MSVCRT_operator_delete(this);
4078 /* ?overflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGG@Z */
4079 /* ?overflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGG@Z */
4080 /* ?overflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGG@Z */
4081 /* ?overflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGG@Z */
4082 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_overflow, 8)
4083 unsigned short __thiscall basic_stringbuf_wchar_overflow(basic_stringbuf_wchar *this, unsigned short meta)
4085 MSVCP_size_t oldsize, size;
4088 TRACE("(%p %x)\n", this, meta);
4092 if(this->state & STRINGBUF_no_write)
4095 ptr = basic_streambuf_wchar_pptr(&this->base);
4096 if((this->state&STRINGBUF_append) && ptr<this->seekhigh)
4097 basic_streambuf_wchar_setp_next(&this->base, basic_streambuf_wchar_pbase(&this->base),
4098 this->seekhigh, basic_streambuf_wchar_epptr(&this->base));
4100 if(ptr && ptr<basic_streambuf_wchar_epptr(&this->base))
4101 return (*basic_streambuf_wchar__Pninc(&this->base) = meta);
4103 oldsize = (ptr ? basic_streambuf_wchar_epptr(&this->base)-basic_streambuf_wchar_eback(&this->base): 0);
4106 buf = MSVCRT_operator_new(size*sizeof(wchar_t));
4108 ERR("Out of memory\n");
4109 throw_exception(EXCEPTION_BAD_ALLOC, NULL);
4113 this->seekhigh = buf;
4114 basic_streambuf_wchar_setp(&this->base, buf, buf+size);
4115 if(this->state & STRINGBUF_no_read)
4116 basic_streambuf_wchar_setg(&this->base, buf, NULL, buf);
4118 basic_streambuf_wchar_setg(&this->base, buf, buf, buf+1);
4120 this->state |= STRINGBUF_allocated;
4122 ptr = basic_streambuf_wchar_eback(&this->base);
4123 memcpy(buf, ptr, oldsize*sizeof(wchar_t));
4125 this->seekhigh = buf+(this->seekhigh-ptr);
4126 basic_streambuf_wchar_setp_next(&this->base, buf,
4127 buf+(basic_streambuf_wchar_pptr(&this->base)-ptr), buf+size);
4128 if(this->state & STRINGBUF_no_read)
4129 basic_streambuf_wchar_setg(&this->base, buf, NULL, buf);
4131 basic_streambuf_wchar_setg(&this->base, buf,
4132 buf+(basic_streambuf_wchar_gptr(&this->base)-ptr),
4133 basic_streambuf_wchar_pptr(&this->base)+1);
4135 MSVCRT_operator_delete(ptr);
4138 return (*basic_streambuf_wchar__Pninc(&this->base) = meta);
4141 /* ?pbackfail@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGG@Z */
4142 /* ?pbackfail@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGG@Z */
4143 /* ?pbackfail@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGG@Z */
4144 /* ?pbackfail@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGG@Z */
4145 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_pbackfail, 8)
4146 unsigned short __thiscall basic_stringbuf_wchar_pbackfail(basic_stringbuf_wchar *this, unsigned short c)
4150 TRACE("(%p %x)\n", this, c);
4152 cur = basic_streambuf_wchar_gptr(&this->base);
4153 if(!cur || cur==basic_streambuf_wchar_eback(&this->base)
4154 || (c!=WEOF && c!=cur[-1] && this->state&STRINGBUF_no_write))
4159 basic_streambuf_wchar_gbump(&this->base, -1);
4160 return c==WEOF ? !WEOF : c;
4163 /* ?underflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGXZ */
4164 /* ?underflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGXZ */
4165 /* ?underflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGXZ */
4166 /* ?underflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGXZ */
4167 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_underflow, 4)
4168 unsigned short __thiscall basic_stringbuf_wchar_underflow(basic_stringbuf_wchar *this)
4172 TRACE("(%p)\n", this);
4174 cur = basic_streambuf_wchar_gptr(&this->base);
4175 if(!cur || this->state&STRINGBUF_no_read)
4178 ptr = basic_streambuf_wchar_pptr(&this->base);
4179 if(this->seekhigh < ptr)
4180 this->seekhigh = ptr;
4182 ptr = basic_streambuf_wchar_egptr(&this->base);
4183 if(this->seekhigh > ptr)
4184 basic_streambuf_wchar_setg(&this->base, basic_streambuf_wchar_eback(&this->base), cur, this->seekhigh);
4186 if(cur < this->seekhigh)
4191 /* ?seekoff@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
4192 /* ?seekoff@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
4193 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
4194 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
4195 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_seekoff, 20)
4196 fpos_int* __thiscall basic_stringbuf_wchar_seekoff(basic_stringbuf_wchar *this,
4197 fpos_int *ret, streamoff off, int way, int mode)
4199 wchar_t *beg, *cur_r, *cur_w;
4201 TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode);
4203 cur_w = basic_streambuf_wchar_pptr(&this->base);
4204 if(cur_w > this->seekhigh)
4205 this->seekhigh = cur_w;
4211 beg = basic_streambuf_wchar_eback(&this->base);
4212 cur_r = basic_streambuf_wchar_gptr(&this->base);
4213 if((mode & OPENMODE_in) && cur_r) {
4214 if(way==SEEKDIR_cur && !(mode & OPENMODE_out))
4216 else if(way == SEEKDIR_end)
4217 off += this->seekhigh-beg;
4218 else if(way != SEEKDIR_beg)
4221 if(off<0 || off>this->seekhigh-beg) {
4224 basic_streambuf_wchar_gbump(&this->base, beg-cur_r+off);
4225 if((mode & OPENMODE_out) && cur_w) {
4226 basic_streambuf_wchar_setp_next(&this->base, beg,
4227 basic_streambuf_wchar_gptr(&this->base),
4228 basic_streambuf_wchar_epptr(&this->base));
4231 }else if((mode & OPENMODE_out) && cur_w) {
4232 if(way == SEEKDIR_cur)
4234 else if(way == SEEKDIR_end)
4235 off += this->seekhigh-beg;
4236 else if(way != SEEKDIR_beg)
4239 if(off<0 || off>this->seekhigh-beg)
4242 basic_streambuf_wchar_pbump(&this->base, beg-cur_w+off);
4251 /* ?seekpos@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
4252 /* ?seekpos@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
4253 /* ?seekpos@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
4254 /* ?seekpos@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
4255 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_seekpos, 36)
4256 fpos_int* __thiscall basic_stringbuf_wchar_seekpos(basic_stringbuf_wchar *this,
4257 fpos_int *ret, fpos_int pos, int mode)
4259 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
4261 if(pos.off==-1 && pos.pos==0 && pos.state==0) {
4266 return basic_stringbuf_wchar_seekoff(this, ret, pos.off, SEEKDIR_beg, mode);
4269 /* ?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 */
4270 /* ?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 */
4271 /* ?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 */
4272 /* ?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 */
4273 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_str_set, 8)
4274 void __thiscall basic_stringbuf_wchar_str_set(basic_stringbuf_wchar *this, const basic_string_wchar *str)
4276 TRACE("(%p %p)\n", this, str);
4278 basic_stringbuf_wchar__Tidy(this);
4279 basic_stringbuf_wchar__Init(this, MSVCP_basic_string_wchar_c_str(str), str->size, this->state);
4282 /* ?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 */
4283 /* ?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 */
4284 /* ?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 */
4285 /* ?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 */
4286 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_str_get, 8)
4287 basic_string_wchar* __thiscall basic_stringbuf_wchar_str_get(const basic_stringbuf_wchar *this, basic_string_wchar *ret)
4291 TRACE("(%p)\n", this);
4293 if(!(this->state & STRINGBUF_no_write) && basic_streambuf_wchar_pptr(&this->base)) {
4296 ptr = basic_streambuf_wchar_pbase(&this->base);
4297 pptr = basic_streambuf_wchar_pptr(&this->base);
4299 return MSVCP_basic_string_wchar_ctor_cstr_len(ret, ptr, (this->seekhigh < pptr ? pptr : this->seekhigh) - ptr);
4302 if(!(this->state & STRINGBUF_no_read) && basic_streambuf_wchar_gptr(&this->base)) {
4303 ptr = basic_streambuf_wchar_eback(&this->base);
4304 return MSVCP_basic_string_wchar_ctor_cstr_len(ret, ptr, basic_streambuf_wchar_egptr(&this->base) - ptr);
4307 return MSVCP_basic_string_wchar_ctor(ret);
4310 /* ??0ios_base@std@@IAE@XZ */
4311 /* ??0ios_base@std@@IEAA@XZ */
4312 DEFINE_THISCALL_WRAPPER(ios_base_ctor, 4)
4313 ios_base* __thiscall ios_base_ctor(ios_base *this)
4315 TRACE("(%p)\n", this);
4316 this->vtable = &MSVCP_ios_base_vtable;
4320 /* ??0ios_base@std@@QAE@ABV01@@Z */
4321 /* ??0ios_base@std@@QEAA@AEBV01@@Z */
4322 DEFINE_THISCALL_WRAPPER(ios_base_copy_ctor, 8)
4323 ios_base* __thiscall ios_base_copy_ctor(ios_base *this, const ios_base *copy)
4325 TRACE("(%p %p)\n", this, copy);
4327 this->vtable = &MSVCP_ios_base_vtable;
4331 /* ?_Callfns@ios_base@std@@AAEXW4event@12@@Z */
4332 /* ?_Callfns@ios_base@std@@AEAAXW4event@12@@Z */
4333 DEFINE_THISCALL_WRAPPER(ios_base_Callfns, 8)
4334 void __thiscall ios_base_Callfns(ios_base *this, IOS_BASE_event event)
4336 IOS_BASE_fnarray *cur;
4338 TRACE("(%p %x)\n", this, event);
4340 for(cur=this->calls; cur; cur=cur->next)
4341 cur->event_handler(event, this, cur->index);
4344 /* ?_Tidy@ios_base@std@@AAAXXZ */
4345 /* ?_Tidy@ios_base@std@@AEAAXXZ */
4346 void CDECL ios_base_Tidy(ios_base *this)
4348 IOS_BASE_iosarray *arr_cur, *arr_next;
4349 IOS_BASE_fnarray *event_cur, *event_next;
4351 TRACE("(%p)\n", this);
4353 ios_base_Callfns(this, EVENT_erase_event);
4355 for(arr_cur=this->arr; arr_cur; arr_cur=arr_next) {
4356 arr_next = arr_cur->next;
4357 MSVCRT_operator_delete(arr_cur);
4361 for(event_cur=this->calls; event_cur; event_cur=event_next) {
4362 event_next = event_cur->next;
4363 MSVCRT_operator_delete(event_cur);
4368 /* ?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z */
4369 /* ?_Ios_base_dtor@ios_base@std@@CAXPEAV12@@Z */
4370 static void ios_base_Ios_base_dtor(ios_base *obj)
4372 TRACE("(%p)\n", obj);
4374 locale_dtor(obj->loc);
4375 MSVCRT_operator_delete(obj->loc);
4380 /* ??1ios_base@std@@UAE@XZ */
4381 /* ??1ios_base@std@@UEAA@XZ */
4382 DEFINE_THISCALL_WRAPPER(ios_base_dtor, 4)
4383 void __thiscall ios_base_dtor(ios_base *this)
4385 ios_base_Ios_base_dtor(this);
4388 DEFINE_THISCALL_WRAPPER(ios_base_vector_dtor, 8)
4389 ios_base* __thiscall ios_base_vector_dtor(ios_base *this, unsigned int flags)
4391 TRACE("(%p %x)\n", this, flags);
4393 /* we have an array, with the number of elements stored before the first object */
4394 INT_PTR i, *ptr = (INT_PTR *)this-1;
4396 for(i=*ptr-1; i>=0; i--)
4397 ios_base_dtor(this+i);
4398 MSVCRT_operator_delete(ptr);
4400 ios_base_dtor(this);
4402 MSVCRT_operator_delete(this);
4408 DEFINE_THISCALL_WRAPPER(iosb_vector_dtor, 8)
4409 void* __thiscall iosb_vector_dtor(void *this, unsigned int flags)
4411 TRACE("(%p %x)\n", this, flags);
4413 INT_PTR *ptr = (INT_PTR *)this-1;
4414 MSVCRT_operator_delete(ptr);
4417 MSVCRT_operator_delete(this);
4423 /* ?_Findarr@ios_base@std@@AAEAAU_Iosarray@12@H@Z */
4424 /* ?_Findarr@ios_base@std@@AEAAAEAU_Iosarray@12@H@Z */
4425 DEFINE_THISCALL_WRAPPER(ios_base_Findarr, 8)
4426 IOS_BASE_iosarray* __thiscall ios_base_Findarr(ios_base *this, int index)
4428 IOS_BASE_iosarray *p;
4430 TRACE("(%p %d)\n", this, index);
4432 for(p=this->arr; p; p=p->next) {
4433 if(p->index == index)
4437 for(p=this->arr; p; p=p->next) {
4438 if(!p->long_val && !p->ptr_val) {
4444 p = MSVCRT_operator_new(sizeof(IOS_BASE_iosarray));
4445 p->next = this->arr;
4453 /* ?iword@ios_base@std@@QAEAAJH@Z */
4454 /* ?iword@ios_base@std@@QEAAAEAJH@Z */
4455 DEFINE_THISCALL_WRAPPER(ios_base_iword, 8)
4456 LONG* __thiscall ios_base_iword(ios_base *this, int index)
4458 TRACE("(%p %d)\n", this, index);
4459 return &ios_base_Findarr(this, index)->long_val;
4462 /* ?pword@ios_base@std@@QAEAAPAXH@Z */
4463 /* ?pword@ios_base@std@@QEAAAEAPEAXH@Z */
4464 DEFINE_THISCALL_WRAPPER(ios_base_pword, 8)
4465 void** __thiscall ios_base_pword(ios_base *this, int index)
4467 TRACE("(%p %d)\n", this, index);
4468 return &ios_base_Findarr(this, index)->ptr_val;
4471 /* ?register_callback@ios_base@std@@QAEXP6AXW4event@12@AAV12@H@ZH@Z */
4472 /* ?register_callback@ios_base@std@@QEAAXP6AXW4event@12@AEAV12@H@ZH@Z */
4473 DEFINE_THISCALL_WRAPPER(ios_base_register_callback, 12)
4474 void __thiscall ios_base_register_callback(ios_base *this, IOS_BASE_event_callback callback, int index)
4476 IOS_BASE_fnarray *event;
4478 TRACE("(%p %p %d)\n", this, callback, index);
4480 event = MSVCRT_operator_new(sizeof(IOS_BASE_fnarray));
4481 event->next = this->calls;
4482 event->index = index;
4483 event->event_handler = callback;
4484 this->calls = event;
4487 /* ?clear@ios_base@std@@QAEXH_N@Z */
4488 /* ?clear@ios_base@std@@QEAAXH_N@Z */
4489 DEFINE_THISCALL_WRAPPER(ios_base_clear_reraise, 12)
4490 void __thiscall ios_base_clear_reraise(ios_base *this, IOSB_iostate state, MSVCP_bool reraise)
4492 TRACE("(%p %x %x)\n", this, state, reraise);
4494 this->state = state & IOSTATE_mask;
4495 if(!(this->state & this->except))
4499 throw_exception(EXCEPTION_RERAISE, NULL);
4500 else if(this->state & this->except & IOSTATE_eofbit)
4501 throw_exception(EXCEPTION_FAILURE, "eofbit is set");
4502 else if(this->state & this->except & IOSTATE_failbit)
4503 throw_exception(EXCEPTION_FAILURE, "failbit is set");
4504 else if(this->state & this->except & IOSTATE_badbit)
4505 throw_exception(EXCEPTION_FAILURE, "badbit is set");
4506 else if(this->state & this->except & IOSTATE__Hardfail)
4507 throw_exception(EXCEPTION_FAILURE, "_Hardfail is set");
4510 /* ?clear@ios_base@std@@QAEXH@Z */
4511 /* ?clear@ios_base@std@@QEAAXH@Z */
4512 DEFINE_THISCALL_WRAPPER(ios_base_clear, 8)
4513 void __thiscall ios_base_clear(ios_base *this, IOSB_iostate state)
4515 ios_base_clear_reraise(this, state, FALSE);
4518 /* ?clear@ios_base@std@@QAEXI@Z */
4519 /* ?clear@ios_base@std@@QEAAXI@Z */
4520 DEFINE_THISCALL_WRAPPER(ios_base_clear_unsigned, 8)
4521 void __thiscall ios_base_clear_unsigned(ios_base *this, unsigned int state)
4523 ios_base_clear_reraise(this, (IOSB_iostate)state, FALSE);
4526 /* ?exceptions@ios_base@std@@QAEXH@Z */
4527 /* ?exceptions@ios_base@std@@QEAAXH@Z */
4528 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_set, 8)
4529 void __thiscall ios_base_exceptions_set(ios_base *this, IOSB_iostate state)
4531 TRACE("(%p %x)\n", this, state);
4532 this->except = state & IOSTATE_mask;
4533 ios_base_clear(this, this->state);
4536 /* ?exceptions@ios_base@std@@QAEXI@Z */
4537 /* ?exceptions@ios_base@std@@QEAAXI@Z */
4538 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_set_unsigned, 8)
4539 void __thiscall ios_base_exceptions_set_unsigned(ios_base *this, unsigned int state)
4541 TRACE("(%p %x)\n", this, state);
4542 ios_base_exceptions_set(this, state);
4545 /* ?exceptions@ios_base@std@@QBEHXZ */
4546 /* ?exceptions@ios_base@std@@QEBAHXZ */
4547 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_get, 4)
4548 IOSB_iostate __thiscall ios_base_exceptions_get(ios_base *this)
4550 TRACE("(%p)\n", this);
4551 return this->except;
4554 /* ?copyfmt@ios_base@std@@QAEAAV12@ABV12@@Z */
4555 /* ?copyfmt@ios_base@std@@QEAAAEAV12@AEBV12@@Z */
4556 DEFINE_THISCALL_WRAPPER(ios_base_copyfmt, 8)
4557 ios_base* __thiscall ios_base_copyfmt(ios_base *this, const ios_base *rhs)
4559 TRACE("(%p %p)\n", this, rhs);
4562 IOS_BASE_iosarray *arr_cur;
4563 IOS_BASE_fnarray *event_cur;
4565 ios_base_Tidy(this);
4567 for(arr_cur=rhs->arr; arr_cur; arr_cur=arr_cur->next) {
4568 if(arr_cur->long_val)
4569 *ios_base_iword(this, arr_cur->index) = arr_cur->long_val;
4570 if(arr_cur->ptr_val)
4571 *ios_base_pword(this, arr_cur->index) = arr_cur->ptr_val;
4573 this->stdstr = rhs->stdstr;
4574 this->fmtfl = rhs->fmtfl;
4575 this->prec = rhs->prec;
4576 this->wide = rhs->wide;
4577 locale_operator_assign(this->loc, rhs->loc);
4579 for(event_cur=rhs->calls; event_cur; event_cur=event_cur->next)
4580 ios_base_register_callback(this, event_cur->event_handler, event_cur->index);
4582 ios_base_Callfns(this, EVENT_copyfmt_event);
4583 ios_base_exceptions_set(this, rhs->except);
4589 /* ??4ios_base@std@@QAEAAV01@ABV01@@Z */
4590 /* ??4ios_base@std@@QEAAAEAV01@AEBV01@@Z */
4591 DEFINE_THISCALL_WRAPPER(ios_base_assign, 8)
4592 ios_base* __thiscall ios_base_assign(ios_base *this, const ios_base *right)
4594 TRACE("(%p %p)\n", this, right);
4597 this->state = right->state;
4598 ios_base_copyfmt(this, right);
4604 /* ?fail@ios_base@std@@QBE_NXZ */
4605 /* ?fail@ios_base@std@@QEBA_NXZ */
4606 DEFINE_THISCALL_WRAPPER(ios_base_fail, 4)
4607 MSVCP_bool __thiscall ios_base_fail(const ios_base *this)
4609 TRACE("(%p)\n", this);
4610 return (this->state & (IOSTATE_failbit|IOSTATE_badbit)) != 0;
4613 /* ??7ios_base@std@@QBE_NXZ */
4614 /* ??7ios_base@std@@QEBA_NXZ */
4615 DEFINE_THISCALL_WRAPPER(ios_base_op_succ, 4)
4616 MSVCP_bool __thiscall ios_base_op_succ(const ios_base *this)
4618 TRACE("(%p)\n", this);
4619 return ios_base_fail(this);
4622 /* ??Bios_base@std@@QBEPAXXZ */
4623 /* ??Bios_base@std@@QEBAPEAXXZ */
4624 DEFINE_THISCALL_WRAPPER(ios_base_op_fail, 4)
4625 void* __thiscall ios_base_op_fail(const ios_base *this)
4627 TRACE("(%p)\n", this);
4628 return ios_base_fail(this) ? NULL : (void*)this;
4631 /* ?_Addstd@ios_base@std@@SAXPAV12@@Z */
4632 /* ?_Addstd@ios_base@std@@SAXPEAV12@@Z */
4633 static void ios_base_Addstd(ios_base *add)
4635 FIXME("(%p) stub\n", add);
4638 /* ?_Init@ios_base@std@@IAEXXZ */
4639 /* ?_Init@ios_base@std@@IEAAXXZ */
4640 DEFINE_THISCALL_WRAPPER(ios_base__Init, 4)
4641 void __thiscall ios_base__Init(ios_base *this)
4643 TRACE("(%p)\n", this);
4646 this->state = this->except = IOSTATE_goodbit;
4647 this->fmtfl = FMTFLAG_skipws | FMTFLAG_dec;
4652 this->loc = MSVCRT_operator_new(sizeof(locale));
4653 locale_ctor(this->loc);
4656 /* ?bad@ios_base@std@@QBE_NXZ */
4657 /* ?bad@ios_base@std@@QEBA_NXZ */
4658 DEFINE_THISCALL_WRAPPER(ios_base_bad, 4)
4659 MSVCP_bool __thiscall ios_base_bad(const ios_base *this)
4661 TRACE("(%p)\n", this);
4662 return (this->state & IOSTATE_badbit) != 0;
4665 /* ?eof@ios_base@std@@QBE_NXZ */
4666 /* ?eof@ios_base@std@@QEBA_NXZ */
4667 DEFINE_THISCALL_WRAPPER(ios_base_eof, 4)
4668 MSVCP_bool __thiscall ios_base_eof(const ios_base *this)
4670 TRACE("(%p)\n", this);
4671 return (this->state & IOSTATE_eofbit) != 0;
4674 /* ?flags@ios_base@std@@QAEHH@Z */
4675 /* ?flags@ios_base@std@@QEAAHH@Z */
4676 DEFINE_THISCALL_WRAPPER(ios_base_flags_set, 8)
4677 IOSB_fmtflags __thiscall ios_base_flags_set(ios_base *this, IOSB_fmtflags flags)
4679 IOSB_fmtflags ret = this->fmtfl;
4681 TRACE("(%p %x)\n", this, flags);
4683 this->fmtfl = flags & FMTFLAG_mask;
4687 /* ?flags@ios_base@std@@QBEHXZ */
4688 /* ?flags@ios_base@std@@QEBAHXZ */
4689 DEFINE_THISCALL_WRAPPER(ios_base_flags_get, 4)
4690 IOSB_fmtflags __thiscall ios_base_flags_get(const ios_base *this)
4692 TRACE("(%p)\n", this);
4696 /* ?getloc@ios_base@std@@QBE?AVlocale@2@XZ */
4697 /* ?getloc@ios_base@std@@QEBA?AVlocale@2@XZ */
4698 DEFINE_THISCALL_WRAPPER(ios_base_getloc, 8)
4699 locale* __thiscall ios_base_getloc(const ios_base *this, locale *ret)
4701 TRACE("(%p)\n", this);
4702 return locale_copy_ctor(ret, this->loc);
4705 /* ?good@ios_base@std@@QBE_NXZ */
4706 /* ?good@ios_base@std@@QEBA_NXZ */
4707 DEFINE_THISCALL_WRAPPER(ios_base_good, 4)
4708 MSVCP_bool __thiscall ios_base_good(const ios_base *this)
4710 TRACE("(%p)\n", this);
4711 return this->state == IOSTATE_goodbit;
4714 /* ?imbue@ios_base@std@@QAE?AVlocale@2@ABV32@@Z */
4715 /* ?imbue@ios_base@std@@QEAA?AVlocale@2@AEBV32@@Z */
4716 DEFINE_THISCALL_WRAPPER(ios_base_imbue, 12)
4717 locale* __thiscall ios_base_imbue(ios_base *this, locale *ret, const locale *loc)
4719 TRACE("(%p %p)\n", this, loc);
4721 locale_copy_ctor(this->loc, loc);
4725 /* ?precision@ios_base@std@@QAEHH@Z */
4726 /* ?precision@ios_base@std@@QEAA_J_J@Z */
4727 DEFINE_THISCALL_WRAPPER(ios_base_precision_set, 8)
4728 streamsize __thiscall ios_base_precision_set(ios_base *this, streamsize precision)
4730 streamsize ret = this->prec;
4732 TRACE("(%p %ld)\n", this, precision);
4734 this->prec = precision;
4738 /* ?precision@ios_base@std@@QBEHXZ */
4739 /* ?precision@ios_base@std@@QEBA_JXZ */
4740 DEFINE_THISCALL_WRAPPER(ios_base_precision_get, 4)
4741 streamsize __thiscall ios_base_precision_get(const ios_base *this)
4743 TRACE("(%p)\n", this);
4747 /* ?rdstate@ios_base@std@@QBEHXZ */
4748 /* ?rdstate@ios_base@std@@QEBAHXZ */
4749 DEFINE_THISCALL_WRAPPER(ios_base_rdstate, 4)
4750 IOSB_iostate __thiscall ios_base_rdstate(const ios_base *this)
4752 TRACE("(%p)\n", this);
4756 /* ?setf@ios_base@std@@QAEHHH@Z */
4757 /* ?setf@ios_base@std@@QEAAHHH@Z */
4758 DEFINE_THISCALL_WRAPPER(ios_base_setf_mask, 12)
4759 IOSB_fmtflags __thiscall ios_base_setf_mask(ios_base *this, IOSB_fmtflags flags, IOSB_fmtflags mask)
4761 IOSB_fmtflags ret = this->fmtfl;
4763 TRACE("(%p %x %x)\n", this, flags, mask);
4765 this->fmtfl = (this->fmtfl & (~mask)) | (flags & mask & FMTFLAG_mask);
4769 /* ?setf@ios_base@std@@QAEHH@Z */
4770 /* ?setf@ios_base@std@@QEAAHH@Z */
4771 DEFINE_THISCALL_WRAPPER(ios_base_setf, 8)
4772 IOSB_fmtflags __thiscall ios_base_setf(ios_base *this, IOSB_fmtflags flags)
4774 return ios_base_setf_mask(this, flags, ~0);
4777 /* ?setstate@ios_base@std@@QAEXH_N@Z */
4778 /* ?setstate@ios_base@std@@QEAAXH_N@Z */
4779 DEFINE_THISCALL_WRAPPER(ios_base_setstate_reraise, 12)
4780 void __thiscall ios_base_setstate_reraise(ios_base *this, IOSB_iostate state, MSVCP_bool reraise)
4782 TRACE("(%p %x %x)\n", this, state, reraise);
4784 if(state != IOSTATE_goodbit)
4785 ios_base_clear_reraise(this, this->state | state, reraise);
4788 /* ?setstate@ios_base@std@@QAEXH@Z */
4789 /* ?setstate@ios_base@std@@QEAAXH@Z */
4790 DEFINE_THISCALL_WRAPPER(ios_base_setstate, 8)
4791 void __thiscall ios_base_setstate(ios_base *this, IOSB_iostate state)
4793 ios_base_setstate_reraise(this, state, FALSE);
4796 /* ?setstate@ios_base@std@@QAEXI@Z */
4797 /* ?setstate@ios_base@std@@QEAAXI@Z */
4798 DEFINE_THISCALL_WRAPPER(ios_base_setstate_unsigned, 8)
4799 void __thiscall ios_base_setstate_unsigned(ios_base *this, unsigned int state)
4801 ios_base_setstate_reraise(this, (IOSB_iostate)state, FALSE);
4804 /* ?sync_with_stdio@ios_base@std@@SA_N_N@Z */
4805 MSVCP_bool CDECL ios_base_sync_with_stdio(MSVCP_bool sync)
4810 TRACE("(%x)\n", sync);
4812 _Lockit_ctor_locktype(&lock, _LOCK_STREAM);
4813 ret = ios_base_Sync;
4814 ios_base_Sync = sync;
4815 _Lockit_dtor(&lock);
4819 /* ?unsetf@ios_base@std@@QAEXH@Z */
4820 /* ?unsetf@ios_base@std@@QEAAXH@Z */
4821 DEFINE_THISCALL_WRAPPER(ios_base_unsetf, 8)
4822 void __thiscall ios_base_unsetf(ios_base *this, IOSB_fmtflags flags)
4824 TRACE("(%p %x)\n", this, flags);
4825 this->fmtfl &= ~flags;
4828 /* ?width@ios_base@std@@QAEHH@Z */
4829 /* ?width@ios_base@std@@QEAA_J_J@Z */
4830 DEFINE_THISCALL_WRAPPER(ios_base_width_set, 8)
4831 streamsize __thiscall ios_base_width_set(ios_base *this, streamsize width)
4833 streamsize ret = this->wide;
4835 TRACE("(%p %ld)\n", this, width);
4841 /* ?width@ios_base@std@@QBEHXZ */
4842 /* ?width@ios_base@std@@QEBA_JXZ */
4843 DEFINE_THISCALL_WRAPPER(ios_base_width_get, 4)
4844 streamsize __thiscall ios_base_width_get(ios_base *this)
4846 TRACE("(%p)\n", this);
4850 /* ?xalloc@ios_base@std@@SAHXZ */
4851 int CDECL ios_base_xalloc(void)
4858 _Lockit_ctor_locktype(&lock, _LOCK_STREAM);
4859 ret = ios_base_Index++;
4860 _Lockit_dtor(&lock);
4864 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ */
4865 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ */
4866 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor, 4)
4867 basic_ios_char* __thiscall basic_ios_char_ctor(basic_ios_char *this)
4869 TRACE("(%p)\n", this);
4871 ios_base_ctor(&this->base);
4872 this->base.vtable = &MSVCP_basic_ios_char_vtable;
4876 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
4877 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
4878 DEFINE_THISCALL_WRAPPER(basic_ios_char_init, 12)
4879 void __thiscall basic_ios_char_init(basic_ios_char *this, basic_streambuf_char *streambuf, MSVCP_bool isstd)
4881 TRACE("(%p %p %x)\n", this, streambuf, isstd);
4882 ios_base__Init(&this->base);
4883 this->strbuf = streambuf;
4884 this->stream = NULL;
4888 ios_base_setstate(&this->base, IOSTATE_badbit);
4891 FIXME("standard streams not handled yet\n");
4894 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
4895 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
4896 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor_streambuf, 8)
4897 basic_ios_char* __thiscall basic_ios_char_ctor_streambuf(basic_ios_char *this, basic_streambuf_char *strbuf)
4899 TRACE("(%p %p)\n", this, strbuf);
4901 basic_ios_char_ctor(this);
4902 basic_ios_char_init(this, strbuf, FALSE);
4906 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ */
4907 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ */
4908 DEFINE_THISCALL_WRAPPER(basic_ios_char_dtor, 4)
4909 void __thiscall basic_ios_char_dtor(basic_ios_char *this)
4911 TRACE("(%p)\n", this);
4912 ios_base_dtor(&this->base);
4915 DEFINE_THISCALL_WRAPPER(basic_ios_char_vector_dtor, 8)
4916 basic_ios_char* __thiscall basic_ios_char_vector_dtor(basic_ios_char *this, unsigned int flags)
4918 TRACE("(%p %x)\n", this, flags);
4920 /* we have an array, with the number of elements stored before the first object */
4921 INT_PTR i, *ptr = (INT_PTR *)this-1;
4923 for(i=*ptr-1; i>=0; i--)
4924 basic_ios_char_dtor(this+i);
4925 MSVCRT_operator_delete(ptr);
4927 basic_ios_char_dtor(this);
4929 MSVCRT_operator_delete(this);
4935 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
4936 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
4937 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear_reraise, 12)
4938 void __thiscall basic_ios_char_clear_reraise(basic_ios_char *this, IOSB_iostate state, MSVCP_bool reraise)
4940 TRACE("(%p %x %x)\n", this, state, reraise);
4941 ios_base_clear_reraise(&this->base, state | (this->strbuf ? IOSTATE_goodbit : IOSTATE_badbit), reraise);
4944 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
4945 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
4946 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear, 8)
4947 void __thiscall basic_ios_char_clear(basic_ios_char *this, unsigned int state)
4949 basic_ios_char_clear_reraise(this, (IOSB_iostate)state, FALSE);
4952 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEAAV12@ABV12@@Z */
4953 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEBV12@@Z */
4954 DEFINE_THISCALL_WRAPPER(basic_ios_char_copyfmt, 8)
4955 basic_ios_char* __thiscall basic_ios_char_copyfmt(basic_ios_char *this, basic_ios_char *copy)
4957 TRACE("(%p %p)\n", this, copy);
4961 this->stream = copy->stream;
4962 this->fillch = copy->fillch;
4963 ios_base_copyfmt(&this->base, ©->base);
4967 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEDD@Z */
4968 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z */
4969 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_set, 8)
4970 char __thiscall basic_ios_char_fill_set(basic_ios_char *this, char fill)
4972 char ret = this->fillch;
4974 TRACE("(%p %c)\n", this, fill);
4976 this->fillch = fill;
4980 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ */
4981 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ */
4982 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_get, 4)
4983 char __thiscall basic_ios_char_fill_get(basic_ios_char *this)
4985 TRACE("(%p)\n", this);
4986 return this->fillch;
4989 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
4990 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
4991 DEFINE_THISCALL_WRAPPER(basic_ios_char_imbue, 12)
4992 locale *__thiscall basic_ios_char_imbue(basic_ios_char *this, locale *ret, const locale *loc)
4994 TRACE("(%p %p %p)\n", this, ret, loc);
4997 basic_streambuf_char_pubimbue(this->strbuf, ret, loc);
5001 return ios_base_imbue(&this->base, ret, loc);
5004 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDDD@Z */
5005 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADDD@Z */
5006 DEFINE_THISCALL_WRAPPER(basic_ios_char_narrow, 12)
5007 char __thiscall basic_ios_char_narrow(basic_ios_char *this, char ch, char def)
5009 TRACE("(%p %c %c)\n", this, ch, def);
5010 return ctype_char_narrow_ch(ctype_char_use_facet(this->strbuf->loc), ch, def);
5013 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PAV32@@Z */
5014 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAV32@@Z */
5015 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_set, 8)
5016 basic_streambuf_char* __thiscall basic_ios_char_rdbuf_set(basic_ios_char *this, basic_streambuf_char *streambuf)
5018 basic_streambuf_char *ret = this->strbuf;
5020 TRACE("(%p %p)\n", this, streambuf);
5022 this->strbuf = streambuf;
5023 basic_ios_char_clear(this, IOSTATE_goodbit);
5027 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
5028 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
5029 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_get, 4)
5030 basic_streambuf_char* __thiscall basic_ios_char_rdbuf_get(const basic_ios_char *this)
5032 TRACE("(%p)\n", this);
5033 return this->strbuf;
5036 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
5037 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
5038 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate_reraise, 12)
5039 void __thiscall basic_ios_char_setstate_reraise(basic_ios_char *this, IOSB_iostate state, MSVCP_bool reraise)
5041 TRACE("(%p %x %x)\n", this, state, reraise);
5043 if(state != IOSTATE_goodbit)
5044 basic_ios_char_clear_reraise(this, this->base.state | state, reraise);
5047 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
5048 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
5049 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate, 8)
5050 void __thiscall basic_ios_char_setstate(basic_ios_char *this, unsigned int state)
5052 basic_ios_char_setstate_reraise(this, (IOSB_iostate)state, FALSE);
5055 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@PAV32@@Z */
5056 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@PEAV32@@Z */
5057 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_set, 8)
5058 basic_ostream_char* __thiscall basic_ios_char_tie_set(basic_ios_char *this, basic_ostream_char *ostream)
5060 basic_ostream_char *ret = this->stream;
5062 TRACE("(%p %p)\n", this, ostream);
5064 this->stream = ostream;
5068 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
5069 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
5070 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_get, 4)
5071 basic_ostream_char* __thiscall basic_ios_char_tie_get(const basic_ios_char *this)
5073 TRACE("(%p)\n", this);
5074 return this->stream;
5077 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z */
5078 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z */
5079 DEFINE_THISCALL_WRAPPER(basic_ios_char_widen, 8)
5080 char __thiscall basic_ios_char_widen(basic_ios_char *this, char ch)
5082 TRACE("(%p %c)\n", this, ch);
5083 return ctype_char_widen_ch(ctype_char_use_facet(this->strbuf->loc), ch);
5087 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
5088 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
5089 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_ctor, 4)
5090 basic_ios_wchar* __thiscall basic_ios_wchar_ctor(basic_ios_wchar *this)
5092 TRACE("(%p)\n", this);
5094 ios_base_ctor(&this->base);
5095 this->base.vtable = &MSVCP_basic_ios_wchar_vtable;
5099 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@IAE@XZ */
5100 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@IEAA@XZ */
5101 DEFINE_THISCALL_WRAPPER(basic_ios_short_ctor, 4)
5102 basic_ios_wchar* __thiscall basic_ios_short_ctor(basic_ios_wchar *this)
5104 basic_ios_wchar_ctor(this);
5105 this->base.vtable = &MSVCP_basic_ios_short_vtable;
5109 /* ?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAEXPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z */
5110 /* ?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z */
5111 /* ?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IAEXPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z */
5112 /* ?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z */
5113 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_init, 12)
5114 void __thiscall basic_ios_wchar_init(basic_ios_wchar *this, basic_streambuf_wchar *streambuf, MSVCP_bool isstd)
5116 TRACE("(%p %p %x)\n", this, streambuf, isstd);
5117 ios_base__Init(&this->base);
5118 this->strbuf = streambuf;
5119 this->stream = NULL;
5123 ios_base_setstate(&this->base, IOSTATE_badbit);
5126 FIXME("standard streams not handled yet\n");
5129 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
5130 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
5131 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_ctor_streambuf, 8)
5132 basic_ios_wchar* __thiscall basic_ios_wchar_ctor_streambuf(basic_ios_wchar *this, basic_streambuf_wchar *strbuf)
5134 TRACE("(%p %p)\n", this, strbuf);
5136 basic_ios_wchar_ctor(this);
5137 basic_ios_wchar_init(this, strbuf, FALSE);
5141 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
5142 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
5143 DEFINE_THISCALL_WRAPPER(basic_ios_short_ctor_streambuf, 8)
5144 basic_ios_wchar* __thiscall basic_ios_short_ctor_streambuf(basic_ios_wchar *this, basic_streambuf_wchar *strbuf)
5146 basic_ios_wchar_ctor_streambuf(this, strbuf);
5147 this->base.vtable = &MSVCP_basic_ios_short_vtable;
5151 /* ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
5152 /* ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
5153 /* ??1?$basic_ios@GU?$char_traits@G@std@@@std@@UAE@XZ */
5154 /* ??1?$basic_ios@GU?$char_traits@G@std@@@std@@UEAA@XZ */
5155 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_dtor, 4)
5156 void __thiscall basic_ios_wchar_dtor(basic_ios_wchar *this)
5158 TRACE("(%p)\n", this);
5159 ios_base_dtor(&this->base);
5162 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_vector_dtor, 8)
5163 basic_ios_wchar* __thiscall basic_ios_wchar_vector_dtor(basic_ios_wchar *this, unsigned int flags)
5165 TRACE("(%p %x)\n", this, flags);
5167 /* we have an array, with the number of elements stored before the first object */
5168 INT_PTR i, *ptr = (INT_PTR *)this-1;
5170 for(i=*ptr-1; i>=0; i--)
5171 basic_ios_wchar_dtor(this+i);
5172 MSVCRT_operator_delete(ptr);
5174 basic_ios_wchar_dtor(this);
5176 MSVCRT_operator_delete(this);
5182 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z */
5183 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z */
5184 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXH_N@Z */
5185 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z */
5186 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_clear_reraise, 12)
5187 void __thiscall basic_ios_wchar_clear_reraise(basic_ios_wchar *this, IOSB_iostate state, MSVCP_bool reraise)
5189 TRACE("(%p %x %x)\n", this, state, reraise);
5190 ios_base_clear_reraise(&this->base, state | (this->strbuf ? IOSTATE_goodbit : IOSTATE_badbit), reraise);
5193 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXI@Z */
5194 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z */
5195 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXI@Z */
5196 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z */
5197 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_clear, 8)
5198 void __thiscall basic_ios_wchar_clear(basic_ios_wchar *this, unsigned int state)
5200 basic_ios_wchar_clear_reraise(this, (IOSB_iostate)state, FALSE);
5203 /* ?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEAAV12@ABV12@@Z */
5204 /* ?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEBV12@@Z */
5205 /* ?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEAAV12@ABV12@@Z */
5206 /* ?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEBV12@@Z */
5207 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_copyfmt, 8)
5208 basic_ios_wchar* __thiscall basic_ios_wchar_copyfmt(basic_ios_wchar *this, basic_ios_wchar *copy)
5210 TRACE("(%p %p)\n", this, copy);
5214 this->stream = copy->stream;
5215 this->fillch = copy->fillch;
5216 ios_base_copyfmt(&this->base, ©->base);
5220 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE_W_W@Z */
5221 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA_W_W@Z */
5222 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEGG@Z */
5223 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAGG@Z */
5224 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_fill_set, 8)
5225 wchar_t __thiscall basic_ios_wchar_fill_set(basic_ios_wchar *this, wchar_t fill)
5227 wchar_t ret = this->fillch;
5229 TRACE("(%p %c)\n", this, fill);
5231 this->fillch = fill;
5235 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WXZ */
5236 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WXZ */
5237 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEGXZ */
5238 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGXZ */
5239 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_fill_get, 4)
5240 wchar_t __thiscall basic_ios_wchar_fill_get(basic_ios_wchar *this)
5242 TRACE("(%p)\n", this);
5243 return this->fillch;
5246 /* ?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
5247 /* ?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
5248 /* ?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
5249 /* ?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
5250 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_imbue, 12)
5251 locale *__thiscall basic_ios_wchar_imbue(basic_ios_wchar *this, locale *ret, const locale *loc)
5253 TRACE("(%p %p %p)\n", this, ret, loc);
5256 basic_streambuf_wchar_pubimbue(this->strbuf, ret, loc);
5260 return ios_base_imbue(&this->base, ret, loc);
5263 /* ?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBED_WD@Z */
5264 /* ?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAD_WD@Z */
5265 /* ?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEDGD@Z */
5266 /* ?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBADGD@Z */
5267 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_narrow, 12)
5268 char __thiscall basic_ios_wchar_narrow(basic_ios_wchar *this, wchar_t ch, char def)
5270 TRACE("(%p %c %c)\n", this, ch, def);
5271 return ctype_wchar_narrow_ch(ctype_wchar_use_facet(this->strbuf->loc), ch, def);
5274 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PAV32@@Z */
5275 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEAV32@@Z */
5276 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PAV32@@Z */
5277 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAV32@@Z */
5278 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_rdbuf_set, 8)
5279 basic_streambuf_wchar* __thiscall basic_ios_wchar_rdbuf_set(basic_ios_wchar *this, basic_streambuf_wchar *streambuf)
5281 basic_streambuf_wchar *ret = this->strbuf;
5283 TRACE("(%p %p)\n", this, streambuf);
5285 this->strbuf = streambuf;
5286 basic_ios_wchar_clear(this, IOSTATE_goodbit);
5290 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ */
5291 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ */
5292 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ */
5293 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ */
5294 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_rdbuf_get, 4)
5295 basic_streambuf_wchar* __thiscall basic_ios_wchar_rdbuf_get(const basic_ios_wchar *this)
5297 TRACE("(%p)\n", this);
5298 return this->strbuf;
5301 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z */
5302 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z */
5303 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXH_N@Z */
5304 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z */
5305 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_setstate_reraise, 12)
5306 void __thiscall basic_ios_wchar_setstate_reraise(basic_ios_wchar *this, IOSB_iostate state, MSVCP_bool reraise)
5308 TRACE("(%p %x %x)\n", this, state, reraise);
5310 if(state != IOSTATE_goodbit)
5311 basic_ios_wchar_clear_reraise(this, this->base.state | state, reraise);
5314 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXI@Z */
5315 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z */
5316 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXI@Z */
5317 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z */
5318 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_setstate, 8)
5319 void __thiscall basic_ios_wchar_setstate(basic_ios_wchar *this, IOSB_iostate state)
5321 basic_ios_wchar_setstate_reraise(this, state, FALSE);
5324 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PAV32@@Z */
5325 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PEAV32@@Z */
5326 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEPAV?$basic_ostream@GU?$char_traits@G@std@@@2@PAV32@@Z */
5327 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@PEAV32@@Z */
5328 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_tie_set, 8)
5329 basic_ostream_wchar* __thiscall basic_ios_wchar_tie_set(basic_ios_wchar *this, basic_ostream_wchar *ostream)
5331 basic_ostream_wchar *ret = this->stream;
5333 TRACE("(%p %p)\n", this, ostream);
5335 this->stream = ostream;
5339 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ */
5340 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ */
5341 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ */
5342 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ */
5343 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_tie_get, 4)
5344 basic_ostream_wchar* __thiscall basic_ios_wchar_tie_get(const basic_ios_wchar *this)
5346 TRACE("(%p)\n", this);
5347 return this->stream;
5350 /* ?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WD@Z */
5351 /* ?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WD@Z */
5352 /* ?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEGD@Z */
5353 /* ?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGD@Z */
5354 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_widen, 8)
5355 wchar_t __thiscall basic_ios_wchar_widen(basic_ios_wchar *this, char ch)
5357 TRACE("(%p %c)\n", this, ch);
5358 return ctype_wchar_widen_ch(ctype_wchar_use_facet(this->strbuf->loc), ch);
5361 /* Caution: basic_ostream uses virtual inheritance.
5362 * All constructors have additional parameter that says if base class should be initialized.
5363 * Base class needs to be accessed using vbtable.
5365 static inline basic_ios_char* basic_ostream_char_get_basic_ios(basic_ostream_char *this)
5367 return (basic_ios_char*)((char*)this+this->vbtable[1]);
5370 static inline basic_ios_char* basic_ostream_char_to_basic_ios(basic_ostream_char *ptr)
5372 return (basic_ios_char*)((char*)ptr+basic_ostream_char_vbtable[1]);
5375 static inline basic_ostream_char* basic_ostream_char_from_basic_ios(basic_ios_char *ptr)
5377 return (basic_ostream_char*)((char*)ptr-basic_ostream_char_vbtable[1]);
5380 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
5381 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
5382 DEFINE_THISCALL_WRAPPER(basic_ostream_char_ctor, 16)
5383 basic_ostream_char* __thiscall basic_ostream_char_ctor(basic_ostream_char *this,
5384 basic_streambuf_char *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
5386 basic_ios_char *base;
5388 TRACE("(%p %p %d %d)\n", this, strbuf, isstd, virt_init);
5391 this->vbtable = basic_ostream_char_vbtable;
5392 base = basic_ostream_char_get_basic_ios(this);
5393 basic_ios_char_ctor(base);
5395 base = basic_ostream_char_get_basic_ios(this);
5398 base->base.vtable = &MSVCP_basic_ostream_char_vtable;
5399 basic_ios_char_init(base, strbuf, isstd);
5403 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@_N@Z */
5404 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z */
5405 static basic_ostream_char* basic_ostream_char_ctor_uninitialized(basic_ostream_char *this,
5406 int uninitialized, MSVCP_bool addstd, MSVCP_bool virt_init)
5408 basic_ios_char *base;
5410 TRACE("(%p %d %x)\n", this, uninitialized, addstd);
5413 this->vbtable = basic_ostream_char_vbtable;
5414 base = basic_ostream_char_get_basic_ios(this);
5415 basic_ios_char_ctor(base);
5417 base = basic_ostream_char_get_basic_ios(this);
5420 base->base.vtable = &MSVCP_basic_ostream_char_vtable;
5422 ios_base_Addstd(&base->base);
5426 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
5427 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
5428 DEFINE_THISCALL_WRAPPER(basic_ostream_char_dtor, 4)
5429 void __thiscall basic_ostream_char_dtor(basic_ios_char *base)
5431 basic_ostream_char *this = basic_ostream_char_from_basic_ios(base);
5433 /* don't destroy virtual base here */
5434 TRACE("(%p)\n", this);
5437 /* ??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
5438 /* ??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
5439 DEFINE_THISCALL_WRAPPER(basic_ostream_char_vbase_dtor, 4)
5440 void __thiscall basic_ostream_char_vbase_dtor(basic_ostream_char *this)
5442 TRACE("(%p)\n", this);
5443 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(this));
5444 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(this));
5447 DEFINE_THISCALL_WRAPPER(basic_ostream_char_vector_dtor, 8)
5448 basic_ostream_char* __thiscall basic_ostream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
5450 basic_ostream_char *this = basic_ostream_char_from_basic_ios(base);
5452 TRACE("(%p %x)\n", this, flags);
5455 /* we have an array, with the number of elements stored before the first object */
5456 INT_PTR i, *ptr = (INT_PTR *)this-1;
5458 for(i=*ptr-1; i>=0; i--)
5459 basic_ostream_char_vbase_dtor(this+i);
5460 MSVCRT_operator_delete(ptr);
5462 basic_ostream_char_vbase_dtor(this);
5464 MSVCRT_operator_delete(this);
5470 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ */
5471 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ */
5472 DEFINE_THISCALL_WRAPPER(basic_ostream_char_flush, 4)
5473 basic_ostream_char* __thiscall basic_ostream_char_flush(basic_ostream_char *this)
5475 /* this function is not matching C++ specification */
5476 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5478 TRACE("(%p)\n", this);
5480 if(basic_ios_char_rdbuf_get(base) && ios_base_good(&base->base)
5481 && basic_streambuf_char_pubsync(basic_ios_char_rdbuf_get(base))==-1)
5482 basic_ios_char_setstate(base, IOSTATE_badbit);
5486 /* ?flush@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
5487 /* ?flush@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
5488 basic_ostream_char* __cdecl flush_ostream_char(basic_ostream_char *ostream)
5490 return basic_ostream_char_flush(ostream);
5493 /* ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
5494 /* ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
5495 DEFINE_THISCALL_WRAPPER(basic_ostream_char__Osfx, 4)
5496 void __thiscall basic_ostream_char__Osfx(basic_ostream_char *this)
5498 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5500 TRACE("(%p)\n", this);
5502 if(base->base.fmtfl & FMTFLAG_unitbuf)
5503 basic_ostream_char_flush(this);
5506 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
5507 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
5508 DEFINE_THISCALL_WRAPPER(basic_ostream_char_osfx, 4)
5509 void __thiscall basic_ostream_char_osfx(basic_ostream_char *this)
5511 TRACE("(%p)\n", this);
5512 basic_ostream_char__Osfx(this);
5515 static BOOL basic_ostream_char_sentry_create(basic_ostream_char *ostr)
5517 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
5519 if(basic_ios_char_rdbuf_get(base))
5520 basic_streambuf_char__Lock(base->strbuf);
5522 if(ios_base_good(&base->base) && base->stream)
5523 basic_ostream_char_flush(base->stream);
5525 return ios_base_good(&base->base);
5528 static void basic_ostream_char_sentry_destroy(basic_ostream_char *ostr)
5530 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
5532 if(ios_base_good(&base->base) && !__uncaught_exception())
5533 basic_ostream_char_osfx(ostr);
5535 if(basic_ios_char_rdbuf_get(base))
5536 basic_streambuf_char__Unlock(base->strbuf);
5539 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE_NXZ */
5540 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA_NXZ */
5541 DEFINE_THISCALL_WRAPPER(basic_ostream_char_opfx, 4)
5542 MSVCP_bool __thiscall basic_ostream_char_opfx(basic_ostream_char *this)
5544 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5546 TRACE("(%p)\n", this);
5548 if(ios_base_good(&base->base) && base->stream)
5549 basic_ostream_char_flush(base->stream);
5550 return ios_base_good(&base->base);
5553 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z */
5554 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z */
5555 DEFINE_THISCALL_WRAPPER(basic_ostream_char_put, 8)
5556 basic_ostream_char* __thiscall basic_ostream_char_put(basic_ostream_char *this, char ch)
5558 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5560 TRACE("(%p %c)\n", this, ch);
5562 if(!basic_ostream_char_sentry_create(this)
5563 || basic_streambuf_char_sputc(base->strbuf, ch)==EOF) {
5564 basic_ostream_char_sentry_destroy(this);
5565 basic_ios_char_setstate(base, IOSTATE_badbit);
5569 basic_ostream_char_sentry_destroy(this);
5573 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@JH@Z */
5574 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
5575 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp, 12)
5576 basic_ostream_char* __thiscall basic_ostream_char_seekp(basic_ostream_char *this, streamoff off, int way)
5578 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5580 TRACE("(%p %ld %d)\n", this, off, way);
5582 if(!ios_base_fail(&base->base)) {
5585 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base),
5586 &seek, off, way, OPENMODE_out);
5587 if(seek.off==-1 && seek.pos==0 && seek.state==0)
5588 basic_ios_char_setstate(base, IOSTATE_failbit);
5593 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
5594 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
5595 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp_fpos, 28)
5596 basic_ostream_char* __thiscall basic_ostream_char_seekp_fpos(basic_ostream_char *this, fpos_int pos)
5598 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5600 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos));
5602 if(!ios_base_fail(&base->base)) {
5605 basic_streambuf_char_pubseekpos(basic_ios_char_rdbuf_get(base),
5606 &seek, pos, OPENMODE_out);
5607 if(seek.off==-1 && seek.pos==0 && seek.state==0)
5608 basic_ios_char_setstate(base, IOSTATE_failbit);
5613 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
5614 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
5615 DEFINE_THISCALL_WRAPPER(basic_ostream_char_tellp, 8)
5616 fpos_int* __thiscall basic_ostream_char_tellp(basic_ostream_char *this, fpos_int *ret)
5618 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5620 TRACE("(%p)\n", this);
5622 if(!ios_base_fail(&base->base)) {
5623 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base),
5624 ret, 0, SEEKDIR_cur, OPENMODE_out);
5633 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@PBDH@Z */
5634 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z */
5635 DEFINE_THISCALL_WRAPPER(basic_ostream_char_write, 12)
5636 basic_ostream_char* __thiscall basic_ostream_char_write(basic_ostream_char *this, const char *str, streamsize count)
5638 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5640 TRACE("(%p %s %ld)\n", this, debugstr_a(str), count);
5642 if(!basic_ostream_char_sentry_create(this)
5643 || basic_streambuf_char_sputn(base->strbuf, str, count)!=count) {
5644 basic_ostream_char_sentry_destroy(this);
5645 basic_ios_char_setstate(base, IOSTATE_badbit);
5649 basic_ostream_char_sentry_destroy(this);
5653 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@F@Z */
5654 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@F@Z */
5655 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_short, 8)
5656 basic_ostream_char* __thiscall basic_ostream_char_print_short(basic_ostream_char *this, short val)
5658 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5659 int state = IOSTATE_goodbit;
5661 TRACE("(%p %d)\n", this, val);
5663 if(basic_ostream_char_sentry_create(this)) {
5664 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5665 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5666 ostreambuf_iterator_char dest = {0, strbuf};
5668 num_put_char_put_long(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base),
5669 (ios_base_flags_get(&base->base) & FMTFLAG_basefield & (FMTFLAG_oct | FMTFLAG_hex))
5670 ? (LONG)((unsigned short)val) : (LONG)val);
5672 basic_ostream_char_sentry_destroy(this);
5674 basic_ios_char_setstate(base, state);
5678 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@G@Z */
5679 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@G@Z */
5680 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ushort, 8)
5681 basic_ostream_char* __thiscall basic_ostream_char_print_ushort(basic_ostream_char *this, unsigned short val)
5683 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5684 int state = IOSTATE_goodbit;
5686 TRACE("(%p %u)\n", this, val);
5688 if(basic_ostream_char_sentry_create(this)) {
5689 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5690 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5691 ostreambuf_iterator_char dest = {0, strbuf};
5693 num_put_char_put_ulong(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5695 basic_ostream_char_sentry_destroy(this);
5697 basic_ios_char_setstate(base, state);
5701 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@H@Z */
5702 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z */
5703 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@J@Z */
5704 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@J@Z */
5705 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int, 8)
5706 basic_ostream_char* __thiscall basic_ostream_char_print_int(basic_ostream_char *this, int val)
5708 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5709 int state = IOSTATE_goodbit;
5711 TRACE("(%p %d)\n", this, val);
5713 if(basic_ostream_char_sentry_create(this)) {
5714 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5715 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5716 ostreambuf_iterator_char dest = {0, strbuf};
5718 num_put_char_put_long(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5720 basic_ostream_char_sentry_destroy(this);
5722 basic_ios_char_setstate(base, state);
5726 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@I@Z */
5727 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@I@Z */
5728 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@K@Z */
5729 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@K@Z */
5730 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint, 8)
5731 basic_ostream_char* __thiscall basic_ostream_char_print_uint(basic_ostream_char *this, unsigned int val)
5733 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5734 int state = IOSTATE_goodbit;
5736 TRACE("(%p %u)\n", this, val);
5738 if(basic_ostream_char_sentry_create(this)) {
5739 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5740 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5741 ostreambuf_iterator_char dest = {0, strbuf};
5743 num_put_char_put_ulong(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5745 basic_ostream_char_sentry_destroy(this);
5747 basic_ios_char_setstate(base, state);
5751 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@M@Z */
5752 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z */
5753 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_float, 8)
5754 basic_ostream_char* __thiscall basic_ostream_char_print_float(basic_ostream_char *this, float val)
5756 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5757 int state = IOSTATE_goodbit;
5759 TRACE("(%p %f)\n", this, val);
5761 if(basic_ostream_char_sentry_create(this)) {
5762 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5763 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5764 ostreambuf_iterator_char dest = {0, strbuf};
5766 num_put_char_put_double(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5768 basic_ostream_char_sentry_destroy(this);
5770 basic_ios_char_setstate(base, state);
5774 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@N@Z */
5775 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z */
5776 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_double, 12)
5777 basic_ostream_char* __thiscall basic_ostream_char_print_double(basic_ostream_char *this, double val)
5779 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5780 int state = IOSTATE_goodbit;
5782 TRACE("(%p %lf)\n", this, val);
5784 if(basic_ostream_char_sentry_create(this)) {
5785 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5786 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5787 ostreambuf_iterator_char dest = {0, strbuf};
5789 num_put_char_put_double(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5791 basic_ostream_char_sentry_destroy(this);
5793 basic_ios_char_setstate(base, state);
5797 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@O@Z */
5798 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@O@Z */
5799 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ldouble, 12)
5800 basic_ostream_char* __thiscall basic_ostream_char_print_ldouble(basic_ostream_char *this, double val)
5802 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5803 int state = IOSTATE_goodbit;
5805 TRACE("(%p %lf)\n", this, val);
5807 if(basic_ostream_char_sentry_create(this)) {
5808 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5809 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5810 ostreambuf_iterator_char dest = {0, strbuf};
5812 num_put_char_put_ldouble(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5814 basic_ostream_char_sentry_destroy(this);
5816 basic_ios_char_setstate(base, state);
5820 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
5821 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
5822 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_streambuf, 8)
5823 basic_ostream_char* __thiscall basic_ostream_char_print_streambuf(basic_ostream_char *this, basic_streambuf_char *val)
5825 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5826 IOSB_iostate state = IOSTATE_badbit;
5829 TRACE("(%p %p)\n", this, val);
5831 if(basic_ostream_char_sentry_create(this)) {
5832 for(c = basic_streambuf_char_sgetc(val); c!=EOF;
5833 c = basic_streambuf_char_snextc(val)) {
5834 state = IOSTATE_goodbit;
5836 if(basic_streambuf_char_sputc(base->strbuf, c) == EOF) {
5837 state = IOSTATE_badbit;
5842 state = IOSTATE_badbit;
5844 basic_ostream_char_sentry_destroy(this);
5846 ios_base_width_set(&base->base, 0);
5847 basic_ios_char_setstate(base, state);
5851 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PBX@Z */
5852 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEBX@Z */
5853 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ptr, 8)
5854 basic_ostream_char* __thiscall basic_ostream_char_print_ptr(basic_ostream_char *this, const void *val)
5856 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5857 int state = IOSTATE_goodbit;
5859 TRACE("(%p %p)\n", this, val);
5861 if(basic_ostream_char_sentry_create(this)) {
5862 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5863 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5864 ostreambuf_iterator_char dest = {0, strbuf};
5866 num_put_char_put_ptr(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5868 basic_ostream_char_sentry_destroy(this);
5870 basic_ios_char_setstate(base, state);
5874 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_J@Z */
5875 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_J@Z */
5876 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int64, 12)
5877 basic_ostream_char* __thiscall basic_ostream_char_print_int64(basic_ostream_char *this, __int64 val)
5879 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5880 int state = IOSTATE_goodbit;
5882 TRACE("(%p)\n", this);
5884 if(basic_ostream_char_sentry_create(this)) {
5885 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5886 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5887 ostreambuf_iterator_char dest = {0, strbuf};
5889 num_put_char_put_int64(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5891 basic_ostream_char_sentry_destroy(this);
5893 basic_ios_char_setstate(base, state);
5897 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_K@Z */
5898 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z */
5899 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint64, 12)
5900 basic_ostream_char* __thiscall basic_ostream_char_print_uint64(basic_ostream_char *this, unsigned __int64 val)
5902 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5903 int state = IOSTATE_goodbit;
5905 TRACE("(%p)\n", this);
5907 if(basic_ostream_char_sentry_create(this)) {
5908 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5909 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5910 ostreambuf_iterator_char dest = {0, strbuf};
5912 num_put_char_put_uint64(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5914 basic_ostream_char_sentry_destroy(this);
5916 basic_ios_char_setstate(base, state);
5920 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_N@Z */
5921 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_N@Z */
5922 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_bool, 8)
5923 basic_ostream_char* __thiscall basic_ostream_char_print_bool(basic_ostream_char *this, MSVCP_bool val)
5925 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5926 int state = IOSTATE_goodbit;
5928 TRACE("(%p %x)\n", this, val);
5930 if(basic_ostream_char_sentry_create(this)) {
5931 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5932 const num_put *numput = num_put_char_use_facet(strbuf->loc);
5933 ostreambuf_iterator_char dest = {0, strbuf};
5935 num_put_char_put_bool(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5937 basic_ostream_char_sentry_destroy(this);
5939 basic_ios_char_setstate(base, state);
5943 /* ?endl@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
5944 /* ?endl@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
5945 basic_ostream_char* __cdecl basic_ostream_char_endl(basic_ostream_char *ostr)
5947 TRACE("(%p)\n", ostr);
5949 basic_ostream_char_put(ostr, '\n');
5950 basic_ostream_char_flush(ostr);
5954 /* $?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 */
5955 /* ??$?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 */
5956 basic_ostream_char* __cdecl basic_ostream_char_print_bstr(basic_ostream_char *ostr, const basic_string_char *str)
5958 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
5959 IOSB_iostate state = IOSTATE_goodbit;
5961 TRACE("(%p %p)\n", ostr, str);
5963 if(basic_ostream_char_sentry_create(ostr)) {
5964 MSVCP_size_t len = MSVCP_basic_string_char_length(str);
5965 streamsize pad = (base->base.wide>len ? base->base.wide-len : 0);
5967 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
5968 for(; pad!=0; pad--) {
5969 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
5970 state = IOSTATE_badbit;
5976 if(state == IOSTATE_goodbit) {
5977 if(basic_streambuf_char_sputn(base->strbuf, MSVCP_basic_string_char_c_str(str), len) != len)
5978 state = IOSTATE_badbit;
5981 if(state == IOSTATE_goodbit) {
5982 for(; pad!=0; pad--) {
5983 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
5984 state = IOSTATE_badbit;
5990 base->base.wide = 0;
5992 state = IOSTATE_badbit;
5994 basic_ostream_char_sentry_destroy(ostr);
5996 basic_ios_char_setstate(base, state);
6000 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@C@Z */
6001 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@C@Z */
6002 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@D@Z */
6003 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z */
6004 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@E@Z */
6005 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@E@Z */
6006 basic_ostream_char* __cdecl basic_ostream_char_print_ch(basic_ostream_char *ostr, char ch)
6008 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
6009 IOSB_iostate state = IOSTATE_goodbit;
6011 TRACE("(%p %d)\n", ostr, ch);
6013 if(basic_ostream_char_sentry_create(ostr)) {
6014 streamsize pad = (base->base.wide>1 ? base->base.wide-1 : 0);
6016 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
6017 for(; pad!=0; pad--) {
6018 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
6019 state = IOSTATE_badbit;
6025 if(state == IOSTATE_goodbit) {
6026 if(basic_streambuf_char_sputc(base->strbuf, ch) == EOF)
6027 state = IOSTATE_badbit;
6030 if(state == IOSTATE_goodbit) {
6031 for(; pad!=0; pad--) {
6032 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
6033 state = IOSTATE_badbit;
6039 base->base.wide = 0;
6041 state = IOSTATE_badbit;
6043 basic_ostream_char_sentry_destroy(ostr);
6045 basic_ios_char_setstate(base, state);
6049 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBC@Z */
6050 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBC@Z */
6051 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z */
6052 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBD@Z */
6053 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBE@Z */
6054 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBE@Z */
6055 basic_ostream_char* __cdecl basic_ostream_char_print_str(basic_ostream_char *ostr, const char *str)
6057 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
6058 IOSB_iostate state = IOSTATE_goodbit;
6060 TRACE("(%p %s)\n", ostr, str);
6062 if(basic_ostream_char_sentry_create(ostr)) {
6063 MSVCP_size_t len = strlen(str);
6064 streamsize pad = (base->base.wide>len ? base->base.wide-len : 0);
6066 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
6067 for(; pad!=0; pad--) {
6068 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
6069 state = IOSTATE_badbit;
6075 if(state == IOSTATE_goodbit) {
6076 if(basic_streambuf_char_sputn(base->strbuf, str, len) != len)
6077 state = IOSTATE_badbit;
6080 if(state == IOSTATE_goodbit) {
6081 for(; pad!=0; pad--) {
6082 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
6083 state = IOSTATE_badbit;
6089 base->base.wide = 0;
6091 state = IOSTATE_badbit;
6093 basic_ostream_char_sentry_destroy(ostr);
6095 basic_ios_char_setstate(base, state);
6099 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
6100 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
6101 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func, 8)
6102 basic_ostream_char* __thiscall basic_ostream_char_print_func(basic_ostream_char *this,
6103 basic_ostream_char* (__cdecl *pfunc)(basic_ostream_char*))
6105 TRACE("(%p %p)\n", this, pfunc);
6110 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@DU?$char_traits@D@std@@@1@AAV21@@Z@Z */
6111 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z */
6112 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func_basic_ios, 8)
6113 basic_ostream_char* __thiscall basic_ostream_char_print_func_basic_ios(basic_ostream_char *this,
6114 basic_ios_char* (__cdecl *pfunc)(basic_ios_char*))
6116 TRACE("(%p %p)\n", this, pfunc);
6117 pfunc(basic_ostream_char_get_basic_ios(this));
6121 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
6122 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
6123 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func_ios_base, 8)
6124 basic_ostream_char* __thiscall basic_ostream_char_print_func_ios_base(
6125 basic_ostream_char *this, ios_base* (__cdecl *pfunc)(ios_base*))
6127 TRACE("(%p %p)\n", this, pfunc);
6128 pfunc(&basic_ostream_char_get_basic_ios(this)->base);
6132 /* Caution: basic_ostream uses virtual inheritance. */
6133 static inline basic_ios_wchar* basic_ostream_wchar_get_basic_ios(basic_ostream_wchar *this)
6135 return (basic_ios_wchar*)((char*)this+this->vbtable[1]);
6138 static inline basic_ios_wchar* basic_ostream_wchar_to_basic_ios(basic_ostream_wchar *ptr)
6140 return (basic_ios_wchar*)((char*)ptr+basic_ostream_wchar_vbtable[1]);
6143 static inline basic_ostream_wchar* basic_ostream_wchar_from_basic_ios(basic_ios_wchar *ptr)
6145 return (basic_ostream_wchar*)((char*)ptr-basic_ostream_wchar_vbtable[1]);
6148 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
6149 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
6150 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_ctor, 16)
6151 basic_ostream_wchar* __thiscall basic_ostream_wchar_ctor(basic_ostream_wchar *this,
6152 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
6154 basic_ios_wchar *base;
6156 TRACE("(%p %p %d %d)\n", this, strbuf, isstd, virt_init);
6159 this->vbtable = basic_ostream_wchar_vbtable;
6160 base = basic_ostream_wchar_get_basic_ios(this);
6161 basic_ios_wchar_ctor(base);
6163 base = basic_ostream_wchar_get_basic_ios(this);
6166 base->base.vtable = &MSVCP_basic_ostream_wchar_vtable;
6167 basic_ios_wchar_init(base, strbuf, isstd);
6171 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
6172 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
6173 DEFINE_THISCALL_WRAPPER(basic_ostream_short_ctor, 16)
6174 basic_ostream_wchar* __thiscall basic_ostream_short_ctor(basic_ostream_wchar *this,
6175 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
6177 basic_ostream_wchar_ctor(this, strbuf, isstd, virt_init);
6178 basic_ostream_wchar_get_basic_ios(this)->base.vtable = &MSVCP_basic_ostream_short_vtable;
6182 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@_N@Z */
6183 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z */
6184 static basic_ostream_wchar* basic_ostream_wchar_ctor_uninitialized(basic_ostream_wchar *this,
6185 int uninitialized, MSVCP_bool addstd, MSVCP_bool virt_init)
6187 basic_ios_wchar *base;
6189 TRACE("(%p %d %x)\n", this, uninitialized, addstd);
6192 this->vbtable = basic_ostream_wchar_vbtable;
6193 base = basic_ostream_wchar_get_basic_ios(this);
6194 basic_ios_wchar_ctor(base);
6196 base = basic_ostream_wchar_get_basic_ios(this);
6199 base->base.vtable = &MSVCP_basic_ostream_wchar_vtable;
6201 ios_base_Addstd(&base->base);
6205 /* ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
6206 /* ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
6207 /* ??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UAE@XZ */
6208 /* ??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
6209 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_dtor, 4)
6210 void __thiscall basic_ostream_wchar_dtor(basic_ios_wchar *base)
6212 basic_ostream_wchar *this = basic_ostream_wchar_from_basic_ios(base);
6214 /* don't destroy virtual base here */
6215 TRACE("(%p)\n", this);
6218 /* ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
6219 /* ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
6220 /* ??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
6221 /* ??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
6222 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_vbase_dtor, 4)
6223 void __thiscall basic_ostream_wchar_vbase_dtor(basic_ostream_wchar *this)
6225 TRACE("(%p)\n", this);
6226 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(this));
6227 basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(this));
6230 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_vector_dtor, 8)
6231 basic_ostream_wchar* __thiscall basic_ostream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
6233 basic_ostream_wchar *this = basic_ostream_wchar_from_basic_ios(base);
6235 TRACE("(%p %x)\n", this, flags);
6238 /* we have an array, with the number of elements stored before the first object */
6239 INT_PTR i, *ptr = (INT_PTR *)this-1;
6241 for(i=*ptr-1; i>=0; i--)
6242 basic_ostream_wchar_vbase_dtor(this+i);
6243 MSVCRT_operator_delete(ptr);
6245 basic_ostream_wchar_vbase_dtor(this);
6247 MSVCRT_operator_delete(this);
6253 /* ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ */
6254 /* ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ */
6255 /* ?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@XZ */
6256 /* ?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ */
6257 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_flush, 4)
6258 basic_ostream_wchar* __thiscall basic_ostream_wchar_flush(basic_ostream_wchar *this)
6260 /* this function is not matching C++ specification */
6261 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6263 TRACE("(%p)\n", this);
6265 if(basic_ios_wchar_rdbuf_get(base) && ios_base_good(&base->base)
6266 && basic_streambuf_wchar_pubsync(basic_ios_wchar_rdbuf_get(base))==-1)
6267 basic_ios_wchar_setstate(base, IOSTATE_badbit);
6271 /* ?flush@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
6272 /* ?flush@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
6273 /* ?flush@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
6274 /* ?flush@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
6275 basic_ostream_wchar* __cdecl flush_ostream_wchar(basic_ostream_wchar *ostream)
6277 return basic_ostream_wchar_flush(ostream);
6280 /* ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
6281 /* ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
6282 /* ?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
6283 /* ?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
6284 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar__Osfx, 4)
6285 void __thiscall basic_ostream_wchar__Osfx(basic_ostream_wchar *this)
6287 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6289 TRACE("(%p)\n", this);
6291 if(base->base.fmtfl & FMTFLAG_unitbuf)
6292 basic_ostream_wchar_flush(this);
6295 /* ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
6296 /* ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
6297 /* ?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
6298 /* ?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
6299 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_osfx, 4)
6300 void __thiscall basic_ostream_wchar_osfx(basic_ostream_wchar *this)
6302 TRACE("(%p)\n", this);
6303 basic_ostream_wchar__Osfx(this);
6306 static BOOL basic_ostream_wchar_sentry_create(basic_ostream_wchar *ostr)
6308 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
6310 if(basic_ios_wchar_rdbuf_get(base))
6311 basic_streambuf_wchar__Lock(base->strbuf);
6313 if(ios_base_good(&base->base) && base->stream)
6314 basic_ostream_wchar_flush(base->stream);
6316 return ios_base_good(&base->base);
6319 static void basic_ostream_wchar_sentry_destroy(basic_ostream_wchar *ostr)
6321 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
6323 if(ios_base_good(&base->base) && !__uncaught_exception())
6324 basic_ostream_wchar_osfx(ostr);
6326 if(basic_ios_wchar_rdbuf_get(base))
6327 basic_streambuf_wchar__Unlock(base->strbuf);
6330 /* ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE_NXZ */
6331 /* ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA_NXZ */
6332 /* ?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE_NXZ */
6333 /* ?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA_NXZ */
6334 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_opfx, 4)
6335 MSVCP_bool __thiscall basic_ostream_wchar_opfx(basic_ostream_wchar *this)
6337 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6339 TRACE("(%p)\n", this);
6341 if(ios_base_good(&base->base) && base->stream)
6342 basic_ostream_wchar_flush(base->stream);
6343 return ios_base_good(&base->base);
6346 /* ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@_W@Z */
6347 /* ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z */
6348 /* ?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@G@Z */
6349 /* ?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z */
6350 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_put, 8)
6351 basic_ostream_wchar* __thiscall basic_ostream_wchar_put(basic_ostream_wchar *this, wchar_t ch)
6353 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6355 TRACE("(%p %c)\n", this, ch);
6357 if(!basic_ostream_wchar_sentry_create(this)
6358 || basic_streambuf_wchar_sputc(base->strbuf, ch)==WEOF) {
6359 basic_ostream_wchar_sentry_destroy(this);
6360 basic_ios_wchar_setstate(base, IOSTATE_badbit);
6364 basic_ostream_wchar_sentry_destroy(this);
6368 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@JH@Z */
6369 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z */
6370 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@JH@Z */
6371 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z */
6372 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_seekp, 12)
6373 basic_ostream_wchar* __thiscall basic_ostream_wchar_seekp(basic_ostream_wchar *this, streamoff off, int way)
6375 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6377 TRACE("(%p %ld %d)\n", this, off, way);
6379 if(!ios_base_fail(&base->base)) {
6382 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base),
6383 &seek, off, way, OPENMODE_out);
6384 if(seek.off==-1 && seek.pos==0 && seek.state==0)
6385 basic_ios_wchar_setstate(base, IOSTATE_failbit);
6390 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
6391 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
6392 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
6393 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
6394 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_seekp_fpos, 28)
6395 basic_ostream_wchar* __thiscall basic_ostream_wchar_seekp_fpos(basic_ostream_wchar *this, fpos_int pos)
6397 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6399 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos));
6401 if(!ios_base_fail(&base->base)) {
6404 basic_streambuf_wchar_pubseekpos(basic_ios_wchar_rdbuf_get(base),
6405 &seek, pos, OPENMODE_out);
6406 if(seek.off==-1 && seek.pos==0 && seek.state==0)
6407 basic_ios_wchar_setstate(base, IOSTATE_failbit);
6412 /* ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@XZ */
6413 /* ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
6414 /* ?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@XZ */
6415 /* ?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
6416 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_tellp, 8)
6417 fpos_int* __thiscall basic_ostream_wchar_tellp(basic_ostream_wchar *this, fpos_int *ret)
6419 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6421 TRACE("(%p)\n", this);
6423 if(!ios_base_fail(&base->base)) {
6424 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base),
6425 ret, 0, SEEKDIR_cur, OPENMODE_out);
6434 /* ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PB_WH@Z */
6435 /* ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEB_W_J@Z */
6436 /* ?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@PBGH@Z */
6437 /* ?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEBG_J@Z */
6438 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_write, 12)
6439 basic_ostream_wchar* __thiscall basic_ostream_wchar_write(basic_ostream_wchar *this, const wchar_t *str, streamsize count)
6441 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6443 TRACE("(%p %s %ld)\n", this, debugstr_w(str), count);
6445 if(!basic_ostream_wchar_sentry_create(this)
6446 || basic_streambuf_wchar_sputn(base->strbuf, str, count)!=count) {
6447 basic_ostream_wchar_sentry_destroy(this);
6448 basic_ios_wchar_setstate(base, IOSTATE_badbit);
6452 basic_ostream_wchar_sentry_destroy(this);
6456 static basic_ostream_wchar* basic_ostream_print_short(basic_ostream_wchar *this, short val, const num_put *numput)
6458 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6459 int state = IOSTATE_goodbit;
6461 TRACE("(%p %d)\n", this, val);
6463 if(basic_ostream_wchar_sentry_create(this)) {
6464 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6465 ostreambuf_iterator_wchar dest = {0, strbuf};
6467 num_put_wchar_put_long(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base),
6468 (ios_base_flags_get(&base->base) & FMTFLAG_basefield & (FMTFLAG_oct | FMTFLAG_hex))
6469 ? (LONG)((unsigned short)val) : (LONG)val);
6471 basic_ostream_wchar_sentry_destroy(this);
6473 basic_ios_wchar_setstate(base, state);
6477 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@F@Z */
6478 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@F@Z */
6479 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_short, 8)
6480 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_short(basic_ostream_wchar *this, short val)
6482 return basic_ostream_print_short(this, val, num_put_wchar_use_facet(
6483 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6486 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@F@Z */
6487 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@F@Z */
6488 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_short, 8)
6489 basic_ostream_wchar* __thiscall basic_ostream_short_print_short(basic_ostream_wchar *this, short val)
6491 return basic_ostream_print_short(this, val, num_put_short_use_facet(
6492 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6495 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@G@Z */
6496 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@G@Z */
6497 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ushort, 8)
6498 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_ushort(basic_ostream_wchar *this, unsigned short val)
6500 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6501 int state = IOSTATE_goodbit;
6503 TRACE("(%p %u)\n", this, val);
6505 if(basic_ostream_wchar_sentry_create(this)) {
6506 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6507 const num_put *numput = num_put_wchar_use_facet(strbuf->loc);
6508 ostreambuf_iterator_wchar dest = {0, strbuf};
6510 num_put_wchar_put_ulong(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6512 basic_ostream_wchar_sentry_destroy(this);
6514 basic_ios_wchar_setstate(base, state);
6518 static basic_ostream_wchar* basic_ostream_print_int(basic_ostream_wchar *this, int val, const num_put *numput)
6520 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6521 int state = IOSTATE_goodbit;
6523 TRACE("(%p %d)\n", this, val);
6525 if(basic_ostream_wchar_sentry_create(this)) {
6526 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6527 ostreambuf_iterator_wchar dest = {0, strbuf};
6529 num_put_wchar_put_long(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6531 basic_ostream_wchar_sentry_destroy(this);
6533 basic_ios_wchar_setstate(base, state);
6537 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@H@Z */
6538 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@H@Z */
6539 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@J@Z */
6540 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@J@Z */
6541 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_int, 8)
6542 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_int(basic_ostream_wchar *this, int val)
6544 return basic_ostream_print_int(this, val, num_put_wchar_use_facet(
6545 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6548 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@H@Z */
6549 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@H@Z */
6550 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@J@Z */
6551 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@J@Z */
6552 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_int, 8)
6553 basic_ostream_wchar* __thiscall basic_ostream_short_print_int(basic_ostream_wchar *this, int val)
6555 return basic_ostream_print_int(this, val, num_put_short_use_facet(
6556 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6559 static basic_ostream_wchar* basic_ostream_print_uint(basic_ostream_wchar *this, unsigned int val, const num_put *numput)
6561 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6562 int state = IOSTATE_goodbit;
6564 TRACE("(%p %u)\n", this, val);
6566 if(basic_ostream_wchar_sentry_create(this)) {
6567 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6568 ostreambuf_iterator_wchar dest = {0, strbuf};
6570 num_put_wchar_put_ulong(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6572 basic_ostream_wchar_sentry_destroy(this);
6574 basic_ios_wchar_setstate(base, state);
6578 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@I@Z */
6579 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@I@Z */
6580 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@K@Z */
6581 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@K@Z */
6582 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_uint, 8)
6583 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_uint(basic_ostream_wchar *this, unsigned int val)
6585 return basic_ostream_print_uint(this, val, num_put_wchar_use_facet(
6586 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6589 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@I@Z */
6590 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@I@Z */
6591 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@K@Z */
6592 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@K@Z */
6593 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_uint, 8)
6594 basic_ostream_wchar* __thiscall basic_ostream_short_print_uint(basic_ostream_wchar *this, unsigned int val)
6596 return basic_ostream_print_uint(this, val, num_put_short_use_facet(
6597 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6600 static basic_ostream_wchar* basic_ostream_print_float(basic_ostream_wchar *this, float val, const num_put *numput)
6602 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6603 int state = IOSTATE_goodbit;
6605 TRACE("(%p %f)\n", this, val);
6607 if(basic_ostream_wchar_sentry_create(this)) {
6608 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6609 ostreambuf_iterator_wchar dest = {0, strbuf};
6611 num_put_wchar_put_double(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6613 basic_ostream_wchar_sentry_destroy(this);
6615 basic_ios_wchar_setstate(base, state);
6619 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@M@Z */
6620 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@M@Z */
6621 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_float, 8)
6622 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_float(basic_ostream_wchar *this, float val)
6624 return basic_ostream_print_float(this, val, num_put_wchar_use_facet(
6625 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6628 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@M@Z */
6629 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@M@Z */
6630 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_float, 8)
6631 basic_ostream_wchar* __thiscall basic_ostream_short_print_float(basic_ostream_wchar *this, float val)
6633 return basic_ostream_print_float(this, val, num_put_short_use_facet(
6634 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6637 static basic_ostream_wchar* basic_ostream_print_double(basic_ostream_wchar *this, double val, const num_put *numput)
6639 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6640 int state = IOSTATE_goodbit;
6642 TRACE("(%p %lf)\n", this, val);
6644 if(basic_ostream_wchar_sentry_create(this)) {
6645 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6646 ostreambuf_iterator_wchar dest = {0, strbuf};
6648 num_put_wchar_put_double(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6650 basic_ostream_wchar_sentry_destroy(this);
6652 basic_ios_wchar_setstate(base, state);
6656 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@N@Z */
6657 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@N@Z */
6658 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_double, 12)
6659 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_double(basic_ostream_wchar *this, double val)
6661 return basic_ostream_print_double(this, val, num_put_wchar_use_facet(
6662 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6665 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@N@Z */
6666 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@N@Z */
6667 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_double, 12)
6668 basic_ostream_wchar* __thiscall basic_ostream_short_print_double(basic_ostream_wchar *this, double val)
6670 return basic_ostream_print_double(this, val, num_put_short_use_facet(
6671 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6674 static basic_ostream_wchar* basic_ostream_print_ldouble(basic_ostream_wchar *this, double val, const num_put *numput)
6676 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6677 int state = IOSTATE_goodbit;
6679 TRACE("(%p %lf)\n", this, val);
6681 if(basic_ostream_wchar_sentry_create(this)) {
6682 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6683 ostreambuf_iterator_wchar dest = {0, strbuf};
6685 num_put_wchar_put_ldouble(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6687 basic_ostream_wchar_sentry_destroy(this);
6689 basic_ios_wchar_setstate(base, state);
6693 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@O@Z */
6694 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@O@Z */
6695 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ldouble, 12)
6696 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_ldouble(basic_ostream_wchar *this, double val)
6698 return basic_ostream_print_ldouble(this, val, num_put_wchar_use_facet(
6699 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6702 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@O@Z */
6703 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@O@Z */
6704 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_ldouble, 12)
6705 basic_ostream_wchar* __thiscall basic_ostream_short_print_ldouble(basic_ostream_wchar *this, double val)
6707 return basic_ostream_print_ldouble(this, val, num_put_short_use_facet(
6708 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6711 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
6712 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
6713 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
6714 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
6715 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_streambuf, 8)
6716 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_streambuf(basic_ostream_wchar *this, basic_streambuf_wchar *val)
6718 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6719 IOSB_iostate state = IOSTATE_badbit;
6720 unsigned short c = '\n';
6722 TRACE("(%p %p)\n", this, val);
6724 if(basic_ostream_wchar_sentry_create(this)) {
6725 for(c = basic_streambuf_wchar_sgetc(val); c!=WEOF;
6726 c = basic_streambuf_wchar_snextc(val)) {
6727 state = IOSTATE_goodbit;
6729 if(basic_streambuf_wchar_sputc(base->strbuf, c) == WEOF) {
6730 state = IOSTATE_badbit;
6735 state = IOSTATE_badbit;
6737 basic_ostream_wchar_sentry_destroy(this);
6739 ios_base_width_set(&base->base, 0);
6740 basic_ios_wchar_setstate(base, state);
6744 static basic_ostream_wchar* basic_ostream_print_ptr(basic_ostream_wchar *this, const void *val, const num_put *numput)
6746 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6747 int state = IOSTATE_goodbit;
6749 TRACE("(%p %p)\n", this, val);
6751 if(basic_ostream_wchar_sentry_create(this)) {
6752 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6753 ostreambuf_iterator_wchar dest = {0, strbuf};
6755 num_put_wchar_put_ptr(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6757 basic_ostream_wchar_sentry_destroy(this);
6759 basic_ios_wchar_setstate(base, state);
6763 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PBX@Z */
6764 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEBX@Z */
6765 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ptr, 8)
6766 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_ptr(basic_ostream_wchar *this, const void *val)
6768 return basic_ostream_print_ptr(this, val, num_put_wchar_use_facet(
6769 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6772 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@PBX@Z */
6773 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEBX@Z */
6774 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_ptr, 8)
6775 basic_ostream_wchar* __thiscall basic_ostream_short_print_ptr(basic_ostream_wchar *this, const void *val)
6777 return basic_ostream_print_ptr(this, val, num_put_short_use_facet(
6778 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6781 static basic_ostream_wchar* basic_ostream_print_int64(basic_ostream_wchar *this, __int64 val, const num_put *numput)
6783 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6784 int state = IOSTATE_goodbit;
6786 TRACE("(%p)\n", this);
6788 if(basic_ostream_wchar_sentry_create(this)) {
6789 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6790 ostreambuf_iterator_wchar dest = {0, strbuf};
6792 num_put_wchar_put_int64(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6794 basic_ostream_wchar_sentry_destroy(this);
6796 basic_ios_wchar_setstate(base, state);
6800 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_J@Z */
6801 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_J@Z */
6802 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_int64, 12)
6803 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_int64(basic_ostream_wchar *this, __int64 val)
6805 return basic_ostream_print_int64(this, val, num_put_wchar_use_facet(
6806 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6809 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_J@Z */
6810 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_J@Z */
6811 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_int64, 12)
6812 basic_ostream_wchar* __thiscall basic_ostream_short_print_int64(basic_ostream_wchar *this, __int64 val)
6814 return basic_ostream_print_int64(this, val, num_put_short_use_facet(
6815 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6818 static basic_ostream_wchar* basic_ostream_print_uint64(basic_ostream_wchar *this, unsigned __int64 val, const num_put *numput)
6820 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6821 int state = IOSTATE_goodbit;
6823 TRACE("(%p)\n", this);
6825 if(basic_ostream_wchar_sentry_create(this)) {
6826 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6827 ostreambuf_iterator_wchar dest = {0, strbuf};
6829 num_put_wchar_put_uint64(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6831 basic_ostream_wchar_sentry_destroy(this);
6833 basic_ios_wchar_setstate(base, state);
6837 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_K@Z */
6838 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_K@Z */
6839 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_uint64, 12)
6840 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_uint64(basic_ostream_wchar *this, unsigned __int64 val)
6842 return basic_ostream_print_uint64(this, val, num_put_wchar_use_facet(
6843 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6846 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_K@Z */
6847 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_K@Z */
6848 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_uint64, 12)
6849 basic_ostream_wchar* __thiscall basic_ostream_short_print_uint64(basic_ostream_wchar *this, unsigned __int64 val)
6851 return basic_ostream_print_uint64(this, val, num_put_short_use_facet(
6852 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6855 static basic_ostream_wchar* basic_ostream_print_bool(basic_ostream_wchar *this, MSVCP_bool val, const num_put *numput)
6857 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6858 int state = IOSTATE_goodbit;
6860 TRACE("(%p %x)\n", this, val);
6862 if(basic_ostream_wchar_sentry_create(this)) {
6863 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6864 ostreambuf_iterator_wchar dest = {0, strbuf};
6866 num_put_wchar_put_bool(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6868 basic_ostream_wchar_sentry_destroy(this);
6870 basic_ios_wchar_setstate(base, state);
6874 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_N@Z */
6875 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_N@Z */
6876 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_bool, 8)
6877 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_bool(basic_ostream_wchar *this, MSVCP_bool val)
6879 return basic_ostream_print_bool(this, val, num_put_wchar_use_facet(
6880 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6883 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_N@Z */
6884 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_N@Z */
6885 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_bool, 8)
6886 basic_ostream_wchar* __thiscall basic_ostream_short_print_bool(basic_ostream_wchar *this, MSVCP_bool val)
6888 return basic_ostream_print_bool(this, val, num_put_short_use_facet(
6889 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6892 /* ?endl@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
6893 /* ?endl@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
6894 /* ?endl@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
6895 /* ?endl@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
6896 basic_ostream_wchar* __cdecl basic_ostream_wchar_endl(basic_ostream_wchar *ostr)
6898 TRACE("(%p)\n", ostr);
6900 basic_ostream_wchar_put(ostr, '\n');
6901 basic_ostream_wchar_flush(ostr);
6905 /* ??$?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 */
6906 /* ??$?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 */
6907 /* ??$?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 */
6908 /* ??$?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 */
6909 basic_ostream_wchar* __cdecl basic_ostream_wchar_print_bstr(basic_ostream_wchar *ostr, const basic_string_wchar *str)
6911 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
6912 IOSB_iostate state = IOSTATE_goodbit;
6914 TRACE("(%p %p)\n", ostr, str);
6916 if(basic_ostream_wchar_sentry_create(ostr)) {
6917 MSVCP_size_t len = MSVCP_basic_string_wchar_length(str);
6918 streamsize pad = (base->base.wide>len ? base->base.wide-len : 0);
6920 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
6921 for(; pad!=0; pad--) {
6922 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
6923 state = IOSTATE_badbit;
6929 if(state == IOSTATE_goodbit) {
6930 if(basic_streambuf_wchar_sputn(base->strbuf, MSVCP_basic_string_wchar_c_str(str), len) != len)
6931 state = IOSTATE_badbit;
6934 if(state == IOSTATE_goodbit) {
6935 for(; pad!=0; pad--) {
6936 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
6937 state = IOSTATE_badbit;
6943 base->base.wide = 0;
6945 state = IOSTATE_badbit;
6947 basic_ostream_wchar_sentry_destroy(ostr);
6949 basic_ios_wchar_setstate(base, state);
6953 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@_W@Z */
6954 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@_W@Z */
6955 /* ??$?6GU?$char_traits@G@std@@@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@G@Z */
6956 /* ??$?6GU?$char_traits@G@std@@@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@G@Z */
6957 basic_ostream_wchar* __cdecl basic_ostream_wchar_print_ch(basic_ostream_wchar *ostr, wchar_t ch)
6959 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
6960 IOSB_iostate state = IOSTATE_goodbit;
6962 TRACE("(%p %d)\n", ostr, ch);
6964 if(basic_ostream_wchar_sentry_create(ostr)) {
6965 streamsize pad = (base->base.wide>1 ? base->base.wide-1 : 0);
6967 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
6968 for(; pad!=0; pad--) {
6969 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
6970 state = IOSTATE_badbit;
6976 if(state == IOSTATE_goodbit) {
6977 if(basic_streambuf_wchar_sputc(base->strbuf, ch) == WEOF)
6978 state = IOSTATE_badbit;
6981 if(state == IOSTATE_goodbit) {
6982 for(; pad!=0; pad--) {
6983 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
6984 state = IOSTATE_badbit;
6990 base->base.wide = 0;
6992 state = IOSTATE_badbit;
6994 basic_ostream_wchar_sentry_destroy(ostr);
6996 basic_ios_wchar_setstate(base, state);
7000 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@PB_W@Z */
7001 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@PEB_W@Z */
7002 /* ??$?6GU?$char_traits@G@std@@@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@PBG@Z */
7003 /* ??$?6GU?$char_traits@G@std@@@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@PEBG@Z */
7004 basic_ostream_wchar* __cdecl basic_ostream_wchar_print_str(basic_ostream_wchar *ostr, const wchar_t *str)
7006 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
7007 IOSB_iostate state = IOSTATE_goodbit;
7009 TRACE("(%p %s)\n", ostr, debugstr_w(str));
7011 if(basic_ostream_wchar_sentry_create(ostr)) {
7012 MSVCP_size_t len = wcslen(str);
7013 streamsize pad = (base->base.wide>len ? base->base.wide-len : 0);
7015 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
7016 for(; pad!=0; pad--) {
7017 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
7018 state = IOSTATE_badbit;
7024 if(state == IOSTATE_goodbit) {
7025 if(basic_streambuf_wchar_sputn(base->strbuf, str, len) != len)
7026 state = IOSTATE_badbit;
7029 if(state == IOSTATE_goodbit) {
7030 for(; pad!=0; pad--) {
7031 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
7032 state = IOSTATE_badbit;
7038 base->base.wide = 0;
7040 state = IOSTATE_badbit;
7042 basic_ostream_wchar_sentry_destroy(ostr);
7044 basic_ios_wchar_setstate(base, state);
7048 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
7049 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
7050 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
7051 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
7052 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func, 8)
7053 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_func(basic_ostream_wchar *this,
7054 basic_ostream_wchar* (__cdecl *pfunc)(basic_ostream_wchar*))
7056 TRACE("(%p %p)\n", this, pfunc);
7061 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AAV21@@Z@Z */
7062 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z */
7063 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@GU?$char_traits@G@std@@@1@AAV21@@Z@Z */
7064 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z */
7065 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func_basic_ios, 8)
7066 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_func_basic_ios(basic_ostream_wchar *this,
7067 basic_ios_wchar* (__cdecl *pfunc)(basic_ios_wchar*))
7069 TRACE("(%p %p)\n", this, pfunc);
7070 pfunc(basic_ostream_wchar_get_basic_ios(this));
7074 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
7075 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
7076 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
7077 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
7078 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func_ios_base, 8)
7079 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_func_ios_base(
7080 basic_ostream_wchar *this, ios_base* (__cdecl *pfunc)(ios_base*))
7082 TRACE("(%p %p)\n", this, pfunc);
7083 pfunc(&basic_ostream_wchar_get_basic_ios(this)->base);
7087 /* Caution: basic_istream uses virtual inheritance. */
7088 static inline basic_ios_char* basic_istream_char_get_basic_ios(basic_istream_char *this)
7090 return (basic_ios_char*)((char*)this+this->vbtable[1]);
7093 static inline basic_ios_char* basic_istream_char_to_basic_ios(basic_istream_char *ptr)
7095 return (basic_ios_char*)((char*)ptr+basic_istream_char_vbtable[1]);
7098 static inline basic_istream_char* basic_istream_char_from_basic_ios(basic_ios_char *ptr)
7100 return (basic_istream_char*)((char*)ptr-basic_istream_char_vbtable[1]);
7103 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
7104 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
7105 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor_init, 20)
7106 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)
7108 basic_ios_char *base;
7110 TRACE("(%p %p %d %d %d)\n", this, strbuf, isstd, noinit, virt_init);
7113 this->vbtable = basic_istream_char_vbtable;
7114 base = basic_istream_char_get_basic_ios(this);
7115 basic_ios_char_ctor(base);
7117 base = basic_istream_char_get_basic_ios(this);
7120 base->base.vtable = &MSVCP_basic_istream_char_vtable;
7123 basic_ios_char_init(base, strbuf, isstd);
7127 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
7128 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
7129 static basic_istream_char* basic_istream_char_ctor(basic_istream_char *this, basic_streambuf_char *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
7131 return basic_istream_char_ctor_init(this, strbuf, isstd, FALSE, virt_init);
7134 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
7135 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
7136 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor_uninitialized, 12)
7137 basic_istream_char* __thiscall basic_istream_char_ctor_uninitialized(basic_istream_char *this, int uninitialized, MSVCP_bool virt_init)
7139 basic_ios_char *base;
7141 TRACE("(%p %d %d)\n", this, uninitialized, virt_init);
7144 this->vbtable = basic_istream_char_vbtable;
7145 base = basic_istream_char_get_basic_ios(this);
7146 basic_ios_char_ctor(base);
7148 base = basic_istream_char_get_basic_ios(this);
7151 base->base.vtable = &MSVCP_basic_istream_char_vtable;
7152 ios_base_Addstd(&base->base);
7156 /* ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ */
7157 /* ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
7158 DEFINE_THISCALL_WRAPPER(basic_istream_char_dtor, 4)
7159 void __thiscall basic_istream_char_dtor(basic_ios_char *base)
7161 basic_istream_char *this = basic_istream_char_from_basic_ios(base);
7163 /* don't destroy virtual base here */
7164 TRACE("(%p)\n", this);
7167 /* ??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ */
7168 /* ??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
7169 DEFINE_THISCALL_WRAPPER(basic_istream_char_vbase_dtor, 4)
7170 void __thiscall basic_istream_char_vbase_dtor(basic_istream_char *this)
7172 TRACE("(%p)\n", this);
7173 basic_istream_char_dtor(basic_istream_char_to_basic_ios(this));
7174 basic_ios_char_dtor(basic_istream_char_get_basic_ios(this));
7177 DEFINE_THISCALL_WRAPPER(basic_istream_char_vector_dtor, 8)
7178 basic_istream_char* __thiscall basic_istream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
7180 basic_istream_char *this = basic_istream_char_from_basic_ios(base);
7182 TRACE("(%p %x)\n", this, flags);
7185 /* we have an array, with the number of elements stored before the first object */
7186 INT_PTR i, *ptr = (INT_PTR *)this-1;
7188 for(i=*ptr-1; i>=0; i--)
7189 basic_istream_char_vbase_dtor(this+i);
7190 MSVCRT_operator_delete(ptr);
7192 basic_istream_char_vbase_dtor(this);
7194 MSVCRT_operator_delete(this);
7200 /* ?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z */
7201 /* ?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z */
7202 DEFINE_THISCALL_WRAPPER(basic_istream_char__Ipfx, 8)
7203 MSVCP_bool __thiscall basic_istream_char__Ipfx(basic_istream_char *this, MSVCP_bool noskip)
7205 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7207 TRACE("(%p %d)\n", this, noskip);
7209 if(ios_base_good(&base->base)) {
7210 if(basic_ios_char_tie_get(base))
7211 basic_ostream_char_flush(basic_ios_char_tie_get(base));
7213 if(!noskip && (ios_base_flags_get(&base->base) & FMTFLAG_skipws)) {
7214 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7215 const ctype_char *ctype = ctype_char_use_facet(base->strbuf->loc);
7218 for(ch = basic_streambuf_char_sgetc(strbuf); ;
7219 ch = basic_streambuf_char_snextc(strbuf)) {
7221 basic_ios_char_setstate(base, IOSTATE_eofbit);
7225 if(!ctype_char_is_ch(ctype, _SPACE|_BLANK, ch))
7231 if(!ios_base_good(&base->base)) {
7232 basic_ios_char_setstate(base, IOSTATE_failbit);
7239 /* ?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z */
7240 /* ?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z */
7241 DEFINE_THISCALL_WRAPPER(basic_istream_char_ipfx, 8)
7242 MSVCP_bool __thiscall basic_istream_char_ipfx(basic_istream_char *this, MSVCP_bool noskip)
7244 return basic_istream_char__Ipfx(this, noskip);
7247 /* ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ */
7248 /* ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
7249 DEFINE_THISCALL_WRAPPER(basic_istream_char_isfx, 4)
7250 void __thiscall basic_istream_char_isfx(basic_istream_char *this)
7252 TRACE("(%p)\n", this);
7255 static BOOL basic_istream_char_sentry_create(basic_istream_char *istr, MSVCP_bool noskip)
7257 basic_ios_char *base = basic_istream_char_get_basic_ios(istr);
7259 if(basic_ios_char_rdbuf_get(base))
7260 basic_streambuf_char__Lock(base->strbuf);
7262 return basic_istream_char_ipfx(istr, noskip);
7265 static void basic_istream_char_sentry_destroy(basic_istream_char *istr)
7267 basic_ios_char *base = basic_istream_char_get_basic_ios(istr);
7269 if(basic_ios_char_rdbuf_get(base))
7270 basic_streambuf_char__Unlock(base->strbuf);
7273 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QBEHXZ */
7274 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QEBA_JXZ */
7275 DEFINE_THISCALL_WRAPPER(basic_istream_char_gcount, 4)
7276 int __thiscall basic_istream_char_gcount(const basic_istream_char *this)
7278 TRACE("(%p)\n", this);
7282 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
7283 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
7284 DEFINE_THISCALL_WRAPPER(basic_istream_char_get, 4)
7285 int __thiscall basic_istream_char_get(basic_istream_char *this)
7287 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7290 TRACE("(%p)\n", this);
7294 if(!basic_istream_char_sentry_create(this, TRUE)) {
7295 basic_istream_char_sentry_destroy(this);
7299 ret = basic_streambuf_char_sbumpc(basic_ios_char_rdbuf_get(base));
7300 basic_istream_char_sentry_destroy(this);
7302 basic_ios_char_setstate(base, IOSTATE_eofbit|IOSTATE_failbit);
7309 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAD@Z */
7310 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAD@Z */
7311 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_ch, 8)
7312 basic_istream_char* __thiscall basic_istream_char_get_ch(basic_istream_char *this, char *ch)
7316 TRACE("(%p %p)\n", this, ch);
7318 ret = basic_istream_char_get(this);
7324 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADHD@Z */
7325 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z */
7326 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_str_delim, 16)
7327 basic_istream_char* __thiscall basic_istream_char_get_str_delim(basic_istream_char *this, char *str, streamsize count, char delim)
7329 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7332 TRACE("(%p %p %ld %c)\n", this, str, count, delim);
7336 if(basic_istream_char_sentry_create(this, TRUE)) {
7337 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7339 for(ch = basic_streambuf_char_sgetc(strbuf); count>1;
7340 ch = basic_streambuf_char_snextc(strbuf)) {
7341 if(ch==EOF || ch==delim)
7349 basic_istream_char_sentry_destroy(this);
7351 basic_ios_char_setstate(base, (!this->count ? IOSTATE_failbit : IOSTATE_goodbit) |
7352 (ch==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
7358 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
7359 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
7360 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_str, 12)
7361 basic_istream_char* __thiscall basic_istream_char_get_str(basic_istream_char *this, char *str, streamsize count)
7363 return basic_istream_char_get_str_delim(this, str, count, '\n');
7366 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z */
7367 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z */
7368 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_streambuf_delim, 12)
7369 basic_istream_char* __thiscall basic_istream_char_get_streambuf_delim(basic_istream_char *this, basic_streambuf_char *strbuf, char delim)
7371 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7374 TRACE("(%p %p %c)\n", this, strbuf, delim);
7378 if(basic_istream_char_sentry_create(this, TRUE)) {
7379 basic_streambuf_char *strbuf_read = basic_ios_char_rdbuf_get(base);
7381 for(ch = basic_streambuf_char_sgetc(strbuf_read); ;
7382 ch = basic_streambuf_char_snextc(strbuf_read)) {
7383 if(ch==EOF || ch==delim)
7386 if(basic_streambuf_char_sputc(strbuf, ch) == EOF)
7391 basic_istream_char_sentry_destroy(this);
7393 basic_ios_char_setstate(base, (!this->count ? IOSTATE_failbit : IOSTATE_goodbit) |
7394 (ch==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
7398 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z */
7399 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z */
7400 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_streambuf, 8)
7401 basic_istream_char* __thiscall basic_istream_char_get_streambuf(basic_istream_char *this, basic_streambuf_char *strbuf)
7403 return basic_istream_char_get_streambuf_delim(this, strbuf, '\n');
7406 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADHD@Z */
7407 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z */
7408 DEFINE_THISCALL_WRAPPER(basic_istream_char_getline_delim, 16)
7409 basic_istream_char* __thiscall basic_istream_char_getline_delim(basic_istream_char *this, char *str, streamsize count, char delim)
7411 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7412 int ch = (unsigned char)delim;
7414 TRACE("(%p %p %ld %c)\n", this, str, count, delim);
7418 if(basic_istream_char_sentry_create(this, TRUE) && count>0) {
7419 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7422 ch = basic_streambuf_char_sbumpc(strbuf);
7424 if(ch==EOF || ch==(unsigned char)delim)
7432 if(ch == (unsigned char)delim)
7434 else if(ch != EOF) {
7435 ch = basic_streambuf_char_sgetc(strbuf);
7437 if(ch == (unsigned char)delim) {
7438 basic_streambuf_char__Gninc(strbuf);
7443 basic_istream_char_sentry_destroy(this);
7445 basic_ios_char_setstate(base, (ch==EOF ? IOSTATE_eofbit : IOSTATE_goodbit) |
7446 (!this->count || (ch!=(unsigned char)delim && ch!=EOF) ? IOSTATE_failbit : IOSTATE_goodbit));
7452 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
7453 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
7454 DEFINE_THISCALL_WRAPPER(basic_istream_char_getline, 12)
7455 basic_istream_char* __thiscall basic_istream_char_getline(basic_istream_char *this, char *str, streamsize count)
7457 return basic_istream_char_getline_delim(this, str, count, '\n');
7460 /* ?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@HH@Z */
7461 /* ?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
7462 DEFINE_THISCALL_WRAPPER(basic_istream_char_ignore, 12)
7463 basic_istream_char* __thiscall basic_istream_char_ignore(basic_istream_char *this, streamsize count, int delim)
7465 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7466 int ch = (unsigned char)delim;
7469 TRACE("(%p %ld %d)\n", this, count, delim);
7473 if(basic_istream_char_sentry_create(this, TRUE)) {
7474 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7475 state = IOSTATE_goodbit;
7478 ch = basic_streambuf_char_sbumpc(strbuf);
7481 state = IOSTATE_eofbit;
7485 if(ch==(unsigned char)delim)
7489 if(count != INT_MAX)
7493 state = IOSTATE_failbit;
7494 basic_istream_char_sentry_destroy(this);
7496 basic_ios_char_setstate(base, state);
7500 /* ?ws@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@1@AAV21@@Z */
7501 /* ?ws@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
7502 basic_istream_char* __cdecl ws_basic_istream_char(basic_istream_char *istream)
7504 basic_ios_char *base = basic_istream_char_get_basic_ios(istream);
7507 TRACE("(%p)\n", istream);
7509 if(basic_istream_char_sentry_create(istream, TRUE)) {
7510 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7511 const ctype_char *ctype = ctype_char_use_facet(strbuf->loc);
7513 for(ch = basic_streambuf_char_sgetc(strbuf); ctype_char_is_ch(ctype, _SPACE, ch);
7514 ch = basic_streambuf_char_snextc(strbuf)) {
7519 basic_istream_char_sentry_destroy(istream);
7522 basic_ios_char_setstate(base, IOSTATE_eofbit);
7526 /* ?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
7527 /* ?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
7528 DEFINE_THISCALL_WRAPPER(basic_istream_char_peek, 4)
7529 int __thiscall basic_istream_char_peek(basic_istream_char *this)
7531 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7534 TRACE("(%p)\n", this);
7538 if(basic_istream_char_sentry_create(this, TRUE))
7539 ret = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base));
7540 basic_istream_char_sentry_destroy(this);
7543 basic_ios_char_setstate(base, IOSTATE_eofbit);
7548 /* ?_Read_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADIH@Z */
7549 /* ?_Read_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_K_J@Z */
7550 static basic_istream_char* basic_istream_char__Read_s(basic_istream_char *this, char *str, MSVCP_size_t size, streamsize count)
7552 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7553 IOSB_iostate state = IOSTATE_goodbit;
7555 TRACE("(%p %p %lu %ld)\n", this, str, size, count);
7557 if(basic_istream_char_sentry_create(this, TRUE)) {
7558 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7560 this->count = basic_streambuf_char__Sgetn_s(strbuf, str, size, count);
7561 if(this->count != count)
7562 state |= IOSTATE_failbit | IOSTATE_eofbit;
7566 basic_istream_char_sentry_destroy(this);
7568 basic_ios_char_setstate(base, state);
7572 /* ?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
7573 /* ?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
7574 DEFINE_THISCALL_WRAPPER(basic_istream_char_read, 12)
7575 basic_istream_char* __thiscall basic_istream_char_read(basic_istream_char *this, char *str, streamsize count)
7577 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7578 IOSB_iostate state = IOSTATE_goodbit;
7580 TRACE("(%p %p %ld)\n", this, str, count);
7582 if(basic_istream_char_sentry_create(this, TRUE)) {
7583 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7585 this->count = basic_streambuf_char_sgetn(strbuf, str, count);
7586 if(this->count != count)
7587 state |= IOSTATE_failbit | IOSTATE_eofbit;
7591 basic_istream_char_sentry_destroy(this);
7593 basic_ios_char_setstate(base, state);
7597 /* ?_Readsome_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHPADIH@Z */
7598 /* ?_Readsome_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_K_J@Z */
7599 static streamsize basic_istream_char__Readsome_s(basic_istream_char *this, char *str, MSVCP_size_t size, streamsize count)
7601 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7602 IOSB_iostate state = IOSTATE_goodbit;
7604 TRACE("(%p %p %lu %ld)\n", this, str, size, count);
7608 if(basic_istream_char_sentry_create(this, TRUE)) {
7609 streamsize avail = basic_streambuf_char_in_avail(basic_ios_char_rdbuf_get(base));
7614 state |= IOSTATE_eofbit;
7616 basic_istream_char__Read_s(this, str, size, avail);
7618 state |= IOSTATE_failbit;
7620 basic_istream_char_sentry_destroy(this);
7622 basic_ios_char_setstate(base, state);
7626 /* ?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHPADH@Z */
7627 /* ?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z */
7628 DEFINE_THISCALL_WRAPPER(basic_istream_char_readsome, 12)
7629 streamsize __thiscall basic_istream_char_readsome(basic_istream_char *this, char *str, streamsize count)
7631 return basic_istream_char__Readsome_s(this, str, count, count);
7634 /* ?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z */
7635 /* ?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z */
7636 DEFINE_THISCALL_WRAPPER(basic_istream_char_putback, 8)
7637 basic_istream_char* __thiscall basic_istream_char_putback(basic_istream_char *this, char ch)
7639 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7640 IOSB_iostate state = IOSTATE_goodbit;
7642 TRACE("(%p %c)\n", this, ch);
7646 if(basic_istream_char_sentry_create(this, TRUE)) {
7647 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7649 if(!ios_base_good(&base->base))
7650 state |= IOSTATE_failbit;
7651 else if(!strbuf || basic_streambuf_char_sputbackc(strbuf, ch)==EOF)
7652 state |= IOSTATE_badbit;
7654 basic_istream_char_sentry_destroy(this);
7656 basic_ios_char_setstate(base, state);
7660 /* ?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ */
7661 /* ?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ */
7662 DEFINE_THISCALL_WRAPPER(basic_istream_char_unget, 4)
7663 basic_istream_char* __thiscall basic_istream_char_unget(basic_istream_char *this)
7665 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7666 IOSB_iostate state = IOSTATE_goodbit;
7668 TRACE("(%p)\n", this);
7672 if(basic_istream_char_sentry_create(this, TRUE)) {
7673 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7675 if(!ios_base_good(&base->base))
7676 state |= IOSTATE_failbit;
7677 else if(!strbuf || basic_streambuf_char_sungetc(strbuf)==EOF)
7678 state |= IOSTATE_badbit;
7680 basic_istream_char_sentry_destroy(this);
7682 basic_ios_char_setstate(base, state);
7686 /* ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
7687 /* ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
7688 DEFINE_THISCALL_WRAPPER(basic_istream_char_sync, 4)
7689 int __thiscall basic_istream_char_sync(basic_istream_char *this)
7691 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7692 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7694 TRACE("(%p)\n", this);
7699 if(basic_istream_char_sentry_create(this, TRUE)) {
7700 if(basic_streambuf_char_pubsync(strbuf) != -1) {
7701 basic_istream_char_sentry_destroy(this);
7705 basic_istream_char_sentry_destroy(this);
7707 basic_ios_char_setstate(base, IOSTATE_badbit);
7711 /* ?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
7712 /* ?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
7713 DEFINE_THISCALL_WRAPPER(basic_istream_char_tellg, 8)
7714 fpos_int* __thiscall basic_istream_char_tellg(basic_istream_char *this, fpos_int *ret)
7716 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7718 TRACE("(%p %p)\n", this, ret);
7720 if(ios_base_fail(&base->base)) {
7727 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base),
7728 ret, 0, SEEKDIR_cur, OPENMODE_in);
7730 if(ret->off==-1 && ret->pos==0 && ret->state==0)
7731 basic_ios_char_setstate(base, IOSTATE_failbit);
7736 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@JH@Z */
7737 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
7738 DEFINE_THISCALL_WRAPPER(basic_istream_char_seekg, 12)
7739 basic_istream_char* __thiscall basic_istream_char_seekg(basic_istream_char *this, streamoff off, int dir)
7741 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7743 TRACE("(%p %ld %d)\n", this, off, dir);
7745 if(!ios_base_fail(&base->base)) {
7746 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7749 basic_streambuf_char_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in);
7751 if(ret.off==-1 && ret.pos==0 && ret.state==0)
7752 basic_ios_char_setstate(base, IOSTATE_failbit);
7754 basic_ios_char_clear(base, IOSTATE_goodbit);
7757 basic_ios_char_clear(base, IOSTATE_goodbit);
7762 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
7763 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
7764 DEFINE_THISCALL_WRAPPER(basic_istream_char_seekg_fpos, 28)
7765 basic_istream_char* __thiscall basic_istream_char_seekg_fpos(basic_istream_char *this, fpos_int pos)
7767 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7769 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos));
7771 if(!ios_base_fail(&base->base)) {
7772 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7775 basic_streambuf_char_pubseekpos(strbuf, &ret, pos, OPENMODE_in);
7776 basic_istream_char_sentry_destroy(this);
7778 if(ret.off==-1 && ret.pos==0 && ret.state==0)
7779 basic_ios_char_setstate(base, IOSTATE_failbit);
7781 basic_ios_char_clear(base, IOSTATE_goodbit);
7784 basic_ios_char_clear(base, IOSTATE_goodbit);
7789 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAF@Z */
7790 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAF@Z */
7791 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_short, 8)
7792 basic_istream_char* __thiscall basic_istream_char_read_short(basic_istream_char *this, short *v)
7794 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7795 int state = IOSTATE_goodbit;
7797 TRACE("(%p %p)\n", this, v);
7799 if(basic_istream_char_sentry_create(this, FALSE)) {
7800 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7801 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7802 istreambuf_iterator_char first={0}, last={0};
7805 first.strbuf = strbuf;
7806 num_get_char_get_long(numget, &last, first, last, &base->base, &state, &tmp);
7808 if(!(state&IOSTATE_failbit) && tmp==(LONG)((short)tmp))
7811 state |= IOSTATE_failbit;
7813 basic_istream_char_sentry_destroy(this);
7815 basic_ios_char_setstate(base, state);
7819 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAG@Z */
7820 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAG@Z */
7821 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ushort, 8)
7822 basic_istream_char* __thiscall basic_istream_char_read_ushort(basic_istream_char *this, unsigned short *v)
7824 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7825 int state = IOSTATE_goodbit;
7827 TRACE("(%p %p)\n", this, v);
7829 if(basic_istream_char_sentry_create(this, FALSE)) {
7830 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7831 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7832 istreambuf_iterator_char first={0}, last={0};
7834 first.strbuf = strbuf;
7835 num_get_char_get_ushort(numget, &last, first, last, &base->base, &state, v);
7837 basic_istream_char_sentry_destroy(this);
7839 basic_ios_char_setstate(base, state);
7843 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z */
7844 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAH@Z */
7845 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_int, 8)
7846 basic_istream_char* __thiscall basic_istream_char_read_int(basic_istream_char *this, int *v)
7848 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7849 int state = IOSTATE_goodbit;
7851 TRACE("(%p %p)\n", this, v);
7853 if(basic_istream_char_sentry_create(this, FALSE)) {
7854 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7855 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7856 istreambuf_iterator_char first={0}, last={0};
7858 first.strbuf = strbuf;
7859 num_get_char_get_long(numget, &last, first, last, &base->base, &state, v);
7861 basic_istream_char_sentry_destroy(this);
7863 basic_ios_char_setstate(base, state);
7867 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAI@Z */
7868 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAI@Z */
7869 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_uint, 8)
7870 basic_istream_char* __thiscall basic_istream_char_read_uint(basic_istream_char *this, unsigned int *v)
7872 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7873 int state = IOSTATE_goodbit;
7875 TRACE("(%p %p)\n", this, v);
7877 if(basic_istream_char_sentry_create(this, FALSE)) {
7878 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7879 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7880 istreambuf_iterator_char first={0}, last={0};
7882 first.strbuf = strbuf;
7883 num_get_char_get_uint(numget, &last, first, last, &base->base, &state, v);
7885 basic_istream_char_sentry_destroy(this);
7887 basic_ios_char_setstate(base, state);
7891 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAJ@Z */
7892 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAJ@Z */
7893 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_long, 8)
7894 basic_istream_char* __thiscall basic_istream_char_read_long(basic_istream_char *this, LONG *v)
7896 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7897 int state = IOSTATE_goodbit;
7899 TRACE("(%p %p)\n", this, v);
7901 if(basic_istream_char_sentry_create(this, FALSE)) {
7902 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7903 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7904 istreambuf_iterator_char first={0}, last={0};
7906 first.strbuf = strbuf;
7907 num_get_char_get_long(numget, &last, first, last, &base->base, &state, v);
7909 basic_istream_char_sentry_destroy(this);
7911 basic_ios_char_setstate(base, state);
7915 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAK@Z */
7916 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAK@Z */
7917 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ulong, 8)
7918 basic_istream_char* __thiscall basic_istream_char_read_ulong(basic_istream_char *this, ULONG *v)
7920 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7921 int state = IOSTATE_goodbit;
7923 TRACE("(%p %p)\n", this, v);
7925 if(basic_istream_char_sentry_create(this, FALSE)) {
7926 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7927 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7928 istreambuf_iterator_char first={0}, last={0};
7930 first.strbuf = strbuf;
7931 num_get_char_get_ulong(numget, &last, first, last, &base->base, &state, v);
7933 basic_istream_char_sentry_destroy(this);
7935 basic_ios_char_setstate(base, state);
7939 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAM@Z */
7940 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAM@Z */
7941 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_float, 8)
7942 basic_istream_char* __thiscall basic_istream_char_read_float(basic_istream_char *this, float *v)
7944 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7945 int state = IOSTATE_goodbit;
7947 TRACE("(%p %p)\n", this, v);
7949 if(basic_istream_char_sentry_create(this, FALSE)) {
7950 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7951 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7952 istreambuf_iterator_char first={0}, last={0};
7954 first.strbuf = strbuf;
7955 num_get_char_get_float(numget, &last, first, last, &base->base, &state, v);
7957 basic_istream_char_sentry_destroy(this);
7959 basic_ios_char_setstate(base, state);
7963 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAN@Z */
7964 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAN@Z */
7965 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_double, 8)
7966 basic_istream_char* __thiscall basic_istream_char_read_double(basic_istream_char *this, double *v)
7968 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7969 int state = IOSTATE_goodbit;
7971 TRACE("(%p %p)\n", this, v);
7973 if(basic_istream_char_sentry_create(this, FALSE)) {
7974 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7975 const num_get *numget = num_get_char_use_facet(strbuf->loc);
7976 istreambuf_iterator_char first={0}, last={0};
7978 first.strbuf = strbuf;
7979 num_get_char_get_double(numget, &last, first, last, &base->base, &state, v);
7981 basic_istream_char_sentry_destroy(this);
7983 basic_ios_char_setstate(base, state);
7987 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAO@Z */
7988 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAO@Z */
7989 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ldouble, 8)
7990 basic_istream_char* __thiscall basic_istream_char_read_ldouble(basic_istream_char *this, double *v)
7992 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7993 int state = IOSTATE_goodbit;
7995 TRACE("(%p %p)\n", this, v);
7997 if(basic_istream_char_sentry_create(this, FALSE)) {
7998 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7999 const num_get *numget = num_get_char_use_facet(strbuf->loc);
8000 istreambuf_iterator_char first={0}, last={0};
8002 first.strbuf = strbuf;
8003 num_get_char_get_ldouble(numget, &last, first, last, &base->base, &state, v);
8005 basic_istream_char_sentry_destroy(this);
8007 basic_ios_char_setstate(base, state);
8011 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAPAX@Z */
8012 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
8013 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ptr, 8)
8014 basic_istream_char* __thiscall basic_istream_char_read_ptr(basic_istream_char *this, void **v)
8016 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8017 int state = IOSTATE_goodbit;
8019 TRACE("(%p %p)\n", this, v);
8021 if(basic_istream_char_sentry_create(this, FALSE)) {
8022 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8023 const num_get *numget = num_get_char_use_facet(strbuf->loc);
8024 istreambuf_iterator_char first={0}, last={0};
8026 first.strbuf = strbuf;
8027 num_get_char_get_void(numget, &last, first, last, &base->base, &state, v);
8029 basic_istream_char_sentry_destroy(this);
8031 basic_ios_char_setstate(base, state);
8035 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_J@Z */
8036 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_J@Z */
8037 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_int64, 8)
8038 basic_istream_char* __thiscall basic_istream_char_read_int64(basic_istream_char *this, __int64 *v)
8040 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8041 int state = IOSTATE_goodbit;
8043 TRACE("(%p %p)\n", this, v);
8045 if(basic_istream_char_sentry_create(this, FALSE)) {
8046 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8047 const num_get *numget = num_get_char_use_facet(strbuf->loc);
8048 istreambuf_iterator_char first={0}, last={0};
8050 first.strbuf = strbuf;
8051 num_get_char_get_int64(numget, &last, first, last, &base->base, &state, v);
8053 basic_istream_char_sentry_destroy(this);
8055 basic_ios_char_setstate(base, state);
8059 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_K@Z */
8060 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_K@Z */
8061 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_uint64, 8)
8062 basic_istream_char* __thiscall basic_istream_char_read_uint64(basic_istream_char *this, unsigned __int64 *v)
8064 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8065 int state = IOSTATE_goodbit;
8067 TRACE("(%p %p)\n", this, v);
8069 if(basic_istream_char_sentry_create(this, FALSE)) {
8070 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8071 const num_get *numget = num_get_char_use_facet(strbuf->loc);
8072 istreambuf_iterator_char first={0}, last={0};
8074 first.strbuf = strbuf;
8075 num_get_char_get_uint64(numget, &last, first, last, &base->base, &state, v);
8077 basic_istream_char_sentry_destroy(this);
8079 basic_ios_char_setstate(base, state);
8083 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_N@Z */
8084 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_N@Z */
8085 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_bool, 8)
8086 basic_istream_char* __thiscall basic_istream_char_read_bool(basic_istream_char *this, MSVCP_bool *v)
8088 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8089 int state = IOSTATE_goodbit;
8091 TRACE("(%p %p)\n", this, v);
8093 if(basic_istream_char_sentry_create(this, FALSE)) {
8094 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8095 const num_get *numget = num_get_char_use_facet(strbuf->loc);
8096 istreambuf_iterator_char first={0}, last={0};
8098 first.strbuf = strbuf;
8099 num_get_char_get_bool(numget, &last, first, last, &base->base, &state, v);
8101 basic_istream_char_sentry_destroy(this);
8103 basic_ios_char_setstate(base, state);
8107 /* ??$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 */
8108 /* ??$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 */
8109 basic_istream_char* __cdecl basic_istream_char_getline_bstr_delim(
8110 basic_istream_char *istream, basic_string_char *str, char delim)
8112 IOSB_iostate state = IOSTATE_failbit;
8113 int c = (unsigned char)delim;
8115 TRACE("(%p %p %c)\n", istream, str, delim);
8117 if(basic_istream_char_sentry_create(istream, TRUE)) {
8118 MSVCP_basic_string_char_clear(str);
8120 c = basic_istream_char_get(istream);
8122 state = IOSTATE_goodbit;
8124 for(; c!=(unsigned char)delim && c!=EOF; c = basic_istream_char_get(istream)) {
8125 state = IOSTATE_goodbit;
8126 MSVCP_basic_string_char_append_ch(str, c);
8129 basic_istream_char_sentry_destroy(istream);
8131 basic_ios_char_setstate(basic_istream_char_get_basic_ios(istream),
8132 state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8136 /* ??$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 */
8137 /* ??$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 */
8138 basic_istream_char* __cdecl basic_istream_char_getline_bstr(
8139 basic_istream_char *istream, basic_string_char *str)
8141 return basic_istream_char_getline_bstr_delim(istream, str, '\n');
8144 /* ??$?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 */
8145 /* ??$?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 */
8146 basic_istream_char* __cdecl basic_istream_char_read_bstr(
8147 basic_istream_char *istream, basic_string_char *str)
8149 basic_ios_char *base = basic_istream_char_get_basic_ios(istream);
8150 IOSB_iostate state = IOSTATE_failbit;
8153 TRACE("(%p %p)\n", istream, str);
8155 if(basic_istream_char_sentry_create(istream, FALSE)) {
8156 const ctype_char *ctype = ctype_char_use_facet(base->strbuf->loc);
8157 MSVCP_size_t count = ios_base_width_get(&base->base);
8162 MSVCP_basic_string_char_clear(str);
8164 for(c = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base));
8165 c!=EOF && !ctype_char_is_ch(ctype, _SPACE|_BLANK, c) && count>0;
8166 c = basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base)), count--) {
8167 state = IOSTATE_goodbit;
8168 MSVCP_basic_string_char_append_ch(str, c);
8171 basic_istream_char_sentry_destroy(istream);
8173 ios_base_width_set(&base->base, 0);
8174 basic_ios_char_setstate(base, state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8178 /* ??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z */
8179 /* ??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAD@Z */
8180 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAC@Z */
8181 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAC@Z */
8182 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAE@Z */
8183 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAE@Z */
8184 basic_istream_char* __cdecl basic_istream_char_read_str(basic_istream_char *istream, char *str)
8186 basic_ios_char *base = basic_istream_char_get_basic_ios(istream);
8187 IOSB_iostate state = IOSTATE_failbit;
8190 TRACE("(%p %p)\n", istream, str);
8192 if(basic_istream_char_sentry_create(istream, FALSE)) {
8193 const ctype_char *ctype = ctype_char_use_facet(base->strbuf->loc);
8194 MSVCP_size_t count = ios_base_width_get(&base->base)-1;
8196 for(c = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base));
8197 c!=EOF && !ctype_char_is_ch(ctype, _SPACE|_BLANK, c) && count>0;
8198 c = basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base)), count--) {
8199 state = IOSTATE_goodbit;
8203 basic_istream_char_sentry_destroy(istream);
8206 ios_base_width_set(&base->base, 0);
8207 basic_ios_char_setstate(base, state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8211 /* ??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAD@Z */
8212 /* ??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAD@Z */
8213 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAC@Z */
8214 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAC@Z */
8215 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAE@Z */
8216 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAE@Z */
8217 basic_istream_char* __cdecl basic_istream_char_read_ch(basic_istream_char *istream, char *ch)
8219 IOSB_iostate state = IOSTATE_failbit;
8222 TRACE("(%p %p)\n", istream, ch);
8224 if(basic_istream_char_sentry_create(istream, FALSE)) {
8225 c = basic_streambuf_char_sbumpc(basic_ios_char_rdbuf_get(
8226 basic_istream_char_get_basic_ios(istream)));
8228 state = IOSTATE_goodbit;
8232 basic_istream_char_sentry_destroy(istream);
8234 basic_ios_char_setstate(basic_istream_char_get_basic_ios(istream),
8235 state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8239 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
8240 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
8241 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_streambuf, 8)
8242 basic_istream_char* __thiscall basic_istream_char_read_streambuf(
8243 basic_istream_char *this, basic_streambuf_char *streambuf)
8245 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8246 IOSB_iostate state = IOSTATE_failbit;
8249 TRACE("(%p %p)\n", this, streambuf);
8251 if(basic_istream_char_sentry_create(this, FALSE)) {
8252 for(c = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base)); c!=EOF;
8253 c = basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base))) {
8254 state = IOSTATE_goodbit;
8255 if(basic_streambuf_char_sputc(streambuf, c) == EOF)
8259 basic_istream_char_sentry_destroy(this);
8261 basic_ios_char_setstate(base, state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8265 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
8266 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
8267 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func, 8)
8268 basic_istream_char* __thiscall basic_istream_char_read_func(basic_istream_char *this,
8269 basic_istream_char* (__cdecl *pfunc)(basic_istream_char*))
8271 TRACE("(%p %p)\n", this, pfunc);
8276 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@DU?$char_traits@D@std@@@1@AAV21@@Z@Z */
8277 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z */
8278 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func_basic_ios, 8)
8279 basic_istream_char* __thiscall basic_istream_char_read_func_basic_ios(basic_istream_char *this,
8280 basic_ios_char* (__cdecl *pfunc)(basic_ios_char*))
8282 TRACE("(%p %p)\n", this, pfunc);
8283 pfunc(basic_istream_char_get_basic_ios(this));
8287 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
8288 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
8289 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func_ios_base, 8)
8290 basic_istream_char* __thiscall basic_istream_char_read_func_ios_base(basic_istream_char *this,
8291 ios_base* (__cdecl *pfunc)(ios_base*))
8293 TRACE("(%p %p)\n", this, pfunc);
8294 pfunc(&basic_istream_char_get_basic_ios(this)->base);
8298 /* Caution: basic_istream uses virtual inheritance. */
8299 static inline basic_ios_wchar* basic_istream_wchar_get_basic_ios(basic_istream_wchar *this)
8301 return (basic_ios_wchar*)((char*)this+this->vbtable[1]);
8304 static inline basic_ios_wchar* basic_istream_wchar_to_basic_ios(basic_istream_wchar *ptr)
8306 return (basic_ios_wchar*)((char*)ptr+basic_istream_wchar_vbtable[1]);
8309 static inline basic_istream_wchar* basic_istream_wchar_from_basic_ios(basic_ios_wchar *ptr)
8311 return (basic_istream_wchar*)((char*)ptr-basic_istream_wchar_vbtable[1]);
8314 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z */
8315 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z */
8316 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ctor_init, 20)
8317 basic_istream_wchar* __thiscall basic_istream_wchar_ctor_init(basic_istream_wchar *this,
8318 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool noinit, MSVCP_bool virt_init)
8320 basic_ios_wchar *base;
8322 TRACE("(%p %p %d %d %d)\n", this, strbuf, isstd, noinit, virt_init);
8325 this->vbtable = basic_istream_wchar_vbtable;
8326 base = basic_istream_wchar_get_basic_ios(this);
8327 basic_ios_wchar_ctor(base);
8329 base = basic_istream_wchar_get_basic_ios(this);
8332 base->base.vtable = &MSVCP_basic_istream_wchar_vtable;
8335 basic_ios_wchar_init(base, strbuf, isstd);
8339 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z */
8340 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z */
8341 DEFINE_THISCALL_WRAPPER(basic_istream_short_ctor_init, 20)
8342 basic_istream_wchar* __thiscall basic_istream_short_ctor_init(basic_istream_wchar *this,
8343 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool noinit, MSVCP_bool virt_init)
8345 basic_istream_wchar_ctor_init(this, strbuf, isstd, noinit, virt_init);
8346 basic_istream_wchar_get_basic_ios(this)->base.vtable = &MSVCP_basic_istream_short_vtable;
8350 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
8351 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
8352 static basic_istream_wchar* basic_istream_wchar_ctor(basic_istream_wchar *this,
8353 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
8355 return basic_istream_wchar_ctor_init(this, strbuf, isstd, FALSE, virt_init);
8358 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
8359 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
8360 static basic_istream_wchar* basic_istream_short_ctor(basic_istream_wchar *this,
8361 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
8363 return basic_istream_short_ctor_init(this, strbuf, isstd, FALSE, virt_init);
8366 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@@Z */
8367 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
8368 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ctor_uninitialized, 12)
8369 basic_istream_wchar* __thiscall basic_istream_wchar_ctor_uninitialized(
8370 basic_istream_wchar *this, int uninitialized, MSVCP_bool virt_init)
8372 basic_ios_wchar *base;
8374 TRACE("(%p %d %d)\n", this, uninitialized, virt_init);
8377 this->vbtable = basic_istream_wchar_vbtable;
8378 base = basic_istream_wchar_get_basic_ios(this);
8379 basic_ios_wchar_ctor(base);
8381 base = basic_istream_wchar_get_basic_ios(this);
8384 base->base.vtable = &MSVCP_basic_istream_wchar_vtable;
8385 ios_base_Addstd(&base->base);
8389 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */
8390 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
8391 DEFINE_THISCALL_WRAPPER(basic_istream_short_ctor_uninitialized, 12)
8392 basic_istream_wchar* __thiscall basic_istream_short_ctor_uninitialized(
8393 basic_istream_wchar *this, int uninitialized, MSVCP_bool virt_init)
8395 basic_istream_wchar_ctor_uninitialized(this, uninitialized, virt_init);
8396 basic_istream_wchar_get_basic_ios(this)->base.vtable = &MSVCP_basic_istream_short_vtable;
8400 /* ??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
8401 /* ??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
8402 /* ??1?$basic_istream@GU?$char_traits@G@std@@@std@@UAE@XZ */
8403 /* ??1?$basic_istream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
8404 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_dtor, 4)
8405 void __thiscall basic_istream_wchar_dtor(basic_ios_wchar *base)
8407 basic_istream_wchar *this = basic_istream_wchar_from_basic_ios(base);
8409 /* don't destroy virtual base here */
8410 TRACE("(%p)\n", this);
8413 /* ??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
8414 /* ??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
8415 /* ??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXXZ */
8416 /* ??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
8417 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_vbase_dtor, 4)
8418 void __thiscall basic_istream_wchar_vbase_dtor(basic_istream_wchar *this)
8420 TRACE("(%p)\n", this);
8421 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(this));
8422 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(this));
8425 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_vector_dtor, 8)
8426 basic_istream_wchar* __thiscall basic_istream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
8428 basic_istream_wchar *this = basic_istream_wchar_from_basic_ios(base);
8430 TRACE("(%p %x)\n", this, flags);
8433 /* we have an array, with the number of elements stored before the first object */
8434 INT_PTR i, *ptr = (INT_PTR *)this-1;
8436 for(i=*ptr-1; i>=0; i--)
8437 basic_istream_wchar_vbase_dtor(this+i);
8438 MSVCRT_operator_delete(ptr);
8440 basic_istream_wchar_vbase_dtor(this);
8442 MSVCRT_operator_delete(this);
8448 /* ?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE_N_N@Z */
8449 /* ?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z */
8450 /* ?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE_N_N@Z */
8451 /* ?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z */
8452 DEFINE_THISCALL_WRAPPER(basic_istream_wchar__Ipfx, 8)
8453 MSVCP_bool __thiscall basic_istream_wchar__Ipfx(basic_istream_wchar *this, MSVCP_bool noskip)
8455 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8457 TRACE("(%p %d)\n", this, noskip);
8459 if(ios_base_good(&base->base)) {
8460 if(basic_ios_wchar_tie_get(base))
8461 basic_ostream_wchar_flush(basic_ios_wchar_tie_get(base));
8463 if(!noskip && (ios_base_flags_get(&base->base) & FMTFLAG_skipws)) {
8464 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8465 const ctype_wchar *ctype = ctype_wchar_use_facet(base->strbuf->loc);
8468 for(ch = basic_streambuf_wchar_sgetc(strbuf); ;
8469 ch = basic_streambuf_wchar_snextc(strbuf)) {
8471 basic_ios_wchar_setstate(base, IOSTATE_eofbit);
8475 if(!ctype_wchar_is_ch(ctype, _SPACE|_BLANK, ch))
8481 if(!ios_base_good(&base->base)) {
8482 basic_ios_wchar_setstate(base, IOSTATE_failbit);
8488 /* ?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE_N_N@Z */
8489 /* ?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z */
8490 /* ?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE_N_N@Z */
8491 /* ?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z */
8492 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ipfx, 8)
8493 MSVCP_bool __thiscall basic_istream_wchar_ipfx(basic_istream_wchar *this, MSVCP_bool noskip)
8495 return basic_istream_wchar__Ipfx(this, noskip);
8498 /* ?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
8499 /* ?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
8500 /* ?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXXZ */
8501 /* ?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
8502 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_isfx, 4)
8503 void __thiscall basic_istream_wchar_isfx(basic_istream_wchar *this)
8505 TRACE("(%p)\n", this);
8508 static BOOL basic_istream_wchar_sentry_create(basic_istream_wchar *istr, MSVCP_bool noskip)
8510 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istr);
8512 if(basic_ios_wchar_rdbuf_get(base))
8513 basic_streambuf_wchar__Lock(base->strbuf);
8515 return basic_istream_wchar_ipfx(istr, noskip);
8518 static void basic_istream_wchar_sentry_destroy(basic_istream_wchar *istr)
8520 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istr);
8522 if(basic_ios_wchar_rdbuf_get(base))
8523 basic_streambuf_wchar__Unlock(base->strbuf);
8526 /* ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QBEHXZ */
8527 /* ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEBA_JXZ */
8528 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QBEHXZ */
8529 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QEBA_JXZ */
8530 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_gcount, 4)
8531 int __thiscall basic_istream_wchar_gcount(const basic_istream_wchar *this)
8533 TRACE("(%p)\n", this);
8537 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
8538 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
8539 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEGXZ */
8540 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ */
8541 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get, 4)
8542 unsigned short __thiscall basic_istream_wchar_get(basic_istream_wchar *this)
8544 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8547 TRACE("(%p)\n", this);
8551 if(!basic_istream_wchar_sentry_create(this, TRUE)) {
8552 basic_istream_wchar_sentry_destroy(this);
8556 ret = basic_streambuf_wchar_sbumpc(basic_ios_wchar_rdbuf_get(base));
8557 basic_istream_wchar_sentry_destroy(this);
8559 basic_ios_wchar_setstate(base, IOSTATE_eofbit|IOSTATE_failbit);
8566 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AA_W@Z */
8567 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEA_W@Z */
8568 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAG@Z */
8569 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAG@Z */
8570 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_ch, 8)
8571 basic_istream_wchar* __thiscall basic_istream_wchar_get_ch(basic_istream_wchar *this, wchar_t *ch)
8575 TRACE("(%p %p)\n", this, ch);
8577 ret = basic_istream_wchar_get(this);
8583 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH_W@Z */
8584 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z */
8585 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGHG@Z */
8586 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z */
8587 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_str_delim, 16)
8588 basic_istream_wchar* __thiscall basic_istream_wchar_get_str_delim(basic_istream_wchar *this, wchar_t *str, streamsize count, wchar_t delim)
8590 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8591 unsigned short ch = delim;
8593 TRACE("(%p %p %ld %c)\n", this, str, count, delim);
8597 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8598 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8600 for(ch = basic_streambuf_wchar_sgetc(strbuf); count>1;
8601 ch = basic_streambuf_wchar_snextc(strbuf)) {
8602 if(ch==WEOF || ch==delim)
8610 basic_istream_wchar_sentry_destroy(this);
8612 basic_ios_wchar_setstate(base, (!this->count ? IOSTATE_failbit : IOSTATE_goodbit) |
8613 (ch==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8619 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
8620 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
8621 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
8622 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
8623 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_str, 12)
8624 basic_istream_wchar* __thiscall basic_istream_wchar_get_str(basic_istream_wchar *this, wchar_t *str, streamsize count)
8626 return basic_istream_wchar_get_str_delim(this, str, count, '\n');
8629 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z */
8630 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z */
8631 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAV?$basic_streambuf@GU?$char_traits@G@std@@@2@G@Z */
8632 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@G@Z */
8633 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_streambuf_delim, 12)
8634 basic_istream_wchar* __thiscall basic_istream_wchar_get_streambuf_delim(basic_istream_wchar *this, basic_streambuf_wchar *strbuf, wchar_t delim)
8636 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8637 unsigned short ch = delim;
8639 TRACE("(%p %p %c)\n", this, strbuf, delim);
8643 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8644 basic_streambuf_wchar *strbuf_read = basic_ios_wchar_rdbuf_get(base);
8646 for(ch = basic_streambuf_wchar_sgetc(strbuf_read); ;
8647 ch = basic_streambuf_wchar_snextc(strbuf_read)) {
8648 if(ch==WEOF || ch==delim)
8651 if(basic_streambuf_wchar_sputc(strbuf, ch) == WEOF)
8656 basic_istream_wchar_sentry_destroy(this);
8658 basic_ios_wchar_setstate(base, (!this->count ? IOSTATE_failbit : IOSTATE_goodbit) |
8659 (ch==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8663 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z */
8664 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z */
8665 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z */
8666 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z */
8667 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_streambuf, 8)
8668 basic_istream_wchar* __thiscall basic_istream_wchar_get_streambuf(basic_istream_wchar *this, basic_streambuf_wchar *strbuf)
8670 return basic_istream_wchar_get_streambuf_delim(this, strbuf, '\n');
8673 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH_W@Z */
8674 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z */
8675 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGHG@Z */
8676 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z */
8677 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_getline_delim, 16)
8678 basic_istream_wchar* __thiscall basic_istream_wchar_getline_delim(basic_istream_wchar *this, wchar_t *str, streamsize count, wchar_t delim)
8680 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8681 unsigned short ch = delim;
8683 TRACE("(%p %p %ld %c)\n", this, str, count, delim);
8687 if(basic_istream_wchar_sentry_create(this, TRUE) && count>0) {
8688 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8691 ch = basic_streambuf_wchar_sbumpc(strbuf);
8693 if(ch==WEOF || ch==delim)
8703 else if(ch != WEOF) {
8704 ch = basic_streambuf_wchar_sgetc(strbuf);
8707 basic_streambuf_wchar__Gninc(strbuf);
8712 basic_istream_wchar_sentry_destroy(this);
8714 basic_ios_wchar_setstate(base, (ch==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit) |
8715 (!this->count || (ch!=delim && ch!=WEOF) ? IOSTATE_failbit : IOSTATE_goodbit));
8721 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
8722 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
8723 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
8724 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
8725 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_getline, 12)
8726 basic_istream_wchar* __thiscall basic_istream_wchar_getline(basic_istream_wchar *this, wchar_t *str, streamsize count)
8728 return basic_istream_wchar_getline_delim(this, str, count, '\n');
8731 /* ?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@HG@Z */
8732 /* ?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JG@Z */
8733 /* ?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@HG@Z */
8734 /* ?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JG@Z */
8735 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ignore, 12)
8736 basic_istream_wchar* __thiscall basic_istream_wchar_ignore(basic_istream_wchar *this, streamsize count, unsigned short delim)
8738 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8739 unsigned short ch = delim;
8742 TRACE("(%p %ld %d)\n", this, count, delim);
8746 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8747 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8748 state = IOSTATE_goodbit;
8751 ch = basic_streambuf_wchar_sbumpc(strbuf);
8754 state = IOSTATE_eofbit;
8762 if(count != INT_MAX)
8766 state = IOSTATE_failbit;
8767 basic_istream_wchar_sentry_destroy(this);
8769 basic_ios_wchar_setstate(base, state);
8773 /* ?ws@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
8774 /* ?ws@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
8775 /* ?ws@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@1@AAV21@@Z */
8776 /* ?ws@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
8777 basic_istream_wchar* __cdecl ws_basic_istream_wchar(basic_istream_wchar *istream)
8779 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istream);
8780 unsigned short ch = '\n';
8782 TRACE("(%p)\n", istream);
8784 if(basic_istream_wchar_sentry_create(istream, TRUE)) {
8785 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8786 const ctype_wchar *ctype = ctype_wchar_use_facet(strbuf->loc);
8788 for(ch = basic_streambuf_wchar_sgetc(strbuf); ctype_wchar_is_ch(ctype, _SPACE, ch);
8789 ch = basic_streambuf_wchar_snextc(strbuf)) {
8794 basic_istream_wchar_sentry_destroy(istream);
8797 basic_ios_wchar_setstate(base, IOSTATE_eofbit);
8801 /* ?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
8802 /* ?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
8803 /* ?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEGXZ */
8804 /* ?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ */
8805 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_peek, 4)
8806 unsigned short __thiscall basic_istream_wchar_peek(basic_istream_wchar *this)
8808 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8809 unsigned short ret = WEOF;
8811 TRACE("(%p)\n", this);
8815 if(basic_istream_wchar_sentry_create(this, TRUE))
8816 ret = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base));
8817 basic_istream_wchar_sentry_destroy(this);
8820 basic_ios_wchar_setstate(base, IOSTATE_eofbit);
8825 /* ?_Read_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WIH@Z */
8826 /* ?_Read_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_K_J@Z */
8827 /* ?_Read_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGIH@Z */
8828 /* ?_Read_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_K_J@Z */
8829 static basic_istream_wchar* basic_istream_wchar__Read_s(basic_istream_wchar *this, wchar_t *str, MSVCP_size_t size, streamsize count)
8831 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8832 IOSB_iostate state = IOSTATE_goodbit;
8834 TRACE("(%p %p %lu %ld)\n", this, str, size, count);
8836 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8837 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8839 this->count = basic_streambuf_wchar__Sgetn_s(strbuf, str, size, count);
8840 if(this->count != count)
8841 state |= IOSTATE_failbit | IOSTATE_eofbit;
8845 basic_istream_wchar_sentry_destroy(this);
8847 basic_ios_wchar_setstate(base, state);
8851 /* ?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
8852 /* ?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
8853 /* ?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
8854 /* ?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
8855 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read, 12)
8856 basic_istream_wchar* __thiscall basic_istream_wchar_read(basic_istream_wchar *this, wchar_t *str, streamsize count)
8858 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8859 IOSB_iostate state = IOSTATE_goodbit;
8861 TRACE("(%p %p %ld)\n", this, str, count);
8863 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8864 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8866 this->count = basic_streambuf_wchar_sgetn(strbuf, str, count);
8867 if(this->count != count)
8868 state |= IOSTATE_failbit | IOSTATE_eofbit;
8872 basic_istream_wchar_sentry_destroy(this);
8874 basic_ios_wchar_setstate(base, state);
8878 /* ?_Readsome_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHPA_WIH@Z */
8879 /* ?_Readsome_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_K_J@Z */
8880 /* ?_Readsome_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHPAGIH@Z */
8881 /* ?_Readsome_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_K_J@Z */
8882 static streamsize basic_istream_wchar__Readsome_s(basic_istream_wchar *this, wchar_t *str, MSVCP_size_t size, streamsize count)
8884 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8885 IOSB_iostate state = IOSTATE_goodbit;
8887 TRACE("(%p %p %lu %ld)\n", this, str, size, count);
8891 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8892 streamsize avail = basic_streambuf_wchar_in_avail(basic_ios_wchar_rdbuf_get(base));
8897 state |= IOSTATE_eofbit;
8899 basic_istream_wchar__Read_s(this, str, size, avail);
8901 state |= IOSTATE_failbit;
8903 basic_istream_wchar_sentry_destroy(this);
8905 basic_ios_wchar_setstate(base, state);
8909 /* ?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHPA_WH@Z */
8910 /* ?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z */
8911 /* ?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHPAGH@Z */
8912 /* ?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z */
8913 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_readsome, 12)
8914 streamsize __thiscall basic_istream_wchar_readsome(basic_istream_wchar *this, wchar_t *str, streamsize count)
8916 return basic_istream_wchar__Readsome_s(this, str, count, count);
8919 /* ?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@_W@Z */
8920 /* ?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z */
8921 /* ?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@G@Z */
8922 /* ?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z */
8923 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_putback, 8)
8924 basic_istream_wchar* __thiscall basic_istream_wchar_putback(basic_istream_wchar *this, wchar_t ch)
8926 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8927 IOSB_iostate state = IOSTATE_goodbit;
8929 TRACE("(%p %c)\n", this, ch);
8933 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8934 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8936 if(!ios_base_good(&base->base))
8937 state |= IOSTATE_failbit;
8938 else if(!strbuf || basic_streambuf_wchar_sputbackc(strbuf, ch)==WEOF)
8939 state |= IOSTATE_badbit;
8941 basic_istream_wchar_sentry_destroy(this);
8943 basic_ios_wchar_setstate(base, state);
8947 /* ?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ */
8948 /* ?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ */
8949 /* ?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@XZ */
8950 /* ?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ */
8951 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_unget, 4)
8952 basic_istream_wchar* __thiscall basic_istream_wchar_unget(basic_istream_wchar *this)
8954 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8955 IOSB_iostate state = IOSTATE_goodbit;
8957 TRACE("(%p)\n", this);
8961 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8962 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8964 if(!ios_base_good(&base->base))
8965 state |= IOSTATE_failbit;
8966 else if(!strbuf || basic_streambuf_wchar_sungetc(strbuf)==WEOF)
8967 state |= IOSTATE_badbit;
8969 basic_istream_wchar_sentry_destroy(this);
8971 basic_ios_wchar_setstate(base, state);
8975 /* ?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
8976 /* ?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAHXZ */
8977 /* ?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHXZ */
8978 /* ?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAHXZ */
8979 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_sync, 4)
8980 int __thiscall basic_istream_wchar_sync(basic_istream_wchar *this)
8982 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8983 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8985 TRACE("(%p)\n", this);
8990 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8991 if(basic_streambuf_wchar_pubsync(strbuf) != -1) {
8992 basic_istream_wchar_sentry_destroy(this);
8996 basic_istream_wchar_sentry_destroy(this);
8998 basic_ios_wchar_setstate(base, IOSTATE_badbit);
9002 /* ?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@XZ */
9003 /* ?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
9004 /* ?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@XZ */
9005 /* ?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
9006 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_tellg, 8)
9007 fpos_int* __thiscall basic_istream_wchar_tellg(basic_istream_wchar *this, fpos_int *ret)
9009 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9011 TRACE("(%p %p)\n", this, ret);
9013 if(ios_base_fail(&base->base)) {
9020 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base),
9021 ret, 0, SEEKDIR_cur, OPENMODE_in);
9022 if(ret->off==-1 && ret->pos==0 && ret->state==0)
9023 basic_ios_wchar_setstate(base, IOSTATE_failbit);
9028 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@JH@Z */
9029 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z */
9030 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@JH@Z */
9031 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z */
9032 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_seekg, 12)
9033 basic_istream_wchar* __thiscall basic_istream_wchar_seekg(basic_istream_wchar *this, streamoff off, int dir)
9035 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9037 TRACE("(%p %ld %d)\n", this, off, dir);
9039 if(!ios_base_fail(&base->base)) {
9040 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9043 basic_streambuf_wchar_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in);
9044 basic_istream_wchar_sentry_destroy(this);
9046 if(ret.off==-1 && ret.pos==0 && ret.state==0)
9047 basic_ios_wchar_setstate(base, IOSTATE_failbit);
9049 basic_ios_wchar_clear(base, IOSTATE_goodbit);
9052 basic_ios_wchar_clear(base, IOSTATE_goodbit);
9057 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
9058 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
9059 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
9060 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
9061 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_seekg_fpos, 28)
9062 basic_istream_wchar* __thiscall basic_istream_wchar_seekg_fpos(basic_istream_wchar *this, fpos_int pos)
9064 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9066 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos));
9068 if(!ios_base_fail(&base->base)) {
9069 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9072 basic_streambuf_wchar_pubseekpos(strbuf, &ret, pos, OPENMODE_in);
9073 basic_istream_wchar_sentry_destroy(this);
9075 if(ret.off==-1 && ret.pos==0 && ret.state==0)
9076 basic_ios_wchar_setstate(base, IOSTATE_failbit);
9078 basic_ios_wchar_clear(base, IOSTATE_goodbit);
9081 basic_ios_wchar_clear(base, IOSTATE_goodbit);
9086 static basic_istream_wchar* basic_istream_read_short(basic_istream_wchar *this, short *v, const num_get *numget)
9088 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9089 int state = IOSTATE_goodbit;
9091 TRACE("(%p %p)\n", this, v);
9093 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9094 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9095 istreambuf_iterator_wchar first={0}, last={0};
9098 first.strbuf = strbuf;
9099 num_get_wchar_get_long(numget, &last, first, last, &base->base, &state, &tmp);
9101 if(!(state&IOSTATE_failbit) && tmp==(LONG)((short)tmp))
9104 state |= IOSTATE_failbit;
9106 basic_istream_wchar_sentry_destroy(this);
9108 basic_ios_wchar_setstate(base, state);
9112 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAF@Z */
9113 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAF@Z */
9114 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_short, 8)
9115 basic_istream_wchar* __thiscall basic_istream_wchar_read_short(basic_istream_wchar *this, short *v)
9117 return basic_istream_read_short(this, v, num_get_wchar_use_facet(
9118 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9121 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAF@Z */
9122 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAF@Z */
9123 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_short, 8)
9124 basic_istream_wchar* __thiscall basic_istream_short_read_short(basic_istream_wchar *this, short *v)
9126 return basic_istream_read_short(this, v, num_get_short_use_facet(
9127 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9130 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAG@Z */
9131 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAG@Z */
9132 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ushort, 8)
9133 basic_istream_wchar* __thiscall basic_istream_wchar_read_ushort(basic_istream_wchar *this, unsigned short *v)
9135 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9136 int state = IOSTATE_goodbit;
9138 TRACE("(%p %p)\n", this, v);
9140 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9141 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9142 const num_get *numget = num_get_wchar_use_facet(strbuf->loc);
9143 istreambuf_iterator_wchar first={0}, last={0};
9145 first.strbuf = strbuf;
9146 num_get_wchar_get_ushort(numget, &last, first, last, &base->base, &state, v);
9148 basic_istream_wchar_sentry_destroy(this);
9150 basic_ios_wchar_setstate(base, state);
9154 static basic_istream_wchar* basic_istream_read_int(basic_istream_wchar *this, int *v, const num_get *numget)
9156 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9157 int state = IOSTATE_goodbit;
9159 TRACE("(%p %p)\n", this, v);
9161 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9162 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9163 istreambuf_iterator_wchar first={0}, last={0};
9165 first.strbuf = strbuf;
9166 num_get_wchar_get_long(numget, &last, first, last, &base->base, &state, v);
9168 basic_istream_wchar_sentry_destroy(this);
9170 basic_ios_wchar_setstate(base, state);
9174 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAH@Z */
9175 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAH@Z */
9176 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_int, 8)
9177 basic_istream_wchar* __thiscall basic_istream_wchar_read_int(basic_istream_wchar *this, int *v)
9179 return basic_istream_read_int(this, v, num_get_wchar_use_facet(
9180 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9183 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAH@Z */
9184 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAH@Z */
9185 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_int, 8)
9186 basic_istream_wchar* __thiscall basic_istream_short_read_int(basic_istream_wchar *this, int *v)
9188 return basic_istream_read_int(this, v, num_get_short_use_facet(
9189 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9192 static basic_istream_wchar* basic_istream_read_uint(basic_istream_wchar *this, unsigned int *v, const num_get *numget)
9194 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9195 int state = IOSTATE_goodbit;
9197 TRACE("(%p %p)\n", this, v);
9199 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9200 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9201 istreambuf_iterator_wchar first={0}, last={0};
9203 first.strbuf = strbuf;
9204 num_get_wchar_get_uint(numget, &last, first, last, &base->base, &state, v);
9206 basic_istream_wchar_sentry_destroy(this);
9208 basic_ios_wchar_setstate(base, state);
9212 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAI@Z */
9213 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAI@Z */
9214 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_uint, 8)
9215 basic_istream_wchar* __thiscall basic_istream_wchar_read_uint(basic_istream_wchar *this, unsigned int *v)
9217 return basic_istream_read_uint(this, v, num_get_wchar_use_facet(
9218 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9221 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAI@Z */
9222 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAI@Z */
9223 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_uint, 8)
9224 basic_istream_wchar* __thiscall basic_istream_short_read_uint(basic_istream_wchar *this, unsigned int *v)
9226 return basic_istream_read_uint(this, v, num_get_short_use_facet(
9227 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9230 static basic_istream_wchar* basic_istream_read_long(basic_istream_wchar *this, LONG *v, const num_get *numget)
9232 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9233 int state = IOSTATE_goodbit;
9235 TRACE("(%p %p)\n", this, v);
9237 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9238 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9239 istreambuf_iterator_wchar first={0}, last={0};
9241 first.strbuf = strbuf;
9242 num_get_wchar_get_long(numget, &last, first, last, &base->base, &state, v);
9244 basic_istream_wchar_sentry_destroy(this);
9246 basic_ios_wchar_setstate(base, state);
9250 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAJ@Z */
9251 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAJ@Z */
9252 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_long, 8)
9253 basic_istream_wchar* __thiscall basic_istream_wchar_read_long(basic_istream_wchar *this, LONG *v)
9255 return basic_istream_read_long(this, v, num_get_wchar_use_facet(
9256 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9259 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAJ@Z */
9260 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAJ@Z */
9261 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_long, 8)
9262 basic_istream_wchar* __thiscall basic_istream_short_read_long(basic_istream_wchar *this, LONG *v)
9264 return basic_istream_read_long(this, v, num_get_short_use_facet(
9265 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9268 static basic_istream_wchar* basic_istream_read_ulong(basic_istream_wchar *this, ULONG *v, const num_get *numget)
9270 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9271 int state = IOSTATE_goodbit;
9273 TRACE("(%p %p)\n", this, v);
9275 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9276 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9277 istreambuf_iterator_wchar first={0}, last={0};
9279 first.strbuf = strbuf;
9280 num_get_wchar_get_ulong(numget, &last, first, last, &base->base, &state, v);
9282 basic_istream_wchar_sentry_destroy(this);
9284 basic_ios_wchar_setstate(base, state);
9288 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAK@Z */
9289 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAK@Z */
9290 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ulong, 8)
9291 basic_istream_wchar* __thiscall basic_istream_wchar_read_ulong(basic_istream_wchar *this, ULONG *v)
9293 return basic_istream_read_ulong(this, v, num_get_wchar_use_facet(
9294 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9297 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAK@Z */
9298 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAK@Z */
9299 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ulong, 8)
9300 basic_istream_wchar* __thiscall basic_istream_short_read_ulong(basic_istream_wchar *this, ULONG *v)
9302 return basic_istream_read_ulong(this, v, num_get_short_use_facet(
9303 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9306 static basic_istream_wchar* basic_istream_read_float(basic_istream_wchar *this, float *v, const num_get *numget)
9308 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9309 int state = IOSTATE_goodbit;
9311 TRACE("(%p %p)\n", this, v);
9313 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9314 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9315 istreambuf_iterator_wchar first={0}, last={0};
9317 first.strbuf = strbuf;
9318 num_get_wchar_get_float(numget, &last, first, last, &base->base, &state, v);
9320 basic_istream_wchar_sentry_destroy(this);
9322 basic_ios_wchar_setstate(base, state);
9326 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAM@Z */
9327 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAM@Z */
9328 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_float, 8)
9329 basic_istream_wchar* __thiscall basic_istream_wchar_read_float(basic_istream_wchar *this, float *v)
9331 return basic_istream_read_float(this, v, num_get_wchar_use_facet(
9332 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9335 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAM@Z */
9336 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAM@Z */
9337 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_float, 8)
9338 basic_istream_wchar* __thiscall basic_istream_short_read_float(basic_istream_wchar *this, float *v)
9340 return basic_istream_read_float(this, v, num_get_short_use_facet(
9341 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9344 static basic_istream_wchar* basic_istream_read_double(basic_istream_wchar *this, double *v, const num_get *numget)
9346 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9347 int state = IOSTATE_goodbit;
9349 TRACE("(%p %p)\n", this, v);
9351 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9352 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9353 istreambuf_iterator_wchar first={0}, last={0};
9355 first.strbuf = strbuf;
9356 num_get_wchar_get_double(numget, &last, first, last, &base->base, &state, v);
9358 basic_istream_wchar_sentry_destroy(this);
9360 basic_ios_wchar_setstate(base, state);
9364 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAN@Z */
9365 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAN@Z */
9366 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_double, 8)
9367 basic_istream_wchar* __thiscall basic_istream_wchar_read_double(basic_istream_wchar *this, double *v)
9369 return basic_istream_read_double(this, v, num_get_wchar_use_facet(
9370 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9373 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAN@Z */
9374 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAN@Z */
9375 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_double, 8)
9376 basic_istream_wchar* __thiscall basic_istream_short_read_double(basic_istream_wchar *this, double *v)
9378 return basic_istream_read_double(this, v, num_get_short_use_facet(
9379 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9382 static basic_istream_wchar* basic_istream_read_ldouble(basic_istream_wchar *this, double *v, const num_get *numget)
9384 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9385 int state = IOSTATE_goodbit;
9387 TRACE("(%p %p)\n", this, v);
9389 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9390 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9391 istreambuf_iterator_wchar first={0}, last={0};
9393 first.strbuf = strbuf;
9394 num_get_wchar_get_ldouble(numget, &last, first, last, &base->base, &state, v);
9396 basic_istream_wchar_sentry_destroy(this);
9398 basic_ios_wchar_setstate(base, state);
9402 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAO@Z */
9403 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAO@Z */
9404 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ldouble, 8)
9405 basic_istream_wchar* __thiscall basic_istream_wchar_read_ldouble(basic_istream_wchar *this, double *v)
9407 return basic_istream_read_ldouble(this, v, num_get_wchar_use_facet(
9408 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9411 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAO@Z */
9412 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAO@Z */
9413 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ldouble, 8)
9414 basic_istream_wchar* __thiscall basic_istream_short_read_ldouble(basic_istream_wchar *this, double *v)
9416 return basic_istream_read_ldouble(this, v, num_get_short_use_facet(
9417 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9420 static basic_istream_wchar* basic_istream_read_ptr(basic_istream_wchar *this, void **v, const num_get *numget)
9422 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9423 int state = IOSTATE_goodbit;
9425 TRACE("(%p %p)\n", this, v);
9427 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9428 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9429 istreambuf_iterator_wchar first={0}, last={0};
9431 first.strbuf = strbuf;
9432 num_get_wchar_get_void(numget, &last, first, last, &base->base, &state, v);
9434 basic_istream_wchar_sentry_destroy(this);
9436 basic_ios_wchar_setstate(base, state);
9440 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAPAX@Z */
9441 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
9442 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ptr, 8)
9443 basic_istream_wchar* __thiscall basic_istream_wchar_read_ptr(basic_istream_wchar *this, void **v)
9445 return basic_istream_read_ptr(this, v, num_get_wchar_use_facet(
9446 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9449 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAPAX@Z */
9450 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
9451 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ptr, 8)
9452 basic_istream_wchar* __thiscall basic_istream_short_read_ptr(basic_istream_wchar *this, void **v)
9454 return basic_istream_read_ptr(this, v, num_get_short_use_facet(
9455 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9458 static basic_istream_wchar* basic_istream_read_int64(basic_istream_wchar *this, __int64 *v, const num_get *numget)
9460 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9461 int state = IOSTATE_goodbit;
9463 TRACE("(%p %p)\n", this, v);
9465 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9466 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9467 istreambuf_iterator_wchar first={0}, last={0};
9469 first.strbuf = strbuf;
9470 num_get_wchar_get_int64(numget, &last, first, last, &base->base, &state, v);
9472 basic_istream_wchar_sentry_destroy(this);
9474 basic_ios_wchar_setstate(base, state);
9478 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_J@Z */
9479 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_J@Z */
9480 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_int64, 8)
9481 basic_istream_wchar* __thiscall basic_istream_wchar_read_int64(basic_istream_wchar *this, __int64 *v)
9483 return basic_istream_read_int64(this, v, num_get_wchar_use_facet(
9484 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9487 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_J@Z */
9488 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_J@Z */
9489 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_int64, 8)
9490 basic_istream_wchar* __thiscall basic_istream_short_read_int64(basic_istream_wchar *this, __int64 *v)
9492 return basic_istream_read_int64(this, v, num_get_short_use_facet(
9493 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9496 static basic_istream_wchar* basic_istream_read_uint64(basic_istream_wchar *this, unsigned __int64 *v, const num_get *numget)
9498 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9499 int state = IOSTATE_goodbit;
9501 TRACE("(%p %p)\n", this, v);
9503 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9504 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9505 istreambuf_iterator_wchar first={0}, last={0};
9507 first.strbuf = strbuf;
9508 num_get_wchar_get_uint64(numget, &last, first, last, &base->base, &state, v);
9510 basic_istream_wchar_sentry_destroy(this);
9512 basic_ios_wchar_setstate(base, state);
9516 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_K@Z */
9517 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_K@Z */
9518 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_uint64, 8)
9519 basic_istream_wchar* __thiscall basic_istream_wchar_read_uint64(basic_istream_wchar *this, unsigned __int64 *v)
9521 return basic_istream_read_uint64(this, v, num_get_wchar_use_facet(
9522 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9525 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_K@Z */
9526 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_K@Z */
9527 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_uint64, 8)
9528 basic_istream_wchar* __thiscall basic_istream_short_read_uint64(basic_istream_wchar *this, unsigned __int64 *v)
9530 return basic_istream_read_uint64(this, v, num_get_short_use_facet(
9531 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9534 static basic_istream_wchar* basic_istream_read_bool(basic_istream_wchar *this, MSVCP_bool *v, const num_get *numget)
9536 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9537 int state = IOSTATE_goodbit;
9539 TRACE("(%p %p)\n", this, v);
9541 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9542 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9543 istreambuf_iterator_wchar first={0}, last={0};
9545 first.strbuf = strbuf;
9546 num_get_wchar_get_bool(numget, &last, first, last, &base->base, &state, v);
9548 basic_istream_wchar_sentry_destroy(this);
9550 basic_ios_wchar_setstate(base, state);
9554 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_N@Z */
9555 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_N@Z */
9556 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_bool, 8)
9557 basic_istream_wchar* __thiscall basic_istream_wchar_read_bool(basic_istream_wchar *this, MSVCP_bool *v)
9559 return basic_istream_read_bool(this, v, num_get_wchar_use_facet(
9560 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
9563 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_N@Z */
9564 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_N@Z */
9565 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_bool, 8)
9566 basic_istream_wchar* __thiscall basic_istream_short_read_bool(basic_istream_wchar *this, MSVCP_bool *v)
9568 return basic_istream_read_bool(this, v, num_get_short_use_facet(
9569 basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
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@_W@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@_W@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@G@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@G@Z */
9576 basic_istream_wchar* __cdecl basic_istream_wchar_getline_bstr_delim(
9577 basic_istream_wchar *istream, basic_string_wchar *str, wchar_t delim)
9579 IOSB_iostate state = IOSTATE_failbit;
9582 TRACE("(%p %p %c)\n", istream, str, delim);
9584 if(basic_istream_wchar_sentry_create(istream, TRUE)) {
9585 MSVCP_basic_string_wchar_clear(str);
9587 c = basic_istream_wchar_get(istream);
9589 state = IOSTATE_goodbit;
9591 for(; c!=delim && c!=WEOF; c = basic_istream_wchar_get(istream)) {
9592 state = IOSTATE_goodbit;
9593 MSVCP_basic_string_wchar_append_ch(str, c);
9596 basic_istream_wchar_sentry_destroy(istream);
9598 basic_ios_wchar_setstate(basic_istream_wchar_get_basic_ios(istream),
9599 state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
9603 /* ??$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 */
9604 /* ??$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 */
9605 /* ??$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 */
9606 /* ??$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 */
9607 basic_istream_wchar* __cdecl basic_istream_wchar_getline_bstr(
9608 basic_istream_wchar *istream, basic_string_wchar *str)
9610 return basic_istream_wchar_getline_bstr_delim(istream, str, '\n');
9613 static basic_istream_wchar* basic_istream_read_bstr(basic_istream_wchar *istream,
9614 basic_string_wchar *str, const ctype_wchar *ctype)
9616 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istream);
9617 IOSB_iostate state = IOSTATE_failbit;
9620 TRACE("(%p %p)\n", istream, str);
9622 if(basic_istream_wchar_sentry_create(istream, FALSE)) {
9623 MSVCP_size_t count = ios_base_width_get(&base->base);
9628 MSVCP_basic_string_wchar_clear(str);
9630 for(c = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base));
9631 c!=WEOF && !ctype_wchar_is_ch(ctype, _SPACE|_BLANK, c) && count>0;
9632 c = basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base)), count--) {
9633 state = IOSTATE_goodbit;
9634 MSVCP_basic_string_wchar_append_ch(str, c);
9637 basic_istream_wchar_sentry_destroy(istream);
9639 ios_base_width_set(&base->base, 0);
9640 basic_ios_wchar_setstate(base, state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
9644 /* ??$?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 */
9645 /* ??$?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 */
9646 basic_istream_wchar* __cdecl basic_istream_wchar_read_bstr(
9647 basic_istream_wchar *istream, basic_string_wchar *str)
9649 return basic_istream_read_bstr(istream, str, ctype_wchar_use_facet(
9650 basic_istream_wchar_get_basic_ios(istream)->strbuf->loc));
9653 /* ??$?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 */
9654 /* ??$?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 */
9655 basic_istream_wchar* __cdecl basic_istream_short_read_bstr(
9656 basic_istream_wchar *istream, basic_string_wchar *str)
9658 return basic_istream_read_bstr(istream, str, ctype_short_use_facet(
9659 basic_istream_wchar_get_basic_ios(istream)->strbuf->loc));
9662 static basic_istream_wchar* basic_istream_read_str(basic_istream_wchar *istream, wchar_t *str, const ctype_wchar *ctype)
9664 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istream);
9665 IOSB_iostate state = IOSTATE_failbit;
9666 unsigned short c = '\n';
9668 TRACE("(%p %p)\n", istream, str);
9670 if(basic_istream_wchar_sentry_create(istream, FALSE)) {
9671 MSVCP_size_t count = ios_base_width_get(&base->base)-1;
9673 for(c = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base));
9674 c!=WEOF && !ctype_wchar_is_ch(ctype, _SPACE|_BLANK, c) && count>0;
9675 c = basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base)), count--) {
9676 state = IOSTATE_goodbit;
9680 basic_istream_wchar_sentry_destroy(istream);
9683 ios_base_width_set(&base->base, 0);
9684 basic_ios_wchar_setstate(base, state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
9688 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@PA_W@Z */
9689 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@PEA_W@Z */
9690 basic_istream_wchar* __cdecl basic_istream_wchar_read_str(basic_istream_wchar *istream, wchar_t *str)
9692 return basic_istream_read_str(istream, str, ctype_wchar_use_facet(
9693 basic_istream_wchar_get_basic_ios(istream)->strbuf->loc));
9696 /* ??$?5GU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@PAG@Z */
9697 /* ??$?5GU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@PEAG@Z */
9698 basic_istream_wchar* __cdecl basic_istream_short_read_str(basic_istream_wchar *istream, wchar_t *str)
9700 return basic_istream_read_str(istream, str, ctype_short_use_facet(
9701 basic_istream_wchar_get_basic_ios(istream)->strbuf->loc));
9704 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AA_W@Z */
9705 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEA_W@Z */
9706 /* ??$?5GU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAG@Z */
9707 /* ??$?5GU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAG@Z */
9708 basic_istream_wchar* __cdecl basic_istream_wchar_read_ch(basic_istream_wchar *istream, wchar_t *ch)
9710 IOSB_iostate state = IOSTATE_failbit;
9711 unsigned short c = 0;
9713 TRACE("(%p %p)\n", istream, ch);
9715 if(basic_istream_wchar_sentry_create(istream, FALSE)) {
9716 c = basic_streambuf_wchar_sbumpc(basic_ios_wchar_rdbuf_get(
9717 basic_istream_wchar_get_basic_ios(istream)));
9719 state = IOSTATE_goodbit;
9723 basic_istream_wchar_sentry_destroy(istream);
9725 basic_ios_wchar_setstate(basic_istream_wchar_get_basic_ios(istream),
9726 state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
9730 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
9731 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
9732 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
9733 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
9734 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_streambuf, 8)
9735 basic_istream_wchar* __thiscall basic_istream_wchar_read_streambuf(
9736 basic_istream_wchar *this, basic_streambuf_wchar *streambuf)
9738 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9739 IOSB_iostate state = IOSTATE_failbit;
9740 unsigned short c = '\n';
9742 TRACE("(%p %p)\n", this, streambuf);
9744 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9745 for(c = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base)); c!=WEOF;
9746 c = basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base))) {
9747 state = IOSTATE_goodbit;
9748 if(basic_streambuf_wchar_sputc(streambuf, c) == WEOF)
9752 basic_istream_wchar_sentry_destroy(this);
9754 basic_ios_wchar_setstate(base, state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
9758 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
9759 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
9760 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
9761 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
9762 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func, 8)
9763 basic_istream_wchar* __thiscall basic_istream_wchar_read_func(basic_istream_wchar *this,
9764 basic_istream_wchar* (__cdecl *pfunc)(basic_istream_wchar*))
9766 TRACE("(%p %p)\n", this, pfunc);
9771 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AAV21@@Z@Z */
9772 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z */
9773 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@GU?$char_traits@G@std@@@1@AAV21@@Z@Z */
9774 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z */
9775 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func_basic_ios, 8)
9776 basic_istream_wchar* __thiscall basic_istream_wchar_read_func_basic_ios(basic_istream_wchar *this,
9777 basic_ios_wchar* (__cdecl *pfunc)(basic_ios_wchar*))
9779 TRACE("(%p %p)\n", this, pfunc);
9780 pfunc(basic_istream_wchar_get_basic_ios(this));
9784 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
9785 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
9786 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
9787 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
9788 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func_ios_base, 8)
9789 basic_istream_wchar* __thiscall basic_istream_wchar_read_func_ios_base(
9790 basic_istream_wchar *this, ios_base* (__cdecl *pfunc)(ios_base*))
9792 TRACE("(%p %p)\n", this, pfunc);
9793 pfunc(&basic_istream_wchar_get_basic_ios(this)->base);
9797 static inline basic_ios_char* basic_iostream_char_to_basic_ios(basic_iostream_char *ptr)
9799 return (basic_ios_char*)((char*)ptr+basic_iostream_char_vbtable1[1]);
9802 static inline basic_iostream_char* basic_iostream_char_from_basic_ios(basic_ios_char *ptr)
9804 return (basic_iostream_char*)((char*)ptr-basic_iostream_char_vbtable1[1]);
9807 /* ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
9808 /* ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
9809 DEFINE_THISCALL_WRAPPER(basic_iostream_char_ctor, 12)
9810 basic_iostream_char* __thiscall basic_iostream_char_ctor(basic_iostream_char *this, basic_streambuf_char *strbuf, MSVCP_bool virt_init)
9812 basic_ios_char *basic_ios;
9814 TRACE("(%p %p %d)\n", this, strbuf, virt_init);
9817 this->base1.vbtable = basic_iostream_char_vbtable1;
9818 this->base2.vbtable = basic_iostream_char_vbtable2;
9819 basic_ios = basic_istream_char_get_basic_ios(&this->base1);
9820 basic_ios_char_ctor(basic_ios);
9822 basic_ios = basic_istream_char_get_basic_ios(&this->base1);
9825 basic_ios->base.vtable = &MSVCP_basic_iostream_char_vtable;
9827 basic_istream_char_ctor(&this->base1, strbuf, FALSE, FALSE);
9828 basic_ostream_char_ctor_uninitialized(&this->base2, 0, FALSE, FALSE);
9832 /* ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
9833 /* ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
9834 DEFINE_THISCALL_WRAPPER(basic_iostream_char_dtor, 4)
9835 void __thiscall basic_iostream_char_dtor(basic_ios_char *base)
9837 basic_iostream_char *this = basic_iostream_char_from_basic_ios(base);
9839 TRACE("(%p)\n", this);
9840 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base2));
9841 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base1));
9844 /* ??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
9845 /* ??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
9846 DEFINE_THISCALL_WRAPPER(basic_iostream_char_vbase_dtor, 4)
9847 void __thiscall basic_iostream_char_vbase_dtor(basic_iostream_char *this)
9849 TRACE("(%p)\n", this);
9850 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(this));
9851 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base1));
9854 DEFINE_THISCALL_WRAPPER(basic_iostream_char_vector_dtor, 8)
9855 basic_iostream_char* __thiscall basic_iostream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
9857 basic_iostream_char *this = basic_iostream_char_from_basic_ios(base);
9859 TRACE("(%p %x)\n", this, flags);
9862 /* we have an array, with the number of elements stored before the first object */
9863 INT_PTR i, *ptr = (INT_PTR *)this-1;
9865 for(i=*ptr-1; i>=0; i--)
9866 basic_iostream_char_vbase_dtor(this+i);
9867 MSVCRT_operator_delete(ptr);
9869 basic_iostream_char_vbase_dtor(this);
9871 MSVCRT_operator_delete(this);
9877 static inline basic_ios_wchar* basic_iostream_wchar_to_basic_ios(basic_iostream_wchar *ptr)
9879 return (basic_ios_wchar*)((char*)ptr+basic_iostream_wchar_vbtable1[1]);
9882 static inline basic_iostream_wchar* basic_iostream_wchar_from_basic_ios(basic_ios_wchar *ptr)
9884 return (basic_iostream_wchar*)((char*)ptr-basic_iostream_wchar_vbtable1[1]);
9887 /* ??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
9888 /* ??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
9889 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_ctor, 12)
9890 basic_iostream_wchar* __thiscall basic_iostream_wchar_ctor(basic_iostream_wchar *this,
9891 basic_streambuf_wchar *strbuf, MSVCP_bool virt_init)
9893 basic_ios_wchar *basic_ios;
9895 TRACE("(%p %p %d)\n", this, strbuf, virt_init);
9898 this->base1.vbtable = basic_iostream_wchar_vbtable1;
9899 this->base2.vbtable = basic_iostream_wchar_vbtable2;
9900 basic_ios = basic_istream_wchar_get_basic_ios(&this->base1);
9901 basic_ios_wchar_ctor(basic_ios);
9903 basic_ios = basic_istream_wchar_get_basic_ios(&this->base1);
9906 basic_istream_wchar_ctor(&this->base1, strbuf, FALSE, FALSE);
9907 basic_ostream_wchar_ctor_uninitialized(&this->base2, 0, FALSE, FALSE);
9909 basic_ios->base.vtable = &MSVCP_basic_iostream_wchar_vtable;
9913 /* ??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
9914 /* ??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
9915 DEFINE_THISCALL_WRAPPER(basic_iostream_short_ctor, 12)
9916 basic_iostream_wchar* __thiscall basic_iostream_short_ctor(basic_iostream_wchar *this,
9917 basic_streambuf_wchar *strbuf, MSVCP_bool virt_init)
9919 basic_iostream_wchar_ctor(this, strbuf, virt_init);
9920 basic_istream_wchar_get_basic_ios(&this->base1)->base.vtable = &MSVCP_basic_iostream_short_vtable;
9924 /* ??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
9925 /* ??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
9926 /* ??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UAE@XZ */
9927 /* ??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
9928 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_dtor, 4)
9929 void __thiscall basic_iostream_wchar_dtor(basic_ios_wchar *base)
9931 basic_iostream_wchar *this = basic_iostream_wchar_from_basic_ios(base);
9933 TRACE("(%p)\n", this);
9934 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base2));
9935 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base1));
9938 /* ??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
9939 /* ??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
9940 /* ??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
9941 /* ??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
9942 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_vbase_dtor, 4)
9943 void __thiscall basic_iostream_wchar_vbase_dtor(basic_iostream_wchar *this)
9945 TRACE("(%p)\n", this);
9946 basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(this));
9947 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base1));
9950 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_vector_dtor, 8)
9951 basic_iostream_wchar* __thiscall basic_iostream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
9953 basic_iostream_wchar *this = basic_iostream_wchar_from_basic_ios(base);
9955 TRACE("(%p %x)\n", this, flags);
9958 /* we have an array, with the number of elements stored before the first object */
9959 INT_PTR i, *ptr = (INT_PTR *)this-1;
9961 for(i=*ptr-1; i>=0; i--)
9962 basic_iostream_wchar_vbase_dtor(this+i);
9963 MSVCRT_operator_delete(ptr);
9965 basic_iostream_wchar_vbase_dtor(this);
9967 MSVCRT_operator_delete(this);
9973 static inline basic_ios_char* basic_ofstream_char_to_basic_ios(basic_ofstream_char *ptr)
9975 return (basic_ios_char*)((char*)ptr+basic_ofstream_char_vbtable[1]);
9978 static inline basic_ofstream_char* basic_ofstream_char_from_basic_ios(basic_ios_char *ptr)
9980 return (basic_ofstream_char*)((char*)ptr-basic_ofstream_char_vbtable[1]);
9983 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
9984 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
9985 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor, 8)
9986 basic_ofstream_char* __thiscall basic_ofstream_char_ctor(basic_ofstream_char *this, MSVCP_bool virt_init)
9988 basic_ios_char *basic_ios;
9990 TRACE("(%p %d)\n", this, virt_init);
9993 this->base.vbtable = basic_ofstream_char_vbtable;
9994 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
9995 basic_ios_char_ctor(basic_ios);
9997 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10000 basic_filebuf_char_ctor(&this->filebuf);
10001 basic_ostream_char_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10002 basic_ios->base.vtable = &MSVCP_basic_ofstream_char_vtable;
10006 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
10007 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10008 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_file, 12)
10009 basic_ofstream_char* __thiscall basic_ofstream_char_ctor_file(
10010 basic_ofstream_char *this, FILE *file, MSVCP_bool virt_init)
10012 basic_ios_char *basic_ios;
10014 TRACE("(%p %p %d)\n", this, file, virt_init);
10017 this->base.vbtable = basic_ofstream_char_vbtable;
10018 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10019 basic_ios_char_ctor(basic_ios);
10021 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10024 basic_filebuf_char_ctor_file(&this->filebuf, file);
10025 basic_ostream_char_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10026 basic_ios->base.vtable = &MSVCP_basic_ofstream_char_vtable;
10030 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
10031 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
10032 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_name, 20)
10033 basic_ofstream_char* __thiscall basic_ofstream_char_ctor_name(basic_ofstream_char *this,
10034 const char *name, int mode, int prot, MSVCP_bool virt_init)
10036 TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
10038 basic_ofstream_char_ctor(this, virt_init);
10040 if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_out, prot)) {
10041 basic_ios_char *basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10042 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10047 /* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
10048 /* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
10049 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_dtor, 4)
10050 void __thiscall basic_ofstream_char_dtor(basic_ios_char *base)
10052 basic_ofstream_char *this = basic_ofstream_char_from_basic_ios(base);
10054 TRACE("(%p)\n", this);
10056 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base));
10057 basic_filebuf_char_dtor(&this->filebuf);
10060 /* ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10061 /* ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10062 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_vbase_dtor, 4)
10063 void __thiscall basic_ofstream_char_vbase_dtor(basic_ofstream_char *this)
10065 TRACE("(%p)\n", this);
10067 basic_ofstream_char_dtor(basic_ofstream_char_to_basic_ios(this));
10068 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base));
10071 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_vector_dtor, 8)
10072 basic_ofstream_char* __thiscall basic_ofstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
10074 basic_ofstream_char *this = basic_ofstream_char_from_basic_ios(base);
10076 TRACE("(%p %x)\n", this, flags);
10079 /* we have an array, with the number of elements stored before the first object */
10080 INT_PTR i, *ptr = (INT_PTR *)this-1;
10082 for(i=*ptr-1; i>=0; i--)
10083 basic_ofstream_char_vbase_dtor(this+i);
10084 MSVCRT_operator_delete(ptr);
10086 basic_ofstream_char_vbase_dtor(this);
10088 MSVCRT_operator_delete(this);
10094 /* ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10095 /* ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10096 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_close, 4)
10097 void __thiscall basic_ofstream_char_close(basic_ofstream_char *this)
10099 TRACE("(%p)\n", this);
10101 if(!basic_filebuf_char_close(&this->filebuf)) {
10102 basic_ios_char *basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10103 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10107 /* ?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
10108 /* ?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
10109 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_is_open, 4)
10110 MSVCP_bool __thiscall basic_ofstream_char_is_open(const basic_ofstream_char *this)
10112 TRACE("(%p)\n", this);
10113 return basic_filebuf_char_is_open(&this->filebuf);
10116 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
10117 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
10118 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open, 16)
10119 void __thiscall basic_ofstream_char_open(basic_ofstream_char *this,
10120 const char *name, int mode, int prot)
10122 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
10124 if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_out, prot)) {
10125 basic_ios_char *basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10126 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10130 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
10131 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
10132 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open_old, 12)
10133 void __thiscall basic_ofstream_char_open_old(basic_ofstream_char *this,
10134 const char *name, unsigned int mode)
10136 basic_ofstream_char_open(this, name, mode, _SH_DENYNO);
10139 /* ?rdbuf@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10140 /* ?rdbuf@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10141 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_rdbuf, 4)
10142 basic_filebuf_char* __thiscall basic_ofstream_char_rdbuf(const basic_ofstream_char *this)
10144 TRACE("(%p)\n", this);
10145 return (basic_filebuf_char*)&this->filebuf;
10148 static inline basic_ios_wchar* basic_ofstream_wchar_to_basic_ios(basic_ofstream_wchar *ptr)
10150 return (basic_ios_wchar*)((char*)ptr+basic_ofstream_wchar_vbtable[1]);
10153 static inline basic_ofstream_wchar* basic_ofstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
10155 return (basic_ofstream_wchar*)((char*)ptr-basic_ofstream_wchar_vbtable[1]);
10158 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
10159 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
10160 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor, 8)
10161 basic_ofstream_wchar* __thiscall basic_ofstream_wchar_ctor(basic_ofstream_wchar *this, MSVCP_bool virt_init)
10163 basic_ios_wchar *basic_ios;
10165 TRACE("(%p %d)\n", this, virt_init);
10168 this->base.vbtable = basic_ofstream_wchar_vbtable;
10169 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10170 basic_ios_wchar_ctor(basic_ios);
10172 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10175 basic_filebuf_wchar_ctor(&this->filebuf);
10176 basic_ostream_wchar_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10177 basic_ios->base.vtable = &MSVCP_basic_ofstream_wchar_vtable;
10181 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
10182 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
10183 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor, 8)
10184 basic_ofstream_wchar* __thiscall basic_ofstream_short_ctor(basic_ofstream_wchar *this, MSVCP_bool virt_init)
10186 basic_ofstream_wchar_ctor(this, virt_init);
10187 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ofstream_short_vtable;
10191 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
10192 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10193 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor_file, 12)
10194 basic_ofstream_wchar* __thiscall basic_ofstream_wchar_ctor_file(
10195 basic_ofstream_wchar *this, FILE *file, MSVCP_bool virt_init)
10197 basic_ios_wchar *basic_ios;
10199 TRACE("(%p %p %d)\n", this, file, virt_init);
10202 this->base.vbtable = basic_ofstream_wchar_vbtable;
10203 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10204 basic_ios_wchar_ctor(basic_ios);
10206 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10209 basic_filebuf_wchar_ctor_file(&this->filebuf, file);
10210 basic_ostream_wchar_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10211 basic_ios->base.vtable = &MSVCP_basic_ofstream_wchar_vtable;
10215 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
10216 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10217 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor_file, 12)
10218 basic_ofstream_wchar* __thiscall basic_ofstream_short_ctor_file(
10219 basic_ofstream_wchar *this, FILE *file, MSVCP_bool virt_init)
10221 basic_ofstream_wchar_ctor_file(this, file, virt_init);
10222 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ofstream_short_vtable;
10226 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@PBDHH@Z */
10227 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBDHH@Z */
10228 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor_name, 20)
10229 basic_ofstream_wchar* __thiscall basic_ofstream_wchar_ctor_name(basic_ofstream_wchar *this,
10230 const char *name, int mode, int prot, MSVCP_bool virt_init)
10232 TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
10234 basic_ofstream_wchar_ctor(this, virt_init);
10236 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_out, prot)) {
10237 basic_ios_wchar *basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10238 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10243 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PBDHH@Z */
10244 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDHH@Z */
10245 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor_name, 20)
10246 basic_ofstream_wchar* __thiscall basic_ofstream_short_ctor_name(basic_ofstream_wchar *this,
10247 const char *name, int mode, int prot, MSVCP_bool virt_init)
10249 basic_ofstream_wchar_ctor_name(this, name, mode, prot, virt_init);
10250 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ofstream_short_vtable;
10254 /* ??1?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
10255 /* ??1?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
10256 /* ??1?$basic_ofstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
10257 /* ??1?$basic_ofstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
10258 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_dtor, 4)
10259 void __thiscall basic_ofstream_wchar_dtor(basic_ios_wchar *base)
10261 basic_ofstream_wchar *this = basic_ofstream_wchar_from_basic_ios(base);
10263 TRACE("(%p)\n", this);
10265 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base));
10266 basic_filebuf_wchar_dtor(&this->filebuf);
10269 /* ??_D?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10270 /* ??_D?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10271 /* ??_D?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10272 /* ??_D?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10273 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_vbase_dtor, 4)
10274 void __thiscall basic_ofstream_wchar_vbase_dtor(basic_ofstream_wchar *this)
10276 TRACE("(%p)\n", this);
10278 basic_ofstream_wchar_dtor(basic_ofstream_wchar_to_basic_ios(this));
10279 basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(&this->base));
10282 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_vector_dtor, 8)
10283 basic_ofstream_wchar* __thiscall basic_ofstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
10285 basic_ofstream_wchar *this = basic_ofstream_wchar_from_basic_ios(base);
10287 TRACE("(%p %x)\n", this, flags);
10290 /* we have an array, with the number of elements stored before the first object */
10291 INT_PTR i, *ptr = (INT_PTR *)this-1;
10293 for(i=*ptr-1; i>=0; i--)
10294 basic_ofstream_wchar_vbase_dtor(this+i);
10295 MSVCRT_operator_delete(ptr);
10297 basic_ofstream_wchar_vbase_dtor(this);
10299 MSVCRT_operator_delete(this);
10305 /* ?close@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10306 /* ?close@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10307 /* ?close@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10308 /* ?close@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10309 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_close, 4)
10310 void __thiscall basic_ofstream_wchar_close(basic_ofstream_wchar *this)
10312 TRACE("(%p)\n", this);
10314 if(!basic_filebuf_wchar_close(&this->filebuf)) {
10315 basic_ios_wchar *basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10316 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10320 /* ?is_open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
10321 /* ?is_open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
10322 /* ?is_open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
10323 /* ?is_open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
10324 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_is_open, 4)
10325 MSVCP_bool __thiscall basic_ofstream_wchar_is_open(const basic_ofstream_wchar *this)
10327 TRACE("(%p)\n", this);
10328 return basic_filebuf_wchar_is_open(&this->filebuf);
10331 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDHH@Z */
10332 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDHH@Z */
10333 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBDHH@Z */
10334 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDHH@Z */
10335 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_open, 16)
10336 void __thiscall basic_ofstream_wchar_open(basic_ofstream_wchar *this,
10337 const char *name, int mode, int prot)
10339 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
10341 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_out, prot)) {
10342 basic_ios_wchar *basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10343 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10347 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDI@Z */
10348 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDI@Z */
10349 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBDI@Z */
10350 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDI@Z */
10351 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_open_old, 12)
10352 void __thiscall basic_ofstream_wchar_open_old(basic_ofstream_wchar *this,
10353 const char *name, unsigned int mode)
10355 basic_ofstream_wchar_open(this, name, mode, _SH_DENYNO);
10358 /* ?rdbuf@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10359 /* ?rdbuf@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10360 /* ?rdbuf@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10361 /* ?rdbuf@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10362 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_rdbuf, 4)
10363 basic_filebuf_wchar* __thiscall basic_ofstream_wchar_rdbuf(const basic_ofstream_wchar *this)
10365 TRACE("(%p)\n", this);
10366 return (basic_filebuf_wchar*)&this->filebuf;
10369 static inline basic_ios_char* basic_ifstream_char_to_basic_ios(basic_ifstream_char *ptr)
10371 return (basic_ios_char*)((char*)ptr+basic_ifstream_char_vbtable[1]);
10374 static inline basic_ifstream_char* basic_ifstream_char_from_basic_ios(basic_ios_char *ptr)
10376 return (basic_ifstream_char*)((char*)ptr-basic_ifstream_char_vbtable[1]);
10379 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
10380 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
10381 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor, 8)
10382 basic_ifstream_char* __thiscall basic_ifstream_char_ctor(basic_ifstream_char *this, MSVCP_bool virt_init)
10384 basic_ios_char *basic_ios;
10386 TRACE("(%p %d)\n", this, virt_init);
10389 this->base.vbtable = basic_ifstream_char_vbtable;
10390 basic_ios = basic_istream_char_get_basic_ios(&this->base);
10391 basic_ios_char_ctor(basic_ios);
10393 basic_ios = basic_istream_char_get_basic_ios(&this->base);
10396 basic_filebuf_char_ctor(&this->filebuf);
10397 basic_istream_char_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10398 basic_ios->base.vtable = &MSVCP_basic_ifstream_char_vtable;
10402 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
10403 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10404 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_file, 12)
10405 basic_ifstream_char* __thiscall basic_ifstream_char_ctor_file(
10406 basic_ifstream_char *this, FILE *file, MSVCP_bool virt_init)
10408 basic_ios_char *basic_ios;
10410 TRACE("(%p %p %d)\n", this, file, virt_init);
10413 this->base.vbtable = basic_ifstream_char_vbtable;
10414 basic_ios = basic_istream_char_get_basic_ios(&this->base);
10415 basic_ios_char_ctor(basic_ios);
10417 basic_ios = basic_istream_char_get_basic_ios(&this->base);
10420 basic_filebuf_char_ctor_file(&this->filebuf, file);
10421 basic_istream_char_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10422 basic_ios->base.vtable = &MSVCP_basic_ifstream_char_vtable;
10426 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
10427 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
10428 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_name, 20)
10429 basic_ifstream_char* __thiscall basic_ifstream_char_ctor_name(basic_ifstream_char *this,
10430 const char *name, int mode, int prot, MSVCP_bool virt_init)
10432 TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
10434 basic_ifstream_char_ctor(this, virt_init);
10436 if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_in, prot)) {
10437 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base);
10438 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10443 /* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
10444 /* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
10445 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_dtor, 4)
10446 void __thiscall basic_ifstream_char_dtor(basic_ios_char *base)
10448 basic_ifstream_char *this = basic_ifstream_char_from_basic_ios(base);
10450 TRACE("(%p)\n", this);
10452 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base));
10453 basic_filebuf_char_dtor(&this->filebuf);
10456 /* ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10457 /* ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10458 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_vbase_dtor, 4)
10459 void __thiscall basic_ifstream_char_vbase_dtor(basic_ifstream_char *this)
10461 TRACE("(%p)\n", this);
10463 basic_ifstream_char_dtor(basic_ifstream_char_to_basic_ios(this));
10464 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base));
10467 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_vector_dtor, 8)
10468 basic_ifstream_char* __thiscall basic_ifstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
10470 basic_ifstream_char *this = basic_ifstream_char_from_basic_ios(base);
10472 TRACE("(%p %x)\n", this, flags);
10475 /* we have an array, with the number of elements stored before the first object */
10476 INT_PTR i, *ptr = (INT_PTR *)this-1;
10478 for(i=*ptr-1; i>=0; i--)
10479 basic_ifstream_char_vbase_dtor(this+i);
10480 MSVCRT_operator_delete(ptr);
10482 basic_ifstream_char_vbase_dtor(this);
10484 MSVCRT_operator_delete(this);
10490 /* ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10491 /* ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10492 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_close, 4)
10493 void __thiscall basic_ifstream_char_close(basic_ifstream_char *this)
10495 TRACE("(%p)\n", this);
10497 if(!basic_filebuf_char_close(&this->filebuf)) {
10498 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base);
10499 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10503 /* ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
10504 /* ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
10505 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_is_open, 4)
10506 MSVCP_bool __thiscall basic_ifstream_char_is_open(const basic_ifstream_char *this)
10508 TRACE("(%p)\n", this);
10509 return basic_filebuf_char_is_open(&this->filebuf);
10512 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
10513 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
10514 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open, 16)
10515 void __thiscall basic_ifstream_char_open(basic_ifstream_char *this,
10516 const char *name, int mode, int prot)
10518 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
10520 if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_in, prot)) {
10521 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base);
10522 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10526 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
10527 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
10528 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open_old, 12)
10529 void __thiscall basic_ifstream_char_open_old(basic_ifstream_char *this,
10530 const char *name, unsigned int mode)
10532 basic_ifstream_char_open(this, name, mode, _SH_DENYNO);
10535 /* ?rdbuf@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10536 /* ?rdbuf@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10537 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_rdbuf, 4)
10538 basic_filebuf_char* __thiscall basic_ifstream_char_rdbuf(const basic_ifstream_char *this)
10540 TRACE("(%p)\n", this);
10541 return (basic_filebuf_char*)&this->filebuf;
10544 static inline basic_ios_wchar* basic_ifstream_wchar_to_basic_ios(basic_ifstream_wchar *ptr)
10546 return (basic_ios_wchar*)((char*)ptr+basic_ifstream_wchar_vbtable[1]);
10549 static inline basic_ifstream_wchar* basic_ifstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
10551 return (basic_ifstream_wchar*)((char*)ptr-basic_ifstream_wchar_vbtable[1]);
10554 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
10555 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
10556 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor, 8)
10557 basic_ifstream_wchar* __thiscall basic_ifstream_wchar_ctor(basic_ifstream_wchar *this, MSVCP_bool virt_init)
10559 basic_ios_wchar *basic_ios;
10561 TRACE("(%p %d)\n", this, virt_init);
10564 this->base.vbtable = basic_ifstream_wchar_vbtable;
10565 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10566 basic_ios_wchar_ctor(basic_ios);
10568 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10571 basic_filebuf_wchar_ctor(&this->filebuf);
10572 basic_istream_wchar_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10573 basic_ios->base.vtable = &MSVCP_basic_ifstream_wchar_vtable;
10577 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
10578 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
10579 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor, 8)
10580 basic_ifstream_wchar* __thiscall basic_ifstream_short_ctor(basic_ifstream_wchar *this, MSVCP_bool virt_init)
10582 basic_ifstream_wchar_ctor(this, virt_init);
10583 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ifstream_short_vtable;
10587 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
10588 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10589 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor_file, 12)
10590 basic_ifstream_wchar* __thiscall basic_ifstream_wchar_ctor_file(
10591 basic_ifstream_wchar *this, FILE *file, MSVCP_bool virt_init)
10593 basic_ios_wchar *basic_ios;
10595 TRACE("(%p %p %d)\n", this, file, virt_init);
10598 this->base.vbtable = basic_ifstream_wchar_vbtable;
10599 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10600 basic_ios_wchar_ctor(basic_ios);
10602 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10605 basic_filebuf_wchar_ctor_file(&this->filebuf, file);
10606 basic_istream_wchar_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10607 basic_ios->base.vtable = &MSVCP_basic_ifstream_wchar_vtable;
10611 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
10612 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10613 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor_file, 12)
10614 basic_ifstream_wchar* __thiscall basic_ifstream_short_ctor_file(
10615 basic_ifstream_wchar *this, FILE *file, MSVCP_bool virt_init)
10617 basic_ifstream_wchar_ctor_file(this, file, virt_init);
10618 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ifstream_short_vtable;
10622 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@PBDHH@Z */
10623 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBDHH@Z */
10624 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor_name, 20)
10625 basic_ifstream_wchar* __thiscall basic_ifstream_wchar_ctor_name(basic_ifstream_wchar *this,
10626 const char *name, int mode, int prot, MSVCP_bool virt_init)
10628 TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
10630 basic_ifstream_wchar_ctor(this, virt_init);
10632 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_in, prot)) {
10633 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10634 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10639 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PBDHH@Z */
10640 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDHH@Z */
10641 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor_name, 20)
10642 basic_ifstream_wchar* __thiscall basic_ifstream_short_ctor_name(basic_ifstream_wchar *this,
10643 const char *name, int mode, int prot, MSVCP_bool virt_init)
10645 basic_ifstream_wchar_ctor_name(this, name, mode, prot, virt_init);
10646 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ifstream_short_vtable;
10650 /* ??1?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
10651 /* ??1?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
10652 /* ??1?$basic_ifstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
10653 /* ??1?$basic_ifstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
10654 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_dtor, 4)
10655 void __thiscall basic_ifstream_wchar_dtor(basic_ios_wchar *base)
10657 basic_ifstream_wchar *this = basic_ifstream_wchar_from_basic_ios(base);
10659 TRACE("(%p)\n", this);
10661 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base));
10662 basic_filebuf_wchar_dtor(&this->filebuf);
10665 /* ??_D?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10666 /* ??_D?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10667 /* ??_D?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10668 /* ??_D?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10669 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_vbase_dtor, 4)
10670 void __thiscall basic_ifstream_wchar_vbase_dtor(basic_ifstream_wchar *this)
10672 TRACE("(%p)\n", this);
10674 basic_ifstream_wchar_dtor(basic_ifstream_wchar_to_basic_ios(this));
10675 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base));
10678 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_vector_dtor, 8)
10679 basic_ifstream_wchar* __thiscall basic_ifstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
10681 basic_ifstream_wchar *this = basic_ifstream_wchar_from_basic_ios(base);
10683 TRACE("(%p %x)\n", this, flags);
10686 /* we have an array, with the number of elements stored before the first object */
10687 INT_PTR i, *ptr = (INT_PTR *)this-1;
10689 for(i=*ptr-1; i>=0; i--)
10690 basic_ifstream_wchar_vbase_dtor(this+i);
10691 MSVCRT_operator_delete(ptr);
10693 basic_ifstream_wchar_vbase_dtor(this);
10695 MSVCRT_operator_delete(this);
10701 /* ?close@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10702 /* ?close@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10703 /* ?close@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10704 /* ?close@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10705 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_close, 4)
10706 void __thiscall basic_ifstream_wchar_close(basic_ifstream_wchar *this)
10708 TRACE("(%p)\n", this);
10710 if(!basic_filebuf_wchar_close(&this->filebuf)) {
10711 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10712 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10716 /* ?is_open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
10717 /* ?is_open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
10718 /* ?is_open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
10719 /* ?is_open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
10720 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_is_open, 4)
10721 MSVCP_bool __thiscall basic_ifstream_wchar_is_open(const basic_ifstream_wchar *this)
10723 TRACE("(%p)\n", this);
10724 return basic_filebuf_wchar_is_open(&this->filebuf);
10727 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDHH@Z */
10728 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDHH@Z */
10729 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBDHH@Z */
10730 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDHH@Z */
10731 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_open, 16)
10732 void __thiscall basic_ifstream_wchar_open(basic_ifstream_wchar *this,
10733 const char *name, int mode, int prot)
10735 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
10737 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_in, prot)) {
10738 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10739 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10743 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDI@Z */
10744 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDI@Z */
10745 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBDI@Z */
10746 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDI@Z */
10747 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_open_old, 12)
10748 void __thiscall basic_ifstream_wchar_open_old(basic_ifstream_wchar *this,
10749 const char *name, unsigned int mode)
10751 basic_ifstream_wchar_open(this, name, mode, _SH_DENYNO);
10754 /* ?rdbuf@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10755 /* ?rdbuf@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10756 /* ?rdbuf@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10757 /* ?rdbuf@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10758 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_rdbuf, 4)
10759 basic_filebuf_wchar* __thiscall basic_ifstream_wchar_rdbuf(const basic_ifstream_wchar *this)
10761 TRACE("(%p)\n", this);
10762 return (basic_filebuf_wchar*)&this->filebuf;
10765 static inline basic_ios_char* basic_fstream_char_to_basic_ios(basic_fstream_char *ptr)
10767 return (basic_ios_char*)((char*)ptr+basic_fstream_char_vbtable1[1]);
10770 static inline basic_fstream_char* basic_fstream_char_from_basic_ios(basic_ios_char *ptr)
10772 return (basic_fstream_char*)((char*)ptr-basic_fstream_char_vbtable1[1]);
10775 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
10776 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
10777 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor, 8)
10778 basic_fstream_char* __thiscall basic_fstream_char_ctor(basic_fstream_char *this, MSVCP_bool virt_init)
10780 basic_ios_char *basic_ios;
10782 TRACE("(%p %d)\n", this, virt_init);
10785 this->base.base1.vbtable = basic_fstream_char_vbtable1;
10786 this->base.base2.vbtable = basic_fstream_char_vbtable2;
10787 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10788 basic_ios_char_ctor(basic_ios);
10790 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10793 basic_filebuf_char_ctor(&this->filebuf);
10794 basic_iostream_char_ctor(&this->base, &this->filebuf.base, FALSE);
10795 basic_ios->base.vtable = &MSVCP_basic_fstream_char_vtable;
10799 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
10800 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10801 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_file, 12)
10802 basic_fstream_char* __thiscall basic_fstream_char_ctor_file(basic_fstream_char *this,
10803 FILE *file, MSVCP_bool virt_init)
10805 basic_ios_char *basic_ios;
10807 TRACE("(%p %p %d)\n", this, file, virt_init);
10810 this->base.base1.vbtable = basic_fstream_char_vbtable1;
10811 this->base.base2.vbtable = basic_fstream_char_vbtable2;
10812 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10813 basic_ios_char_ctor(basic_ios);
10815 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10818 basic_filebuf_char_ctor_file(&this->filebuf, file);
10819 basic_iostream_char_ctor(&this->base, &this->filebuf.base, FALSE);
10820 basic_ios->base.vtable = &MSVCP_basic_fstream_char_vtable;
10824 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
10825 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
10826 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_name, 20)
10827 basic_fstream_char* __thiscall basic_fstream_char_ctor_name(basic_fstream_char *this,
10828 const char *name, int mode, int prot, MSVCP_bool virt_init)
10830 TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
10832 basic_fstream_char_ctor(this, virt_init);
10834 if(!basic_filebuf_char_open(&this->filebuf, name, mode, prot)) {
10835 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10836 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10841 /* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
10842 /* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
10843 DEFINE_THISCALL_WRAPPER(basic_fstream_char_dtor, 4)
10844 void __thiscall basic_fstream_char_dtor(basic_ios_char *base)
10846 basic_fstream_char *this = basic_fstream_char_from_basic_ios(base);
10848 TRACE("(%p)\n", this);
10850 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base));
10851 basic_filebuf_char_dtor(&this->filebuf);
10854 /* ??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10855 /* ??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10856 DEFINE_THISCALL_WRAPPER(basic_fstream_char_vbase_dtor, 4)
10857 void __thiscall basic_fstream_char_vbase_dtor(basic_fstream_char *this)
10859 TRACE("(%p)\n", this);
10861 basic_fstream_char_dtor(basic_fstream_char_to_basic_ios(this));
10862 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base.base1));
10865 DEFINE_THISCALL_WRAPPER(basic_fstream_char_vector_dtor, 8)
10866 basic_fstream_char* __thiscall basic_fstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
10868 basic_fstream_char *this = basic_fstream_char_from_basic_ios(base);
10870 TRACE("(%p %x)\n", this, flags);
10873 /* we have an array, with the number of elements stored before the first object */
10874 INT_PTR i, *ptr = (INT_PTR *)this-1;
10876 for(i=*ptr-1; i>=0; i--)
10877 basic_fstream_char_vbase_dtor(this+i);
10878 MSVCRT_operator_delete(ptr);
10880 basic_fstream_char_vbase_dtor(this);
10882 MSVCRT_operator_delete(this);
10888 /* ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10889 /* ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10890 DEFINE_THISCALL_WRAPPER(basic_fstream_char_close, 4)
10891 void __thiscall basic_fstream_char_close(basic_fstream_char *this)
10893 TRACE("(%p)\n", this);
10895 if(!basic_filebuf_char_close(&this->filebuf)) {
10896 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10897 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10901 /* ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
10902 /* ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
10903 DEFINE_THISCALL_WRAPPER(basic_fstream_char_is_open, 4)
10904 MSVCP_bool __thiscall basic_fstream_char_is_open(const basic_fstream_char *this)
10906 TRACE("(%p)\n", this);
10907 return basic_filebuf_char_is_open(&this->filebuf);
10910 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
10911 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
10912 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open, 16)
10913 void __thiscall basic_fstream_char_open(basic_fstream_char *this,
10914 const char *name, int mode, int prot)
10916 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
10918 if(!basic_filebuf_char_open(&this->filebuf, name, mode, prot)) {
10919 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10920 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10924 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
10925 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
10926 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open_old, 12)
10927 void __thiscall basic_fstream_char_open_old(basic_fstream_char *this,
10928 const char *name, unsigned int mode)
10930 basic_fstream_char_open(this, name, mode, _SH_DENYNO);
10933 /* ?rdbuf@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10934 /* ?rdbuf@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10935 DEFINE_THISCALL_WRAPPER(basic_fstream_char_rdbuf, 4)
10936 basic_filebuf_char* __thiscall basic_fstream_char_rdbuf(const basic_fstream_char *this)
10938 TRACE("(%p)\n", this);
10939 return (basic_filebuf_char*)&this->filebuf;
10942 static inline basic_ios_wchar* basic_fstream_wchar_to_basic_ios(basic_fstream_wchar *ptr)
10944 return (basic_ios_wchar*)((char*)ptr+basic_fstream_wchar_vbtable1[1]);
10947 static inline basic_fstream_wchar* basic_fstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
10949 return (basic_fstream_wchar*)((char*)ptr-basic_fstream_wchar_vbtable1[1]);
10952 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
10953 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
10954 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor, 8)
10955 basic_fstream_wchar* __thiscall basic_fstream_wchar_ctor(basic_fstream_wchar *this, MSVCP_bool virt_init)
10957 basic_ios_wchar *basic_ios;
10959 TRACE("(%p %d)\n", this, virt_init);
10962 this->base.base1.vbtable = basic_fstream_wchar_vbtable1;
10963 this->base.base2.vbtable = basic_fstream_wchar_vbtable2;
10964 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
10965 basic_ios_wchar_ctor(basic_ios);
10967 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
10970 basic_filebuf_wchar_ctor(&this->filebuf);
10971 basic_iostream_wchar_ctor(&this->base, &this->filebuf.base, FALSE);
10972 basic_ios->base.vtable = &MSVCP_basic_fstream_wchar_vtable;
10976 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
10977 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
10978 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor, 8)
10979 basic_fstream_wchar* __thiscall basic_fstream_short_ctor(basic_fstream_wchar *this, MSVCP_bool virt_init)
10981 basic_fstream_wchar_ctor(this, virt_init);
10982 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_fstream_short_vtable;
10986 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
10987 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10988 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor_file, 12)
10989 basic_fstream_wchar* __thiscall basic_fstream_wchar_ctor_file(basic_fstream_wchar *this,
10990 FILE *file, MSVCP_bool virt_init)
10992 basic_ios_wchar *basic_ios;
10994 TRACE("(%p %p %d)\n", this, file, virt_init);
10997 this->base.base1.vbtable = basic_fstream_wchar_vbtable1;
10998 this->base.base2.vbtable = basic_fstream_wchar_vbtable2;
10999 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11000 basic_ios_wchar_ctor(basic_ios);
11002 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11005 basic_filebuf_wchar_ctor_file(&this->filebuf, file);
11006 basic_iostream_wchar_ctor(&this->base, &this->filebuf.base, FALSE);
11007 basic_ios->base.vtable = &MSVCP_basic_fstream_wchar_vtable;
11011 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
11012 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
11013 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor_file, 12)
11014 basic_fstream_wchar* __thiscall basic_fstream_short_ctor_file(basic_fstream_wchar *this,
11015 FILE *file, MSVCP_bool virt_init)
11017 basic_fstream_wchar_ctor_file(this, file, virt_init);
11018 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_fstream_short_vtable;
11022 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PB_WHH@Z */
11023 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEB_WHH@Z */
11024 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor_name, 20)
11025 basic_fstream_wchar* __thiscall basic_fstream_wchar_ctor_name(basic_fstream_wchar *this,
11026 const char *name, int mode, int prot, MSVCP_bool virt_init)
11028 TRACE("(%p %s %d %d %d)\n", this, name, mode, prot, virt_init);
11030 basic_fstream_wchar_ctor(this, virt_init);
11032 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode, prot)) {
11033 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11034 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
11039 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PBGHH@Z */
11040 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEBGHH@Z */
11041 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor_name, 20)
11042 basic_fstream_wchar* __thiscall basic_fstream_short_ctor_name(basic_fstream_wchar *this,
11043 const char *name, int mode, int prot, MSVCP_bool virt_init)
11045 basic_fstream_wchar_ctor_name(this, name, mode, prot, virt_init);
11046 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_fstream_short_vtable;
11050 /* ??1?$basic_fstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
11051 /* ??1?$basic_fstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
11052 /* ??1?$basic_fstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
11053 /* ??1?$basic_fstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
11054 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_dtor, 4)
11055 void __thiscall basic_fstream_wchar_dtor(basic_ios_wchar *base)
11057 basic_fstream_wchar *this = basic_fstream_wchar_from_basic_ios(base);
11059 TRACE("(%p)\n", this);
11061 basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(&this->base));
11062 basic_filebuf_wchar_dtor(&this->filebuf);
11065 /* ??_D?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
11066 /* ??_D?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
11067 /* ??_D?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
11068 /* ??_D?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
11069 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_vbase_dtor, 4)
11070 void __thiscall basic_fstream_wchar_vbase_dtor(basic_fstream_wchar *this)
11072 TRACE("(%p)\n", this);
11074 basic_fstream_wchar_dtor(basic_fstream_wchar_to_basic_ios(this));
11075 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base.base1));
11078 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_vector_dtor, 8)
11079 basic_fstream_wchar* __thiscall basic_fstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
11081 basic_fstream_wchar *this = basic_fstream_wchar_from_basic_ios(base);
11083 TRACE("(%p %x)\n", this, flags);
11086 /* we have an array, with the number of elements stored before the first object */
11087 INT_PTR i, *ptr = (INT_PTR *)this-1;
11089 for(i=*ptr-1; i>=0; i--)
11090 basic_fstream_wchar_vbase_dtor(this+i);
11091 MSVCRT_operator_delete(ptr);
11093 basic_fstream_wchar_vbase_dtor(this);
11095 MSVCRT_operator_delete(this);
11101 /* ?close@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
11102 /* ?close@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
11103 /* ?close@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
11104 /* ?close@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
11105 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_close, 4)
11106 void __thiscall basic_fstream_wchar_close(basic_fstream_wchar *this)
11108 TRACE("(%p)\n", this);
11110 if(!basic_filebuf_wchar_close(&this->filebuf)) {
11111 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11112 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
11116 /* ?is_open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
11117 /* ?is_open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
11118 /* ?is_open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
11119 /* ?is_open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
11120 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_is_open, 4)
11121 MSVCP_bool __thiscall basic_fstream_wchar_is_open(const basic_fstream_wchar *this)
11123 TRACE("(%p)\n", this);
11124 return basic_filebuf_wchar_is_open(&this->filebuf);
11127 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDHH@Z */
11128 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDHH@Z */
11129 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPBDHH@Z */
11130 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDHH@Z */
11131 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_open, 16)
11132 void __thiscall basic_fstream_wchar_open(basic_fstream_wchar *this,
11133 const char *name, int mode, int prot)
11135 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
11137 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode, prot)) {
11138 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11139 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
11143 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDI@Z */
11144 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDI@Z */
11145 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPBDI@Z */
11146 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDI@Z */
11147 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_open_old, 12)
11148 void __thiscall basic_fstream_wchar_open_old(basic_fstream_wchar *this,
11149 const char *name, unsigned int mode)
11151 basic_fstream_wchar_open(this, name, mode, _SH_DENYNO);
11154 /* ?rdbuf@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
11155 /* ?rdbuf@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
11156 /* ?rdbuf@?$basic_fstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
11157 /* ?rdbuf@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
11158 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_rdbuf, 4)
11159 basic_filebuf_wchar* __thiscall basic_fstream_wchar_rdbuf(const basic_fstream_wchar *this)
11161 TRACE("(%p)\n", this);
11162 return (basic_filebuf_wchar*)&this->filebuf;
11165 static inline basic_ios_char* basic_ostringstream_char_to_basic_ios(basic_ostringstream_char *ptr)
11167 return (basic_ios_char*)((char*)ptr+basic_ostringstream_char_vbtable[1]);
11170 static inline basic_ostringstream_char* basic_ostringstream_char_from_basic_ios(basic_ios_char *ptr)
11172 return (basic_ostringstream_char*)((char*)ptr-basic_ostringstream_char_vbtable[1]);
11175 /* ??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 */
11176 /* ??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 */
11177 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_str, 16)
11178 basic_ostringstream_char* __thiscall basic_ostringstream_char_ctor_str(basic_ostringstream_char *this,
11179 const basic_string_char *str, int mode, MSVCP_bool virt_init)
11181 basic_ios_char *basic_ios;
11183 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11186 this->base.vbtable = basic_ostringstream_char_vbtable;
11187 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
11188 basic_ios_char_ctor(basic_ios);
11190 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
11193 basic_stringbuf_char_ctor_str(&this->strbuf, str, mode|OPENMODE_out);
11194 basic_ostream_char_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11195 basic_ios->base.vtable = &MSVCP_basic_ostringstream_char_vtable;
11199 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
11200 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
11201 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_mode, 12)
11202 basic_ostringstream_char* __thiscall basic_ostringstream_char_ctor_mode(
11203 basic_ostringstream_char *this, int mode, MSVCP_bool virt_init)
11205 basic_ios_char *basic_ios;
11207 TRACE("(%p %d %d)\n", this, mode, virt_init);
11210 this->base.vbtable = basic_ostringstream_char_vbtable;
11211 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
11212 basic_ios_char_ctor(basic_ios);
11214 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
11217 basic_stringbuf_char_ctor_mode(&this->strbuf, mode|OPENMODE_out);
11218 basic_ostream_char_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11219 basic_ios->base.vtable = &MSVCP_basic_ostringstream_char_vtable;
11223 /* ??_F?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11224 /* ??_F?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11225 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor, 8)
11226 basic_ostringstream_char* __thiscall basic_ostringstream_char_ctor(
11227 basic_ostringstream_char *this, MSVCP_bool virt_init)
11229 return basic_ostringstream_char_ctor_mode(this, 0, virt_init);
11232 /* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
11233 /* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
11234 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_dtor, 4)
11235 void __thiscall basic_ostringstream_char_dtor(basic_ios_char *base)
11237 basic_ostringstream_char *this = basic_ostringstream_char_from_basic_ios(base);
11239 TRACE("(%p)\n", this);
11241 basic_stringbuf_char_dtor(&this->strbuf);
11242 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base));
11245 /* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11246 /* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11247 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_vbase_dtor, 4)
11248 void __thiscall basic_ostringstream_char_vbase_dtor(basic_ostringstream_char *this)
11250 TRACE("(%p)\n", this);
11252 basic_ostringstream_char_dtor(basic_ostringstream_char_to_basic_ios(this));
11253 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base));
11256 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_vector_dtor, 8)
11257 basic_ostringstream_char* __thiscall basic_ostringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
11259 basic_ostringstream_char *this = basic_ostringstream_char_from_basic_ios(base);
11261 TRACE("(%p %x)\n", this, flags);
11264 /* we have an array, with the number of elements stored before the first object */
11265 INT_PTR i, *ptr = (INT_PTR *)this-1;
11267 for(i=*ptr-1; i>=0; i--)
11268 basic_ostringstream_char_vbase_dtor(this+i);
11269 MSVCRT_operator_delete(ptr);
11271 basic_ostringstream_char_vbase_dtor(this);
11273 MSVCRT_operator_delete(this);
11279 /* ?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 */
11280 /* ?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 */
11281 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_rdbuf, 4)
11282 basic_stringbuf_char* __thiscall basic_ostringstream_char_rdbuf(const basic_ostringstream_char *this)
11284 TRACE("(%p)\n", this);
11285 return (basic_stringbuf_char*)&this->strbuf;
11288 /* ?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 */
11289 /* ?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 */
11290 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_str_set, 8)
11291 void __thiscall basic_ostringstream_char_str_set(basic_ostringstream_char *this, const basic_string_char *str)
11293 TRACE("(%p %p)\n", this, str);
11294 basic_stringbuf_char_str_set(&this->strbuf, str);
11297 /* ?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 */
11298 /* ?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 */
11299 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_str_get, 8)
11300 basic_string_char* __thiscall basic_ostringstream_char_str_get(const basic_ostringstream_char *this, basic_string_char *ret)
11302 TRACE("(%p %p)\n", this, ret);
11303 return basic_stringbuf_char_str_get(&this->strbuf, ret);
11306 static inline basic_ios_wchar* basic_ostringstream_wchar_to_basic_ios(basic_ostringstream_wchar *ptr)
11308 return (basic_ios_wchar*)((char*)ptr+basic_ostringstream_wchar_vbtable[1]);
11311 static inline basic_ostringstream_wchar* basic_ostringstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
11313 return (basic_ostringstream_wchar*)((char*)ptr-basic_ostringstream_wchar_vbtable[1]);
11316 /* ??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 */
11317 /* ??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 */
11318 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor_str, 16)
11319 basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_ctor_str(basic_ostringstream_wchar *this,
11320 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
11322 basic_ios_wchar *basic_ios;
11324 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11327 this->base.vbtable = basic_ostringstream_wchar_vbtable;
11328 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
11329 basic_ios_wchar_ctor(basic_ios);
11331 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
11334 basic_stringbuf_wchar_ctor_str(&this->strbuf, str, mode|OPENMODE_out);
11335 basic_ostream_wchar_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11336 basic_ios->base.vtable = &MSVCP_basic_ostringstream_wchar_vtable;
11340 /* ??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 */
11341 /* ??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 */
11342 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor_str, 16)
11343 basic_ostringstream_wchar* __thiscall basic_ostringstream_short_ctor_str(basic_ostringstream_wchar *this,
11344 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
11346 basic_ostringstream_wchar_ctor_str(this, str, mode, virt_init);
11347 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ostringstream_short_vtable;
11351 /* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
11352 /* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
11353 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor_mode, 12)
11354 basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_ctor_mode(
11355 basic_ostringstream_wchar *this, int mode, MSVCP_bool virt_init)
11357 basic_ios_wchar *basic_ios;
11359 TRACE("(%p %d %d)\n", this, mode, virt_init);
11362 this->base.vbtable = basic_ostringstream_wchar_vbtable;
11363 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
11364 basic_ios_wchar_ctor(basic_ios);
11366 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
11369 basic_stringbuf_wchar_ctor_mode(&this->strbuf, mode|OPENMODE_out);
11370 basic_ostream_wchar_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11371 basic_ios->base.vtable = &MSVCP_basic_ostringstream_wchar_vtable;
11375 /* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
11376 /* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
11377 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor_mode, 12)
11378 basic_ostringstream_wchar* __thiscall basic_ostringstream_short_ctor_mode(
11379 basic_ostringstream_wchar *this, int mode, MSVCP_bool virt_init)
11381 basic_ostringstream_wchar_ctor_mode(this, mode, virt_init);
11382 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ostringstream_short_vtable;
11386 /* ??_F?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11387 /* ??_F?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11388 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor, 8)
11389 basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_ctor(
11390 basic_ostringstream_wchar *this, MSVCP_bool virt_init)
11392 return basic_ostringstream_wchar_ctor_mode(this, 0, virt_init);
11395 /* ??_F?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11396 /* ??_F?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11397 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor, 8)
11398 basic_ostringstream_wchar* __thiscall basic_ostringstream_short_ctor(
11399 basic_ostringstream_wchar *this, MSVCP_bool virt_init)
11401 return basic_ostringstream_short_ctor_mode(this, 0, virt_init);
11404 /* ??1?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
11405 /* ??1?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
11406 /* ??1?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
11407 /* ??1?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
11408 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_dtor, 4)
11409 void __thiscall basic_ostringstream_wchar_dtor(basic_ios_wchar *base)
11411 basic_ostringstream_wchar *this = basic_ostringstream_wchar_from_basic_ios(base);
11413 TRACE("(%p)\n", this);
11415 basic_stringbuf_wchar_dtor(&this->strbuf);
11416 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base));
11419 /* ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11420 /* ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11421 /* ??_D?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11422 /* ??_D?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11423 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_vbase_dtor, 4)
11424 void __thiscall basic_ostringstream_wchar_vbase_dtor(basic_ostringstream_wchar *this)
11426 TRACE("(%p)\n", this);
11428 basic_ostringstream_wchar_dtor(basic_ostringstream_wchar_to_basic_ios(this));
11429 basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(&this->base));
11432 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_vector_dtor, 8)
11433 basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
11435 basic_ostringstream_wchar *this = basic_ostringstream_wchar_from_basic_ios(base);
11437 TRACE("(%p %x)\n", this, flags);
11440 /* we have an array, with the number of elements stored before the first object */
11441 INT_PTR i, *ptr = (INT_PTR *)this-1;
11443 for(i=*ptr-1; i>=0; i--)
11444 basic_ostringstream_wchar_vbase_dtor(this+i);
11445 MSVCRT_operator_delete(ptr);
11447 basic_ostringstream_wchar_vbase_dtor(this);
11449 MSVCRT_operator_delete(this);
11455 /* ?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 */
11456 /* ?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 */
11457 /* ?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 */
11458 /* ?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 */
11459 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_rdbuf, 4)
11460 basic_stringbuf_wchar* __thiscall basic_ostringstream_wchar_rdbuf(const basic_ostringstream_wchar *this)
11462 TRACE("(%p)\n", this);
11463 return (basic_stringbuf_wchar*)&this->strbuf;
11466 /* ?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 */
11467 /* ?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 */
11468 /* ?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 */
11469 /* ?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 */
11470 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_str_set, 8)
11471 void __thiscall basic_ostringstream_wchar_str_set(basic_ostringstream_wchar *this, const basic_string_wchar *str)
11473 TRACE("(%p %p)\n", this, str);
11474 basic_stringbuf_wchar_str_set(&this->strbuf, str);
11477 /* ?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 */
11478 /* ?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 */
11479 /* ?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 */
11480 /* ?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 */
11481 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_str_get, 8)
11482 basic_string_wchar* __thiscall basic_ostringstream_wchar_str_get(const basic_ostringstream_wchar *this, basic_string_wchar *ret)
11484 TRACE("(%p %p)\n", this, ret);
11485 return basic_stringbuf_wchar_str_get(&this->strbuf, ret);
11488 static inline basic_ios_char* basic_istringstream_char_to_basic_ios(basic_istringstream_char *ptr)
11490 return (basic_ios_char*)((char*)ptr+basic_istringstream_char_vbtable[1]);
11493 static inline basic_istringstream_char* basic_istringstream_char_from_basic_ios(basic_ios_char *ptr)
11495 return (basic_istringstream_char*)((char*)ptr-basic_istringstream_char_vbtable[1]);
11498 /* ??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 */
11499 /* ??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 */
11500 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_str, 16)
11501 basic_istringstream_char* __thiscall basic_istringstream_char_ctor_str(basic_istringstream_char *this,
11502 const basic_string_char *str, int mode, MSVCP_bool virt_init)
11504 basic_ios_char *basic_ios;
11506 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11509 this->base.vbtable = basic_istringstream_char_vbtable;
11510 basic_ios = basic_istream_char_get_basic_ios(&this->base);
11511 basic_ios_char_ctor(basic_ios);
11513 basic_ios = basic_istream_char_get_basic_ios(&this->base);
11516 basic_stringbuf_char_ctor_str(&this->strbuf, str, mode|OPENMODE_in);
11517 basic_istream_char_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11518 basic_ios->base.vtable = &MSVCP_basic_istringstream_char_vtable;
11522 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
11523 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
11524 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_mode, 12)
11525 basic_istringstream_char* __thiscall basic_istringstream_char_ctor_mode(
11526 basic_istringstream_char *this, int mode, MSVCP_bool virt_init)
11528 basic_ios_char *basic_ios;
11530 TRACE("(%p %d %d)\n", this, mode, virt_init);
11533 this->base.vbtable = basic_istringstream_char_vbtable;
11534 basic_ios = basic_istream_char_get_basic_ios(&this->base);
11535 basic_ios_char_ctor(basic_ios);
11537 basic_ios = basic_istream_char_get_basic_ios(&this->base);
11540 basic_stringbuf_char_ctor_mode(&this->strbuf, mode|OPENMODE_in);
11541 basic_istream_char_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11542 basic_ios->base.vtable = &MSVCP_basic_istringstream_char_vtable;
11546 /* ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11547 /* ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11548 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor, 8)
11549 basic_istringstream_char* __thiscall basic_istringstream_char_ctor(
11550 basic_istringstream_char *this, MSVCP_bool virt_init)
11552 return basic_istringstream_char_ctor_mode(this, 0, virt_init);
11555 /* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
11556 /* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
11557 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_dtor, 4)
11558 void __thiscall basic_istringstream_char_dtor(basic_ios_char *base)
11560 basic_istringstream_char *this = basic_istringstream_char_from_basic_ios(base);
11562 TRACE("(%p)\n", this);
11564 basic_stringbuf_char_dtor(&this->strbuf);
11565 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base));
11568 /* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11569 /* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11570 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_vbase_dtor, 4)
11571 void __thiscall basic_istringstream_char_vbase_dtor(basic_istringstream_char *this)
11573 TRACE("(%p)\n", this);
11575 basic_istringstream_char_dtor(basic_istringstream_char_to_basic_ios(this));
11576 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base));
11579 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_vector_dtor, 8)
11580 basic_istringstream_char* __thiscall basic_istringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
11582 basic_istringstream_char *this = basic_istringstream_char_from_basic_ios(base);
11584 TRACE("(%p %x)\n", this, flags);
11587 /* we have an array, with the number of elements stored before the first object */
11588 INT_PTR i, *ptr = (INT_PTR *)this-1;
11590 for(i=*ptr-1; i>=0; i--)
11591 basic_istringstream_char_vbase_dtor(this+i);
11592 MSVCRT_operator_delete(ptr);
11594 basic_istringstream_char_vbase_dtor(this);
11596 MSVCRT_operator_delete(this);
11602 /* ?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 */
11603 /* ?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 */
11604 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_rdbuf, 4)
11605 basic_stringbuf_char* __thiscall basic_istringstream_char_rdbuf(const basic_istringstream_char *this)
11607 TRACE("(%p)\n", this);
11608 return (basic_stringbuf_char*)&this->strbuf;
11611 /* ?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 */
11612 /* ?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 */
11613 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_str_set, 8)
11614 void __thiscall basic_istringstream_char_str_set(basic_istringstream_char *this, const basic_string_char *str)
11616 TRACE("(%p %p)\n", this, str);
11617 basic_stringbuf_char_str_set(&this->strbuf, str);
11620 /* ?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 */
11621 /* ?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 */
11622 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_str_get, 8)
11623 basic_string_char* __thiscall basic_istringstream_char_str_get(const basic_istringstream_char *this, basic_string_char *ret)
11625 TRACE("(%p %p)\n", this, ret);
11626 return basic_stringbuf_char_str_get(&this->strbuf, ret);
11629 static inline basic_ios_wchar* basic_istringstream_wchar_to_basic_ios(basic_istringstream_wchar *ptr)
11631 return (basic_ios_wchar*)((char*)ptr+basic_istringstream_wchar_vbtable[1]);
11634 static inline basic_istringstream_wchar* basic_istringstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
11636 return (basic_istringstream_wchar*)((char*)ptr-basic_istringstream_wchar_vbtable[1]);
11639 /* ??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 */
11640 /* ??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 */
11641 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor_str, 16)
11642 basic_istringstream_wchar* __thiscall basic_istringstream_wchar_ctor_str(basic_istringstream_wchar *this,
11643 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
11645 basic_ios_wchar *basic_ios;
11647 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11650 this->base.vbtable = basic_istringstream_wchar_vbtable;
11651 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
11652 basic_ios_wchar_ctor(basic_ios);
11654 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
11657 basic_stringbuf_wchar_ctor_str(&this->strbuf, str, mode|OPENMODE_in);
11658 basic_istream_wchar_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11659 basic_ios->base.vtable = &MSVCP_basic_istringstream_wchar_vtable;
11663 /* ??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 */
11664 /* ??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 */
11665 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor_str, 16)
11666 basic_istringstream_wchar* __thiscall basic_istringstream_short_ctor_str(basic_istringstream_wchar *this,
11667 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
11669 basic_istringstream_wchar_ctor_str(this, str, mode, virt_init);
11670 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_istringstream_short_vtable;
11674 /* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
11675 /* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
11676 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor_mode, 12)
11677 basic_istringstream_wchar* __thiscall basic_istringstream_wchar_ctor_mode(
11678 basic_istringstream_wchar *this, int mode, MSVCP_bool virt_init)
11680 basic_ios_wchar *basic_ios;
11682 TRACE("(%p %d %d)\n", this, mode, virt_init);
11685 this->base.vbtable = basic_istringstream_wchar_vbtable;
11686 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
11687 basic_ios_wchar_ctor(basic_ios);
11689 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
11692 basic_stringbuf_wchar_ctor_mode(&this->strbuf, mode|OPENMODE_in);
11693 basic_istream_wchar_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11694 basic_ios->base.vtable = &MSVCP_basic_istringstream_wchar_vtable;
11698 /* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
11699 /* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
11700 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor_mode, 12)
11701 basic_istringstream_wchar* __thiscall basic_istringstream_short_ctor_mode(
11702 basic_istringstream_wchar *this, int mode, MSVCP_bool virt_init)
11704 basic_istringstream_wchar_ctor_mode(this, mode, virt_init);
11705 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_istringstream_short_vtable;
11709 /* ??_F?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11710 /* ??_F?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11711 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor, 8)
11712 basic_istringstream_wchar* __thiscall basic_istringstream_wchar_ctor(
11713 basic_istringstream_wchar *this, MSVCP_bool virt_init)
11715 return basic_istringstream_wchar_ctor_mode(this, 0, virt_init);
11718 /* ??_F?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11719 /* ??_F?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11720 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor, 8)
11721 basic_istringstream_wchar* __thiscall basic_istringstream_short_ctor(
11722 basic_istringstream_wchar *this, MSVCP_bool virt_init)
11724 return basic_istringstream_short_ctor_mode(this, 0, virt_init);
11727 /* ??1?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
11728 /* ??1?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
11729 /* ??1?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
11730 /* ??1?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
11731 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_dtor, 4)
11732 void __thiscall basic_istringstream_wchar_dtor(basic_ios_wchar *base)
11734 basic_istringstream_wchar *this = basic_istringstream_wchar_from_basic_ios(base);
11736 TRACE("(%p)\n", this);
11738 basic_stringbuf_wchar_dtor(&this->strbuf);
11739 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base));
11742 /* ??_D?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11743 /* ??_D?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11744 /* ??_D?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11745 /* ??_D?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11746 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_vbase_dtor, 4)
11747 void __thiscall basic_istringstream_wchar_vbase_dtor(basic_istringstream_wchar *this)
11749 TRACE("(%p)\n", this);
11751 basic_istringstream_wchar_dtor(basic_istringstream_wchar_to_basic_ios(this));
11752 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base));
11755 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_vector_dtor, 8)
11756 basic_istringstream_wchar* __thiscall basic_istringstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
11758 basic_istringstream_wchar *this = basic_istringstream_wchar_from_basic_ios(base);
11760 TRACE("(%p %x)\n", this, flags);
11763 /* we have an array, with the number of elements stored before the first object */
11764 INT_PTR i, *ptr = (INT_PTR *)this-1;
11766 for(i=*ptr-1; i>=0; i--)
11767 basic_istringstream_wchar_vbase_dtor(this+i);
11768 MSVCRT_operator_delete(ptr);
11770 basic_istringstream_wchar_vbase_dtor(this);
11772 MSVCRT_operator_delete(this);
11778 /* ?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 */
11779 /* ?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 */
11780 /* ?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 */
11781 /* ?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 */
11782 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_rdbuf, 4)
11783 basic_stringbuf_wchar* __thiscall basic_istringstream_wchar_rdbuf(const basic_istringstream_wchar *this)
11785 TRACE("(%p)\n", this);
11786 return (basic_stringbuf_wchar*)&this->strbuf;
11789 /* ?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 */
11790 /* ?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 */
11791 /* ?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 */
11792 /* ?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 */
11793 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_str_set, 8)
11794 void __thiscall basic_istringstream_wchar_str_set(basic_istringstream_wchar *this, const basic_string_wchar *str)
11796 TRACE("(%p %p)\n", this, str);
11797 basic_stringbuf_wchar_str_set(&this->strbuf, str);
11800 /* ?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 */
11801 /* ?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 */
11802 /* ?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 */
11803 /* ?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 */
11804 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_str_get, 8)
11805 basic_string_wchar* __thiscall basic_istringstream_wchar_str_get(const basic_istringstream_wchar *this, basic_string_wchar *ret)
11807 TRACE("(%p %p)\n", this, ret);
11808 return basic_stringbuf_wchar_str_get(&this->strbuf, ret);
11811 static inline basic_ios_char* basic_stringstream_char_to_basic_ios(basic_stringstream_char *ptr)
11813 return (basic_ios_char*)((char*)ptr+basic_stringstream_char_vbtable1[1]);
11816 static inline basic_stringstream_char* basic_stringstream_char_from_basic_ios(basic_ios_char *ptr)
11818 return (basic_stringstream_char*)((char*)ptr-basic_stringstream_char_vbtable1[1]);
11821 /* ??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 */
11822 /* ??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 */
11823 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_str, 16)
11824 basic_stringstream_char* __thiscall basic_stringstream_char_ctor_str(basic_stringstream_char *this,
11825 const basic_string_char *str, int mode, MSVCP_bool virt_init)
11827 basic_ios_char *basic_ios;
11829 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11832 this->base.base1.vbtable = basic_stringstream_char_vbtable1;
11833 this->base.base2.vbtable = basic_stringstream_char_vbtable2;
11834 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11835 basic_ios_char_ctor(basic_ios);
11837 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11840 basic_stringbuf_char_ctor_str(&this->strbuf, str, mode);
11841 basic_iostream_char_ctor(&this->base, &this->strbuf.base, FALSE);
11842 basic_ios->base.vtable = &MSVCP_basic_stringstream_char_vtable;
11846 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
11847 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
11848 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_mode, 12)
11849 basic_stringstream_char* __thiscall basic_stringstream_char_ctor_mode(
11850 basic_stringstream_char *this, int mode, MSVCP_bool virt_init)
11852 basic_ios_char *basic_ios;
11854 TRACE("(%p %d %d)\n", this, mode, virt_init);
11857 this->base.base1.vbtable = basic_stringstream_char_vbtable1;
11858 this->base.base2.vbtable = basic_stringstream_char_vbtable2;
11859 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11860 basic_ios_char_ctor(basic_ios);
11862 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11865 basic_stringbuf_char_ctor_mode(&this->strbuf, mode);
11866 basic_iostream_char_ctor(&this->base, &this->strbuf.base, FALSE);
11867 basic_ios->base.vtable = &MSVCP_basic_stringstream_char_vtable;
11871 /* ??_F?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11872 /* ??_F?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11873 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor, 8)
11874 basic_stringstream_char* __thiscall basic_stringstream_char_ctor(
11875 basic_stringstream_char *this, MSVCP_bool virt_init)
11877 return basic_stringstream_char_ctor_mode(
11878 this, OPENMODE_out|OPENMODE_in, virt_init);
11881 /* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
11882 /* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
11883 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_dtor, 4)
11884 void __thiscall basic_stringstream_char_dtor(basic_ios_char *base)
11886 basic_stringstream_char *this = basic_stringstream_char_from_basic_ios(base);
11888 TRACE("(%p)\n", this);
11890 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base));
11891 basic_stringbuf_char_dtor(&this->strbuf);
11894 /* ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11895 /* ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11896 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_vbase_dtor, 4)
11897 void __thiscall basic_stringstream_char_vbase_dtor(basic_stringstream_char *this)
11899 TRACE("(%p)\n", this);
11901 basic_stringstream_char_dtor(basic_stringstream_char_to_basic_ios(this));
11902 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base.base1));
11905 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_vector_dtor, 8)
11906 basic_stringstream_char* __thiscall basic_stringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
11908 basic_stringstream_char *this = basic_stringstream_char_from_basic_ios(base);
11910 TRACE("(%p %x)\n", this, flags);
11913 /* we have an array, with the number of elements stored before the first object */
11914 INT_PTR i, *ptr = (INT_PTR *)this-1;
11916 for(i=*ptr-1; i>=0; i--)
11917 basic_stringstream_char_vbase_dtor(this+i);
11918 MSVCRT_operator_delete(ptr);
11920 basic_stringstream_char_vbase_dtor(this);
11922 MSVCRT_operator_delete(this);
11928 /* ?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 */
11929 /* ?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 */
11930 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_rdbuf, 4)
11931 basic_stringbuf_char* __thiscall basic_stringstream_char_rdbuf(const basic_stringstream_char *this)
11933 TRACE("(%p)\n", this);
11934 return (basic_stringbuf_char*)&this->strbuf;
11937 /* ?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 */
11938 /* ?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 */
11939 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_str_set, 8)
11940 void __thiscall basic_stringstream_char_str_set(basic_stringstream_char *this, const basic_string_char *str)
11942 TRACE("(%p %p)\n", this, str);
11943 basic_stringbuf_char_str_set(&this->strbuf, str);
11946 /* ?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 */
11947 /* ?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 */
11948 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_str_get, 8)
11949 basic_string_char* __thiscall basic_stringstream_char_str_get(const basic_stringstream_char *this, basic_string_char *ret)
11951 TRACE("(%p %p)\n", this, ret);
11952 return basic_stringbuf_char_str_get(&this->strbuf, ret);
11955 static inline basic_ios_wchar* basic_stringstream_wchar_to_basic_ios(basic_stringstream_wchar *ptr)
11957 return (basic_ios_wchar*)((char*)ptr+basic_stringstream_wchar_vbtable1[1]);
11960 static inline basic_stringstream_wchar* basic_stringstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
11962 return (basic_stringstream_wchar*)((char*)ptr-basic_stringstream_wchar_vbtable1[1]);
11965 /* ??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 */
11966 /* ??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 */
11967 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor_str, 16)
11968 basic_stringstream_wchar* __thiscall basic_stringstream_wchar_ctor_str(basic_stringstream_wchar *this,
11969 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
11971 basic_ios_wchar *basic_ios;
11973 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11976 this->base.base1.vbtable = basic_stringstream_wchar_vbtable1;
11977 this->base.base2.vbtable = basic_stringstream_wchar_vbtable2;
11978 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11979 basic_ios_wchar_ctor(basic_ios);
11981 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11984 basic_stringbuf_wchar_ctor_str(&this->strbuf, str, mode);
11985 basic_iostream_wchar_ctor(&this->base, &this->strbuf.base, FALSE);
11986 basic_ios->base.vtable = &MSVCP_basic_stringstream_wchar_vtable;
11990 /* ??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 */
11991 /* ??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 */
11992 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor_str, 16)
11993 basic_stringstream_wchar* __thiscall basic_stringstream_short_ctor_str(basic_stringstream_wchar *this,
11994 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
11996 basic_stringstream_wchar_ctor_str(this, str, mode, virt_init);
11997 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_stringstream_short_vtable;
12001 /* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
12002 /* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
12003 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor_mode, 12)
12004 basic_stringstream_wchar* __thiscall basic_stringstream_wchar_ctor_mode(
12005 basic_stringstream_wchar *this, int mode, MSVCP_bool virt_init)
12007 basic_ios_wchar *basic_ios;
12009 TRACE("(%p %d %d)\n", this, mode, virt_init);
12012 this->base.base1.vbtable = basic_stringstream_wchar_vbtable1;
12013 this->base.base2.vbtable = basic_stringstream_wchar_vbtable2;
12014 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
12015 basic_ios_wchar_ctor(basic_ios);
12017 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
12020 basic_stringbuf_wchar_ctor_mode(&this->strbuf, mode);
12021 basic_iostream_wchar_ctor(&this->base, &this->strbuf.base, FALSE);
12022 basic_ios->base.vtable = &MSVCP_basic_stringstream_wchar_vtable;
12026 /* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
12027 /* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
12028 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor_mode, 12)
12029 basic_stringstream_wchar* __thiscall basic_stringstream_short_ctor_mode(
12030 basic_stringstream_wchar *this, int mode, MSVCP_bool virt_init)
12032 basic_stringstream_wchar_ctor_mode(this, mode, virt_init);
12033 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_stringstream_short_vtable;
12037 /* ??_F?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
12038 /* ??_F?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
12039 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor, 8)
12040 basic_stringstream_wchar* __thiscall basic_stringstream_wchar_ctor(
12041 basic_stringstream_wchar *this, MSVCP_bool virt_init)
12043 return basic_stringstream_wchar_ctor_mode(
12044 this, OPENMODE_out|OPENMODE_in, virt_init);
12047 /* ??_F?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
12048 /* ??_F?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
12049 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor, 8)
12050 basic_stringstream_wchar* __thiscall basic_stringstream_short_ctor(
12051 basic_stringstream_wchar *this, MSVCP_bool virt_init)
12053 return basic_stringstream_short_ctor_mode(
12054 this, OPENMODE_out|OPENMODE_in, virt_init);
12057 /* ??1?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
12058 /* ??1?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
12059 /* ??1?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
12060 /* ??1?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
12061 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_dtor, 4)
12062 void __thiscall basic_stringstream_wchar_dtor(basic_ios_wchar *base)
12064 basic_stringstream_wchar *this = basic_stringstream_wchar_from_basic_ios(base);
12066 TRACE("(%p)\n", this);
12068 basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(&this->base));
12069 basic_stringbuf_wchar_dtor(&this->strbuf);
12072 /* ??_D?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
12073 /* ??_D?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
12074 /* ??_D?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
12075 /* ??_D?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
12076 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_vbase_dtor, 4)
12077 void __thiscall basic_stringstream_wchar_vbase_dtor(basic_stringstream_wchar *this)
12079 TRACE("(%p)\n", this);
12081 basic_stringstream_wchar_dtor(basic_stringstream_wchar_to_basic_ios(this));
12082 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base.base1));
12085 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_vector_dtor, 8)
12086 basic_stringstream_wchar* __thiscall basic_stringstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
12088 basic_stringstream_wchar *this = basic_stringstream_wchar_from_basic_ios(base);
12090 TRACE("(%p %x)\n", this, flags);
12093 /* we have an array, with the number of elements stored before the first object */
12094 INT_PTR i, *ptr = (INT_PTR *)this-1;
12096 for(i=*ptr-1; i>=0; i--)
12097 basic_stringstream_wchar_vbase_dtor(this+i);
12098 MSVCRT_operator_delete(ptr);
12100 basic_stringstream_wchar_vbase_dtor(this);
12102 MSVCRT_operator_delete(this);
12108 /* ?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 */
12109 /* ?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 */
12110 /* ?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 */
12111 /* ?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 */
12112 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_rdbuf, 4)
12113 basic_stringbuf_wchar* __thiscall basic_stringstream_wchar_rdbuf(const basic_stringstream_wchar *this)
12115 TRACE("(%p)\n", this);
12116 return (basic_stringbuf_wchar*)&this->strbuf;
12119 /* ?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 */
12120 /* ?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 */
12121 /* ?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 */
12122 /* ?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 */
12123 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_str_set, 8)
12124 void __thiscall basic_stringstream_wchar_str_set(basic_stringstream_wchar *this, const basic_string_wchar *str)
12126 TRACE("(%p %p)\n", this, str);
12127 basic_stringbuf_wchar_str_set(&this->strbuf, str);
12130 /* ?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 */
12131 /* ?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 */
12132 /* ?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 */
12133 /* ?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 */
12134 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_str_get, 8)
12135 basic_string_wchar* __thiscall basic_stringstream_wchar_str_get(const basic_stringstream_wchar *this, basic_string_wchar *ret)
12137 TRACE("(%p %p)\n", this, ret);
12138 return basic_stringbuf_wchar_str_get(&this->strbuf, ret);
12141 /* ?_Init@strstreambuf@std@@IAEXHPAD0H@Z */
12142 /* ?_Init@strstreambuf@std@@IEAAX_JPEAD1H@Z */
12143 DEFINE_THISCALL_WRAPPER(strstreambuf__Init, 20)
12144 void __thiscall strstreambuf__Init(strstreambuf *this, streamsize len, char *g, char *p, int mode)
12146 TRACE("(%p %ld %p %p %d)\n", this, len, g, p, mode);
12148 this->minsize = 32;
12149 this->endsave = NULL;
12150 this->strmode = mode;
12151 this->palloc = NULL;
12152 this->pfree = NULL;
12155 this->strmode |= STRSTATE_Dynamic;
12156 if(len > this->minsize)
12157 this->minsize = len;
12158 this->seekhigh = NULL;
12167 this->seekhigh = g+len;
12168 basic_streambuf_char_setg(&this->base, g, g, p ? p : this->seekhigh);
12170 basic_streambuf_char_setp(&this->base, p, this->seekhigh);
12173 /* ??0strstreambuf@std@@QAE@PACH0@Z */
12174 /* ??0strstreambuf@std@@QEAA@PEAC_J0@Z */
12175 /* ??0strstreambuf@std@@QAE@PADH0@Z */
12176 /* ??0strstreambuf@std@@QEAA@PEAD_J0@Z */
12177 /* ??0strstreambuf@std@@QAE@PAEH0@Z */
12178 /* ??0strstreambuf@std@@QEAA@PEAE_J0@Z */
12179 static strstreambuf* strstreambuf_ctor_get_put(strstreambuf *this, char *g, streamsize len, char *p)
12181 TRACE("(%p %p %ld %p)\n", this, g, len, p);
12183 basic_streambuf_char_ctor(&this->base);
12184 this->base.vtable = &MSVCP_strstreambuf_vtable;
12186 strstreambuf__Init(this, len, g, p, 0);
12190 /* ?_Tidy@strstreambuf@std@@IAEXXZ */
12191 /* ?_Tidy@strstreambuf@std@@IEAAXXZ */
12192 DEFINE_THISCALL_WRAPPER(strstreambuf__Tidy, 4)
12193 void __thiscall strstreambuf__Tidy(strstreambuf *this)
12195 TRACE("(%p)\n", this);
12197 if((this->strmode & STRSTATE_Allocated) && !(this->strmode & STRSTATE_Frozen)) {
12199 this->pfree(basic_streambuf_char_eback(&this->base));
12201 MSVCRT_operator_delete(basic_streambuf_char_eback(&this->base));
12204 this->endsave = NULL;
12205 this->seekhigh = NULL;
12206 this->strmode &= ~(STRSTATE_Allocated | STRSTATE_Frozen);
12207 basic_streambuf_char_setg(&this->base, NULL, NULL, NULL);
12208 basic_streambuf_char_setp(&this->base, NULL, NULL);
12211 /* ??1strstreambuf@std@@UAE@XZ */
12212 /* ??1strstreambuf@std@@UEAA@XZ */
12213 DEFINE_THISCALL_WRAPPER(strstreambuf_dtor, 4)
12214 void __thiscall strstreambuf_dtor(strstreambuf *this)
12216 TRACE("(%p)\n", this);
12218 strstreambuf__Tidy(this);
12219 basic_streambuf_char_dtor(&this->base);
12222 DEFINE_THISCALL_WRAPPER(strstreambuf_vector_dtor, 8)
12223 strstreambuf* __thiscall strstreambuf_vector_dtor(strstreambuf *this, unsigned int flags)
12225 TRACE("(%p %x)\n", this, flags);
12227 /* we have an array, with the number of elements stored before the first object */
12228 INT_PTR i, *ptr = (INT_PTR *)this-1;
12230 for(i=*ptr-1; i>=0; i--)
12231 strstreambuf_dtor(this+i);
12232 MSVCRT_operator_delete(ptr);
12234 strstreambuf_dtor(this);
12236 MSVCRT_operator_delete(this);
12242 /* ?freeze@strstreambuf@std@@QAEX_N@Z */
12243 /* ?freeze@strstreambuf@std@@QEAAX_N@Z */
12244 DEFINE_THISCALL_WRAPPER(strstreambuf_freeze, 8)
12245 void __thiscall strstreambuf_freeze(strstreambuf *this, MSVCP_bool freeze)
12247 TRACE("(%p %d)\n", this, freeze);
12249 if(!freeze == !(this->strmode *STRSTATE_Frozen))
12253 this->strmode |= STRSTATE_Frozen;
12254 this->endsave = basic_streambuf_char_epptr(&this->base);
12255 basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base),
12256 basic_streambuf_char_pptr(&this->base), basic_streambuf_char_eback(&this->base));
12258 this->strmode &= ~STRSTATE_Frozen;
12259 basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base),
12260 basic_streambuf_char_pptr(&this->base), this->endsave);
12264 /* ?overflow@strstreambuf@std@@MAEHH@Z */
12265 /* ?overflow@strstreambuf@std@@MEAAHH@Z */
12266 DEFINE_THISCALL_WRAPPER(strstreambuf_overflow, 8)
12267 int __thiscall strstreambuf_overflow(strstreambuf *this, int c)
12269 MSVCP_size_t old_size, size;
12272 TRACE("(%p %d)\n", this, c);
12277 if(this->strmode & STRSTATE_Frozen)
12280 ptr = basic_streambuf_char_pptr(&this->base);
12281 if(ptr && ptr<basic_streambuf_char_epptr(&this->base))
12282 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = c);
12284 if(!(this->strmode & STRSTATE_Dynamic) || (this->strmode & STRSTATE_Constant))
12287 ptr = basic_streambuf_char_eback(&this->base);
12288 old_size = ptr ? basic_streambuf_char_epptr(&this->base) - ptr : 0;
12290 size = old_size + old_size/2;
12291 if(size < this->minsize)
12292 size = this->minsize;
12295 buf = this->palloc(size);
12297 buf = MSVCRT_operator_new(size);
12301 memcpy(buf, ptr, old_size);
12302 if(this->strmode & STRSTATE_Allocated) {
12306 MSVCRT_operator_delete(ptr);
12309 this->strmode |= STRSTATE_Allocated;
12311 this->seekhigh = buf;
12312 basic_streambuf_char_setp(&this->base, buf, buf+size);
12313 basic_streambuf_char_setg(&this->base, buf, buf, buf);
12315 this->seekhigh = this->seekhigh-ptr+buf;
12316 basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base)-ptr+buf,
12317 basic_streambuf_char_pptr(&this->base)-ptr+buf, buf+size);
12318 basic_streambuf_char_setg(&this->base, buf, basic_streambuf_char_gptr(&this->base)-ptr+buf,
12319 basic_streambuf_char_pptr(&this->base));
12322 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = c);
12325 /* ?pbackfail@strstreambuf@std@@MAEHH@Z */
12326 /* ?pbackfail@strstreambuf@std@@MEAAHH@Z */
12327 DEFINE_THISCALL_WRAPPER(strstreambuf_pbackfail, 8)
12328 int __thiscall strstreambuf_pbackfail(strstreambuf *this, int c)
12330 char *ptr = basic_streambuf_char_gptr(&this->base);
12332 TRACE("(%p %d)\n", this, c);
12334 if(ptr<=basic_streambuf_char_eback(&this->base)
12335 || ((this->strmode & STRSTATE_Constant) && c!=ptr[-1]))
12338 basic_streambuf_char_gbump(&this->base, -1);
12341 if(this->strmode & STRSTATE_Constant)
12342 return (unsigned char)c;
12344 return (unsigned char)(ptr[0] = c);
12347 /* ?seekoff@strstreambuf@std@@MAE?AV?$fpos@H@2@JHH@Z */
12348 /* ?seekoff@strstreambuf@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
12349 DEFINE_THISCALL_WRAPPER(strstreambuf_seekoff, 20)
12350 fpos_int* __thiscall strstreambuf_seekoff(strstreambuf *this, fpos_int *ret, streamoff off, int way, int mode)
12352 char *eback = basic_streambuf_char_eback(&this->base);
12353 char *pptr = basic_streambuf_char_pptr(&this->base);
12354 char *gptr = basic_streambuf_char_gptr(&this->base);
12356 TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode);
12361 if(pptr > this->seekhigh)
12362 this->seekhigh = pptr;
12364 if((mode & OPENMODE_in) && gptr) {
12365 if(way==SEEKDIR_cur && !(mode & OPENMODE_out))
12367 else if(way == SEEKDIR_end)
12368 off += this->seekhigh-eback;
12369 else if(way != SEEKDIR_beg)
12372 if(off<0 || off>this->seekhigh-eback) {
12375 basic_streambuf_char_gbump(&this->base, eback-gptr+off);
12376 if((mode & OPENMODE_out) && pptr) {
12377 basic_streambuf_char_setp_next(&this->base, eback,
12378 gptr, basic_streambuf_char_epptr(&this->base));
12381 }else if((mode & OPENMODE_out) && pptr) {
12382 if(way == SEEKDIR_cur)
12384 else if(way == SEEKDIR_end)
12385 off += this->seekhigh-eback;
12386 else if(way != SEEKDIR_beg)
12389 if(off<0 || off>this->seekhigh-eback)
12392 basic_streambuf_char_pbump(&this->base, eback-pptr+off);
12401 /* ?seekpos@strstreambuf@std@@MAE?AV?$fpos@H@2@V32@H@Z */
12402 /* ?seekpos@strstreambuf@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
12403 DEFINE_THISCALL_WRAPPER(strstreambuf_seekpos, 36)
12404 fpos_int* __thiscall strstreambuf_seekpos(strstreambuf *this, fpos_int *ret, fpos_int pos, int mode)
12406 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
12408 if(pos.off==-1 && pos.pos==0 && pos.state==0) {
12413 return strstreambuf_seekoff(this, ret, pos.off, SEEKDIR_beg, mode);
12416 /* ?underflow@strstreambuf@std@@MAEHXZ */
12417 /* ?underflow@strstreambuf@std@@MEAAHXZ */
12418 DEFINE_THISCALL_WRAPPER(strstreambuf_underflow, 4)
12419 int __thiscall strstreambuf_underflow(strstreambuf *this)
12421 char *gptr = basic_streambuf_char_gptr(&this->base);
12424 TRACE("(%p)\n", this);
12429 if(gptr < basic_streambuf_char_egptr(&this->base))
12430 return (unsigned char)(*gptr);
12432 pptr = basic_streambuf_char_gptr(&this->base);
12433 if(pptr > this->seekhigh)
12434 this->seekhigh = pptr;
12436 if(this->seekhigh <= gptr)
12439 basic_streambuf_char_setg(&this->base, basic_streambuf_char_eback(&this->base),
12440 gptr, this->seekhigh);
12441 return (unsigned char)(*gptr);
12444 static inline basic_ios_char* ostrstream_to_basic_ios(ostrstream *ptr)
12446 return (basic_ios_char*)((char*)ptr+ostrstream_vbtable[1]);
12449 static inline ostrstream* ostrstream_from_basic_ios(basic_ios_char *ptr)
12451 return (ostrstream*)((char*)ptr-ostrstream_vbtable[1]);
12454 /* ??0ostrstream@std@@QAE@PADHH@Z */
12455 DEFINE_THISCALL_WRAPPER(ostrstream_ctor, 20)
12456 ostrstream* __thiscall ostrstream_ctor(ostrstream *this, char *buf, streamsize size, int mode, MSVCP_bool virt_init)
12458 basic_ios_char *basic_ios;
12460 TRACE("(%p %p %ld %d %d)\n", this, buf, size, mode, virt_init);
12463 this->base.vbtable = ostrstream_vbtable;
12464 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
12465 basic_ios_char_ctor(basic_ios);
12467 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
12470 strstreambuf_ctor_get_put(&this->buf, buf, size,
12471 buf && (mode & OPENMODE_app) ? buf+strlen(buf) : buf);
12472 basic_ostream_char_ctor(&this->base, &this->buf.base, FALSE, FALSE);
12473 basic_ios->base.vtable = &MSVCP_ostrstream_vtable;
12477 /* ??1ostrstream@std@@UAE@XZ */
12478 /* ??1ostrstream@std@@UEAA@XZ */
12479 DEFINE_THISCALL_WRAPPER(ostrstream_dtor, 4)
12480 void __thiscall ostrstream_dtor(basic_ios_char *base)
12482 ostrstream *this = ostrstream_from_basic_ios(base);
12484 TRACE("(%p)\n", this);
12486 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base));
12487 strstreambuf_dtor(&this->buf);
12490 static void ostrstream_vbase_dtor(ostrstream *this)
12492 TRACE("(%p)\n", this);
12494 ostrstream_dtor(ostrstream_to_basic_ios(this));
12495 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base));
12498 DEFINE_THISCALL_WRAPPER(ostrstream_vector_dtor, 8)
12499 ostrstream* __thiscall ostrstream_vector_dtor(basic_ios_char *base, unsigned int flags)
12501 ostrstream *this = ostrstream_from_basic_ios(base);
12503 TRACE("(%p %x)\n", this, flags);
12506 /* we have an array, with the number of elements stored before the first object */
12507 INT_PTR i, *ptr = (INT_PTR *)this-1;
12509 for(i=*ptr-1; i>=0; i--)
12510 ostrstream_vbase_dtor(this+i);
12511 MSVCRT_operator_delete(ptr);
12513 ostrstream_vbase_dtor(this);
12515 MSVCRT_operator_delete(this);
12521 static inline istrstream* istrstream_from_basic_ios(basic_ios_char *ptr)
12523 return (istrstream*)((char*)ptr-istrstream_vbtable[1]);
12526 /* ??1istrstream@std@@UAE@XZ */
12527 /* ??1istrstream@std@@UEAA@XZ */
12528 DEFINE_THISCALL_WRAPPER(istrstream_dtor, 4)
12529 void __thiscall istrstream_dtor(basic_ios_char *base)
12531 istrstream *this = istrstream_from_basic_ios(base);
12533 TRACE("(%p)\n", this);
12535 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base));
12536 strstreambuf_dtor(&this->buf);
12539 static inline basic_ios_char* strstream_to_basic_ios(strstream *ptr)
12541 return (basic_ios_char*)((char*)ptr+strstream_vbtable1[1]);
12544 static inline strstream* strstream_from_basic_ios(basic_ios_char *ptr)
12546 return (strstream*)((char*)ptr-strstream_vbtable1[1]);
12549 /* ??0strstream@std@@QAE@PADHH@Z */
12550 /* ??0strstream@std@@QEAA@PEAD_JH@Z */
12551 DEFINE_THISCALL_WRAPPER(strstream_ctor, 20)
12552 strstream* __thiscall strstream_ctor(strstream *this, char *buf, streamsize size, int mode, MSVCP_bool virt_init)
12554 basic_ios_char *basic_ios;
12556 TRACE("(%p %p %ld %d %d)\n", this, buf, size, mode, virt_init);
12559 this->base.base1.vbtable = strstream_vbtable1;
12560 this->base.base2.vbtable = strstream_vbtable2;
12561 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
12562 basic_ios_char_ctor(basic_ios);
12564 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
12567 strstreambuf_ctor_get_put(&this->buf, buf, size,
12568 buf && (mode & OPENMODE_app) ? buf+strlen(buf) : buf);
12569 basic_iostream_char_ctor(&this->base, &this->buf.base, FALSE);
12570 basic_ios->base.vtable = &MSVCP_strstream_vtable;
12574 /* ??1strstream@std@@UAE@XZ */
12575 /* ??1strstream@std@@UEAA@XZ */
12576 DEFINE_THISCALL_WRAPPER(strstream_dtor, 4)
12577 void __thiscall strstream_dtor(basic_ios_char *base)
12579 strstream *this = strstream_from_basic_ios(base);
12581 TRACE("(%p)\n", this);
12583 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base));
12584 strstreambuf_dtor(&this->buf);
12587 static void strstream_vbase_dtor(strstream *this)
12589 TRACE("(%p)\n", this);
12591 strstream_dtor(strstream_to_basic_ios(this));
12592 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base.base1));
12595 DEFINE_THISCALL_WRAPPER(strstream_vector_dtor, 8)
12596 strstream* __thiscall strstream_vector_dtor(basic_ios_char *base, unsigned int flags)
12598 strstream *this = strstream_from_basic_ios(base);
12600 TRACE("(%p %x)\n", this, flags);
12603 /* we have an array, with the number of elements stored before the first object */
12604 INT_PTR i, *ptr = (INT_PTR *)this-1;
12606 for(i=*ptr-1; i>=0; i--)
12607 strstream_vbase_dtor(this+i);
12608 MSVCRT_operator_delete(ptr);
12610 strstream_vbase_dtor(this);
12612 MSVCRT_operator_delete(this);
12618 static void __cdecl setprecision_func(ios_base *base, streamsize prec)
12620 ios_base_precision_set(base, prec);
12623 /* ?setprecision@std@@YA?AU?$_Smanip@H@1@H@Z */
12624 /* ?setprecision@std@@YA?AU?$_Smanip@_J@1@_J@Z */
12625 manip_streamsize* __cdecl setprecision(manip_streamsize *ret, streamsize prec)
12627 TRACE("(%p %ld)\n", ret, prec);
12629 ret->pfunc = setprecision_func;
12634 static void __cdecl setw_func(ios_base *base, streamsize width)
12636 ios_base_width_set(base, width);
12639 /* ?setw@std@@YA?AU?$_Smanip@H@1@H@Z */
12640 /* ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z */
12641 manip_streamsize* __cdecl setw(manip_streamsize *ret, streamsize width)
12643 TRACE("(%p %ld)\n", ret, width);
12645 ret->pfunc = setw_func;
12650 static void __cdecl resetioflags_func(ios_base *base, int mask)
12652 ios_base_setf_mask(base, 0, mask);
12655 /* ?resetiosflags@std@@YA?AU?$_Smanip@H@1@H@Z */
12656 manip_int* __cdecl resetiosflags(manip_int *ret, int mask)
12658 TRACE("(%p %d)\n", ret, mask);
12660 ret->pfunc = resetioflags_func;
12665 static void __cdecl setiosflags_func(ios_base *base, int mask)
12667 ios_base_setf_mask(base, FMTFLAG_mask, mask);
12670 /* ?setiosflags@std@@YA?AU?$_Smanip@H@1@H@Z */
12671 manip_int* __cdecl setiosflags(manip_int *ret, int mask)
12673 TRACE("(%p %d)\n", ret, mask);
12675 ret->pfunc = setiosflags_func;
12680 static void __cdecl setbase_func(ios_base *base, int set_base)
12683 set_base = FMTFLAG_dec;
12684 else if(set_base == 8)
12685 set_base = FMTFLAG_oct;
12686 else if(set_base == 16)
12687 set_base = FMTFLAG_hex;
12691 ios_base_setf_mask(base, set_base, FMTFLAG_basefield);
12694 /* ?setbase@std@@YA?AU?$_Smanip@H@1@H@Z */
12695 manip_int* __cdecl setbase(manip_int *ret, int base)
12697 TRACE("(%p %d)\n", ret, base);
12699 ret->pfunc = setbase_func;
12704 static basic_filebuf_char filebuf_char_stdin;
12705 /* ?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A */
12707 basic_istream_char obj;
12708 basic_ios_char vbase;
12710 /* ?_Ptr_cin@std@@3PAV?$basic_istream@DU?$char_traits@D@std@@@1@A */
12711 /* ?_Ptr_cin@std@@3PEAV?$basic_istream@DU?$char_traits@D@std@@@1@EA */
12712 basic_istream_char *_Ptr_cin = &cin.obj;
12714 static basic_filebuf_wchar filebuf_short_stdin;
12715 /* ?wcin@std@@3V?$basic_istream@GU?$char_traits@G@std@@@1@A */
12717 basic_istream_wchar obj;
12718 basic_ios_wchar vbase;
12719 } ucin = { { 0 } };
12720 /* ?_Ptr_wcin@std@@3PAV?$basic_istream@GU?$char_traits@G@std@@@1@A */
12721 /* ?_Ptr_wcin@std@@3PEAV?$basic_istream@GU?$char_traits@G@std@@@1@EA */
12722 basic_istream_wchar *_Ptr_ucin = &ucin.obj;
12724 static basic_filebuf_wchar filebuf_wchar_stdin;
12725 /* ?wcin@std@@3V?$basic_istream@_WU?$char_traits@_W@std@@@1@A */
12727 basic_istream_wchar obj;
12728 basic_ios_wchar vbase;
12729 } wcin = { { 0 } };
12730 /* ?_Ptr_wcin@std@@3PAV?$basic_istream@_WU?$char_traits@_W@std@@@1@A */
12731 /* ?_Ptr_wcin@std@@3PEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@EA */
12732 basic_istream_wchar *_Ptr_wcin = &wcin.obj;
12734 static basic_filebuf_char filebuf_char_stdout;
12735 /* ?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12737 basic_ostream_char obj;
12738 basic_ios_char vbase;
12739 } cout = { { 0 } };
12740 /* ?_Ptr_cout@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12741 /* ?_Ptr_cout@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
12742 basic_ostream_char *_Ptr_cout = &cout.obj;
12744 static basic_filebuf_wchar filebuf_short_stdout;
12745 /* ?wcout@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12747 basic_ostream_wchar obj;
12748 basic_ios_wchar vbase;
12749 } ucout = { { 0 } };
12750 /* ?_Ptr_wcout@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12751 /* ?_Ptr_wcout@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
12752 basic_ostream_wchar *_Ptr_ucout = &ucout.obj;
12754 static basic_filebuf_wchar filebuf_wchar_stdout;
12755 /* ?wcout@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12757 basic_ostream_wchar obj;
12758 basic_ios_wchar vbase;
12759 } wcout = { { 0 } };
12760 /* ?_Ptr_wcout@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12761 /* ?_Ptr_wcout@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
12762 basic_ostream_wchar *_Ptr_wcout = &wcout.obj;
12764 static basic_filebuf_char filebuf_char_stderr;
12765 /* ?cerr@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12767 basic_ostream_char obj;
12768 basic_ios_char vbase;
12769 } cerr = { { 0 } };
12770 /* ?_Ptr_cerr@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12771 /* ?_Ptr_cerr@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
12772 basic_ostream_char *_Ptr_cerr = &cerr.obj;
12774 static basic_filebuf_wchar filebuf_short_stderr;
12775 /* ?wcerr@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12777 basic_ostream_wchar obj;
12778 basic_ios_wchar vbase;
12779 } ucerr = { { 0 } };
12780 /* ?_Ptr_wcerr@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12781 /* ?_Ptr_wcerr@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
12782 basic_ostream_wchar *_Ptr_ucerr = &ucerr.obj;
12784 static basic_filebuf_wchar filebuf_wchar_stderr;
12785 /* ?wcerr@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12787 basic_ostream_wchar obj;
12788 basic_ios_wchar vbase;
12789 } wcerr = { { 0 } };
12790 /* ?_Ptr_wcerr@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12791 /* ?_Ptr_wcerr@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
12792 basic_ostream_wchar *_Ptr_wcerr = &wcerr.obj;
12794 static basic_filebuf_char filebuf_char_log;
12795 /* ?clog@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12797 basic_ostream_char obj;
12798 basic_ios_char vbase;
12799 } clog = { { 0 } };
12800 /* ?_Ptr_clog@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12801 /* ?_Ptr_clog@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
12802 basic_ostream_char *_Ptr_clog = &clog.obj;
12804 static basic_filebuf_wchar filebuf_short_log;
12805 /* ?wclog@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12807 basic_ostream_wchar obj;
12808 basic_ios_wchar vbase;
12809 } uclog = { { 0 } };
12810 /* ?_Ptr_wclog@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12811 /* ?_Ptr_wclog@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
12812 basic_ostream_wchar *_Ptr_uclog = &uclog.obj;
12814 static basic_filebuf_wchar filebuf_wchar_log;
12815 /* ?wclog@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12817 basic_ostream_wchar obj;
12818 basic_ios_wchar vbase;
12819 } wclog = { { 0 } };
12820 /* ?_Ptr_wclog@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12821 /* ?_Ptr_wclog@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
12822 basic_ostream_wchar *_Ptr_wclog = &wclog.obj;
12824 /* ?_Init_cnt@Init@ios_base@std@@0HA */
12825 int ios_base_Init__Init_cnt = -1;
12827 /* ?_Init_ctor@Init@ios_base@std@@CAXPAV123@@Z */
12828 /* ?_Init_ctor@Init@ios_base@std@@CAXPEAV123@@Z */
12829 static void ios_base_Init__Init_ctor(void *this)
12831 TRACE("(%p)\n", this);
12833 if(ios_base_Init__Init_cnt < 0)
12834 ios_base_Init__Init_cnt = 1;
12836 ios_base_Init__Init_cnt++;
12839 /* ??0Init@ios_base@std@@QAE@XZ */
12840 /* ??0Init@ios_base@std@@QEAA@XZ */
12841 DEFINE_THISCALL_WRAPPER(ios_base_Init_ctor, 4)
12842 void* __thiscall ios_base_Init_ctor(void *this)
12844 ios_base_Init__Init_ctor(this);
12848 /* ?_Init_dtor@Init@ios_base@std@@CAXPAV123@@Z */
12849 /* ?_Init_dtor@Init@ios_base@std@@CAXPEAV123@@Z */
12850 static void ios_base_Init__Init_dtor(void *this)
12852 TRACE("(%p)\n", this);
12854 ios_base_Init__Init_cnt--;
12855 if(!ios_base_Init__Init_cnt) {
12856 basic_ostream_char_flush(&cout.obj);
12857 basic_ostream_char_flush(&cerr.obj);
12858 basic_ostream_char_flush(&clog.obj);
12862 /* ??1Init@ios_base@std@@QAE@XZ */
12863 /* ??1Init@ios_base@std@@QEAA@XZ */
12864 DEFINE_THISCALL_WRAPPER(ios_base_Init_dtor, 4)
12865 void __thiscall ios_base_Init_dtor(void *this)
12867 ios_base_Init__Init_dtor(this);
12870 /* ??4Init@ios_base@std@@QAEAAV012@ABV012@@Z */
12871 /* ??4Init@ios_base@std@@QEAAAEAV012@AEBV012@@Z */
12872 DEFINE_THISCALL_WRAPPER(ios_base_Init_op_assign, 8)
12873 void* __thiscall ios_base_Init_op_assign(void *this, void *rhs)
12875 TRACE("(%p %p)\n", this, rhs);
12879 /* ?_Init_cnt@_Winit@std@@0HA */
12880 int _Winit__Init_cnt = -1;
12882 /* ??0_Winit@std@@QAE@XZ */
12883 /* ??0_Winit@std@@QEAA@XZ */
12884 DEFINE_THISCALL_WRAPPER(_Winit_ctor, 4)
12885 void* __thiscall _Winit_ctor(void *this)
12887 TRACE("(%p)\n", this);
12889 if(_Winit__Init_cnt < 0)
12890 _Winit__Init_cnt = 1;
12892 _Winit__Init_cnt++;
12897 /* ??1_Winit@std@@QAE@XZ */
12898 /* ??1_Winit@std@@QAE@XZ */
12899 DEFINE_THISCALL_WRAPPER(_Winit_dtor, 4)
12900 void __thiscall _Winit_dtor(void *this)
12902 TRACE("(%p)\n", this);
12904 _Winit__Init_cnt--;
12905 if(!_Winit__Init_cnt) {
12906 basic_ostream_wchar_flush(&wcout.obj);
12907 basic_ostream_wchar_flush(&wcerr.obj);
12908 basic_ostream_wchar_flush(&wclog.obj);
12912 /* ??4_Winit@std@@QAEAAV01@ABV01@@Z */
12913 /* ??4_Winit@std@@QEAAAEAV01@AEBV01@@Z */
12914 DEFINE_THISCALL_WRAPPER(_Winit_op_assign, 8)
12915 void* __thiscall _Winit_op_assign(void *this, void *rhs)
12917 TRACE("(%p %p)\n", this, rhs);
12921 void init_io(void *base)
12924 init_iosb_rtti(base);
12925 init_ios_base_rtti(base);
12926 init_basic_ios_char_rtti(base);
12927 init_basic_ios_wchar_rtti(base);
12928 init_basic_ios_short_rtti(base);
12929 init_basic_streambuf_char_rtti(base);
12930 init_basic_streambuf_wchar_rtti(base);
12931 init_basic_streambuf_short_rtti(base);
12932 init_basic_filebuf_char_rtti(base);
12933 init_basic_filebuf_wchar_rtti(base);
12934 init_basic_filebuf_short_rtti(base);
12935 init_basic_stringbuf_char_rtti(base);
12936 init_basic_stringbuf_wchar_rtti(base);
12937 init_basic_stringbuf_short_rtti(base);
12938 init_basic_ostream_char_rtti(base);
12939 init_basic_ostream_wchar_rtti(base);
12940 init_basic_ostream_short_rtti(base);
12941 init_basic_istream_char_rtti(base);
12942 init_basic_istream_wchar_rtti(base);
12943 init_basic_istream_short_rtti(base);
12944 init_basic_iostream_char_rtti(base);
12945 init_basic_iostream_wchar_rtti(base);
12946 init_basic_iostream_short_rtti(base);
12947 init_basic_ofstream_char_rtti(base);
12948 init_basic_ofstream_wchar_rtti(base);
12949 init_basic_ofstream_short_rtti(base);
12950 init_basic_ifstream_char_rtti(base);
12951 init_basic_ifstream_wchar_rtti(base);
12952 init_basic_ifstream_short_rtti(base);
12953 init_basic_fstream_char_rtti(base);
12954 init_basic_fstream_wchar_rtti(base);
12955 init_basic_fstream_short_rtti(base);
12956 init_basic_ostringstream_char_rtti(base);
12957 init_basic_ostringstream_wchar_rtti(base);
12958 init_basic_ostringstream_short_rtti(base);
12959 init_basic_istringstream_char_rtti(base);
12960 init_basic_istringstream_wchar_rtti(base);
12961 init_basic_istringstream_short_rtti(base);
12962 init_basic_stringstream_char_rtti(base);
12963 init_basic_stringstream_wchar_rtti(base);
12964 init_basic_stringstream_short_rtti(base);
12965 init_strstreambuf_rtti(base);
12966 init_strstream_rtti(base);
12967 init_ostrstream_rtti(base);
12970 basic_filebuf_char_ctor_file(&filebuf_char_stdin, stdin);
12971 basic_istream_char_ctor(&cin.obj, &filebuf_char_stdin.base, FALSE/*FIXME*/, TRUE);
12973 basic_filebuf_short_ctor_file(&filebuf_short_stdin, stdin);
12974 basic_istream_short_ctor(&ucin.obj, &filebuf_short_stdin.base, FALSE/*FIXME*/, TRUE);
12976 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stdin, stdin);
12977 basic_istream_wchar_ctor(&wcin.obj, &filebuf_wchar_stdin.base, FALSE/*FIXME*/, TRUE);
12979 basic_filebuf_char_ctor_file(&filebuf_char_stdout, stdout);
12980 basic_ostream_char_ctor(&cout.obj, &filebuf_char_stdout.base, FALSE/*FIXME*/, TRUE);
12982 basic_filebuf_short_ctor_file(&filebuf_short_stdout, stdout);
12983 basic_ostream_short_ctor(&ucout.obj, &filebuf_short_stdout.base, FALSE/*FIXME*/, TRUE);
12985 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stdout, stdout);
12986 basic_ostream_wchar_ctor(&wcout.obj, &filebuf_wchar_stdout.base, FALSE/*FIXME*/, TRUE);
12988 basic_filebuf_char_ctor_file(&filebuf_char_stderr, stderr);
12989 basic_ostream_char_ctor(&cerr.obj, &filebuf_char_stderr.base, FALSE/*FIXME*/, TRUE);
12991 basic_filebuf_short_ctor_file(&filebuf_short_stderr, stderr);
12992 basic_ostream_short_ctor(&ucerr.obj, &filebuf_short_stderr.base, FALSE/*FIXME*/, TRUE);
12994 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stderr, stderr);
12995 basic_ostream_wchar_ctor(&wcerr.obj, &filebuf_wchar_stderr.base, FALSE/*FIXME*/, TRUE);
12997 basic_filebuf_char_ctor_file(&filebuf_char_log, stderr);
12998 basic_ostream_char_ctor(&clog.obj, &filebuf_char_log.base, FALSE/*FIXME*/, TRUE);
13000 basic_filebuf_short_ctor_file(&filebuf_short_log, stderr);
13001 basic_ostream_short_ctor(&uclog.obj, &filebuf_short_log.base, FALSE/*FIXME*/, TRUE);
13003 basic_filebuf_wchar_ctor_file(&filebuf_wchar_log, stderr);
13004 basic_ostream_wchar_ctor(&wclog.obj, &filebuf_wchar_log.base, FALSE/*FIXME*/, TRUE);
13009 basic_istream_char_vbase_dtor(&cin.obj);
13010 basic_filebuf_char_dtor(&filebuf_char_stdin);
13012 basic_istream_wchar_vbase_dtor(&ucin.obj);
13013 basic_filebuf_wchar_dtor(&filebuf_short_stdin);
13015 basic_istream_wchar_vbase_dtor(&wcin.obj);
13016 basic_filebuf_wchar_dtor(&filebuf_wchar_stdin);
13018 basic_ostream_char_vbase_dtor(&cout.obj);
13019 basic_filebuf_char_dtor(&filebuf_char_stdout);
13021 basic_ostream_wchar_vbase_dtor(&ucout.obj);
13022 basic_filebuf_wchar_dtor(&filebuf_short_stdout);
13024 basic_ostream_wchar_vbase_dtor(&wcout.obj);
13025 basic_filebuf_wchar_dtor(&filebuf_wchar_stdout);
13027 basic_ostream_char_vbase_dtor(&cerr.obj);
13028 basic_filebuf_char_dtor(&filebuf_char_stderr);
13030 basic_ostream_wchar_vbase_dtor(&ucerr.obj);
13031 basic_filebuf_wchar_dtor(&filebuf_short_stderr);
13033 basic_ostream_wchar_vbase_dtor(&wcerr.obj);
13034 basic_filebuf_wchar_dtor(&filebuf_wchar_stderr);
13036 basic_ostream_char_vbase_dtor(&clog.obj);
13037 basic_filebuf_char_dtor(&filebuf_char_log);
13039 basic_ostream_wchar_vbase_dtor(&uclog.obj);
13040 basic_filebuf_wchar_dtor(&filebuf_short_log);
13042 basic_ostream_wchar_vbase_dtor(&wclog.obj);
13043 basic_filebuf_wchar_dtor(&filebuf_wchar_log);