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
30 #include "wine/debug.h"
31 WINE_DEFAULT_DEBUG_CHANNEL(msvcp);
33 /* ?_Index@ios_base@std@@0HA */
34 int ios_base_Index = 0;
35 /* ?_Sync@ios_base@std@@0_NA */
36 MSVCP_bool ios_base_Sync = FALSE;
40 __int64 DECLSPEC_ALIGN(8) pos;
44 static inline const char* debugstr_fpos_int(fpos_int *fpos)
46 return wine_dbg_sprintf("fpos(%ld %s %d)", fpos->off, wine_dbgstr_longlong(fpos->pos), fpos->state);
50 void (__cdecl *pfunc)(ios_base*, streamsize);
55 void (__cdecl *pfunc)(ios_base*, int);
63 } basic_filebuf__Initfl;
66 basic_streambuf_char base;
70 basic_string_char *str;
77 basic_streambuf_wchar base;
81 basic_string_char *str;
85 } basic_filebuf_wchar;
88 STRINGBUF_allocated = 1,
89 STRINGBUF_no_write = 2,
90 STRINGBUF_no_read = 4,
93 } basic_stringbuf_state;
96 basic_streambuf_char base;
101 char allocator; /* empty struct */
102 } basic_stringbuf_char;
105 basic_streambuf_wchar base;
110 char allocator; /* empty struct */
111 } basic_stringbuf_wchar;
115 basic_streambuf_char *strbuf;
116 struct _basic_ostream_char *stream;
122 basic_streambuf_wchar *strbuf;
123 struct _basic_ostream_wchar *stream;
127 typedef struct _basic_ostream_char {
129 /* virtual inheritance
130 * basic_ios_char basic_ios;
132 } basic_ostream_char;
134 typedef struct _basic_ostream_wchar {
136 /* virtual inheritance
137 * basic_ios_wchar basic_ios;
139 } basic_ostream_wchar;
144 /* virtual inheritance
145 * basic_ios_char basic_ios;
147 } basic_istream_char;
152 /* virtual inheritance
153 * basic_ios_wchar basic_ios;
155 } basic_istream_wchar;
158 basic_istream_char base1;
159 basic_ostream_char base2;
160 /* virtual inheritance
161 * basic_ios_char basic_ios;
163 } basic_iostream_char;
166 basic_istream_wchar base1;
167 basic_ostream_wchar base2;
168 /* virtual inheritance
169 * basic_ios_wchar basic_ios;
171 } basic_iostream_wchar;
174 basic_ostream_char base;
175 basic_filebuf_char filebuf;
176 /* virtual inheritance
177 * basic_ios_char basic_ios;
179 } basic_ofstream_char;
182 basic_ostream_wchar base;
183 basic_filebuf_wchar filebuf;
184 /* virtual inheritance
185 * basic_ios_wchar basic_ios;
187 } basic_ofstream_wchar;
190 basic_istream_char base;
191 basic_filebuf_char filebuf;
192 /* virtual inheritance
193 * basic_ios_char basic_ios;
195 } basic_ifstream_char;
198 basic_istream_wchar base;
199 basic_filebuf_wchar filebuf;
200 /* virtual inheritance
201 * basic_ios_wchar basic_ios;
203 } basic_ifstream_wchar;
206 basic_iostream_char base;
207 basic_filebuf_char filebuf;
208 /* virtual inheritance
209 * basic_ios_char basic_ios;
211 } basic_fstream_char;
214 basic_iostream_wchar base;
215 basic_filebuf_wchar filebuf;
216 /* virtual inheritance
217 * basic_ios_char basic_ios;
219 } basic_fstream_wchar;
222 basic_ostream_char base;
223 basic_stringbuf_char strbuf;
224 /* virtual inheritance
225 * basic_ios_char basic_ios;
227 } basic_ostringstream_char;
230 basic_ostream_wchar base;
231 basic_stringbuf_wchar strbuf;
232 /* virtual inheritance
233 * basic_ios_wchar basic_ios;
235 } basic_ostringstream_wchar;
238 basic_istream_char base;
239 basic_stringbuf_char strbuf;
240 /* virtual inheritance
241 * basic_ios_char basic_ios;
243 } basic_istringstream_char;
246 basic_istream_wchar base;
247 basic_stringbuf_wchar strbuf;
248 /* virtual inheritance
249 * basic_ios_wchar basic_ios;
251 } basic_istringstream_wchar;
254 basic_iostream_char base;
255 basic_stringbuf_char strbuf;
256 /* virtual inheritance
257 * basic_ios_char basic_ios;
259 } basic_stringstream_char;
262 basic_iostream_wchar base;
263 basic_stringbuf_wchar strbuf;
264 /* virtual inheritance
265 * basic_ios_wchar basic_ios;
267 } basic_stringstream_wchar;
270 STRSTATE_Allocated = 1,
271 STRSTATE_Constant = 2,
272 STRSTATE_Dynamic = 4,
274 } strstreambuf__Strstate;
277 basic_streambuf_char base;
282 void* (__cdecl *palloc)(MSVCP_size_t);
283 void (__cdecl *pfree)(void*);
287 basic_ostream_char base;
289 /* virtual inheritance
290 * basic_ios_char basic_ios;
295 basic_istream_char base;
297 /* virtual inheritance
298 * basic_ios_char basic_ios;
303 basic_iostream_char base;
305 /* virtual inheritance
306 * basic_ios_char basic_ios;
310 extern const vtable_ptr MSVCP_iosb_vtable;
312 /* ??_7ios_base@std@@6B@ */
313 extern const vtable_ptr MSVCP_ios_base_vtable;
315 /* ??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@ */
316 extern const vtable_ptr MSVCP_basic_ios_char_vtable;
318 /* ??_7?$basic_ios@_WU?$char_traits@_W@std@@@std@@6B@ */
319 extern const vtable_ptr MSVCP_basic_ios_wchar_vtable;
321 /* ??_7?$basic_ios@GU?$char_traits@G@std@@@std@@6B@ */
322 extern const vtable_ptr MSVCP_basic_ios_short_vtable;
324 /* ??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@ */
325 extern const vtable_ptr MSVCP_basic_streambuf_char_vtable;
327 /* ??_7?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@6B@ */
328 extern const vtable_ptr MSVCP_basic_streambuf_wchar_vtable;
330 /* ??_7?$basic_streambuf@GU?$char_traits@G@std@@@std@@6B@ */
331 extern const vtable_ptr MSVCP_basic_streambuf_short_vtable;
333 /* ??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ */
334 extern const vtable_ptr MSVCP_basic_filebuf_char_vtable;
336 /* ??_7?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@6B@ */
337 extern const vtable_ptr MSVCP_basic_filebuf_wchar_vtable;
339 /* ??_7?$basic_filebuf@GU?$char_traits@G@std@@@std@@6B@ */
340 extern const vtable_ptr MSVCP_basic_filebuf_short_vtable;
342 /* ??_7?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
343 extern const vtable_ptr MSVCP_basic_stringbuf_char_vtable;
345 /* ??_7?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
346 extern const vtable_ptr MSVCP_basic_stringbuf_wchar_vtable;
348 /* ??_7?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
349 extern const vtable_ptr MSVCP_basic_stringbuf_short_vtable;
351 /* ??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@ */
352 const int basic_ostream_char_vbtable[] = {0, sizeof(basic_ostream_char)};
353 /* ??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@ */
354 extern const vtable_ptr MSVCP_basic_ostream_char_vtable;
356 /* ??_8?$basic_ostream@_WU?$char_traits@_W@std@@@std@@7B@ */
357 const int basic_ostream_wchar_vbtable[] = {0, sizeof(basic_ostream_wchar)};
358 /* ??_7?$basic_ostream@_WU?$char_traits@_W@std@@@std@@6B@ */
359 extern const vtable_ptr MSVCP_basic_ostream_wchar_vtable;
361 /* ??_8?$basic_ostream@GU?$char_traits@G@std@@@std@@7B@ */
362 const int basic_ostream_short_vbtable[] = {0, sizeof(basic_ostream_wchar)};
363 /* ??_7?$basic_ostream@GU?$char_traits@G@std@@@std@@6B@ */
364 extern const vtable_ptr MSVCP_basic_ostream_short_vtable;
366 /* ??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@ */
367 const int basic_istream_char_vbtable[] = {0, sizeof(basic_istream_char)};
368 /* ??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@ */
369 extern const vtable_ptr MSVCP_basic_istream_char_vtable;
371 /* ??_8?$basic_istream@_WU?$char_traits@_W@std@@@std@@7B@ */
372 const int basic_istream_wchar_vbtable[] = {0, sizeof(basic_istream_wchar)};
373 /* ??_7?$basic_istream@_WU?$char_traits@_W@std@@@std@@6B@ */
374 extern const vtable_ptr MSVCP_basic_istream_wchar_vtable;
376 /* ??_8?$basic_istream@GU?$char_traits@G@std@@@std@@7B@ */
377 const int basic_istream_short_vbtable[] = {0, sizeof(basic_istream_wchar)};
378 /* ??_7?$basic_istream@GU?$char_traits@G@std@@@std@@6B@ */
379 extern const vtable_ptr MSVCP_basic_istream_short_vtable;
381 /* ??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
382 const int basic_iostream_char_vbtable1[] = {0, sizeof(basic_iostream_char)};
383 /* ??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
384 const int basic_iostream_char_vbtable2[] = {0, sizeof(basic_iostream_char)-FIELD_OFFSET(basic_iostream_char, base2)};
385 /* ??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@ */
386 extern const vtable_ptr MSVCP_basic_iostream_char_vtable;
388 /* ??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
389 /* ??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
390 const int basic_iostream_wchar_vbtable1[] = {0, sizeof(basic_iostream_wchar)};
391 /* ??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
392 /* ??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
393 const int basic_iostream_wchar_vbtable2[] = {0, sizeof(basic_iostream_wchar)-FIELD_OFFSET(basic_iostream_wchar, base2)};
394 /* ??_7?$basic_iostream@_WU?$char_traits@_W@std@@@std@@6B@ */
395 extern const vtable_ptr MSVCP_basic_iostream_wchar_vtable;
396 /* ??_7?$basic_iostream@GU?$char_traits@G@std@@@std@@6B@ */
397 extern const vtable_ptr MSVCP_basic_iostream_short_vtable;
399 /* ??_8?$basic_ofstream@DU?$char_traits@D@std@@@std@@7B@ */
400 const int basic_ofstream_char_vbtable[] = {0, sizeof(basic_ofstream_char)};
401 /* ??_7?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ */
402 extern const vtable_ptr MSVCP_basic_ofstream_char_vtable;
404 /* ??_8?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@7B@ */
405 const int basic_ofstream_wchar_vbtable[] = {0, sizeof(basic_ofstream_wchar)};
406 /* ??_7?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@6B@ */
407 extern const vtable_ptr MSVCP_basic_ofstream_wchar_vtable;
409 /* ??_8?$basic_ofstream@GU?$char_traits@G@std@@@std@@7B@ */
410 const int basic_ofstream_short_vbtable[] = {0, sizeof(basic_ofstream_wchar)};
411 /* ??_7?$basic_ofstream@GU?$char_traits@G@std@@@std@@6B@ */
412 extern const vtable_ptr MSVCP_basic_ofstream_short_vtable;
414 /* ??_8?$basic_ifstream@DU?$char_traits@D@std@@@std@@7B@ */
415 const int basic_ifstream_char_vbtable[] = {0, sizeof(basic_ifstream_char)};
416 /* ??_7?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@ */
417 extern const vtable_ptr MSVCP_basic_ifstream_char_vtable;
419 /* ??_8?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@7B@ */
420 const int basic_ifstream_wchar_vbtable[] = {0, sizeof(basic_ifstream_wchar)};
421 /* ??_7?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@6B@ */
422 extern const vtable_ptr MSVCP_basic_ifstream_wchar_vtable;
424 /* ??_8?$basic_ifstream@GU?$char_traits@G@std@@@std@@7B@ */
425 const int basic_ifstream_short_vbtable[] = {0, sizeof(basic_ifstream_wchar)};
426 /* ??_7?$basic_ifstream@GU?$char_traits@G@std@@@std@@6B@ */
427 extern const vtable_ptr MSVCP_basic_ifstream_short_vtable;
429 /* ??_8?$basic_fstream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
430 const int basic_fstream_char_vbtable1[] = {0, sizeof(basic_fstream_char)};
431 /* ??_8?$basic_fstream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
432 const int basic_fstream_char_vbtable2[] = {0, sizeof(basic_fstream_char)-FIELD_OFFSET(basic_fstream_char, base.base2)};
433 /* ??_7?$basic_fstream@DU?$char_traits@D@std@@@std@@6B@ */
434 extern const vtable_ptr MSVCP_basic_fstream_char_vtable;
436 /* ??_8?$basic_fstream@_WU?$char_traits@_W@std@@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
437 /* ??_8?$basic_fstream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
438 const int basic_fstream_wchar_vbtable1[] = {0, sizeof(basic_fstream_wchar)};
439 /* ??_8?$basic_fstream@_WU?$char_traits@_W@std@@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
440 /* ??_8?$basic_fstream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
441 const int basic_fstream_wchar_vbtable2[] = {0, sizeof(basic_fstream_wchar)-FIELD_OFFSET(basic_fstream_wchar, base.base2)};
442 /* ??_7?$basic_fstream@_WU?$char_traits@_W@std@@@std@@6B@ */
443 extern const vtable_ptr MSVCP_basic_fstream_wchar_vtable;
444 /* ??_7?$basic_fstream@GU?$char_traits@G@std@@@std@@6B@ */
445 extern const vtable_ptr MSVCP_basic_fstream_short_vtable;
447 /* ??_8?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B@ */
448 const int basic_ostringstream_char_vbtable[] = {0, sizeof(basic_ostringstream_char)};
449 /* ??_7?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
450 extern const vtable_ptr MSVCP_basic_ostringstream_char_vtable;
452 /* ??_8?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B@ */
453 const int basic_ostringstream_wchar_vbtable[] = {0, sizeof(basic_ostringstream_wchar)};
454 /* ??_7?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
455 extern const vtable_ptr MSVCP_basic_ostringstream_wchar_vtable;
457 /* ??_8?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B@ */
458 const int basic_ostringstream_short_vbtable[] = {0, sizeof(basic_ostringstream_wchar)};
459 /* ??_7?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
460 extern const vtable_ptr MSVCP_basic_ostringstream_short_vtable;
462 /* ??_8?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B@ */
463 const int basic_istringstream_char_vbtable[] = {0, sizeof(basic_istringstream_char)};
464 /* ??_7?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
465 extern const vtable_ptr MSVCP_basic_istringstream_char_vtable;
467 /* ??_8?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B@ */
468 const int basic_istringstream_wchar_vbtable[] = {0, sizeof(basic_istringstream_wchar)};
469 /* ??_7?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
470 extern const vtable_ptr MSVCP_basic_istringstream_wchar_vtable;
472 /* ??_8?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B@ */
473 const int basic_istringstream_short_vbtable[] = {0, sizeof(basic_istringstream_wchar)};
474 /* ??_7?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
475 extern const vtable_ptr MSVCP_basic_istringstream_short_vtable;
477 /* ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
478 const int basic_stringstream_char_vbtable1[] = {0, sizeof(basic_stringstream_char)};
479 /* ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
480 const int basic_stringstream_char_vbtable2[] = {0, sizeof(basic_stringstream_char)-FIELD_OFFSET(basic_stringstream_char, base.base2)};
481 /* ??_7?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
482 extern const vtable_ptr MSVCP_basic_stringstream_char_vtable;
484 /* ??_8?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
485 const int basic_stringstream_wchar_vbtable1[] = {0, sizeof(basic_stringstream_wchar)};
486 /* ??_8?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
487 const int basic_stringstream_wchar_vbtable2[] = {0, sizeof(basic_stringstream_wchar)-FIELD_OFFSET(basic_stringstream_wchar, base.base2)};
488 /* ??_7?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
489 extern const vtable_ptr MSVCP_basic_stringstream_wchar_vtable;
491 /* ??_8?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
492 const int basic_stringstream_short_vbtable1[] = {0, sizeof(basic_stringstream_wchar)};
493 /* ??_8?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
494 const int basic_stringstream_short_vbtable2[] = {0, sizeof(basic_stringstream_wchar)-FIELD_OFFSET(basic_stringstream_wchar, base.base2)};
495 /* ??_7?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
496 extern const vtable_ptr MSVCP_basic_stringstream_short_vtable;
498 /* ??_7strstreambuf@std@@6B */
499 extern const vtable_ptr MSVCP_strstreambuf_vtable;
501 static const int ostrstream_vbtable[] = {0, sizeof(ostrstream)};
502 extern const vtable_ptr MSVCP_ostrstream_vtable;
504 static const int istrstream_vbtable[] = {0, sizeof(istrstream)};
506 static const int strstream_vbtable1[] = {0, sizeof(strstream)};
507 static const int strstream_vbtable2[] = {0, sizeof(strstream)-FIELD_OFFSET(strstream, base.base2)};
508 extern const vtable_ptr MSVCP_strstream_vtable;
510 DEFINE_RTTI_DATA0(iosb, 0, ".?AV?$_Iosb@H@std@@")
511 DEFINE_RTTI_DATA1(ios_base, 0, &iosb_rtti_base_descriptor, ".?AV?$_Iosb@H@std@@")
512 DEFINE_RTTI_DATA2(basic_ios_char, 0, &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
513 ".?AV?$basic_ios@DU?$char_traits@D@std@@@std@@")
514 DEFINE_RTTI_DATA2(basic_ios_wchar, 0, &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
515 ".?AV?$basic_ios@_WU?$char_traits@_W@std@@@std@@")
516 DEFINE_RTTI_DATA2(basic_ios_short, 0, &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
517 ".?AV?$basic_ios@GU?$char_traits@G@std@@@std@@")
518 DEFINE_RTTI_DATA0(basic_streambuf_char, 0,
519 ".?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@")
520 DEFINE_RTTI_DATA0(basic_streambuf_wchar, 0,
521 ".?AV?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@")
522 DEFINE_RTTI_DATA0(basic_streambuf_short, 0,
523 ".?AV?$basic_streambuf@GU?$char_traits@G@std@@@std@@")
524 DEFINE_RTTI_DATA1(basic_filebuf_char, 0, &basic_streambuf_char_rtti_base_descriptor,
525 ".?AV?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@")
526 DEFINE_RTTI_DATA1(basic_filebuf_wchar, 0, &basic_streambuf_wchar_rtti_base_descriptor,
527 ".?AV?$basic_filebuf@GU?$char_traits@G@std@@@std@@")
528 DEFINE_RTTI_DATA1(basic_filebuf_short, 0, &basic_streambuf_short_rtti_base_descriptor,
529 ".?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@")
530 DEFINE_RTTI_DATA1(basic_stringbuf_char, 0, &basic_streambuf_char_rtti_base_descriptor,
531 ".?AV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@")
532 DEFINE_RTTI_DATA1(basic_stringbuf_wchar, 0, &basic_streambuf_wchar_rtti_base_descriptor,
533 ".?AV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@")
534 DEFINE_RTTI_DATA1(basic_stringbuf_short, 0, &basic_streambuf_short_rtti_base_descriptor,
535 ".?AV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@")
536 DEFINE_RTTI_DATA3(basic_ostream_char, sizeof(basic_ostream_char), &basic_ios_char_rtti_base_descriptor,
537 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
538 ".?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@")
539 DEFINE_RTTI_DATA3(basic_ostream_wchar, sizeof(basic_ostream_wchar), &basic_ios_wchar_rtti_base_descriptor,
540 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
541 ".?AV?$basic_ostream@_WU?$char_traits@_W@std@@@std@@")
542 DEFINE_RTTI_DATA3(basic_ostream_short, sizeof(basic_ostream_wchar), &basic_ios_short_rtti_base_descriptor,
543 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
544 ".?AV?$basic_ostream@GU?$char_traits@G@std@@@std@@")
545 DEFINE_RTTI_DATA3(basic_istream_char, sizeof(basic_istream_char), &basic_ios_char_rtti_base_descriptor,
546 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
547 ".?AV?$basic_istream@DU?$char_traits@D@std@@@std@@")
548 DEFINE_RTTI_DATA3(basic_istream_wchar, sizeof(basic_istream_wchar), &basic_ios_wchar_rtti_base_descriptor,
549 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
550 ".?AV?$basic_istream@_WU?$char_traits@_W@std@@@std@@")
551 DEFINE_RTTI_DATA3(basic_istream_short, sizeof(basic_istream_wchar), &basic_ios_short_rtti_base_descriptor,
552 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
553 ".?AV?$basic_istream@GU?$char_traits@G@std@@@std@@")
554 DEFINE_RTTI_DATA8(basic_iostream_char, sizeof(basic_iostream_char),
555 &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
556 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
557 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
558 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
559 ".?AV?$basic_iostream@DU?$char_traits@D@std@@@std@@")
560 DEFINE_RTTI_DATA8(basic_iostream_wchar, sizeof(basic_iostream_wchar),
561 &basic_istream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
562 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
563 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
564 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
565 ".?AV?$basic_iostream@_WU?$char_traits@_W@std@@@std@@")
566 DEFINE_RTTI_DATA8(basic_iostream_short, sizeof(basic_iostream_wchar),
567 &basic_istream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
568 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
569 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
570 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
571 ".?AV?$basic_iostream@GU?$char_traits@G@std@@@std@@")
572 DEFINE_RTTI_DATA4(basic_ofstream_char, sizeof(basic_ofstream_char),
573 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
574 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
575 ".?AV?$basic_ofstream@DU?$char_traits@D@std@@@std@@")
576 DEFINE_RTTI_DATA4(basic_ofstream_wchar, sizeof(basic_ofstream_wchar),
577 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
578 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
579 ".?AV?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@")
580 DEFINE_RTTI_DATA4(basic_ofstream_short, sizeof(basic_ofstream_wchar),
581 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
582 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
583 ".?AV?$basic_ofstream@GU?$char_traits@G@std@@@std@@")
584 DEFINE_RTTI_DATA4(basic_ifstream_char, sizeof(basic_ifstream_char),
585 &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
586 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
587 ".?AV?$basic_ifstream@DU?$char_traits@D@std@@@std@@")
588 DEFINE_RTTI_DATA4(basic_ifstream_wchar, sizeof(basic_ifstream_wchar),
589 &basic_istream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
590 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
591 ".?AV?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@")
592 DEFINE_RTTI_DATA4(basic_ifstream_short, sizeof(basic_ifstream_wchar),
593 &basic_istream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
594 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
595 ".?AV?$basic_ifstream@GU?$char_traits@G@std@@@std@@")
596 DEFINE_RTTI_DATA8(basic_fstream_char, sizeof(basic_fstream_char),
597 &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
598 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
599 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
600 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
601 ".?AV?$basic_fstream@DU?$char_traits@D@std@@@std@@")
602 DEFINE_RTTI_DATA8(basic_fstream_wchar, sizeof(basic_fstream_wchar),
603 &basic_istream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
604 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
605 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
606 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
607 ".?AV?$basic_fstream@_WU?$char_traits@_W@std@@@std@@")
608 DEFINE_RTTI_DATA8(basic_fstream_short, sizeof(basic_fstream_wchar),
609 &basic_istream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
610 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
611 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
612 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
613 ".?AV?$basic_fstream@GU?$char_traits@G@std@@@std@@")
614 DEFINE_RTTI_DATA4(basic_ostringstream_char, sizeof(basic_ostringstream_char),
615 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
616 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
617 ".?AV?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@")
618 DEFINE_RTTI_DATA4(basic_ostringstream_wchar, sizeof(basic_ostringstream_wchar),
619 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
620 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
621 ".?AV?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@")
622 DEFINE_RTTI_DATA4(basic_ostringstream_short, sizeof(basic_ostringstream_wchar),
623 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
624 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
625 ".?AV?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@")
626 DEFINE_RTTI_DATA4(basic_istringstream_char, sizeof(basic_istringstream_char),
627 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
628 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
629 ".?AV?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@")
630 DEFINE_RTTI_DATA4(basic_istringstream_wchar, sizeof(basic_istringstream_wchar),
631 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
632 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
633 ".?AV?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@")
634 DEFINE_RTTI_DATA4(basic_istringstream_short, sizeof(basic_istringstream_wchar),
635 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
636 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
637 ".?AV?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@")
638 DEFINE_RTTI_DATA8(basic_stringstream_char, sizeof(basic_stringstream_char),
639 &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
640 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
641 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
642 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
643 ".?AV?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@")
644 DEFINE_RTTI_DATA8(basic_stringstream_wchar, sizeof(basic_stringstream_wchar),
645 &basic_istream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
646 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
647 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
648 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
649 ".?AV?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@")
650 DEFINE_RTTI_DATA8(basic_stringstream_short, sizeof(basic_stringstream_wchar),
651 &basic_istream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
652 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
653 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
654 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
655 ".?AV?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@")
656 DEFINE_RTTI_DATA1(strstreambuf, sizeof(strstreambuf),
657 &basic_streambuf_char_rtti_base_descriptor, ".?AVstrstreambuf@std@@")
658 DEFINE_RTTI_DATA4(ostrstream, sizeof(ostrstream),
659 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
660 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
661 "?AVostrstream@std@@")
662 DEFINE_RTTI_DATA8(strstream, sizeof(strstream),
663 &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
664 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
665 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
666 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
667 "?AVstrstream@std@@")
670 void __asm_dummy_vtables(void) {
673 VTABLE_ADD_FUNC(iosb_vector_dtor));
674 __ASM_VTABLE(ios_base,
675 VTABLE_ADD_FUNC(ios_base_vector_dtor));
676 __ASM_VTABLE(basic_ios_char,
677 VTABLE_ADD_FUNC(basic_ios_char_vector_dtor));
678 __ASM_VTABLE(basic_ios_wchar,
679 VTABLE_ADD_FUNC(basic_ios_wchar_vector_dtor));
680 __ASM_VTABLE(basic_ios_short,
681 VTABLE_ADD_FUNC(basic_ios_wchar_vector_dtor));
682 __ASM_VTABLE(basic_streambuf_char,
683 VTABLE_ADD_FUNC(basic_streambuf_char_vector_dtor)
684 VTABLE_ADD_FUNC(basic_streambuf_char_overflow)
685 VTABLE_ADD_FUNC(basic_streambuf_char_pbackfail)
686 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
687 VTABLE_ADD_FUNC(basic_streambuf_char_underflow)
688 VTABLE_ADD_FUNC(basic_streambuf_char_uflow)
689 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
690 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
691 VTABLE_ADD_FUNC(basic_streambuf_char_seekoff)
692 VTABLE_ADD_FUNC(basic_streambuf_char_seekpos)
693 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf)
694 VTABLE_ADD_FUNC(basic_streambuf_char_sync)
695 VTABLE_ADD_FUNC(basic_streambuf_char_imbue));
696 __ASM_VTABLE(basic_streambuf_wchar,
697 VTABLE_ADD_FUNC(basic_streambuf_wchar_vector_dtor)
698 VTABLE_ADD_FUNC(basic_streambuf_wchar_overflow)
699 VTABLE_ADD_FUNC(basic_streambuf_wchar_pbackfail)
700 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
701 VTABLE_ADD_FUNC(basic_streambuf_wchar_underflow)
702 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
703 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
704 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
705 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff)
706 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos)
707 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
708 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
709 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
710 __ASM_VTABLE(basic_streambuf_short,
711 VTABLE_ADD_FUNC(basic_streambuf_wchar_vector_dtor)
712 VTABLE_ADD_FUNC(basic_streambuf_wchar_overflow)
713 VTABLE_ADD_FUNC(basic_streambuf_wchar_pbackfail)
714 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
715 VTABLE_ADD_FUNC(basic_streambuf_wchar_underflow)
716 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
717 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
718 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
719 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff)
720 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos)
721 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
722 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
723 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
724 __ASM_VTABLE(basic_filebuf_char,
725 VTABLE_ADD_FUNC(basic_filebuf_char_vector_dtor)
726 VTABLE_ADD_FUNC(basic_filebuf_char_overflow)
727 VTABLE_ADD_FUNC(basic_filebuf_char_pbackfail)
728 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
729 VTABLE_ADD_FUNC(basic_filebuf_char_underflow)
730 VTABLE_ADD_FUNC(basic_filebuf_char_uflow)
731 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
732 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
733 VTABLE_ADD_FUNC(basic_filebuf_char_seekoff)
734 VTABLE_ADD_FUNC(basic_filebuf_char_seekpos)
735 VTABLE_ADD_FUNC(basic_filebuf_char_setbuf)
736 VTABLE_ADD_FUNC(basic_filebuf_char_sync)
737 VTABLE_ADD_FUNC(basic_streambuf_char_imbue));
738 __ASM_VTABLE(basic_filebuf_wchar,
739 VTABLE_ADD_FUNC(basic_filebuf_wchar_vector_dtor)
740 VTABLE_ADD_FUNC(basic_filebuf_wchar_overflow)
741 VTABLE_ADD_FUNC(basic_filebuf_wchar_pbackfail)
742 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
743 VTABLE_ADD_FUNC(basic_filebuf_wchar_underflow)
744 VTABLE_ADD_FUNC(basic_filebuf_wchar_uflow)
745 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
746 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
747 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekoff)
748 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekpos)
749 VTABLE_ADD_FUNC(basic_filebuf_wchar_setbuf)
750 VTABLE_ADD_FUNC(basic_filebuf_wchar_sync)
751 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
752 __ASM_VTABLE(basic_filebuf_short,
753 VTABLE_ADD_FUNC(basic_filebuf_wchar_vector_dtor)
754 VTABLE_ADD_FUNC(basic_filebuf_wchar_overflow)
755 VTABLE_ADD_FUNC(basic_filebuf_wchar_pbackfail)
756 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
757 VTABLE_ADD_FUNC(basic_filebuf_wchar_underflow)
758 VTABLE_ADD_FUNC(basic_filebuf_wchar_uflow)
759 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
760 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
761 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekoff)
762 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekpos)
763 VTABLE_ADD_FUNC(basic_filebuf_short_setbuf)
764 VTABLE_ADD_FUNC(basic_filebuf_wchar_sync)
765 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
766 __ASM_VTABLE(basic_stringbuf_char,
767 VTABLE_ADD_FUNC(basic_stringbuf_char_vector_dtor)
768 VTABLE_ADD_FUNC(basic_stringbuf_char_overflow)
769 VTABLE_ADD_FUNC(basic_stringbuf_char_pbackfail)
770 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
771 VTABLE_ADD_FUNC(basic_stringbuf_char_underflow)
772 VTABLE_ADD_FUNC(basic_streambuf_char_uflow)
773 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
774 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
775 VTABLE_ADD_FUNC(basic_stringbuf_char_seekoff)
776 VTABLE_ADD_FUNC(basic_stringbuf_char_seekpos)
777 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf)
778 VTABLE_ADD_FUNC(basic_streambuf_char_sync)
779 VTABLE_ADD_FUNC(basic_streambuf_char_imbue));
780 __ASM_VTABLE(basic_stringbuf_wchar,
781 VTABLE_ADD_FUNC(basic_stringbuf_wchar_vector_dtor)
782 VTABLE_ADD_FUNC(basic_stringbuf_wchar_overflow)
783 VTABLE_ADD_FUNC(basic_stringbuf_wchar_pbackfail)
784 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
785 VTABLE_ADD_FUNC(basic_stringbuf_wchar_underflow)
786 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
787 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
788 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
789 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekoff)
790 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekpos)
791 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
792 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
793 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
794 __ASM_VTABLE(basic_stringbuf_short,
795 VTABLE_ADD_FUNC(basic_stringbuf_wchar_vector_dtor)
796 VTABLE_ADD_FUNC(basic_stringbuf_wchar_overflow)
797 VTABLE_ADD_FUNC(basic_stringbuf_wchar_pbackfail)
798 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
799 VTABLE_ADD_FUNC(basic_stringbuf_wchar_underflow)
800 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
801 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
802 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
803 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekoff)
804 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekpos)
805 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
806 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
807 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
808 __ASM_VTABLE(basic_ostream_char,
809 VTABLE_ADD_FUNC(basic_ostream_char_vector_dtor));
810 __ASM_VTABLE(basic_ostream_wchar,
811 VTABLE_ADD_FUNC(basic_ostream_wchar_vector_dtor));
812 __ASM_VTABLE(basic_ostream_short,
813 VTABLE_ADD_FUNC(basic_ostream_wchar_vector_dtor));
814 __ASM_VTABLE(basic_istream_char,
815 VTABLE_ADD_FUNC(basic_istream_char_vector_dtor));
816 __ASM_VTABLE(basic_istream_wchar,
817 VTABLE_ADD_FUNC(basic_istream_wchar_vector_dtor));
818 __ASM_VTABLE(basic_istream_short,
819 VTABLE_ADD_FUNC(basic_istream_wchar_vector_dtor));
820 __ASM_VTABLE(basic_iostream_char,
821 VTABLE_ADD_FUNC(basic_iostream_char_vector_dtor));
822 __ASM_VTABLE(basic_iostream_wchar,
823 VTABLE_ADD_FUNC(basic_iostream_wchar_vector_dtor));
824 __ASM_VTABLE(basic_iostream_short,
825 VTABLE_ADD_FUNC(basic_iostream_wchar_vector_dtor));
826 __ASM_VTABLE(basic_ofstream_char,
827 VTABLE_ADD_FUNC(basic_ofstream_char_vector_dtor));
828 __ASM_VTABLE(basic_ofstream_wchar,
829 VTABLE_ADD_FUNC(basic_ofstream_wchar_vector_dtor));
830 __ASM_VTABLE(basic_ofstream_short,
831 VTABLE_ADD_FUNC(basic_ofstream_wchar_vector_dtor));
832 __ASM_VTABLE(basic_ifstream_char,
833 VTABLE_ADD_FUNC(basic_ifstream_char_vector_dtor));
834 __ASM_VTABLE(basic_ifstream_wchar,
835 VTABLE_ADD_FUNC(basic_ifstream_wchar_vector_dtor));
836 __ASM_VTABLE(basic_ifstream_short,
837 VTABLE_ADD_FUNC(basic_ifstream_wchar_vector_dtor));
838 __ASM_VTABLE(basic_fstream_char,
839 VTABLE_ADD_FUNC(basic_fstream_char_vector_dtor));
840 __ASM_VTABLE(basic_fstream_wchar,
841 VTABLE_ADD_FUNC(basic_fstream_wchar_vector_dtor));
842 __ASM_VTABLE(basic_fstream_short,
843 VTABLE_ADD_FUNC(basic_fstream_wchar_vector_dtor));
844 __ASM_VTABLE(basic_ostringstream_char,
845 VTABLE_ADD_FUNC(basic_ostringstream_char_vector_dtor));
846 __ASM_VTABLE(basic_ostringstream_wchar,
847 VTABLE_ADD_FUNC(basic_ostringstream_wchar_vector_dtor));
848 __ASM_VTABLE(basic_ostringstream_short,
849 VTABLE_ADD_FUNC(basic_ostringstream_wchar_vector_dtor));
850 __ASM_VTABLE(basic_istringstream_char,
851 VTABLE_ADD_FUNC(basic_istringstream_char_vector_dtor));
852 __ASM_VTABLE(basic_istringstream_wchar,
853 VTABLE_ADD_FUNC(basic_istringstream_wchar_vector_dtor));
854 __ASM_VTABLE(basic_istringstream_short,
855 VTABLE_ADD_FUNC(basic_istringstream_wchar_vector_dtor));
856 __ASM_VTABLE(basic_stringstream_char,
857 VTABLE_ADD_FUNC(basic_stringstream_char_vector_dtor));
858 __ASM_VTABLE(basic_stringstream_wchar,
859 VTABLE_ADD_FUNC(basic_stringstream_wchar_vector_dtor));
860 __ASM_VTABLE(basic_stringstream_short,
861 VTABLE_ADD_FUNC(basic_stringstream_wchar_vector_dtor));
862 __ASM_VTABLE(strstreambuf,
863 VTABLE_ADD_FUNC(strstreambuf_vector_dtor)
864 VTABLE_ADD_FUNC(strstreambuf_overflow)
865 VTABLE_ADD_FUNC(strstreambuf_pbackfail)
866 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
867 VTABLE_ADD_FUNC(strstreambuf_underflow)
868 VTABLE_ADD_FUNC(basic_streambuf_char_uflow)
869 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
870 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
871 VTABLE_ADD_FUNC(strstreambuf_seekoff)
872 VTABLE_ADD_FUNC(strstreambuf_seekpos)
873 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf)
874 VTABLE_ADD_FUNC(basic_streambuf_char_sync)
875 VTABLE_ADD_FUNC(basic_streambuf_char_imbue));
876 __ASM_VTABLE(ostrstream,
877 VTABLE_ADD_FUNC(ostrstream_vector_dtor));
878 __ASM_VTABLE(strstream,
879 VTABLE_ADD_FUNC(strstream_vector_dtor));
884 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
885 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
886 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp_next, 16)
887 void __thiscall basic_streambuf_char_setp_next(basic_streambuf_char *this, char *first, char *next, char *last)
889 TRACE("(%p %p %p %p)\n", this, first, next, last);
893 this->wsize = last-next;
896 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z */
897 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z */
898 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp, 12)
899 void __thiscall basic_streambuf_char_setp(basic_streambuf_char *this, char *first, char *last)
901 basic_streambuf_char_setp_next(this, first, first, last);
904 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
905 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
906 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setg, 16)
907 void __thiscall basic_streambuf_char_setg(basic_streambuf_char *this, char *first, char *next, char *last)
909 TRACE("(%p %p %p %p)\n", this, first, next, last);
913 this->rsize = last-next;
916 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ */
917 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ */
918 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init_empty, 4)
919 void __thiscall basic_streambuf_char__Init_empty(basic_streambuf_char *this)
921 TRACE("(%p)\n", this);
923 this->prbuf = &this->rbuf;
924 this->pwbuf = &this->wbuf;
925 this->prpos = &this->rpos;
926 this->pwpos = &this->wpos;
927 this->prsize = &this->rsize;
928 this->pwsize = &this->wsize;
930 basic_streambuf_char_setp(this, NULL, NULL);
931 basic_streambuf_char_setg(this, NULL, NULL, NULL);
934 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@W4_Uninitialized@1@@Z */
935 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
936 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor_uninitialized, 8)
937 basic_streambuf_char* __thiscall basic_streambuf_char_ctor_uninitialized(basic_streambuf_char *this, int uninitialized)
939 TRACE("(%p %d)\n", this, uninitialized);
940 this->vtable = &MSVCP_basic_streambuf_char_vtable;
944 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ */
945 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ */
946 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor, 4)
947 basic_streambuf_char* __thiscall basic_streambuf_char_ctor(basic_streambuf_char *this)
949 TRACE("(%p)\n", this);
951 this->vtable = &MSVCP_basic_streambuf_char_vtable;
952 locale_ctor(&this->loc);
953 basic_streambuf_char__Init_empty(this);
958 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
959 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
960 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_dtor, 4)
961 void __thiscall basic_streambuf_char_dtor(basic_streambuf_char *this)
963 TRACE("(%p)\n", this);
965 locale_dtor(&this->loc);
968 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_vector_dtor, 8)
969 basic_streambuf_char* __thiscall basic_streambuf_char_vector_dtor(basic_streambuf_char *this, unsigned int flags)
971 TRACE("(%p %x)\n", this, flags);
973 /* we have an array, with the number of elements stored before the first object */
974 INT_PTR i, *ptr = (INT_PTR *)this-1;
976 for(i=*ptr-1; i>=0; i--)
977 basic_streambuf_char_dtor(this+i);
978 MSVCRT_operator_delete(ptr);
980 basic_streambuf_char_dtor(this);
982 MSVCRT_operator_delete(this);
988 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
989 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
990 static streamsize basic_streambuf_char__Gnavail(const basic_streambuf_char *this)
992 TRACE("(%p)\n", this);
993 return *this->prpos ? *this->prsize : 0;
996 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
997 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
998 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gndec, 4)
999 char* __thiscall basic_streambuf_char__Gndec(basic_streambuf_char *this)
1001 TRACE("(%p)\n", this);
1004 return *this->prpos;
1007 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
1008 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
1009 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gninc, 4)
1010 char* __thiscall basic_streambuf_char__Gninc(basic_streambuf_char *this)
1012 TRACE("(%p)\n", this);
1014 return (*this->prpos)++;
1017 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
1018 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
1019 static char* basic_streambuf_char__Gnpreinc(basic_streambuf_char *this)
1021 TRACE("(%p)\n", this);
1024 return *this->prpos;
1027 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z */
1028 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAPEAD0PEAH001@Z */
1029 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init, 28)
1030 void __thiscall basic_streambuf_char__Init(basic_streambuf_char *this, char **gf, char **gn, int *gc, char **pf, char **pn, int *pc)
1032 TRACE("(%p %p %p %p %p %p %p)\n", this, gf, gn, gc, pf, pn, pc);
1042 /* ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1043 /* ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1044 static void basic_streambuf_char__Lock(basic_streambuf_char *this)
1046 TRACE("(%p)\n", this);
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 static void basic_streambuf_char__Unlock(basic_streambuf_char *this)
1142 TRACE("(%p)\n", this);
1145 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1146 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1147 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_eback, 4)
1148 char* __thiscall basic_streambuf_char_eback(const basic_streambuf_char *this)
1150 TRACE("(%p)\n", this);
1151 return *this->prbuf;
1154 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1155 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1156 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gptr, 4)
1157 char* __thiscall basic_streambuf_char_gptr(const basic_streambuf_char *this)
1159 TRACE("(%p)\n", this);
1160 return *this->prpos;
1163 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1164 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1165 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_egptr, 4)
1166 char* __thiscall basic_streambuf_char_egptr(const basic_streambuf_char *this)
1168 TRACE("(%p)\n", this);
1169 return *this->prpos+*this->prsize;
1172 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1173 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1174 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_epptr, 4)
1175 char* __thiscall basic_streambuf_char_epptr(const basic_streambuf_char *this)
1177 TRACE("(%p)\n", this);
1178 return *this->pwpos+*this->pwsize;
1181 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
1182 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
1183 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gbump, 8)
1184 void __thiscall basic_streambuf_char_gbump(basic_streambuf_char *this, int off)
1186 TRACE("(%p %d)\n", this, off);
1187 *this->prpos += off;
1188 *this->prsize -= off;
1191 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z */
1192 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z */
1193 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_imbue, 8)
1194 #define call_basic_streambuf_char_imbue(this, loc) CALL_VTBL_FUNC(this, 48, \
1195 void, (basic_streambuf_char*, const locale*), (this, loc))
1196 void __thiscall basic_streambuf_char_imbue(basic_streambuf_char *this, const locale *loc)
1198 TRACE("(%p %p)\n", this, loc);
1201 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
1202 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
1203 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_overflow, 8)
1204 #define call_basic_streambuf_char_overflow(this, ch) CALL_VTBL_FUNC(this, 4, \
1205 int, (basic_streambuf_char*, int), (this, ch))
1206 int __thiscall basic_streambuf_char_overflow(basic_streambuf_char *this, int ch)
1208 TRACE("(%p %d)\n", this, ch);
1212 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
1213 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
1214 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbackfail, 8)
1215 #define call_basic_streambuf_char_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, \
1216 int, (basic_streambuf_char*, int), (this, ch))
1217 int __thiscall basic_streambuf_char_pbackfail(basic_streambuf_char *this, int ch)
1219 TRACE("(%p %d)\n", this, ch);
1223 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1224 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1225 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbase, 4)
1226 char* __thiscall basic_streambuf_char_pbase(const basic_streambuf_char *this)
1228 TRACE("(%p)\n", this);
1229 return *this->pwbuf;
1232 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
1233 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
1234 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbump, 8)
1235 void __thiscall basic_streambuf_char_pbump(basic_streambuf_char *this, int off)
1237 TRACE("(%p %d)\n", this, off);
1238 *this->pwpos += off;
1239 *this->pwsize -= off;
1242 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1243 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1244 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pptr, 4)
1245 char* __thiscall basic_streambuf_char_pptr(const basic_streambuf_char *this)
1247 TRACE("(%p)\n", this);
1248 return *this->pwpos;
1251 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
1252 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
1253 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubimbue, 12)
1254 locale* __thiscall basic_streambuf_char_pubimbue(basic_streambuf_char *this, locale *ret, const locale *loc)
1256 TRACE("(%p %p)\n", this, loc);
1257 memcpy(ret, &this->loc, sizeof(locale));
1258 call_basic_streambuf_char_imbue(this, loc);
1259 locale_copy_ctor(&this->loc, loc);
1263 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
1264 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
1265 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekoff, 20)
1266 #define call_basic_streambuf_char_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 32, \
1267 fpos_int*, (basic_streambuf_char*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
1268 fpos_int* __thiscall basic_streambuf_char_seekoff(basic_streambuf_char *this,
1269 fpos_int *ret, streamoff off, int way, int mode)
1271 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
1278 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
1279 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
1280 static fpos_int* basic_streambuf_char_pubseekoff(basic_streambuf_char *this,
1281 fpos_int *ret, streamoff off, int way, int mode)
1283 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
1284 return call_basic_streambuf_char_seekoff(this, ret, off, way, mode);
1287 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
1288 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
1289 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekpos, 36)
1290 #define call_basic_streambuf_char_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 36, \
1291 fpos_int*, (basic_streambuf_char*, fpos_int*, fpos_int, int), (this, ret, pos, mode))
1292 fpos_int* __thiscall basic_streambuf_char_seekpos(basic_streambuf_char *this,
1293 fpos_int *ret, fpos_int pos, int mode)
1295 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
1302 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
1303 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
1304 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos, 36)
1305 fpos_int* __thiscall basic_streambuf_char_pubseekpos(basic_streambuf_char *this,
1306 fpos_int *ret, fpos_int pos, int mode)
1308 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
1309 return call_basic_streambuf_char_seekpos(this, ret, pos, mode);
1312 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z */
1313 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@PEAD_J@Z */
1314 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setbuf, 12)
1315 #define call_basic_streambuf_char_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 40, \
1316 basic_streambuf_char*, (basic_streambuf_char*, char*, streamsize), (this, buf, count))
1317 basic_streambuf_char* __thiscall basic_streambuf_char_setbuf(basic_streambuf_char *this, char *buf, streamsize count)
1319 TRACE("(%p %p %ld)\n", this, buf, count);
1323 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PADH@Z */
1324 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEAD_J@Z */
1325 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsetbuf, 12)
1326 basic_streambuf_char* __thiscall basic_streambuf_char_pubsetbuf(basic_streambuf_char *this, char *buf, streamsize count)
1328 TRACE("(%p %p %ld)\n", this, buf, count);
1329 return call_basic_streambuf_char_setbuf(this, buf, count);
1332 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1333 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1334 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sync, 4)
1335 #define call_basic_streambuf_char_sync(this) CALL_VTBL_FUNC(this, 44, \
1336 int, (basic_streambuf_char*), (this))
1337 int __thiscall basic_streambuf_char_sync(basic_streambuf_char *this)
1339 TRACE("(%p)\n", this);
1343 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1344 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1345 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsync, 4)
1346 int __thiscall basic_streambuf_char_pubsync(basic_streambuf_char *this)
1348 TRACE("(%p)\n", this);
1349 return call_basic_streambuf_char_sync(this);
1352 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADH@Z */
1353 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z */
1354 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetn, 12)
1355 streamsize __thiscall basic_streambuf_char_sgetn(basic_streambuf_char *this, char *ptr, streamsize count)
1357 TRACE("(%p %p %ld)\n", this, ptr, count);
1358 return basic_streambuf_char__Xsgetn_s(this, ptr, -1, count);
1361 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1362 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ */
1363 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_showmanyc, 4)
1364 #define call_basic_streambuf_char_showmanyc(this) CALL_VTBL_FUNC(this, 12, \
1365 streamsize, (basic_streambuf_char*), (this))
1366 streamsize __thiscall basic_streambuf_char_showmanyc(basic_streambuf_char *this)
1368 TRACE("(%p)\n", this);
1372 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1373 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JXZ */
1374 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_in_avail, 4)
1375 streamsize __thiscall basic_streambuf_char_in_avail(basic_streambuf_char *this)
1379 TRACE("(%p)\n", this);
1381 ret = basic_streambuf_char__Gnavail(this);
1382 return ret ? ret : call_basic_streambuf_char_showmanyc(this);
1385 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
1386 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
1387 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputbackc, 8)
1388 int __thiscall basic_streambuf_char_sputbackc(basic_streambuf_char *this, char ch)
1390 TRACE("(%p %d)\n", this, ch);
1391 if(*this->prpos && *this->prpos>*this->prbuf && (*this->prpos)[-1]==ch) {
1394 return (unsigned char)ch;
1397 return call_basic_streambuf_char_pbackfail(this, (unsigned char)ch);
1400 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
1401 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
1402 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputc, 8)
1403 int __thiscall basic_streambuf_char_sputc(basic_streambuf_char *this, char ch)
1405 TRACE("(%p %d)\n", this, ch);
1406 return basic_streambuf_char__Pnavail(this) ?
1407 (*basic_streambuf_char__Pninc(this) = ch) :
1408 call_basic_streambuf_char_overflow(this, (unsigned char)ch);
1411 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1412 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1413 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sungetc, 4)
1414 int __thiscall basic_streambuf_char_sungetc(basic_streambuf_char *this)
1416 TRACE("(%p)\n", this);
1417 if(*this->prpos && *this->prpos>*this->prbuf) {
1420 return (unsigned char)**this->prpos;
1423 return call_basic_streambuf_char_pbackfail(this, EOF);
1426 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1427 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1428 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_stossc, 4)
1429 void __thiscall basic_streambuf_char_stossc(basic_streambuf_char *this)
1431 TRACE("(%p)\n", this);
1432 if(basic_streambuf_char__Gnavail(this))
1433 basic_streambuf_char__Gninc(this);
1435 call_basic_streambuf_char_uflow(this);
1438 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1439 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1440 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sbumpc, 4)
1441 int __thiscall basic_streambuf_char_sbumpc(basic_streambuf_char *this)
1443 TRACE("(%p)\n", this);
1444 return basic_streambuf_char__Gnavail(this) ?
1445 (int)(unsigned char)*basic_streambuf_char__Gninc(this) : call_basic_streambuf_char_uflow(this);
1448 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1449 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1450 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetc, 4)
1451 int __thiscall basic_streambuf_char_sgetc(basic_streambuf_char *this)
1453 TRACE("(%p)\n", this);
1454 return basic_streambuf_char__Gnavail(this) ?
1455 (int)(unsigned char)*basic_streambuf_char_gptr(this) : call_basic_streambuf_char_underflow(this);
1458 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1459 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1460 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_snextc, 4)
1461 int __thiscall basic_streambuf_char_snextc(basic_streambuf_char *this)
1463 TRACE("(%p)\n", this);
1465 if(basic_streambuf_char__Gnavail(this) > 1)
1466 return (unsigned char)*basic_streambuf_char__Gnpreinc(this);
1467 return basic_streambuf_char_sbumpc(this)==EOF ?
1468 EOF : basic_streambuf_char_sgetc(this);
1471 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z */
1472 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z */
1473 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsgetn, 12)
1474 #define call_basic_streambuf_char_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, \
1475 streamsize, (basic_streambuf_char*, char*, streamsize), (this, ptr, count))
1476 streamsize __thiscall basic_streambuf_char_xsgetn(basic_streambuf_char *this, char *ptr, streamsize count)
1478 TRACE("(%p %p %ld)\n", this, ptr, count);
1479 return basic_streambuf_char__Xsgetn_s(this, ptr, -1, count);
1482 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z */
1483 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z */
1484 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsputn, 12)
1485 #define call_basic_streambuf_char_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 28, \
1486 streamsize, (basic_streambuf_char*, const char*, streamsize), (this, ptr, count))
1487 streamsize __thiscall basic_streambuf_char_xsputn(basic_streambuf_char *this, const char *ptr, streamsize count)
1489 streamsize copied, chunk;
1491 TRACE("(%p %p %ld)\n", this, ptr, count);
1493 for(copied=0; copied<count;) {
1494 chunk = basic_streambuf_char__Pnavail(this);
1495 if(chunk > count-copied)
1496 chunk = count-copied;
1499 memcpy(*this->pwpos, ptr+copied, chunk);
1500 *this->pwpos += chunk;
1501 *this->pwsize -= chunk;
1503 }else if(call_basic_streambuf_char_overflow(this, (unsigned char)ptr[copied]) != EOF) {
1513 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z */
1514 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@Z */
1515 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputn, 12)
1516 streamsize __thiscall basic_streambuf_char_sputn(basic_streambuf_char *this, const char *ptr, streamsize count)
1518 TRACE("(%p %p %ld)\n", this, ptr, count);
1519 return call_basic_streambuf_char_xsputn(this, ptr, count);
1522 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@XZ */
1523 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@XZ */
1524 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_getloc, 8)
1525 locale* __thiscall basic_streambuf_char_getloc(basic_streambuf_char *this, locale *ret)
1527 TRACE("(%p %p)\n", this, ret);
1528 return locale_copy_ctor(ret, &this->loc);
1531 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z */
1532 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z */
1533 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG00@Z */
1534 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z */
1535 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setp_next, 16)
1536 void __thiscall basic_streambuf_wchar_setp_next(basic_streambuf_wchar *this, wchar_t *first, wchar_t *next, wchar_t *last)
1538 TRACE("(%p %p %p %p)\n", this, first, next, last);
1542 this->wsize = last-next;
1545 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W0@Z */
1546 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W0@Z */
1547 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG0@Z */
1548 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG0@Z */
1549 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setp, 12)
1550 void __thiscall basic_streambuf_wchar_setp(basic_streambuf_wchar *this, wchar_t *first, wchar_t *last)
1552 basic_streambuf_wchar_setp_next(this, first, first, last);
1555 /* ?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z */
1556 /* ?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z */
1557 /* ?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG00@Z */
1558 /* ?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z */
1559 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setg, 16)
1560 void __thiscall basic_streambuf_wchar_setg(basic_streambuf_wchar *this, wchar_t *first, wchar_t *next, wchar_t *last)
1562 TRACE("(%p %p %p %p)\n", this, first, next, last);
1566 this->rsize = last-next;
1569 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXXZ */
1570 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXXZ */
1571 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXXZ */
1572 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXXZ */
1573 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init_empty, 4)
1574 void __thiscall basic_streambuf_wchar__Init_empty(basic_streambuf_wchar *this)
1576 TRACE("(%p)\n", this);
1578 this->prbuf = &this->rbuf;
1579 this->pwbuf = &this->wbuf;
1580 this->prpos = &this->rpos;
1581 this->pwpos = &this->wpos;
1582 this->prsize = &this->rsize;
1583 this->pwsize = &this->wsize;
1585 basic_streambuf_wchar_setp(this, NULL, NULL);
1586 basic_streambuf_wchar_setg(this, NULL, NULL, NULL);
1589 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAE@W4_Uninitialized@1@@Z */
1590 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
1591 static basic_streambuf_wchar* basic_streambuf_wchar_ctor_uninitialized(basic_streambuf_wchar *this, int uninitialized)
1593 TRACE("(%p %d)\n", this, uninitialized);
1594 this->vtable = &MSVCP_basic_streambuf_wchar_vtable;
1598 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@W4_Uninitialized@1@@Z */
1599 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
1600 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor_uninitialized, 8)
1601 basic_streambuf_wchar* __thiscall basic_streambuf_short_ctor_uninitialized(basic_streambuf_wchar *this, int uninitialized)
1603 TRACE("(%p %d)\n", this, uninitialized);
1604 basic_streambuf_wchar_ctor_uninitialized(this, uninitialized);
1605 this->vtable = &MSVCP_basic_streambuf_short_vtable;
1609 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
1610 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
1611 static basic_streambuf_wchar* basic_streambuf_wchar_ctor(basic_streambuf_wchar *this)
1613 TRACE("(%p)\n", this);
1615 this->vtable = &MSVCP_basic_streambuf_wchar_vtable;
1616 locale_ctor(&this->loc);
1617 basic_streambuf_wchar__Init_empty(this);
1622 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@XZ */
1623 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@XZ */
1624 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor, 4)
1625 basic_streambuf_wchar* __thiscall basic_streambuf_short_ctor(basic_streambuf_wchar *this)
1627 TRACE("(%p)\n", this);
1628 basic_streambuf_wchar_ctor(this);
1629 this->vtable = &MSVCP_basic_streambuf_short_vtable;
1633 /* ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
1634 /* ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
1635 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UAE@XZ */
1636 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */
1637 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_dtor, 4)
1638 void __thiscall basic_streambuf_wchar_dtor(basic_streambuf_wchar *this)
1640 TRACE("(%p)\n", this);
1642 locale_dtor(&this->loc);
1645 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_vector_dtor, 8)
1646 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_vector_dtor(basic_streambuf_wchar *this, unsigned int flags)
1648 TRACE("(%p %x)\n", this, flags);
1650 /* we have an array, with the number of elements stored before the first object */
1651 INT_PTR i, *ptr = (INT_PTR *)this-1;
1653 for(i=*ptr-1; i>=0; i--)
1654 basic_streambuf_wchar_dtor(this+i);
1655 MSVCRT_operator_delete(ptr);
1657 basic_streambuf_wchar_dtor(this);
1659 MSVCRT_operator_delete(this);
1665 /* ?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEHXZ */
1666 /* ?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ */
1667 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
1668 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
1669 static streamsize basic_streambuf_wchar__Gnavail(const basic_streambuf_wchar *this)
1671 TRACE("(%p)\n", this);
1672 return *this->prpos ? *this->prsize : 0;
1675 /* ?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1676 /* ?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1677 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1678 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1679 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gndec, 4)
1680 wchar_t* __thiscall basic_streambuf_wchar__Gndec(basic_streambuf_wchar *this)
1682 TRACE("(%p)\n", this);
1685 return *this->prpos;
1688 /* ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1689 /* ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1690 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1691 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1692 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gninc, 4)
1693 wchar_t* __thiscall basic_streambuf_wchar__Gninc(basic_streambuf_wchar *this)
1695 TRACE("(%p)\n", this);
1697 return (*this->prpos)++;
1700 /* ?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1701 /* ?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1702 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1703 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1704 static wchar_t* basic_streambuf_wchar__Gnpreinc(basic_streambuf_wchar *this)
1706 TRACE("(%p)\n", this);
1709 return *this->prpos;
1712 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPAPA_W0PAH001@Z */
1713 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAPEA_W0PEAH001@Z */
1714 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAPAG0PAH001@Z */
1715 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAPEAG0PEAH001@Z */
1716 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init, 28)
1717 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)
1719 TRACE("(%p %p %p %p %p %p %p)\n", this, gf, gn, gc, pf, pn, pc);
1729 /* ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1730 /* ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1731 /* ?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1732 /* ?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1733 static void basic_streambuf_wchar__Lock(basic_streambuf_wchar *this)
1735 TRACE("(%p)\n", this);
1738 /* ?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEHXZ */
1739 /* ?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ */
1740 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
1741 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
1742 static streamsize basic_streambuf_wchar__Pnavail(const basic_streambuf_wchar *this)
1744 TRACE("(%p)\n", this);
1745 return *this->pwpos ? *this->pwsize : 0;
1748 /* ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1749 /* ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1750 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1751 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1752 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Pninc, 4)
1753 wchar_t* __thiscall basic_streambuf_wchar__Pninc(basic_streambuf_wchar *this)
1755 TRACE("(%p)\n", this);
1757 return (*this->pwpos)++;
1760 /* ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
1761 /* ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
1762 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
1763 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
1764 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_underflow, 4)
1765 #define call_basic_streambuf_wchar_underflow(this) CALL_VTBL_FUNC(this, 16, \
1766 unsigned short, (basic_streambuf_wchar*), (this))
1767 unsigned short __thiscall basic_streambuf_wchar_underflow(basic_streambuf_wchar *this)
1769 TRACE("(%p)\n", this);
1773 /* ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
1774 /* ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
1775 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
1776 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
1777 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_uflow, 4)
1778 #define call_basic_streambuf_wchar_uflow(this) CALL_VTBL_FUNC(this, 20, \
1779 unsigned short, (basic_streambuf_wchar*), (this))
1780 unsigned short __thiscall basic_streambuf_wchar_uflow(basic_streambuf_wchar *this)
1784 TRACE("(%p)\n", this);
1786 if(call_basic_streambuf_wchar_underflow(this)==WEOF)
1789 ret = **this->prpos;
1795 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WIH@Z */
1796 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_K_J@Z */
1797 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGIH@Z */
1798 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_K_J@Z */
1799 static streamsize basic_streambuf_wchar__Xsgetn_s(basic_streambuf_wchar *this, wchar_t *ptr, MSVCP_size_t size, streamsize count)
1801 streamsize copied, chunk;
1804 TRACE("(%p %p %lu %ld)\n", this, ptr, size, count);
1806 for(copied=0; copied<count && size;) {
1807 chunk = basic_streambuf_wchar__Gnavail(this);
1808 if(chunk > count-copied)
1809 chunk = count-copied;
1812 memcpy_s(ptr+copied, size, *this->prpos, chunk*sizeof(wchar_t));
1813 *this->prpos += chunk;
1814 *this->prsize -= chunk;
1816 size -= chunk*sizeof(wchar_t);
1817 }else if((c = call_basic_streambuf_wchar_uflow(this)) != WEOF) {
1829 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPA_WIH@Z */
1830 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_K_J@Z */
1831 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGIH@Z */
1832 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_K_J@Z */
1833 static streamsize basic_streambuf_wchar__Sgetn_s(basic_streambuf_wchar *this, wchar_t *ptr, MSVCP_size_t size, streamsize count)
1835 TRACE("(%p %p %lu %ld)\n", this, ptr, size, count);
1836 return basic_streambuf_wchar__Xsgetn_s(this, ptr, size, count);
1839 /* ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1840 /* ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1841 /* ?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1842 /* ?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1843 static void basic_streambuf_wchar__Unlock(basic_streambuf_wchar *this)
1845 TRACE("(%p)\n", this);
1848 /* ?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1849 /* ?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1850 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1851 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1852 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_eback, 4)
1853 wchar_t* __thiscall basic_streambuf_wchar_eback(const basic_streambuf_wchar *this)
1855 TRACE("(%p)\n", this);
1856 return *this->prbuf;
1859 /* ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1860 /* ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1861 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1862 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1863 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gptr, 4)
1864 wchar_t* __thiscall basic_streambuf_wchar_gptr(const basic_streambuf_wchar *this)
1866 TRACE("(%p)\n", this);
1867 return *this->prpos;
1870 /* ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1871 /* ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1872 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1873 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1874 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_egptr, 4)
1875 wchar_t* __thiscall basic_streambuf_wchar_egptr(const basic_streambuf_wchar *this)
1877 TRACE("(%p)\n", this);
1878 return *this->prpos+*this->prsize;
1881 /* ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1882 /* ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1883 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1884 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1885 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_epptr, 4)
1886 wchar_t* __thiscall basic_streambuf_wchar_epptr(const basic_streambuf_wchar *this)
1888 TRACE("(%p)\n", this);
1889 return *this->pwpos+*this->pwsize;
1892 /* ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z */
1893 /* ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z */
1894 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
1895 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
1896 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gbump, 8)
1897 void __thiscall basic_streambuf_wchar_gbump(basic_streambuf_wchar *this, int off)
1899 TRACE("(%p %d)\n", this, off);
1900 *this->prpos += off;
1901 *this->prsize -= off;
1904 /* ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z */
1905 /* ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z */
1906 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEXABVlocale@2@@Z */
1907 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z */
1908 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_imbue, 8)
1909 #define call_basic_streambuf_wchar_imbue(this, loc) CALL_VTBL_FUNC(this, 48, \
1910 void, (basic_streambuf_wchar*, const locale*), (this, loc))
1911 void __thiscall basic_streambuf_wchar_imbue(basic_streambuf_wchar *this, const locale *loc)
1913 TRACE("(%p %p)\n", this, loc);
1916 /* ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
1917 /* ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
1918 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
1919 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
1920 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_overflow, 8)
1921 #define call_basic_streambuf_wchar_overflow(this, ch) CALL_VTBL_FUNC(this, 4, \
1922 unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
1923 unsigned short __thiscall basic_streambuf_wchar_overflow(basic_streambuf_wchar *this, unsigned short ch)
1925 TRACE("(%p %d)\n", this, ch);
1929 /* ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
1930 /* ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
1931 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
1932 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
1933 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbackfail, 8)
1934 #define call_basic_streambuf_wchar_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, \
1935 unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
1936 unsigned short __thiscall basic_streambuf_wchar_pbackfail(basic_streambuf_wchar *this, unsigned short ch)
1938 TRACE("(%p %d)\n", this, ch);
1942 /* ?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1943 /* ?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1944 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1945 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1946 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbase, 4)
1947 wchar_t* __thiscall basic_streambuf_wchar_pbase(const basic_streambuf_wchar *this)
1949 TRACE("(%p)\n", this);
1950 return *this->pwbuf;
1953 /* ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z */
1954 /* ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z */
1955 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
1956 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
1957 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbump, 8)
1958 void __thiscall basic_streambuf_wchar_pbump(basic_streambuf_wchar *this, int off)
1960 TRACE("(%p %d)\n", this, off);
1961 *this->pwpos += off;
1962 *this->pwsize -= off;
1965 /* ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1966 /* ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1967 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1968 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1969 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pptr, 4)
1970 wchar_t* __thiscall basic_streambuf_wchar_pptr(const basic_streambuf_wchar *this)
1972 TRACE("(%p)\n", this);
1973 return *this->pwpos;
1976 /* ?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
1977 /* ?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
1978 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
1979 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
1980 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubimbue, 12)
1981 locale* __thiscall basic_streambuf_wchar_pubimbue(basic_streambuf_wchar *this, locale *ret, const locale *loc)
1983 TRACE("(%p %p)\n", this, loc);
1984 memcpy(ret, &this->loc, sizeof(locale));
1985 call_basic_streambuf_wchar_imbue(this, loc);
1986 locale_copy_ctor(&this->loc, loc);
1990 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
1991 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
1992 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekoff, 20)
1993 #define call_basic_streambuf_wchar_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 32, \
1994 fpos_int*, (basic_streambuf_wchar*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
1995 fpos_int* __thiscall basic_streambuf_wchar_seekoff(basic_streambuf_wchar *this,
1996 fpos_int *ret, streamoff off, int way, int mode)
1998 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
2005 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
2006 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
2007 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
2008 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
2009 static fpos_int* basic_streambuf_wchar_pubseekoff(basic_streambuf_wchar *this,
2010 fpos_int *ret, streamoff off, int way, int mode)
2012 TRACE("(%p %ld %d %d)\n", this, off, way, mode);
2013 return call_basic_streambuf_wchar_seekoff(this, ret, off, way, mode);
2016 /* ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2017 /* ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2018 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2019 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2020 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekpos, 36)
2021 #define call_basic_streambuf_wchar_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 36, \
2022 fpos_int*, (basic_streambuf_wchar*, fpos_int*, fpos_int, int), (this, ret, pos, mode))
2023 fpos_int* __thiscall basic_streambuf_wchar_seekpos(basic_streambuf_wchar *this,
2024 fpos_int *ret, fpos_int pos, int mode)
2026 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
2033 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
2034 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
2035 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
2036 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
2037 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekpos, 36)
2038 fpos_int* __thiscall basic_streambuf_wchar_pubseekpos(basic_streambuf_wchar *this,
2039 fpos_int *ret, fpos_int pos, int mode)
2041 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
2042 return call_basic_streambuf_wchar_seekpos(this, ret, pos, mode);
2045 /* ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEPAV12@PA_WH@Z */
2046 /* ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV12@PEA_W_J@Z */
2047 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEPAV12@PAGH@Z */
2048 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAPEAV12@PEAG_J@Z */
2049 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setbuf, 12)
2050 #define call_basic_streambuf_wchar_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 40, \
2051 basic_streambuf_wchar*, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, buf, count))
2052 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_setbuf(basic_streambuf_wchar *this, wchar_t *buf, streamsize count)
2054 TRACE("(%p %p %ld)\n", this, buf, count);
2058 /* ?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PA_WH@Z */
2059 /* ?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEA_W_J@Z */
2060 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PAGH@Z */
2061 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEAG_J@Z */
2062 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsetbuf, 12)
2063 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_pubsetbuf(basic_streambuf_wchar *this, wchar_t *buf, streamsize count)
2065 TRACE("(%p %p %ld)\n", this, buf, count);
2066 return call_basic_streambuf_wchar_setbuf(this, buf, count);
2069 /* ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
2070 /* ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ */
2071 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
2072 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAHXZ */
2073 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sync, 4)
2074 #define call_basic_streambuf_wchar_sync(this) CALL_VTBL_FUNC(this, 44, \
2075 int, (basic_streambuf_wchar*), (this))
2076 int __thiscall basic_streambuf_wchar_sync(basic_streambuf_wchar *this)
2078 TRACE("(%p)\n", this);
2082 /* ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
2083 /* ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAHXZ */
2084 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
2085 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHXZ */
2086 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsync, 4)
2087 int __thiscall basic_streambuf_wchar_pubsync(basic_streambuf_wchar *this)
2089 TRACE("(%p)\n", this);
2090 return call_basic_streambuf_wchar_sync(this);
2093 /* ?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPA_WH@Z */
2094 /* ?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z */
2095 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGH@Z */
2096 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z */
2097 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetn, 12)
2098 streamsize __thiscall basic_streambuf_wchar_sgetn(basic_streambuf_wchar *this, wchar_t *ptr, streamsize count)
2100 TRACE("(%p %p %ld)\n", this, ptr, count);
2101 return basic_streambuf_wchar__Xsgetn_s(this, ptr, -1, count);
2104 /* ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
2105 /* ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JXZ */
2106 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
2107 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JXZ */
2108 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_showmanyc, 4)
2109 #define call_basic_streambuf_wchar_showmanyc(this) CALL_VTBL_FUNC(this, 12, \
2110 streamsize, (basic_streambuf_wchar*), (this))
2111 streamsize __thiscall basic_streambuf_wchar_showmanyc(basic_streambuf_wchar *this)
2113 TRACE("(%p)\n", this);
2117 /* ?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
2118 /* ?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JXZ */
2119 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
2120 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JXZ */
2121 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_in_avail, 4)
2122 streamsize __thiscall basic_streambuf_wchar_in_avail(basic_streambuf_wchar *this)
2126 TRACE("(%p)\n", this);
2128 ret = basic_streambuf_wchar__Gnavail(this);
2129 return ret ? ret : call_basic_streambuf_wchar_showmanyc(this);
2132 /* ?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z */
2133 /* ?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z */
2134 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
2135 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z */
2136 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputbackc, 8)
2137 unsigned short __thiscall basic_streambuf_wchar_sputbackc(basic_streambuf_wchar *this, wchar_t ch)
2139 TRACE("(%p %d)\n", this, ch);
2140 if(*this->prpos && *this->prpos>*this->prbuf && (*this->prpos)[-1]==ch) {
2146 return call_basic_streambuf_wchar_pbackfail(this, ch);
2149 /* ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z */
2150 /* ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z */
2151 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
2152 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHG@Z */
2153 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputc, 8)
2154 unsigned short __thiscall basic_streambuf_wchar_sputc(basic_streambuf_wchar *this, wchar_t ch)
2156 TRACE("(%p %d)\n", this, ch);
2157 return basic_streambuf_wchar__Pnavail(this) ?
2158 (*basic_streambuf_wchar__Pninc(this) = ch) :
2159 call_basic_streambuf_wchar_overflow(this, ch);
2162 /* ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2163 /* ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2164 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2165 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2166 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sungetc, 4)
2167 unsigned short __thiscall basic_streambuf_wchar_sungetc(basic_streambuf_wchar *this)
2169 TRACE("(%p)\n", this);
2170 if(*this->prpos && *this->prpos>*this->prbuf) {
2173 return **this->prpos;
2176 return call_basic_streambuf_wchar_pbackfail(this, WEOF);
2179 /* ?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
2180 /* ?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
2181 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
2182 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
2183 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_stossc, 4)
2184 void __thiscall basic_streambuf_wchar_stossc(basic_streambuf_wchar *this)
2186 TRACE("(%p)\n", this);
2187 if(basic_streambuf_wchar__Gnavail(this))
2188 basic_streambuf_wchar__Gninc(this);
2190 call_basic_streambuf_wchar_uflow(this);
2193 /* ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2194 /* ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2195 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2196 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2197 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sbumpc, 4)
2198 unsigned short __thiscall basic_streambuf_wchar_sbumpc(basic_streambuf_wchar *this)
2200 TRACE("(%p)\n", this);
2201 return basic_streambuf_wchar__Gnavail(this) ?
2202 *basic_streambuf_wchar__Gninc(this) : call_basic_streambuf_wchar_uflow(this);
2205 /* ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2206 /* ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2207 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2208 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2209 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetc, 4)
2210 unsigned short __thiscall basic_streambuf_wchar_sgetc(basic_streambuf_wchar *this)
2212 TRACE("(%p)\n", this);
2213 return basic_streambuf_wchar__Gnavail(this) ?
2214 *basic_streambuf_wchar_gptr(this) : call_basic_streambuf_wchar_underflow(this);
2217 /* ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2218 /* ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2219 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2220 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2221 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_snextc, 4)
2222 unsigned short __thiscall basic_streambuf_wchar_snextc(basic_streambuf_wchar *this)
2224 TRACE("(%p)\n", this);
2226 if(basic_streambuf_wchar__Gnavail(this) > 1)
2227 return *basic_streambuf_wchar__Gnpreinc(this);
2228 return basic_streambuf_wchar_sbumpc(this)==WEOF ?
2229 WEOF : basic_streambuf_wchar_sgetc(this);
2232 /* ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WH@Z */
2233 /* ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_J@Z */
2234 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGH@Z */
2235 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_J@Z */
2236 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsgetn, 12)
2237 #define call_basic_streambuf_wchar_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, \
2238 streamsize, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, ptr, count))
2239 streamsize __thiscall basic_streambuf_wchar_xsgetn(basic_streambuf_wchar *this, wchar_t *ptr, streamsize count)
2241 TRACE("(%p %p %ld)\n", this, ptr, count);
2242 return basic_streambuf_wchar__Xsgetn_s(this, ptr, -1, count);
2245 /* ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPB_WH@Z */
2246 /* ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEB_W_J@Z */
2247 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPBGH@Z */
2248 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEBG_J@Z */
2249 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsputn, 12)
2250 #define call_basic_streambuf_wchar_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 28, \
2251 streamsize, (basic_streambuf_wchar*, const wchar_t*, streamsize), (this, ptr, count))
2252 streamsize __thiscall basic_streambuf_wchar_xsputn(basic_streambuf_wchar *this, const wchar_t *ptr, streamsize count)
2254 streamsize copied, chunk;
2256 TRACE("(%p %p %ld)\n", this, ptr, count);
2258 for(copied=0; copied<count;) {
2259 chunk = basic_streambuf_wchar__Pnavail(this);
2260 if(chunk > count-copied)
2261 chunk = count-copied;
2264 memcpy(*this->pwpos, ptr+copied, chunk*sizeof(wchar_t));
2265 *this->pwpos += chunk;
2266 *this->pwsize -= chunk;
2268 }else if(call_basic_streambuf_wchar_overflow(this, ptr[copied]) != WEOF) {
2278 /* ?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPB_WH@Z */
2279 /* ?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEB_W_J@Z */
2280 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPBGH@Z */
2281 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEBG_J@Z */
2282 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputn, 12)
2283 streamsize __thiscall basic_streambuf_wchar_sputn(basic_streambuf_wchar *this, const wchar_t *ptr, streamsize count)
2285 TRACE("(%p %p %ld)\n", this, ptr, count);
2286 return call_basic_streambuf_wchar_xsputn(this, ptr, count);
2289 /* ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
2290 /* ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
2291 int basic_filebuf_char__Init__Stinit = 0;
2293 /* ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
2294 /* ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
2295 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Init, 12)
2296 void __thiscall basic_filebuf_char__Init(basic_filebuf_char *this, FILE *file, basic_filebuf__Initfl which)
2298 TRACE("(%p %p %d)\n", this, file, which);
2301 this->state0 = basic_filebuf_char__Init__Stinit;
2302 this->state = basic_filebuf_char__Init__Stinit;
2304 this->close = (which == INITFL_open);
2307 basic_streambuf_char__Init_empty(&this->base);
2309 basic_streambuf_char__Init(&this->base, &file->_base, &file->_ptr,
2310 &file->_cnt, &file->_base, &file->_ptr, &file->_cnt);
2313 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXXZ */
2314 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXXZ */
2315 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Initcvt, 4)
2316 void __thiscall basic_filebuf_char__Initcvt(basic_filebuf_char *this)
2318 TRACE("(%p)\n", this);
2320 this->cvt = codecvt_char_use_facet(&this->base.loc);
2321 locale__Addfac(&this->loc, &this->cvt->base.facet, codecvt_char_id.id, LC_CTYPE);
2322 if(codecvt_base_always_noconv(&this->cvt->base)) {
2325 this->str = MSVCRT_operator_new(sizeof(basic_string_char));
2326 basic_string_char_ctor(this->str);
2330 /* ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ */
2331 /* ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ */
2332 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_close, 4)
2333 basic_filebuf_char* __thiscall basic_filebuf_char_close(basic_filebuf_char *this)
2335 basic_filebuf_char *ret = this;
2337 TRACE("(%p)\n", this);
2339 if(!this->file || fclose(this->file))
2342 basic_filebuf_char__Init(this, NULL, INITFL_close);
2346 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
2347 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
2348 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor_file, 8)
2349 basic_filebuf_char* __thiscall basic_filebuf_char_ctor_file(basic_filebuf_char *this, FILE *file)
2351 TRACE("(%p %p)\n", this, file);
2353 basic_streambuf_char_ctor(&this->base);
2354 this->base.vtable = &MSVCP_basic_filebuf_char_vtable;
2356 locale_ctor(&this->loc);
2357 basic_filebuf_char__Init(this, file, INITFL_new);
2361 /* ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
2362 /* ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
2363 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor, 4)
2364 basic_filebuf_char* __thiscall basic_filebuf_char_ctor(basic_filebuf_char *this)
2366 return basic_filebuf_char_ctor_file(this, NULL);
2369 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
2370 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
2371 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor_uninitialized, 8)
2372 basic_filebuf_char* __thiscall basic_filebuf_char_ctor_uninitialized(basic_filebuf_char *this, int uninitialized)
2374 TRACE("(%p %d)\n", this, uninitialized);
2376 basic_streambuf_char_ctor_uninitialized(&this->base, 0);
2377 this->base.vtable = &MSVCP_basic_filebuf_char_vtable;
2378 locale_ctor(&this->loc);
2382 /* ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
2383 /* ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
2384 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_dtor, 4)
2385 void __thiscall basic_filebuf_char_dtor(basic_filebuf_char *this)
2387 TRACE("(%p)\n", this);
2390 basic_filebuf_char_close(this);
2392 basic_string_char_dtor(this->str);
2393 MSVCRT_operator_delete(this->str);
2395 locale_dtor(&this->loc);
2396 basic_streambuf_char_dtor(&this->base);
2399 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_vector_dtor, 8)
2400 basic_filebuf_char* __thiscall basic_filebuf_char_vector_dtor(basic_filebuf_char *this, unsigned int flags)
2402 TRACE("(%p %x)\n", this, flags);
2404 /* we have an array, with the number of elements stored before the first object */
2405 INT_PTR i, *ptr = (INT_PTR *)this-1;
2407 for(i=*ptr-1; i>=0; i--)
2408 basic_filebuf_char_dtor(this+i);
2409 MSVCRT_operator_delete(ptr);
2411 basic_filebuf_char_dtor(this);
2413 MSVCRT_operator_delete(this);
2419 /* ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QBE_NXZ */
2420 /* ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
2421 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_is_open, 4)
2422 MSVCP_bool __thiscall basic_filebuf_char_is_open(const basic_filebuf_char *this)
2424 TRACE("(%p)\n", this);
2425 return this->file != NULL;
2428 /* ?_Fiopen@std@@YAPAU_iobuf@@PB_WHH@Z */
2429 /* ?_Fiopen@std@@YAPEAU_iobuf@@PEB_WHH@Z */
2430 static FILE* _Fiopen_wchar(const wchar_t *name, int mode, int prot)
2432 static const wchar_t rW[] = {'r',0};
2433 static const struct {
2435 const wchar_t str[4];
2436 const wchar_t str_bin[4];
2438 {OPENMODE_out, {'w',0}, {'w','b',0}},
2439 {OPENMODE_out|OPENMODE_app, {'a',0}, {'a','b',0}},
2440 {OPENMODE_app, {'a',0}, {'a','b',0}},
2441 {OPENMODE_out|OPENMODE_trunc, {'w',0}, {'w','b',0}},
2442 {OPENMODE_in, {'r',0}, {'r','b',0}},
2443 {OPENMODE_in|OPENMODE_out, {'r','+',0}, {'r','+','b',0}},
2444 {OPENMODE_in|OPENMODE_out|OPENMODE_trunc, {'w','+',0}, {'w','+','b',0}},
2445 {OPENMODE_in|OPENMODE_out|OPENMODE_app, {'a','+',0}, {'a','+','b',0}},
2446 {OPENMODE_in|OPENMODE_app, {'a','+',0}, {'a','+','b',0}}
2449 int real_mode = mode & ~(OPENMODE_ate|OPENMODE__Nocreate|OPENMODE__Noreplace|OPENMODE_binary);
2450 unsigned int mode_idx;
2453 TRACE("(%s %d %d)\n", debugstr_w(name), mode, prot);
2455 for(mode_idx=0; mode_idx<sizeof(str_mode)/sizeof(str_mode[0]); mode_idx++)
2456 if(str_mode[mode_idx].mode == real_mode)
2458 if(mode_idx == sizeof(str_mode)/sizeof(str_mode[0]))
2461 if((mode & OPENMODE__Nocreate) && !(f = _wfopen(name, rW)))
2466 if((mode & OPENMODE__Noreplace) && (mode & (OPENMODE_out|OPENMODE_app))
2467 && (f = _wfopen(name, rW))) {
2472 f = _wfsopen(name, (mode & OPENMODE_binary) ? str_mode[mode_idx].str_bin
2473 : str_mode[mode_idx].str, prot);
2477 if((mode & OPENMODE_ate) && fseek(f, 0, SEEK_END)) {
2485 /* ?_Fiopen@std@@YAPAU_iobuf@@PBDHH@Z */
2486 /* ?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z */
2487 static FILE* _Fiopen(const char *name, int mode, int prot)
2489 wchar_t nameW[FILENAME_MAX];
2491 TRACE("(%s %d %d)\n", name, mode, prot);
2493 if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
2495 return _Fiopen_wchar(nameW, mode, prot);
2498 /* ?__Fiopen@std@@YAPAU_iobuf@@PBDH@Z */
2499 /* ?__Fiopen@std@@YAPEAU_iobuf@@PEBDH@Z */
2500 FILE* __cdecl ___Fiopen(const char *name, int mode)
2502 TRACE("(%p %d)\n", name, mode);
2503 return _Fiopen(name, mode, _SH_DENYNO);
2506 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PB_WHH@Z */
2507 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
2508 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBGHH@Z */
2509 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBGHH@Z */
2510 static basic_filebuf_char* basic_filebuf_char_open_wchar(basic_filebuf_char *this, const wchar_t *name, int mode, int prot)
2514 TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
2516 if(basic_filebuf_char_is_open(this))
2519 if(!(f = _Fiopen_wchar(name, mode, prot)))
2522 basic_filebuf_char__Init(this, f, INITFL_open);
2523 basic_filebuf_char__Initcvt(this);
2527 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z */
2528 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z */
2529 static basic_filebuf_char* basic_filebuf_char_open(basic_filebuf_char *this, const char *name, int mode, int prot)
2531 wchar_t nameW[FILENAME_MAX];
2533 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
2535 if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
2537 return basic_filebuf_char_open_wchar(this, nameW, mode, prot);
2540 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDF@Z */
2541 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDF@Z */
2542 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_mode_old, 12)
2543 basic_filebuf_char* __thiscall basic_filebuf_char_open_mode_old(basic_filebuf_char *this, const char *name, short mode)
2545 TRACE("(%p %p %d)\n", this, name, mode);
2546 return basic_filebuf_char_open(this, name, mode, _SH_DENYNO);
2549 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDH@Z */
2550 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDH@Z */
2551 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_mode, 12)
2552 basic_filebuf_char* __thiscall basic_filebuf_char_open_mode(basic_filebuf_char *this, const char *name, int mode)
2554 TRACE("(%p %p %d)\n", this, name, mode);
2555 return basic_filebuf_char_open(this, name, mode, _SH_DENYNO);
2558 /* ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
2559 /* ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
2560 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_overflow, 8)
2561 int __thiscall basic_filebuf_char_overflow(basic_filebuf_char *this, int c)
2563 char *ptr, ch = c, *to_next;
2564 const char *from_next;
2568 TRACE("(%p %d)\n", this, c);
2570 if(!basic_filebuf_char_is_open(this))
2576 return fwrite(&ch, sizeof(char), 1, this->file) ? c : EOF;
2579 basic_string_char_clear(this->str);
2580 basic_string_char_append_len_ch(this->str, 8, '\0');
2581 ptr = this->str->ptr;
2582 ret = codecvt_char_out(this->cvt, &this->state, from_next, &ch+1, &from_next,
2583 ptr, ptr+basic_string_char_length(this->str), &to_next);
2586 case CODECVT_partial:
2587 if(from_next == &ch)
2590 if(!fwrite(ptr, to_next-ptr, 1, this->file))
2593 case CODECVT_noconv:
2594 return fwrite(&ch, sizeof(char), 1, this->file) ? c : EOF;
2600 /* ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
2601 /* ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
2602 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_pbackfail, 8)
2603 int __thiscall basic_filebuf_char_pbackfail(basic_filebuf_char *this, int c)
2605 TRACE("(%p %d)\n", this, c);
2607 if(!basic_filebuf_char_is_open(this))
2610 if(basic_streambuf_char_gptr(&this->base)>basic_streambuf_char_eback(&this->base)
2611 && (c==EOF || (int)(unsigned char)basic_streambuf_char_gptr(&this->base)[-1]==c)) {
2612 basic_streambuf_char__Gndec(&this->base);
2613 return c==EOF ? !c : c;
2614 }else if(c == EOF) {
2616 }else if(!this->cvt) {
2617 return ungetc(c, this->file);
2618 }else if(basic_string_char_length(this->str)) {
2622 b = e+this->str->size-1;
2623 for(cur = b; cur>=e; cur--) {
2624 if(ungetc(*cur, this->file) == EOF) {
2625 for(; cur<=b; cur++)
2630 basic_string_char_clear(this->str);
2631 this->state = this->state0;
2638 /* ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2639 /* ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2640 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_uflow, 4)
2641 int __thiscall basic_filebuf_char_uflow(basic_filebuf_char *this)
2644 const char *buf_next;
2647 TRACE("(%p)\n", this);
2649 if(!basic_filebuf_char_is_open(this))
2652 if(basic_streambuf_char_gptr(&this->base) < basic_streambuf_char_egptr(&this->base))
2653 return (unsigned char)*basic_streambuf_char__Gninc(&this->base);
2655 c = fgetc(this->file);
2656 if(!this->cvt || c==EOF)
2659 basic_string_char_clear(this->str);
2660 this->state0 = this->state;
2662 basic_string_char_append_ch(this->str, c);
2663 this->state = this->state0;
2665 switch(codecvt_char_in(this->cvt, &this->state, this->str->ptr,
2666 this->str->ptr+this->str->size, &buf_next, &ch, &ch+1, &to_next)) {
2667 case CODECVT_partial:
2669 case CODECVT_noconv:
2670 return (unsigned char)this->str->ptr[0];
2672 return (unsigned char)ch;
2677 c = fgetc(this->file);
2683 /* ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2684 /* ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2685 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_underflow, 4)
2686 int __thiscall basic_filebuf_char_underflow(basic_filebuf_char *this)
2690 TRACE("(%p)\n", this);
2692 if(basic_streambuf_char_gptr(&this->base) < basic_streambuf_char_egptr(&this->base))
2693 return (unsigned char)*basic_streambuf_char_gptr(&this->base);
2695 ret = call_basic_streambuf_char_uflow(&this->base);
2697 ret = call_basic_streambuf_char_pbackfail(&this->base, ret);
2701 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
2702 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
2703 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_seekoff, 20)
2704 fpos_int* __thiscall basic_filebuf_char_seekoff(basic_filebuf_char *this,
2705 fpos_int *ret, streamoff off, int way, int mode)
2709 TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode);
2711 if(!basic_filebuf_char_is_open(this) || fseek(this->file, off, way)) {
2718 fgetpos(this->file, &pos);
2721 ret->state = this->state;
2725 /* ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2726 /* ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2727 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_seekpos, 36)
2728 fpos_int* __thiscall basic_filebuf_char_seekpos(basic_filebuf_char *this,
2729 fpos_int *ret, fpos_int pos, int mode)
2733 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
2735 if(!basic_filebuf_char_is_open(this) || fseek(this->file, (LONG)pos.pos, SEEK_SET)
2736 || (pos.off && fseek(this->file, pos.off, SEEK_CUR))) {
2743 fgetpos(this->file, &fpos);
2746 ret->state = this->state;
2750 /* ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PADH@Z */
2751 /* ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z */
2752 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_setbuf, 12)
2753 basic_streambuf_char* __thiscall basic_filebuf_char_setbuf(basic_filebuf_char *this, char *buf, streamsize count)
2755 TRACE("(%p %p %ld)\n", this, buf, count);
2757 if(!basic_filebuf_char_is_open(this))
2760 if(setvbuf(this->file, buf, (buf==NULL && count==0) ? _IONBF : _IOFBF, count))
2763 basic_filebuf_char__Init(this, this->file, INITFL_open);
2767 /* ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2768 /* ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2769 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_sync, 4)
2770 int __thiscall basic_filebuf_char_sync(basic_filebuf_char *this)
2772 TRACE("(%p)\n", this);
2774 if(!basic_filebuf_char_is_open(this))
2777 if(call_basic_streambuf_char_overflow(&this->base, EOF) == EOF)
2779 return fflush(this->file);
2782 /* ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
2783 /* ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
2784 int basic_filebuf_short__Init__Stinit = 0;
2786 /* ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
2787 /* ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
2788 static void basic_filebuf_wchar__Init(basic_filebuf_wchar *this, FILE *file, basic_filebuf__Initfl which)
2790 TRACE("(%p %p %d)\n", this, file, which);
2793 this->state0 = basic_filebuf_short__Init__Stinit;
2794 this->state = basic_filebuf_short__Init__Stinit;
2796 this->close = (which == INITFL_open);
2799 basic_streambuf_wchar__Init_empty(&this->base);
2802 /* ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
2803 /* ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
2804 DEFINE_THISCALL_WRAPPER(basic_filebuf_short__Init, 12)
2805 void __thiscall basic_filebuf_short__Init(basic_filebuf_wchar *this, FILE *file, basic_filebuf__Initfl which)
2807 TRACE("(%p %p %d)\n", this, file, which);
2810 this->state0 = basic_filebuf_short__Init__Stinit;
2811 this->state = basic_filebuf_short__Init__Stinit;
2813 this->close = (which == INITFL_open);
2816 basic_streambuf_wchar__Init_empty(&this->base);
2819 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXXZ */
2820 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXXZ */
2821 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Initcvt, 4)
2822 void __thiscall basic_filebuf_wchar__Initcvt(basic_filebuf_wchar *this)
2824 TRACE("(%p)\n", this);
2826 this->cvt = codecvt_short_use_facet(&this->base.loc);
2827 locale__Addfac(&this->loc, &this->cvt->base.facet, codecvt_short_id.id, LC_CTYPE);
2828 if(codecvt_base_always_noconv(&this->cvt->base)) {
2831 this->str = MSVCRT_operator_new(sizeof(basic_string_char));
2832 basic_string_char_ctor(this->str);
2836 /* ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@XZ */
2837 /* ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@XZ */
2838 /* ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@XZ */
2839 /* ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@XZ */
2840 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_close, 4)
2841 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_close(basic_filebuf_wchar *this)
2843 basic_filebuf_wchar *ret = this;
2845 TRACE("(%p)\n", this);
2847 if(!this->file || fclose(this->file))
2850 basic_filebuf_wchar__Init(this, NULL, INITFL_close);
2854 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
2855 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
2856 static basic_filebuf_wchar* basic_filebuf_wchar_ctor_file(basic_filebuf_wchar *this, FILE *file)
2858 TRACE("(%p %p)\n", this, file);
2860 basic_streambuf_wchar_ctor(&this->base);
2861 this->base.vtable = &MSVCP_basic_filebuf_wchar_vtable;
2863 locale_ctor(&this->loc);
2864 basic_filebuf_wchar__Init(this, file, INITFL_new);
2868 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
2869 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
2870 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor_file, 8)
2871 basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor_file(basic_filebuf_wchar *this, FILE *file)
2873 TRACE("(%p %p)\n", this, file);
2875 basic_streambuf_short_ctor(&this->base);
2876 this->base.vtable = &MSVCP_basic_filebuf_short_vtable;
2878 locale_ctor(&this->loc);
2879 basic_filebuf_short__Init(this, file, INITFL_new);
2883 /* ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
2884 /* ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
2885 static basic_filebuf_wchar* basic_filebuf_wchar_ctor(basic_filebuf_wchar *this)
2887 return basic_filebuf_wchar_ctor_file(this, NULL);
2890 /* ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
2891 /* ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
2892 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor, 4)
2893 basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor(basic_filebuf_wchar *this)
2895 return basic_filebuf_short_ctor_file(this, NULL);
2898 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */
2899 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
2900 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor_uninitialized, 8)
2901 basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor_uninitialized(basic_filebuf_wchar *this, int uninitialized)
2903 TRACE("(%p %d)\n", this, uninitialized);
2905 basic_streambuf_short_ctor_uninitialized(&this->base, 0);
2906 this->base.vtable = &MSVCP_basic_filebuf_short_vtable;
2907 locale_ctor(&this->loc);
2911 /* ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
2912 /* ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
2913 /* ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UAE@XZ */
2914 /* ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */
2915 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_dtor, 4)
2916 void __thiscall basic_filebuf_wchar_dtor(basic_filebuf_wchar *this)
2918 TRACE("(%p)\n", this);
2921 basic_filebuf_wchar_close(this);
2923 basic_string_char_dtor(this->str);
2924 MSVCRT_operator_delete(this->str);
2926 locale_dtor(&this->loc);
2927 basic_streambuf_wchar_dtor(&this->base);
2930 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_vector_dtor, 8)
2931 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_vector_dtor(basic_filebuf_wchar *this, unsigned int flags)
2933 TRACE("(%p %x)\n", this, flags);
2935 /* we have an array, with the number of elements stored before the first object */
2936 INT_PTR i, *ptr = (INT_PTR *)this-1;
2938 for(i=*ptr-1; i>=0; i--)
2939 basic_filebuf_wchar_dtor(this+i);
2940 MSVCRT_operator_delete(ptr);
2942 basic_filebuf_wchar_dtor(this);
2944 MSVCRT_operator_delete(this);
2950 /* ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
2951 /* ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
2952 /* ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QBE_NXZ */
2953 /* ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
2954 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_is_open, 4)
2955 MSVCP_bool __thiscall basic_filebuf_wchar_is_open(const basic_filebuf_wchar *this)
2957 TRACE("(%p)\n", this);
2958 return this->file != NULL;
2961 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PB_WHH@Z */
2962 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
2963 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBGHH@Z */
2964 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBGHH@Z */
2965 static basic_filebuf_wchar* basic_filebuf_wchar_open_wchar(basic_filebuf_wchar *this, const wchar_t *name, int mode, int prot)
2969 TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
2971 if(basic_filebuf_wchar_is_open(this))
2974 if(!(f = _Fiopen_wchar(name, mode, prot)))
2977 basic_filebuf_wchar__Init(this, f, INITFL_open);
2978 basic_filebuf_wchar__Initcvt(this);
2982 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDHH@Z */
2983 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDHH@Z */
2984 static basic_filebuf_wchar* basic_filebuf_wchar_open(basic_filebuf_wchar *this, const char *name, int mode, int prot)
2986 wchar_t nameW[FILENAME_MAX];
2988 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
2990 if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
2992 return basic_filebuf_wchar_open_wchar(this, nameW, mode, prot);
2995 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDF@Z */
2996 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDF@Z */
2997 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open_mode_old, 12)
2998 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open_mode_old(basic_filebuf_wchar *this, const char *name, short mode)
3000 TRACE("(%p %p %d)\n", this, name, mode);
3001 return basic_filebuf_wchar_open(this, name, mode, _SH_DENYNO);
3004 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDH@Z */
3005 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDH@Z */
3006 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open_mode, 12)
3007 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open_mode(basic_filebuf_wchar *this, const char *name, int mode)
3009 TRACE("(%p %p %d)\n", this, name, mode);
3010 return basic_filebuf_wchar_open(this, name, mode, _SH_DENYNO);
3013 /* ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
3014 /* ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
3015 /* ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
3016 /* ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
3017 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_overflow, 8)
3018 unsigned short __thiscall basic_filebuf_wchar_overflow(basic_filebuf_wchar *this, unsigned short c)
3020 char *ptr, *to_next;
3022 const wchar_t *from_next;
3026 TRACE("(%p %d)\n", this, c);
3028 if(!basic_filebuf_wchar_is_open(this))
3034 return fwrite(&ch, sizeof(wchar_t), 1, this->file) ? c : WEOF;
3037 basic_string_char_clear(this->str);
3038 basic_string_char_append_len_ch(this->str, 8, '\0');
3039 ptr = this->str->ptr;
3040 ret = codecvt_wchar_out(this->cvt, &this->state, &ch, &ch+1, &from_next,
3041 ptr, ptr+basic_string_char_length(this->str), &to_next);
3044 case CODECVT_partial:
3045 if(from_next == &ch)
3049 if(!fwrite(ptr, to_next-ptr, 1, this->file))
3052 case CODECVT_noconv:
3053 return fwrite(&ch, sizeof(wchar_t), 1, this->file) ? c : WEOF;
3059 /* ?pbackfail@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
3060 /* ?pbackfail@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
3061 /* ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
3062 /* ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
3063 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_pbackfail, 8)
3064 unsigned short __thiscall basic_filebuf_wchar_pbackfail(basic_filebuf_wchar *this, unsigned short c)
3066 TRACE("(%p %d)\n", this, c);
3068 if(!basic_filebuf_wchar_is_open(this))
3071 if(basic_streambuf_wchar_gptr(&this->base)>basic_streambuf_wchar_eback(&this->base)
3072 && (c==WEOF || basic_streambuf_wchar_gptr(&this->base)[-1]==c)) {
3073 basic_streambuf_wchar__Gndec(&this->base);
3074 return c==WEOF ? !c : c;
3075 }else if(c == WEOF) {
3077 }else if(!this->cvt) {
3078 return ungetwc(c, this->file);
3079 }else if(basic_string_char_length(this->str)) {
3083 b = e+this->str->size-1;
3084 for(cur = b; cur>=e; cur--) {
3085 if(ungetc(*cur, this->file) == EOF) {
3086 for(; cur<=b; cur++)
3091 basic_string_char_clear(this->str);
3092 this->state = this->state0;
3099 /* ?uflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
3100 /* ?uflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
3101 /* ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
3102 /* ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
3103 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_uflow, 4)
3104 unsigned short __thiscall basic_filebuf_wchar_uflow(basic_filebuf_wchar *this)
3106 wchar_t ch, *to_next;
3107 const char *buf_next;
3110 TRACE("(%p)\n", this);
3112 if(!basic_filebuf_wchar_is_open(this))
3115 if(basic_streambuf_wchar_gptr(&this->base) < basic_streambuf_wchar_egptr(&this->base))
3116 return *basic_streambuf_wchar__Gninc(&this->base);
3119 return fgetwc(this->file);
3121 basic_string_char_clear(this->str);
3122 this->state0 = this->state;
3124 if((c = fgetc(this->file)) == EOF)
3126 basic_string_char_append_ch(this->str, c);
3127 this->state = this->state0;
3129 switch(codecvt_wchar_in(this->cvt, &this->state, this->str->ptr,
3130 this->str->ptr+this->str->size, &buf_next, &ch, &ch+1, &to_next)) {
3131 case CODECVT_partial:
3133 case CODECVT_noconv:
3134 if(this->str->size < sizeof(unsigned short)/sizeof(char))
3136 return *(unsigned short*)this->str->ptr;
3138 return (unsigned short)ch;
3145 /* ?underflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
3146 /* ?underflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
3147 /* ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
3148 /* ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
3149 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_underflow, 4)
3150 unsigned short __thiscall basic_filebuf_wchar_underflow(basic_filebuf_wchar *this)
3154 TRACE("(%p)\n", this);
3156 if(basic_streambuf_wchar_gptr(&this->base) < basic_streambuf_wchar_egptr(&this->base))
3157 return *basic_streambuf_wchar_gptr(&this->base);
3159 ret = call_basic_streambuf_wchar_uflow(&this->base);
3161 ret = call_basic_streambuf_wchar_pbackfail(&this->base, ret);
3165 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
3166 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
3167 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_seekoff, 20)
3168 fpos_int* __thiscall basic_filebuf_wchar_seekoff(basic_filebuf_wchar *this,
3169 fpos_int *ret, streamoff off, int way, int mode)
3173 TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode);
3175 if(!basic_filebuf_wchar_is_open(this) || fseek(this->file, off, way)) {
3182 fgetpos(this->file, &pos);
3185 ret->state = this->state;
3189 /* ?seekpos@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3190 /* ?seekpos@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3191 /* ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3192 /* ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3193 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_seekpos, 36)
3194 fpos_int* __thiscall basic_filebuf_wchar_seekpos(basic_filebuf_wchar *this,
3195 fpos_int *ret, fpos_int pos, int mode)
3199 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
3201 if(!basic_filebuf_wchar_is_open(this) || fseek(this->file, (LONG)pos.pos, SEEK_SET)
3202 || (pos.off && fseek(this->file, pos.off, SEEK_CUR))) {
3209 fgetpos(this->file, &fpos);
3212 ret->state = this->state;
3216 /* ?setbuf@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PA_WH@Z */
3217 /* ?setbuf@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEA_W_J@Z */
3218 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_setbuf, 12)
3219 basic_streambuf_wchar* __thiscall basic_filebuf_wchar_setbuf(basic_filebuf_wchar *this, wchar_t *buf, streamsize count)
3221 TRACE("(%p %p %ld)\n", this, buf, count);
3223 if(!basic_filebuf_wchar_is_open(this))
3226 if(setvbuf(this->file, (char*)buf, (buf==NULL && count==0) ? _IONBF : _IOFBF, count*sizeof(wchar_t)))
3229 basic_filebuf_wchar__Init(this, this->file, INITFL_open);
3233 /* ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PAGH@Z */
3234 /* ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAG_J@Z */
3235 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_setbuf, 12)
3236 basic_streambuf_wchar* __thiscall basic_filebuf_short_setbuf(basic_filebuf_wchar *this, wchar_t *buf, streamsize count)
3238 TRACE("(%p %p %ld)\n", this, buf, count);
3240 if(!basic_filebuf_wchar_is_open(this))
3243 if(setvbuf(this->file, (char*)buf, (buf==NULL && count==0) ? _IONBF : _IOFBF, count*sizeof(wchar_t)))
3246 basic_filebuf_short__Init(this, this->file, INITFL_open);
3250 /* ?sync@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
3251 /* ?sync@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ */
3252 /* ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
3253 /* ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAHXZ */
3254 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_sync, 4)
3255 int __thiscall basic_filebuf_wchar_sync(basic_filebuf_wchar *this)
3257 TRACE("(%p)\n", this);
3259 if(!basic_filebuf_wchar_is_open(this))
3262 if(call_basic_streambuf_wchar_overflow(&this->base, WEOF) == WEOF)
3264 return fflush(this->file);
3267 /* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEHH@Z */
3268 /* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAHH@Z */
3269 /* ?_Mode@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEHH@Z */
3270 /* ?_Mode@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAHH@Z */
3271 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Getstate, 8)
3272 int __thiscall basic_stringbuf_char__Getstate(basic_stringbuf_char *this, IOSB_openmode mode)
3276 if(!(mode & OPENMODE_in))
3277 state |= STRINGBUF_no_read;
3279 if(!(mode & OPENMODE_out))
3280 state |= STRINGBUF_no_write;
3282 if(mode & OPENMODE_ate)
3283 state |= STRINGBUF_at_end;
3285 if(mode & OPENMODE_app)
3286 state |= STRINGBUF_append;
3291 /* ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXPBDIH@Z */
3292 /* ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAXPEBD_KH@Z */
3293 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Init, 16)
3294 void __thiscall basic_stringbuf_char__Init(basic_stringbuf_char *this, const char *str, MSVCP_size_t count, int state)
3296 TRACE("(%p, %p, %ld, %d)\n", this, str, count, state);
3298 basic_streambuf_char__Init_empty(&this->base);
3300 this->state = state;
3301 this->seekhigh = NULL;
3304 char *buf = MSVCRT_operator_new(count);
3306 ERR("Out of memory\n");
3307 throw_exception(EXCEPTION_BAD_ALLOC, NULL);
3310 memcpy(buf, str, count);
3311 this->seekhigh = buf + count;
3313 this->state |= STRINGBUF_allocated;
3315 if(!(state & STRINGBUF_no_read))
3316 basic_streambuf_char_setg(&this->base, buf, buf, buf + count);
3318 if(!(state & STRINGBUF_no_write)) {
3319 basic_streambuf_char_setp_next(&this->base, buf, (state & STRINGBUF_at_end) ? buf + count : buf, buf + count);
3321 if(!basic_streambuf_char_gptr(&this->base))
3322 basic_streambuf_char_setg(&this->base, buf, 0, buf);
3327 /* ??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 */
3328 /* ??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 */
3329 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor_str, 12)
3330 basic_stringbuf_char* __thiscall basic_stringbuf_char_ctor_str(basic_stringbuf_char *this,
3331 const basic_string_char *str, IOSB_openmode mode)
3333 TRACE("(%p %p %d)\n", this, str, mode);
3335 basic_streambuf_char_ctor(&this->base);
3336 this->base.vtable = &MSVCP_basic_stringbuf_char_vtable;
3338 basic_stringbuf_char__Init(this, basic_string_char_c_str(str),
3339 str->size, basic_stringbuf_char__Getstate(this, mode));
3343 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
3344 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
3345 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor_mode, 8)
3346 basic_stringbuf_char* __thiscall basic_stringbuf_char_ctor_mode(
3347 basic_stringbuf_char *this, IOSB_openmode mode)
3349 TRACE("(%p %d)\n", this, mode);
3351 basic_streambuf_char_ctor(&this->base);
3352 this->base.vtable = &MSVCP_basic_stringbuf_char_vtable;
3354 basic_stringbuf_char__Init(this, NULL, 0, basic_stringbuf_char__Getstate(this, mode));
3358 /* ??_F?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
3359 /* ??_F?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
3360 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor, 4)
3361 basic_stringbuf_char* __thiscall basic_stringbuf_char_ctor(basic_stringbuf_char *this)
3363 return basic_stringbuf_char_ctor_mode(this, OPENMODE_in|OPENMODE_out);
3366 /* ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXXZ */
3367 /* ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAXXZ */
3368 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Tidy, 4)
3369 void __thiscall basic_stringbuf_char__Tidy(basic_stringbuf_char *this)
3371 TRACE("(%p)\n", this);
3373 if(this->state & STRINGBUF_allocated) {
3374 MSVCRT_operator_delete(basic_streambuf_char_eback(&this->base));
3375 this->seekhigh = NULL;
3376 this->state &= ~STRINGBUF_allocated;
3379 basic_streambuf_char__Init_empty(&this->base);
3382 /* ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
3383 /* ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
3384 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_dtor, 4)
3385 void __thiscall basic_stringbuf_char_dtor(basic_stringbuf_char *this)
3387 TRACE("(%p)\n", this);
3389 basic_stringbuf_char__Tidy(this);
3390 basic_streambuf_char_dtor(&this->base);
3393 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_vector_dtor, 8)
3394 basic_stringbuf_char* __thiscall basic_stringbuf_char_vector_dtor(basic_stringbuf_char *this, unsigned int flags)
3396 TRACE("(%p %x)\n", this, flags);
3399 /* we have an array, with the number of elements stored before the first object */
3400 INT_PTR i, *ptr = (INT_PTR *) this - 1;
3402 for (i = *ptr - 1; i >= 0; i--)
3403 basic_stringbuf_char_dtor(this+i);
3405 MSVCRT_operator_delete(ptr);
3407 basic_stringbuf_char_dtor(this);
3410 MSVCRT_operator_delete(this);
3416 /* ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z */
3417 /* ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHH@Z */
3418 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_overflow, 8)
3419 int __thiscall basic_stringbuf_char_overflow(basic_stringbuf_char *this, int meta)
3421 MSVCP_size_t oldsize, size;
3424 TRACE("(%p %x)\n", this, meta);
3428 if(this->state & STRINGBUF_no_write)
3431 ptr = basic_streambuf_char_pptr(&this->base);
3432 if((this->state&STRINGBUF_append) && ptr<this->seekhigh)
3433 basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base),
3434 this->seekhigh, basic_streambuf_char_epptr(&this->base));
3436 if(ptr && ptr<basic_streambuf_char_epptr(&this->base))
3437 return (*basic_streambuf_char__Pninc(&this->base) = meta);
3439 oldsize = (ptr ? basic_streambuf_char_epptr(&this->base)-basic_streambuf_char_eback(&this->base): 0);
3442 buf = MSVCRT_operator_new(size);
3444 ERR("Out of memory\n");
3445 throw_exception(EXCEPTION_BAD_ALLOC, NULL);
3449 this->seekhigh = buf;
3450 basic_streambuf_char_setp(&this->base, buf, buf+size);
3451 if(this->state & STRINGBUF_no_read)
3452 basic_streambuf_char_setg(&this->base, buf, NULL, buf);
3454 basic_streambuf_char_setg(&this->base, buf, buf, buf+1);
3456 this->state |= STRINGBUF_allocated;
3458 ptr = basic_streambuf_char_eback(&this->base);
3459 memcpy(buf, ptr, oldsize);
3461 this->seekhigh = buf+(this->seekhigh-ptr);
3462 basic_streambuf_char_setp_next(&this->base, buf,
3463 buf+(basic_streambuf_char_pptr(&this->base)-ptr), buf+size);
3464 if(this->state & STRINGBUF_no_read)
3465 basic_streambuf_char_setg(&this->base, buf, NULL, buf);
3467 basic_streambuf_char_setg(&this->base, buf,
3468 buf+(basic_streambuf_char_gptr(&this->base)-ptr),
3469 basic_streambuf_char_pptr(&this->base)+1);
3471 MSVCRT_operator_delete(ptr);
3474 return (*basic_streambuf_char__Pninc(&this->base) = meta);
3477 /* ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z */
3478 /* ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHH@Z */
3479 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_pbackfail, 8)
3480 int __thiscall basic_stringbuf_char_pbackfail(basic_stringbuf_char *this, int c)
3484 TRACE("(%p %x)\n", this, c);
3486 cur = basic_streambuf_char_gptr(&this->base);
3487 if(!cur || cur==basic_streambuf_char_eback(&this->base)
3488 || (c!=EOF && c!=cur[-1] && this->state&STRINGBUF_no_write))
3493 basic_streambuf_char_gbump(&this->base, -1);
3494 return c==EOF ? !EOF : c;
3497 /* ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHXZ */
3498 /* ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHXZ */
3499 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_underflow, 4)
3500 int __thiscall basic_stringbuf_char_underflow(basic_stringbuf_char *this)
3504 TRACE("(%p)\n", this);
3506 cur = basic_streambuf_char_gptr(&this->base);
3507 if(!cur || this->state&STRINGBUF_no_read)
3510 ptr = basic_streambuf_char_pptr(&this->base);
3511 if(this->seekhigh < ptr)
3512 this->seekhigh = ptr;
3514 ptr = basic_streambuf_char_egptr(&this->base);
3515 if(this->seekhigh > ptr)
3516 basic_streambuf_char_setg(&this->base, basic_streambuf_char_eback(&this->base), cur, this->seekhigh);
3518 if(cur < this->seekhigh)
3519 return (unsigned char)*cur;
3523 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
3524 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
3525 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekoff, 20)
3526 fpos_int* __thiscall basic_stringbuf_char_seekoff(basic_stringbuf_char *this,
3527 fpos_int *ret, streamoff off, int way, int mode)
3529 char *beg, *cur_r, *cur_w;
3531 TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode);
3533 cur_w = basic_streambuf_char_pptr(&this->base);
3534 if(cur_w > this->seekhigh)
3535 this->seekhigh = cur_w;
3541 beg = basic_streambuf_char_eback(&this->base);
3542 cur_r = basic_streambuf_char_gptr(&this->base);
3543 if((mode & OPENMODE_in) && cur_r) {
3544 if(way==SEEKDIR_cur && !(mode & OPENMODE_out))
3546 else if(way == SEEKDIR_end)
3547 off += this->seekhigh-beg;
3548 else if(way != SEEKDIR_beg)
3551 if(off<0 || off>this->seekhigh-beg) {
3554 basic_streambuf_char_gbump(&this->base, beg-cur_r+off);
3555 if((mode & OPENMODE_out) && cur_w) {
3556 basic_streambuf_char_setp_next(&this->base, beg,
3557 basic_streambuf_char_gptr(&this->base),
3558 basic_streambuf_char_epptr(&this->base));
3561 }else if((mode & OPENMODE_out) && cur_w) {
3562 if(way == SEEKDIR_cur)
3564 else if(way == SEEKDIR_end)
3565 off += this->seekhigh-beg;
3566 else if(way != SEEKDIR_beg)
3569 if(off<0 || off>this->seekhigh-beg)
3572 basic_streambuf_char_pbump(&this->base, beg-cur_w+off);
3581 /* ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3582 /* ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3583 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekpos, 36)
3584 fpos_int* __thiscall basic_stringbuf_char_seekpos(basic_stringbuf_char *this,
3585 fpos_int *ret, fpos_int pos, int mode)
3587 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
3589 if(pos.off==-1 && pos.pos==0 && pos.state==0) {
3594 return basic_stringbuf_char_seekoff(this, ret, pos.off, SEEKDIR_beg, mode);
3597 /* ?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 */
3598 /* ?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 */
3599 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_str_set, 8)
3600 void __thiscall basic_stringbuf_char_str_set(basic_stringbuf_char *this, const basic_string_char *str)
3602 TRACE("(%p %p)\n", this, str);
3604 basic_stringbuf_char__Tidy(this);
3605 basic_stringbuf_char__Init(this, basic_string_char_c_str(str), str->size, this->state);
3608 /* ?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 */
3609 /* ?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 */
3610 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_str_get, 8)
3611 basic_string_char* __thiscall basic_stringbuf_char_str_get(const basic_stringbuf_char *this, basic_string_char *ret)
3615 TRACE("(%p)\n", this);
3617 if(!(this->state & STRINGBUF_no_write) && basic_streambuf_char_pptr(&this->base)) {
3620 ptr = basic_streambuf_char_pbase(&this->base);
3621 pptr = basic_streambuf_char_pptr(&this->base);
3623 return basic_string_char_ctor_cstr_len(ret, ptr, (this->seekhigh < pptr ? pptr : this->seekhigh) - ptr);
3626 if(!(this->state & STRINGBUF_no_read) && basic_streambuf_char_gptr(&this->base)) {
3627 ptr = basic_streambuf_char_eback(&this->base);
3628 return basic_string_char_ctor_cstr_len(ret, ptr, basic_streambuf_char_egptr(&this->base) - ptr);
3631 return basic_string_char_ctor(ret);
3634 /* ?_Getstate@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AAEHH@Z */
3635 /* ?_Getstate@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AEAAHH@Z */
3636 /* ?_Getstate@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AAEHH@Z */
3637 /* ?_Getstate@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AEAAHH@Z */
3638 /* ?_Mode@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AAEHH@Z */
3639 /* ?_Mode@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AEAAHH@Z */
3640 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Getstate, 8)
3641 int __thiscall basic_stringbuf_wchar__Getstate(basic_stringbuf_wchar *this, IOSB_openmode mode)
3645 if(!(mode & OPENMODE_in))
3646 state |= STRINGBUF_no_read;
3648 if(!(mode & OPENMODE_out))
3649 state |= STRINGBUF_no_write;
3651 if(mode & OPENMODE_ate)
3652 state |= STRINGBUF_at_end;
3654 if(mode & OPENMODE_app)
3655 state |= STRINGBUF_append;
3660 /* ?_Init@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXPB_WIH@Z */
3661 /* ?_Init@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAXPEB_W_KH@Z */
3662 /* ?_Init@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXPBGIH@Z */
3663 /* ?_Init@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAXPEBG_KH@Z */
3664 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Init, 16)
3665 void __thiscall basic_stringbuf_wchar__Init(basic_stringbuf_wchar *this, const wchar_t *str, MSVCP_size_t count, int state)
3667 TRACE("(%p, %p, %lu, %d)\n", this, str, count, state);
3669 basic_streambuf_wchar__Init_empty(&this->base);
3671 this->state = state;
3672 this->seekhigh = NULL;
3675 wchar_t *buf = MSVCRT_operator_new(count*sizeof(wchar_t));
3677 ERR("Out of memory\n");
3678 throw_exception(EXCEPTION_BAD_ALLOC, NULL);
3681 memcpy(buf, str, count*sizeof(wchar_t));
3682 this->seekhigh = buf + count;
3684 this->state |= STRINGBUF_allocated;
3686 if(!(state & STRINGBUF_no_read))
3687 basic_streambuf_wchar_setg(&this->base, buf, buf, buf + count);
3689 if(!(state & STRINGBUF_no_write)) {
3690 basic_streambuf_wchar_setp_next(&this->base, buf, (state & STRINGBUF_at_end) ? buf + count : buf, buf + count);
3692 if(!basic_streambuf_wchar_gptr(&this->base))
3693 basic_streambuf_wchar_setg(&this->base, buf, 0, buf);
3698 /* ??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 */
3699 /* ??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 */
3700 static basic_stringbuf_wchar* basic_stringbuf_wchar_ctor_str(basic_stringbuf_wchar *this,
3701 const basic_string_wchar *str, IOSB_openmode mode)
3703 TRACE("(%p %p %d)\n", this, str, mode);
3705 basic_streambuf_wchar_ctor(&this->base);
3706 this->base.vtable = &MSVCP_basic_stringbuf_wchar_vtable;
3708 basic_stringbuf_wchar__Init(this, basic_string_wchar_c_str(str),
3709 str->size, basic_stringbuf_wchar__Getstate(this, mode));
3713 /* ??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 */
3714 /* ??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 */
3715 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor_str, 12)
3716 basic_stringbuf_wchar* __thiscall basic_stringbuf_short_ctor_str(basic_stringbuf_wchar *this,
3717 const basic_string_wchar *str, IOSB_openmode mode)
3719 basic_stringbuf_wchar_ctor_str(this, str, mode);
3720 this->base.vtable = &MSVCP_basic_stringbuf_short_vtable;
3724 /* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
3725 /* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
3726 static basic_stringbuf_wchar* basic_stringbuf_wchar_ctor_mode(
3727 basic_stringbuf_wchar *this, IOSB_openmode mode)
3729 TRACE("(%p %d)\n", this, mode);
3731 basic_streambuf_wchar_ctor(&this->base);
3732 this->base.vtable = &MSVCP_basic_stringbuf_wchar_vtable;
3734 basic_stringbuf_wchar__Init(this, NULL, 0, basic_stringbuf_wchar__Getstate(this, mode));
3738 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
3739 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
3740 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor_mode, 8)
3741 basic_stringbuf_wchar* __thiscall basic_stringbuf_short_ctor_mode(
3742 basic_stringbuf_wchar *this, IOSB_openmode mode)
3744 basic_stringbuf_wchar_ctor_mode(this, mode);
3745 this->base.vtable = &MSVCP_basic_stringbuf_short_vtable;
3749 /* ??_F?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
3750 /* ??_F?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
3751 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor, 4)
3752 basic_stringbuf_wchar* __thiscall basic_stringbuf_short_ctor(basic_stringbuf_wchar *this)
3754 return basic_stringbuf_short_ctor_mode(this, OPENMODE_in|OPENMODE_out);
3757 /* ?_Tidy@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXXZ */
3758 /* ?_Tidy@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAXXZ */
3759 /* ?_Tidy@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXXZ */
3760 /* ?_Tidy@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAXXZ */
3761 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Tidy, 4)
3762 void __thiscall basic_stringbuf_wchar__Tidy(basic_stringbuf_wchar *this)
3764 TRACE("(%p)\n", this);
3766 if(this->state & STRINGBUF_allocated) {
3767 MSVCRT_operator_delete(basic_streambuf_wchar_eback(&this->base));
3768 this->seekhigh = NULL;
3769 this->state &= ~STRINGBUF_allocated;
3772 basic_streambuf_wchar__Init_empty(&this->base);
3775 /* ??1?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
3776 /* ??1?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
3777 /* ??1?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
3778 /* ??1?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
3779 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_dtor, 4)
3780 void __thiscall basic_stringbuf_wchar_dtor(basic_stringbuf_wchar *this)
3782 TRACE("(%p)\n", this);
3784 basic_stringbuf_wchar__Tidy(this);
3785 basic_streambuf_wchar_dtor(&this->base);
3788 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_vector_dtor, 8)
3789 basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_vector_dtor(basic_stringbuf_wchar *this, unsigned int flags)
3791 TRACE("(%p %x)\n", this, flags);
3794 /* we have an array, with the number of elements stored before the first object */
3795 INT_PTR i, *ptr = (INT_PTR *) this - 1;
3797 for (i = *ptr - 1; i >= 0; i--)
3798 basic_stringbuf_wchar_dtor(this+i);
3800 MSVCRT_operator_delete(ptr);
3802 basic_stringbuf_wchar_dtor(this);
3805 MSVCRT_operator_delete(this);
3811 /* ?overflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGG@Z */
3812 /* ?overflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGG@Z */
3813 /* ?overflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGG@Z */
3814 /* ?overflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGG@Z */
3815 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_overflow, 8)
3816 unsigned short __thiscall basic_stringbuf_wchar_overflow(basic_stringbuf_wchar *this, unsigned short meta)
3818 MSVCP_size_t oldsize, size;
3821 TRACE("(%p %x)\n", this, meta);
3825 if(this->state & STRINGBUF_no_write)
3828 ptr = basic_streambuf_wchar_pptr(&this->base);
3829 if((this->state&STRINGBUF_append) && ptr<this->seekhigh)
3830 basic_streambuf_wchar_setp_next(&this->base, basic_streambuf_wchar_pbase(&this->base),
3831 this->seekhigh, basic_streambuf_wchar_epptr(&this->base));
3833 if(ptr && ptr<basic_streambuf_wchar_epptr(&this->base))
3834 return (*basic_streambuf_wchar__Pninc(&this->base) = meta);
3836 oldsize = (ptr ? basic_streambuf_wchar_epptr(&this->base)-basic_streambuf_wchar_eback(&this->base): 0);
3839 buf = MSVCRT_operator_new(size*sizeof(wchar_t));
3841 ERR("Out of memory\n");
3842 throw_exception(EXCEPTION_BAD_ALLOC, NULL);
3846 this->seekhigh = buf;
3847 basic_streambuf_wchar_setp(&this->base, buf, buf+size);
3848 if(this->state & STRINGBUF_no_read)
3849 basic_streambuf_wchar_setg(&this->base, buf, NULL, buf);
3851 basic_streambuf_wchar_setg(&this->base, buf, buf, buf+1);
3853 this->state |= STRINGBUF_allocated;
3855 ptr = basic_streambuf_wchar_eback(&this->base);
3856 memcpy(buf, ptr, oldsize*sizeof(wchar_t));
3858 this->seekhigh = buf+(this->seekhigh-ptr);
3859 basic_streambuf_wchar_setp_next(&this->base, buf,
3860 buf+(basic_streambuf_wchar_pptr(&this->base)-ptr), buf+size);
3861 if(this->state & STRINGBUF_no_read)
3862 basic_streambuf_wchar_setg(&this->base, buf, NULL, buf);
3864 basic_streambuf_wchar_setg(&this->base, buf,
3865 buf+(basic_streambuf_wchar_gptr(&this->base)-ptr),
3866 basic_streambuf_wchar_pptr(&this->base)+1);
3868 MSVCRT_operator_delete(ptr);
3871 return (*basic_streambuf_wchar__Pninc(&this->base) = meta);
3874 /* ?pbackfail@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGG@Z */
3875 /* ?pbackfail@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGG@Z */
3876 /* ?pbackfail@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGG@Z */
3877 /* ?pbackfail@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGG@Z */
3878 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_pbackfail, 8)
3879 unsigned short __thiscall basic_stringbuf_wchar_pbackfail(basic_stringbuf_wchar *this, unsigned short c)
3883 TRACE("(%p %x)\n", this, c);
3885 cur = basic_streambuf_wchar_gptr(&this->base);
3886 if(!cur || cur==basic_streambuf_wchar_eback(&this->base)
3887 || (c!=WEOF && c!=cur[-1] && this->state&STRINGBUF_no_write))
3892 basic_streambuf_wchar_gbump(&this->base, -1);
3893 return c==WEOF ? !WEOF : c;
3896 /* ?underflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGXZ */
3897 /* ?underflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGXZ */
3898 /* ?underflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGXZ */
3899 /* ?underflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGXZ */
3900 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_underflow, 4)
3901 unsigned short __thiscall basic_stringbuf_wchar_underflow(basic_stringbuf_wchar *this)
3905 TRACE("(%p)\n", this);
3907 cur = basic_streambuf_wchar_gptr(&this->base);
3908 if(!cur || this->state&STRINGBUF_no_read)
3911 ptr = basic_streambuf_wchar_pptr(&this->base);
3912 if(this->seekhigh < ptr)
3913 this->seekhigh = ptr;
3915 ptr = basic_streambuf_wchar_egptr(&this->base);
3916 if(this->seekhigh > ptr)
3917 basic_streambuf_wchar_setg(&this->base, basic_streambuf_wchar_eback(&this->base), cur, this->seekhigh);
3919 if(cur < this->seekhigh)
3924 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
3925 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
3926 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_seekoff, 20)
3927 fpos_int* __thiscall basic_stringbuf_wchar_seekoff(basic_stringbuf_wchar *this,
3928 fpos_int *ret, streamoff off, int way, int mode)
3930 wchar_t *beg, *cur_r, *cur_w;
3932 TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode);
3934 cur_w = basic_streambuf_wchar_pptr(&this->base);
3935 if(cur_w > this->seekhigh)
3936 this->seekhigh = cur_w;
3942 beg = basic_streambuf_wchar_eback(&this->base);
3943 cur_r = basic_streambuf_wchar_gptr(&this->base);
3944 if((mode & OPENMODE_in) && cur_r) {
3945 if(way==SEEKDIR_cur && !(mode & OPENMODE_out))
3947 else if(way == SEEKDIR_end)
3948 off += this->seekhigh-beg;
3949 else if(way != SEEKDIR_beg)
3952 if(off<0 || off>this->seekhigh-beg) {
3955 basic_streambuf_wchar_gbump(&this->base, beg-cur_r+off);
3956 if((mode & OPENMODE_out) && cur_w) {
3957 basic_streambuf_wchar_setp_next(&this->base, beg,
3958 basic_streambuf_wchar_gptr(&this->base),
3959 basic_streambuf_wchar_epptr(&this->base));
3962 }else if((mode & OPENMODE_out) && cur_w) {
3963 if(way == SEEKDIR_cur)
3965 else if(way == SEEKDIR_end)
3966 off += this->seekhigh-beg;
3967 else if(way != SEEKDIR_beg)
3970 if(off<0 || off>this->seekhigh-beg)
3973 basic_streambuf_wchar_pbump(&this->base, beg-cur_w+off);
3982 /* ?seekpos@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3983 /* ?seekpos@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3984 /* ?seekpos@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3985 /* ?seekpos@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3986 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_seekpos, 36)
3987 fpos_int* __thiscall basic_stringbuf_wchar_seekpos(basic_stringbuf_wchar *this,
3988 fpos_int *ret, fpos_int pos, int mode)
3990 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
3992 if(pos.off==-1 && pos.pos==0 && pos.state==0) {
3997 return basic_stringbuf_wchar_seekoff(this, ret, pos.off, SEEKDIR_beg, mode);
4000 /* ?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 */
4001 /* ?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 */
4002 /* ?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 */
4003 /* ?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 */
4004 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_str_set, 8)
4005 void __thiscall basic_stringbuf_wchar_str_set(basic_stringbuf_wchar *this, const basic_string_wchar *str)
4007 TRACE("(%p %p)\n", this, str);
4009 basic_stringbuf_wchar__Tidy(this);
4010 basic_stringbuf_wchar__Init(this, basic_string_wchar_c_str(str), str->size, this->state);
4013 /* ?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 */
4014 /* ?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 */
4015 /* ?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 */
4016 /* ?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 */
4017 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_str_get, 8)
4018 basic_string_wchar* __thiscall basic_stringbuf_wchar_str_get(const basic_stringbuf_wchar *this, basic_string_wchar *ret)
4022 TRACE("(%p)\n", this);
4024 if(!(this->state & STRINGBUF_no_write) && basic_streambuf_wchar_pptr(&this->base)) {
4027 ptr = basic_streambuf_wchar_pbase(&this->base);
4028 pptr = basic_streambuf_wchar_pptr(&this->base);
4030 return basic_string_wchar_ctor_cstr_len(ret, ptr, (this->seekhigh < pptr ? pptr : this->seekhigh) - ptr);
4033 if(!(this->state & STRINGBUF_no_read) && basic_streambuf_wchar_gptr(&this->base)) {
4034 ptr = basic_streambuf_wchar_eback(&this->base);
4035 return basic_string_wchar_ctor_cstr_len(ret, ptr, basic_streambuf_wchar_egptr(&this->base) - ptr);
4038 return basic_string_wchar_ctor(ret);
4041 /* ??0ios_base@std@@IAE@XZ */
4042 /* ??0ios_base@std@@IEAA@XZ */
4043 DEFINE_THISCALL_WRAPPER(ios_base_ctor, 4)
4044 ios_base* __thiscall ios_base_ctor(ios_base *this)
4046 TRACE("(%p)\n", this);
4047 this->vtable = &MSVCP_ios_base_vtable;
4048 locale_ctor_uninitialized(&this->loc, 0);
4052 /* ??0ios_base@std@@QAE@ABV01@@Z */
4053 /* ??0ios_base@std@@QEAA@AEBV01@@Z */
4054 DEFINE_THISCALL_WRAPPER(ios_base_copy_ctor, 8)
4055 ios_base* __thiscall ios_base_copy_ctor(ios_base *this, const ios_base *copy)
4057 TRACE("(%p %p)\n", this, copy);
4059 this->vtable = &MSVCP_ios_base_vtable;
4063 /* ?_Callfns@ios_base@std@@AAEXW4event@12@@Z */
4064 /* ?_Callfns@ios_base@std@@AEAAXW4event@12@@Z */
4065 DEFINE_THISCALL_WRAPPER(ios_base_Callfns, 8)
4066 void __thiscall ios_base_Callfns(ios_base *this, IOS_BASE_event event)
4068 IOS_BASE_fnarray *cur;
4070 TRACE("(%p %x)\n", this, event);
4072 for(cur=this->calls; cur; cur=cur->next)
4073 cur->event_handler(event, this, cur->index);
4076 /* ?_Tidy@ios_base@std@@AAAXXZ */
4077 /* ?_Tidy@ios_base@std@@AEAAXXZ */
4078 void CDECL ios_base_Tidy(ios_base *this)
4080 IOS_BASE_iosarray *arr_cur, *arr_next;
4081 IOS_BASE_fnarray *event_cur, *event_next;
4083 TRACE("(%p)\n", this);
4085 ios_base_Callfns(this, EVENT_erase_event);
4087 for(arr_cur=this->arr; arr_cur; arr_cur=arr_next) {
4088 arr_next = arr_cur->next;
4089 MSVCRT_operator_delete(arr_cur);
4093 for(event_cur=this->calls; event_cur; event_cur=event_next) {
4094 event_next = event_cur->next;
4095 MSVCRT_operator_delete(event_cur);
4100 /* ?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z */
4101 /* ?_Ios_base_dtor@ios_base@std@@CAXPEAV12@@Z */
4102 static void ios_base_Ios_base_dtor(ios_base *obj)
4104 TRACE("(%p)\n", obj);
4105 locale_dtor(&obj->loc);
4109 /* ??1ios_base@std@@UAE@XZ */
4110 /* ??1ios_base@std@@UEAA@XZ */
4111 DEFINE_THISCALL_WRAPPER(ios_base_dtor, 4)
4112 void __thiscall ios_base_dtor(ios_base *this)
4114 ios_base_Ios_base_dtor(this);
4117 DEFINE_THISCALL_WRAPPER(ios_base_vector_dtor, 8)
4118 ios_base* __thiscall ios_base_vector_dtor(ios_base *this, unsigned int flags)
4120 TRACE("(%p %x)\n", this, flags);
4122 /* we have an array, with the number of elements stored before the first object */
4123 INT_PTR i, *ptr = (INT_PTR *)this-1;
4125 for(i=*ptr-1; i>=0; i--)
4126 ios_base_dtor(this+i);
4127 MSVCRT_operator_delete(ptr);
4129 ios_base_dtor(this);
4131 MSVCRT_operator_delete(this);
4137 DEFINE_THISCALL_WRAPPER(iosb_vector_dtor, 8)
4138 void* __thiscall iosb_vector_dtor(void *this, unsigned int flags)
4140 TRACE("(%p %x)\n", this, flags);
4142 INT_PTR *ptr = (INT_PTR *)this-1;
4143 MSVCRT_operator_delete(ptr);
4146 MSVCRT_operator_delete(this);
4152 /* ?_Findarr@ios_base@std@@AAEAAU_Iosarray@12@H@Z */
4153 /* ?_Findarr@ios_base@std@@AEAAAEAU_Iosarray@12@H@Z */
4154 DEFINE_THISCALL_WRAPPER(ios_base_Findarr, 8)
4155 IOS_BASE_iosarray* __thiscall ios_base_Findarr(ios_base *this, int index)
4157 IOS_BASE_iosarray *p;
4159 TRACE("(%p %d)\n", this, index);
4161 for(p=this->arr; p; p=p->next) {
4162 if(p->index == index)
4166 for(p=this->arr; p; p=p->next) {
4167 if(!p->long_val && !p->ptr_val) {
4173 p = MSVCRT_operator_new(sizeof(IOS_BASE_iosarray));
4174 p->next = this->arr;
4182 /* ?iword@ios_base@std@@QAEAAJH@Z */
4183 /* ?iword@ios_base@std@@QEAAAEAJH@Z */
4184 DEFINE_THISCALL_WRAPPER(ios_base_iword, 8)
4185 LONG* __thiscall ios_base_iword(ios_base *this, int index)
4187 TRACE("(%p %d)\n", this, index);
4188 return &ios_base_Findarr(this, index)->long_val;
4191 /* ?pword@ios_base@std@@QAEAAPAXH@Z */
4192 /* ?pword@ios_base@std@@QEAAAEAPEAXH@Z */
4193 DEFINE_THISCALL_WRAPPER(ios_base_pword, 8)
4194 void** __thiscall ios_base_pword(ios_base *this, int index)
4196 TRACE("(%p %d)\n", this, index);
4197 return &ios_base_Findarr(this, index)->ptr_val;
4200 /* ?register_callback@ios_base@std@@QAEXP6AXW4event@12@AAV12@H@ZH@Z */
4201 /* ?register_callback@ios_base@std@@QEAAXP6AXW4event@12@AEAV12@H@ZH@Z */
4202 DEFINE_THISCALL_WRAPPER(ios_base_register_callback, 12)
4203 void __thiscall ios_base_register_callback(ios_base *this, IOS_BASE_event_callback callback, int index)
4205 IOS_BASE_fnarray *event;
4207 TRACE("(%p %p %d)\n", this, callback, index);
4209 event = MSVCRT_operator_new(sizeof(IOS_BASE_fnarray));
4210 event->next = this->calls;
4211 event->index = index;
4212 event->event_handler = callback;
4213 this->calls = event;
4216 /* ?clear@ios_base@std@@QAEXH_N@Z */
4217 /* ?clear@ios_base@std@@QEAAXH_N@Z */
4218 DEFINE_THISCALL_WRAPPER(ios_base_clear_reraise, 12)
4219 void __thiscall ios_base_clear_reraise(ios_base *this, IOSB_iostate state, MSVCP_bool reraise)
4221 TRACE("(%p %x %x)\n", this, state, reraise);
4223 this->state = state & IOSTATE_mask;
4224 if(!(this->state & this->except))
4228 throw_exception(EXCEPTION_RERAISE, NULL);
4229 else if(this->state & this->except & IOSTATE_eofbit)
4230 throw_exception(EXCEPTION_FAILURE, "eofbit is set");
4231 else if(this->state & this->except & IOSTATE_failbit)
4232 throw_exception(EXCEPTION_FAILURE, "failbit is set");
4233 else if(this->state & this->except & IOSTATE_badbit)
4234 throw_exception(EXCEPTION_FAILURE, "badbit is set");
4235 else if(this->state & this->except & IOSTATE__Hardfail)
4236 throw_exception(EXCEPTION_FAILURE, "_Hardfail is set");
4239 /* ?clear@ios_base@std@@QAEXH@Z */
4240 /* ?clear@ios_base@std@@QEAAXH@Z */
4241 static void ios_base_clear(ios_base *this, IOSB_iostate state)
4243 ios_base_clear_reraise(this, state, FALSE);
4246 /* ?exceptions@ios_base@std@@QAEXH@Z */
4247 /* ?exceptions@ios_base@std@@QEAAXH@Z */
4248 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_set, 8)
4249 void __thiscall ios_base_exceptions_set(ios_base *this, IOSB_iostate state)
4251 TRACE("(%p %x)\n", this, state);
4252 this->except = state & IOSTATE_mask;
4253 ios_base_clear(this, this->state);
4256 /* ?exceptions@ios_base@std@@QBEHXZ */
4257 /* ?exceptions@ios_base@std@@QEBAHXZ */
4258 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_get, 4)
4259 IOSB_iostate __thiscall ios_base_exceptions_get(ios_base *this)
4261 TRACE("(%p)\n", this);
4262 return this->except;
4265 /* ?copyfmt@ios_base@std@@QAEAAV12@ABV12@@Z */
4266 /* ?copyfmt@ios_base@std@@QEAAAEAV12@AEBV12@@Z */
4267 DEFINE_THISCALL_WRAPPER(ios_base_copyfmt, 8)
4268 ios_base* __thiscall ios_base_copyfmt(ios_base *this, const ios_base *rhs)
4270 TRACE("(%p %p)\n", this, rhs);
4273 IOS_BASE_iosarray *arr_cur;
4274 IOS_BASE_fnarray *event_cur;
4276 ios_base_Tidy(this);
4278 for(arr_cur=rhs->arr; arr_cur; arr_cur=arr_cur->next) {
4279 if(arr_cur->long_val)
4280 *ios_base_iword(this, arr_cur->index) = arr_cur->long_val;
4281 if(arr_cur->ptr_val)
4282 *ios_base_pword(this, arr_cur->index) = arr_cur->ptr_val;
4284 this->stdstr = rhs->stdstr;
4285 this->fmtfl = rhs->fmtfl;
4286 this->prec = rhs->prec;
4287 this->wide = rhs->wide;
4288 locale_operator_assign(&this->loc, &rhs->loc);
4290 for(event_cur=rhs->calls; event_cur; event_cur=event_cur->next)
4291 ios_base_register_callback(this, event_cur->event_handler, event_cur->index);
4293 ios_base_Callfns(this, EVENT_copyfmt_event);
4294 ios_base_exceptions_set(this, rhs->except);
4300 /* ??4ios_base@std@@QAEAAV01@ABV01@@Z */
4301 /* ??4ios_base@std@@QEAAAEAV01@AEBV01@@Z */
4302 DEFINE_THISCALL_WRAPPER(ios_base_assign, 8)
4303 ios_base* __thiscall ios_base_assign(ios_base *this, const ios_base *right)
4305 TRACE("(%p %p)\n", this, right);
4308 this->state = right->state;
4309 ios_base_copyfmt(this, right);
4315 /* ?fail@ios_base@std@@QBE_NXZ */
4316 /* ?fail@ios_base@std@@QEBA_NXZ */
4317 DEFINE_THISCALL_WRAPPER(ios_base_fail, 4)
4318 MSVCP_bool __thiscall ios_base_fail(const ios_base *this)
4320 TRACE("(%p)\n", this);
4321 return (this->state & (IOSTATE_failbit|IOSTATE_badbit)) != 0;
4324 /* ??7ios_base@std@@QBE_NXZ */
4325 /* ??7ios_base@std@@QEBA_NXZ */
4326 DEFINE_THISCALL_WRAPPER(ios_base_op_succ, 4)
4327 MSVCP_bool __thiscall ios_base_op_succ(const ios_base *this)
4329 TRACE("(%p)\n", this);
4330 return ios_base_fail(this);
4333 /* ??Bios_base@std@@QBEPAXXZ */
4334 /* ??Bios_base@std@@QEBAPEAXXZ */
4335 DEFINE_THISCALL_WRAPPER(ios_base_op_fail, 4)
4336 void* __thiscall ios_base_op_fail(const ios_base *this)
4338 TRACE("(%p)\n", this);
4339 return ios_base_fail(this) ? NULL : (void*)this;
4342 /* ?_Addstd@ios_base@std@@SAXPAV12@@Z */
4343 /* ?_Addstd@ios_base@std@@SAXPEAV12@@Z */
4344 static void ios_base_Addstd(ios_base *add)
4346 FIXME("(%p) stub\n", add);
4349 /* ?_Init@ios_base@std@@IAEXXZ */
4350 /* ?_Init@ios_base@std@@IEAAXXZ */
4351 DEFINE_THISCALL_WRAPPER(ios_base__Init, 4)
4352 void __thiscall ios_base__Init(ios_base *this)
4354 TRACE("(%p)\n", this);
4357 this->state = this->except = IOSTATE_goodbit;
4358 this->fmtfl = FMTFLAG_skipws | FMTFLAG_dec;
4363 locale_ctor(&this->loc);
4366 /* ?bad@ios_base@std@@QBE_NXZ */
4367 /* ?bad@ios_base@std@@QEBA_NXZ */
4368 DEFINE_THISCALL_WRAPPER(ios_base_bad, 4)
4369 MSVCP_bool __thiscall ios_base_bad(const ios_base *this)
4371 TRACE("(%p)\n", this);
4372 return (this->state & IOSTATE_badbit) != 0;
4375 /* ?eof@ios_base@std@@QBE_NXZ */
4376 /* ?eof@ios_base@std@@QEBA_NXZ */
4377 DEFINE_THISCALL_WRAPPER(ios_base_eof, 4)
4378 MSVCP_bool __thiscall ios_base_eof(const ios_base *this)
4380 TRACE("(%p)\n", this);
4381 return (this->state & IOSTATE_eofbit) != 0;
4384 /* ?flags@ios_base@std@@QAEHH@Z */
4385 /* ?flags@ios_base@std@@QEAAHH@Z */
4386 DEFINE_THISCALL_WRAPPER(ios_base_flags_set, 8)
4387 IOSB_fmtflags __thiscall ios_base_flags_set(ios_base *this, IOSB_fmtflags flags)
4389 IOSB_fmtflags ret = this->fmtfl;
4391 TRACE("(%p %x)\n", this, flags);
4393 this->fmtfl = flags & FMTFLAG_mask;
4397 /* ?flags@ios_base@std@@QBEHXZ */
4398 /* ?flags@ios_base@std@@QEBAHXZ */
4399 DEFINE_THISCALL_WRAPPER(ios_base_flags_get, 4)
4400 IOSB_fmtflags __thiscall ios_base_flags_get(const ios_base *this)
4402 TRACE("(%p)\n", this);
4406 /* ?getloc@ios_base@std@@QBE?AVlocale@2@XZ */
4407 /* ?getloc@ios_base@std@@QEBA?AVlocale@2@XZ */
4408 DEFINE_THISCALL_WRAPPER(ios_base_getloc, 8)
4409 locale* __thiscall ios_base_getloc(const ios_base *this, locale *ret)
4411 TRACE("(%p)\n", this);
4412 return locale_copy_ctor(ret, &this->loc);
4415 /* ?good@ios_base@std@@QBE_NXZ */
4416 /* ?good@ios_base@std@@QEBA_NXZ */
4417 DEFINE_THISCALL_WRAPPER(ios_base_good, 4)
4418 MSVCP_bool __thiscall ios_base_good(const ios_base *this)
4420 TRACE("(%p)\n", this);
4421 return this->state == IOSTATE_goodbit;
4424 /* ?imbue@ios_base@std@@QAE?AVlocale@2@ABV32@@Z */
4425 /* ?imbue@ios_base@std@@QEAA?AVlocale@2@AEBV32@@Z */
4426 DEFINE_THISCALL_WRAPPER(ios_base_imbue, 12)
4427 locale* __thiscall ios_base_imbue(ios_base *this, locale *ret, const locale *loc)
4429 TRACE("(%p %p)\n", this, loc);
4431 locale_copy_ctor(&this->loc, loc);
4435 /* ?precision@ios_base@std@@QAEHH@Z */
4436 /* ?precision@ios_base@std@@QEAA_J_J@Z */
4437 DEFINE_THISCALL_WRAPPER(ios_base_precision_set, 8)
4438 streamsize __thiscall ios_base_precision_set(ios_base *this, streamsize precision)
4440 streamsize ret = this->prec;
4442 TRACE("(%p %ld)\n", this, precision);
4444 this->prec = precision;
4448 /* ?precision@ios_base@std@@QBEHXZ */
4449 /* ?precision@ios_base@std@@QEBA_JXZ */
4450 DEFINE_THISCALL_WRAPPER(ios_base_precision_get, 4)
4451 streamsize __thiscall ios_base_precision_get(const ios_base *this)
4453 TRACE("(%p)\n", this);
4457 /* ?rdstate@ios_base@std@@QBEHXZ */
4458 /* ?rdstate@ios_base@std@@QEBAHXZ */
4459 DEFINE_THISCALL_WRAPPER(ios_base_rdstate, 4)
4460 IOSB_iostate __thiscall ios_base_rdstate(const ios_base *this)
4462 TRACE("(%p)\n", this);
4466 /* ?setf@ios_base@std@@QAEHHH@Z */
4467 /* ?setf@ios_base@std@@QEAAHHH@Z */
4468 DEFINE_THISCALL_WRAPPER(ios_base_setf_mask, 12)
4469 IOSB_fmtflags __thiscall ios_base_setf_mask(ios_base *this, IOSB_fmtflags flags, IOSB_fmtflags mask)
4471 IOSB_fmtflags ret = this->fmtfl;
4473 TRACE("(%p %x %x)\n", this, flags, mask);
4475 this->fmtfl = (this->fmtfl & (~mask)) | (flags & mask & FMTFLAG_mask);
4479 /* ?setf@ios_base@std@@QAEHH@Z */
4480 /* ?setf@ios_base@std@@QEAAHH@Z */
4481 DEFINE_THISCALL_WRAPPER(ios_base_setf, 8)
4482 IOSB_fmtflags __thiscall ios_base_setf(ios_base *this, IOSB_fmtflags flags)
4484 return ios_base_setf_mask(this, flags, ~0);
4487 /* ?setstate@ios_base@std@@QAEXH_N@Z */
4488 /* ?setstate@ios_base@std@@QEAAXH_N@Z */
4489 DEFINE_THISCALL_WRAPPER(ios_base_setstate_reraise, 12)
4490 void __thiscall ios_base_setstate_reraise(ios_base *this, IOSB_iostate state, MSVCP_bool reraise)
4492 TRACE("(%p %x %x)\n", this, state, reraise);
4494 if(state != IOSTATE_goodbit)
4495 ios_base_clear_reraise(this, this->state | state, reraise);
4498 /* ?setstate@ios_base@std@@QAEXH@Z */
4499 /* ?setstate@ios_base@std@@QEAAXH@Z */
4500 static void ios_base_setstate(ios_base *this, IOSB_iostate state)
4502 ios_base_setstate_reraise(this, state, FALSE);
4505 /* ?sync_with_stdio@ios_base@std@@SA_N_N@Z */
4506 MSVCP_bool CDECL ios_base_sync_with_stdio(MSVCP_bool sync)
4511 TRACE("(%x)\n", sync);
4513 _Lockit_ctor_locktype(&lock, _LOCK_STREAM);
4514 ret = ios_base_Sync;
4515 ios_base_Sync = sync;
4516 _Lockit_dtor(&lock);
4520 /* ?unsetf@ios_base@std@@QAEXH@Z */
4521 /* ?unsetf@ios_base@std@@QEAAXH@Z */
4522 DEFINE_THISCALL_WRAPPER(ios_base_unsetf, 8)
4523 void __thiscall ios_base_unsetf(ios_base *this, IOSB_fmtflags flags)
4525 TRACE("(%p %x)\n", this, flags);
4526 this->fmtfl &= ~flags;
4529 /* ?width@ios_base@std@@QAEHH@Z */
4530 /* ?width@ios_base@std@@QEAA_J_J@Z */
4531 DEFINE_THISCALL_WRAPPER(ios_base_width_set, 8)
4532 streamsize __thiscall ios_base_width_set(ios_base *this, streamsize width)
4534 streamsize ret = this->wide;
4536 TRACE("(%p %ld)\n", this, width);
4542 /* ?width@ios_base@std@@QBEHXZ */
4543 /* ?width@ios_base@std@@QEBA_JXZ */
4544 DEFINE_THISCALL_WRAPPER(ios_base_width_get, 4)
4545 streamsize __thiscall ios_base_width_get(ios_base *this)
4547 TRACE("(%p)\n", this);
4551 /* ?xalloc@ios_base@std@@SAHXZ */
4552 int CDECL ios_base_xalloc(void)
4559 _Lockit_ctor_locktype(&lock, _LOCK_STREAM);
4560 ret = ios_base_Index++;
4561 _Lockit_dtor(&lock);
4565 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ */
4566 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ */
4567 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor, 4)
4568 basic_ios_char* __thiscall basic_ios_char_ctor(basic_ios_char *this)
4570 TRACE("(%p)\n", this);
4572 ios_base_ctor(&this->base);
4573 this->base.vtable = &MSVCP_basic_ios_char_vtable;
4577 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
4578 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
4579 DEFINE_THISCALL_WRAPPER(basic_ios_char_init, 12)
4580 void __thiscall basic_ios_char_init(basic_ios_char *this, basic_streambuf_char *streambuf, MSVCP_bool isstd)
4582 TRACE("(%p %p %x)\n", this, streambuf, isstd);
4583 ios_base__Init(&this->base);
4584 this->strbuf = streambuf;
4585 this->stream = NULL;
4589 ios_base_setstate(&this->base, IOSTATE_badbit);
4592 FIXME("standard streams not handled yet\n");
4595 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
4596 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
4597 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor_streambuf, 8)
4598 basic_ios_char* __thiscall basic_ios_char_ctor_streambuf(basic_ios_char *this, basic_streambuf_char *strbuf)
4600 TRACE("(%p %p)\n", this, strbuf);
4602 basic_ios_char_ctor(this);
4603 basic_ios_char_init(this, strbuf, FALSE);
4607 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ */
4608 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ */
4609 DEFINE_THISCALL_WRAPPER(basic_ios_char_dtor, 4)
4610 void __thiscall basic_ios_char_dtor(basic_ios_char *this)
4612 TRACE("(%p)\n", this);
4613 ios_base_dtor(&this->base);
4616 DEFINE_THISCALL_WRAPPER(basic_ios_char_vector_dtor, 8)
4617 basic_ios_char* __thiscall basic_ios_char_vector_dtor(basic_ios_char *this, unsigned int flags)
4619 TRACE("(%p %x)\n", this, flags);
4621 /* we have an array, with the number of elements stored before the first object */
4622 INT_PTR i, *ptr = (INT_PTR *)this-1;
4624 for(i=*ptr-1; i>=0; i--)
4625 basic_ios_char_dtor(this+i);
4626 MSVCRT_operator_delete(ptr);
4628 basic_ios_char_dtor(this);
4630 MSVCRT_operator_delete(this);
4636 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
4637 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
4638 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear_reraise, 12)
4639 void __thiscall basic_ios_char_clear_reraise(basic_ios_char *this, IOSB_iostate state, MSVCP_bool reraise)
4641 TRACE("(%p %x %x)\n", this, state, reraise);
4642 ios_base_clear_reraise(&this->base, state | (this->strbuf ? IOSTATE_goodbit : IOSTATE_badbit), reraise);
4645 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
4646 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
4647 static void basic_ios_char_clear(basic_ios_char *this, unsigned int state)
4649 basic_ios_char_clear_reraise(this, (IOSB_iostate)state, FALSE);
4652 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEAAV12@ABV12@@Z */
4653 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEBV12@@Z */
4654 DEFINE_THISCALL_WRAPPER(basic_ios_char_copyfmt, 8)
4655 basic_ios_char* __thiscall basic_ios_char_copyfmt(basic_ios_char *this, basic_ios_char *copy)
4657 TRACE("(%p %p)\n", this, copy);
4661 this->stream = copy->stream;
4662 this->fillch = copy->fillch;
4663 ios_base_copyfmt(&this->base, ©->base);
4667 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEDD@Z */
4668 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z */
4669 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_set, 8)
4670 char __thiscall basic_ios_char_fill_set(basic_ios_char *this, char fill)
4672 char ret = this->fillch;
4674 TRACE("(%p %c)\n", this, fill);
4676 this->fillch = fill;
4680 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ */
4681 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ */
4682 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_get, 4)
4683 char __thiscall basic_ios_char_fill_get(basic_ios_char *this)
4685 TRACE("(%p)\n", this);
4686 return this->fillch;
4689 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
4690 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
4691 DEFINE_THISCALL_WRAPPER(basic_ios_char_imbue, 12)
4692 locale *__thiscall basic_ios_char_imbue(basic_ios_char *this, locale *ret, const locale *loc)
4694 TRACE("(%p %p %p)\n", this, ret, loc);
4697 basic_streambuf_char_pubimbue(this->strbuf, ret, loc);
4701 return ios_base_imbue(&this->base, ret, loc);
4704 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDDD@Z */
4705 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADDD@Z */
4706 DEFINE_THISCALL_WRAPPER(basic_ios_char_narrow, 12)
4707 char __thiscall basic_ios_char_narrow(basic_ios_char *this, char ch, char def)
4709 TRACE("(%p %c %c)\n", this, ch, def);
4710 return ctype_char_narrow_ch(ctype_char_use_facet(&this->strbuf->loc), ch, def);
4713 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PAV32@@Z */
4714 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAV32@@Z */
4715 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_set, 8)
4716 basic_streambuf_char* __thiscall basic_ios_char_rdbuf_set(basic_ios_char *this, basic_streambuf_char *streambuf)
4718 basic_streambuf_char *ret = this->strbuf;
4720 TRACE("(%p %p)\n", this, streambuf);
4722 this->strbuf = streambuf;
4723 basic_ios_char_clear(this, IOSTATE_goodbit);
4727 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
4728 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
4729 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_get, 4)
4730 basic_streambuf_char* __thiscall basic_ios_char_rdbuf_get(const basic_ios_char *this)
4732 TRACE("(%p)\n", this);
4733 return this->strbuf;
4736 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
4737 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
4738 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate_reraise, 12)
4739 void __thiscall basic_ios_char_setstate_reraise(basic_ios_char *this, IOSB_iostate state, MSVCP_bool reraise)
4741 TRACE("(%p %x %x)\n", this, state, reraise);
4743 if(state != IOSTATE_goodbit)
4744 basic_ios_char_clear_reraise(this, this->base.state | state, reraise);
4747 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
4748 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
4749 static void basic_ios_char_setstate(basic_ios_char *this, unsigned int state)
4751 basic_ios_char_setstate_reraise(this, (IOSB_iostate)state, FALSE);
4754 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@PAV32@@Z */
4755 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@PEAV32@@Z */
4756 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_set, 8)
4757 basic_ostream_char* __thiscall basic_ios_char_tie_set(basic_ios_char *this, basic_ostream_char *ostream)
4759 basic_ostream_char *ret = this->stream;
4761 TRACE("(%p %p)\n", this, ostream);
4763 this->stream = ostream;
4767 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
4768 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
4769 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_get, 4)
4770 basic_ostream_char* __thiscall basic_ios_char_tie_get(const basic_ios_char *this)
4772 TRACE("(%p)\n", this);
4773 return this->stream;
4776 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z */
4777 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z */
4778 DEFINE_THISCALL_WRAPPER(basic_ios_char_widen, 8)
4779 char __thiscall basic_ios_char_widen(basic_ios_char *this, char ch)
4781 TRACE("(%p %c)\n", this, ch);
4782 return ctype_char_widen_ch(ctype_char_use_facet(&this->strbuf->loc), ch);
4786 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
4787 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
4788 static basic_ios_wchar* basic_ios_wchar_ctor(basic_ios_wchar *this)
4790 TRACE("(%p)\n", this);
4792 ios_base_ctor(&this->base);
4793 this->base.vtable = &MSVCP_basic_ios_wchar_vtable;
4797 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@IAE@XZ */
4798 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@IEAA@XZ */
4799 DEFINE_THISCALL_WRAPPER(basic_ios_short_ctor, 4)
4800 basic_ios_wchar* __thiscall basic_ios_short_ctor(basic_ios_wchar *this)
4802 basic_ios_wchar_ctor(this);
4803 this->base.vtable = &MSVCP_basic_ios_short_vtable;
4807 /* ?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAEXPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z */
4808 /* ?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z */
4809 /* ?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IAEXPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z */
4810 /* ?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z */
4811 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_init, 12)
4812 void __thiscall basic_ios_wchar_init(basic_ios_wchar *this, basic_streambuf_wchar *streambuf, MSVCP_bool isstd)
4814 TRACE("(%p %p %x)\n", this, streambuf, isstd);
4815 ios_base__Init(&this->base);
4816 this->strbuf = streambuf;
4817 this->stream = NULL;
4821 ios_base_setstate(&this->base, IOSTATE_badbit);
4824 FIXME("standard streams not handled yet\n");
4827 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
4828 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
4829 static basic_ios_wchar* basic_ios_wchar_ctor_streambuf(basic_ios_wchar *this, basic_streambuf_wchar *strbuf)
4831 TRACE("(%p %p)\n", this, strbuf);
4833 basic_ios_wchar_ctor(this);
4834 basic_ios_wchar_init(this, strbuf, FALSE);
4838 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
4839 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
4840 DEFINE_THISCALL_WRAPPER(basic_ios_short_ctor_streambuf, 8)
4841 basic_ios_wchar* __thiscall basic_ios_short_ctor_streambuf(basic_ios_wchar *this, basic_streambuf_wchar *strbuf)
4843 basic_ios_wchar_ctor_streambuf(this, strbuf);
4844 this->base.vtable = &MSVCP_basic_ios_short_vtable;
4848 /* ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
4849 /* ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
4850 /* ??1?$basic_ios@GU?$char_traits@G@std@@@std@@UAE@XZ */
4851 /* ??1?$basic_ios@GU?$char_traits@G@std@@@std@@UEAA@XZ */
4852 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_dtor, 4)
4853 void __thiscall basic_ios_wchar_dtor(basic_ios_wchar *this)
4855 TRACE("(%p)\n", this);
4856 ios_base_dtor(&this->base);
4859 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_vector_dtor, 8)
4860 basic_ios_wchar* __thiscall basic_ios_wchar_vector_dtor(basic_ios_wchar *this, unsigned int flags)
4862 TRACE("(%p %x)\n", this, flags);
4864 /* we have an array, with the number of elements stored before the first object */
4865 INT_PTR i, *ptr = (INT_PTR *)this-1;
4867 for(i=*ptr-1; i>=0; i--)
4868 basic_ios_wchar_dtor(this+i);
4869 MSVCRT_operator_delete(ptr);
4871 basic_ios_wchar_dtor(this);
4873 MSVCRT_operator_delete(this);
4879 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z */
4880 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z */
4881 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXH_N@Z */
4882 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z */
4883 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_clear_reraise, 12)
4884 void __thiscall basic_ios_wchar_clear_reraise(basic_ios_wchar *this, IOSB_iostate state, MSVCP_bool reraise)
4886 TRACE("(%p %x %x)\n", this, state, reraise);
4887 ios_base_clear_reraise(&this->base, state | (this->strbuf ? IOSTATE_goodbit : IOSTATE_badbit), reraise);
4890 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXI@Z */
4891 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z */
4892 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXI@Z */
4893 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z */
4894 static void basic_ios_wchar_clear(basic_ios_wchar *this, unsigned int state)
4896 basic_ios_wchar_clear_reraise(this, (IOSB_iostate)state, FALSE);
4899 /* ?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEAAV12@ABV12@@Z */
4900 /* ?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEBV12@@Z */
4901 /* ?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEAAV12@ABV12@@Z */
4902 /* ?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEBV12@@Z */
4903 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_copyfmt, 8)
4904 basic_ios_wchar* __thiscall basic_ios_wchar_copyfmt(basic_ios_wchar *this, basic_ios_wchar *copy)
4906 TRACE("(%p %p)\n", this, copy);
4910 this->stream = copy->stream;
4911 this->fillch = copy->fillch;
4912 ios_base_copyfmt(&this->base, ©->base);
4916 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE_W_W@Z */
4917 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA_W_W@Z */
4918 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEGG@Z */
4919 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAGG@Z */
4920 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_fill_set, 8)
4921 wchar_t __thiscall basic_ios_wchar_fill_set(basic_ios_wchar *this, wchar_t fill)
4923 wchar_t ret = this->fillch;
4925 TRACE("(%p %c)\n", this, fill);
4927 this->fillch = fill;
4931 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WXZ */
4932 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WXZ */
4933 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEGXZ */
4934 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGXZ */
4935 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_fill_get, 4)
4936 wchar_t __thiscall basic_ios_wchar_fill_get(basic_ios_wchar *this)
4938 TRACE("(%p)\n", this);
4939 return this->fillch;
4942 /* ?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
4943 /* ?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
4944 /* ?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
4945 /* ?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
4946 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_imbue, 12)
4947 locale *__thiscall basic_ios_wchar_imbue(basic_ios_wchar *this, locale *ret, const locale *loc)
4949 TRACE("(%p %p %p)\n", this, ret, loc);
4952 basic_streambuf_wchar_pubimbue(this->strbuf, ret, loc);
4956 return ios_base_imbue(&this->base, ret, loc);
4959 /* ?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBED_WD@Z */
4960 /* ?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAD_WD@Z */
4961 /* ?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEDGD@Z */
4962 /* ?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBADGD@Z */
4963 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_narrow, 12)
4964 char __thiscall basic_ios_wchar_narrow(basic_ios_wchar *this, wchar_t ch, char def)
4966 TRACE("(%p %c %c)\n", this, ch, def);
4967 return ctype_wchar_narrow_ch(ctype_wchar_use_facet(&this->strbuf->loc), ch, def);
4970 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PAV32@@Z */
4971 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEAV32@@Z */
4972 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PAV32@@Z */
4973 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAV32@@Z */
4974 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_rdbuf_set, 8)
4975 basic_streambuf_wchar* __thiscall basic_ios_wchar_rdbuf_set(basic_ios_wchar *this, basic_streambuf_wchar *streambuf)
4977 basic_streambuf_wchar *ret = this->strbuf;
4979 TRACE("(%p %p)\n", this, streambuf);
4981 this->strbuf = streambuf;
4982 basic_ios_wchar_clear(this, IOSTATE_goodbit);
4986 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ */
4987 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ */
4988 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ */
4989 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ */
4990 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_rdbuf_get, 4)
4991 basic_streambuf_wchar* __thiscall basic_ios_wchar_rdbuf_get(const basic_ios_wchar *this)
4993 TRACE("(%p)\n", this);
4994 return this->strbuf;
4997 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z */
4998 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z */
4999 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXH_N@Z */
5000 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z */
5001 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_setstate_reraise, 12)
5002 void __thiscall basic_ios_wchar_setstate_reraise(basic_ios_wchar *this, IOSB_iostate state, MSVCP_bool reraise)
5004 TRACE("(%p %x %x)\n", this, state, reraise);
5006 if(state != IOSTATE_goodbit)
5007 basic_ios_wchar_clear_reraise(this, this->base.state | state, reraise);
5010 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXI@Z */
5011 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z */
5012 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXI@Z */
5013 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z */
5014 static void basic_ios_wchar_setstate(basic_ios_wchar *this, IOSB_iostate state)
5016 basic_ios_wchar_setstate_reraise(this, state, FALSE);
5019 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PAV32@@Z */
5020 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PEAV32@@Z */
5021 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEPAV?$basic_ostream@GU?$char_traits@G@std@@@2@PAV32@@Z */
5022 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@PEAV32@@Z */
5023 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_tie_set, 8)
5024 basic_ostream_wchar* __thiscall basic_ios_wchar_tie_set(basic_ios_wchar *this, basic_ostream_wchar *ostream)
5026 basic_ostream_wchar *ret = this->stream;
5028 TRACE("(%p %p)\n", this, ostream);
5030 this->stream = ostream;
5034 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ */
5035 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ */
5036 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ */
5037 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ */
5038 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_tie_get, 4)
5039 basic_ostream_wchar* __thiscall basic_ios_wchar_tie_get(const basic_ios_wchar *this)
5041 TRACE("(%p)\n", this);
5042 return this->stream;
5045 /* ?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WD@Z */
5046 /* ?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WD@Z */
5047 /* ?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEGD@Z */
5048 /* ?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGD@Z */
5049 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_widen, 8)
5050 wchar_t __thiscall basic_ios_wchar_widen(basic_ios_wchar *this, char ch)
5052 TRACE("(%p %c)\n", this, ch);
5053 return ctype_wchar_widen_ch(ctype_wchar_use_facet(&this->strbuf->loc), ch);
5056 /* Caution: basic_ostream uses virtual inheritance.
5057 * All constructors have additional parameter that says if base class should be initialized.
5058 * Base class needs to be accessed using vbtable.
5060 static inline basic_ios_char* basic_ostream_char_get_basic_ios(basic_ostream_char *this)
5062 return (basic_ios_char*)((char*)this+this->vbtable[1]);
5065 static inline basic_ios_char* basic_ostream_char_to_basic_ios(basic_ostream_char *ptr)
5067 return (basic_ios_char*)((char*)ptr+basic_ostream_char_vbtable[1]);
5070 static inline basic_ostream_char* basic_ostream_char_from_basic_ios(basic_ios_char *ptr)
5072 return (basic_ostream_char*)((char*)ptr-basic_ostream_char_vbtable[1]);
5075 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
5076 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
5077 DEFINE_THISCALL_WRAPPER(basic_ostream_char_ctor, 20)
5078 basic_ostream_char* __thiscall basic_ostream_char_ctor(basic_ostream_char *this,
5079 basic_streambuf_char *strbuf, MSVCP_bool isstd, MSVCP_bool init, MSVCP_bool virt_init)
5081 basic_ios_char *base;
5083 TRACE("(%p %p %d %d %d)\n", this, strbuf, isstd, init, virt_init);
5086 this->vbtable = basic_ostream_char_vbtable;
5087 base = basic_ostream_char_get_basic_ios(this);
5088 basic_ios_char_ctor(base);
5090 base = basic_ostream_char_get_basic_ios(this);
5093 base->base.vtable = &MSVCP_basic_ostream_char_vtable;
5095 basic_ios_char_init(base, strbuf, isstd);
5099 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
5100 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
5101 DEFINE_THISCALL_WRAPPER(basic_ostream_char_ctor_uninitialized, 12)
5102 basic_ostream_char* __thiscall basic_ostream_char_ctor_uninitialized(basic_ostream_char *this,
5103 int uninitialized, MSVCP_bool virt_init)
5105 basic_ios_char *base;
5107 TRACE("(%p %d)\n", this, uninitialized);
5110 this->vbtable = basic_ostream_char_vbtable;
5111 base = basic_ostream_char_get_basic_ios(this);
5112 basic_ios_char_ctor(base);
5114 base = basic_ostream_char_get_basic_ios(this);
5117 base->base.vtable = &MSVCP_basic_ostream_char_vtable;
5118 ios_base_Addstd(&base->base);
5122 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
5123 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
5124 DEFINE_THISCALL_WRAPPER(basic_ostream_char_dtor, 4)
5125 void __thiscall basic_ostream_char_dtor(basic_ios_char *base)
5127 basic_ostream_char *this = basic_ostream_char_from_basic_ios(base);
5129 /* don't destroy virtual base here */
5130 TRACE("(%p)\n", this);
5133 /* ??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
5134 /* ??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
5135 DEFINE_THISCALL_WRAPPER(basic_ostream_char_vbase_dtor, 4)
5136 void __thiscall basic_ostream_char_vbase_dtor(basic_ostream_char *this)
5138 TRACE("(%p)\n", this);
5139 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(this));
5140 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(this));
5143 DEFINE_THISCALL_WRAPPER(basic_ostream_char_vector_dtor, 8)
5144 basic_ostream_char* __thiscall basic_ostream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
5146 basic_ostream_char *this = basic_ostream_char_from_basic_ios(base);
5148 TRACE("(%p %x)\n", this, flags);
5151 /* we have an array, with the number of elements stored before the first object */
5152 INT_PTR i, *ptr = (INT_PTR *)this-1;
5154 for(i=*ptr-1; i>=0; i--)
5155 basic_ostream_char_vbase_dtor(this+i);
5156 MSVCRT_operator_delete(ptr);
5158 basic_ostream_char_vbase_dtor(this);
5160 MSVCRT_operator_delete(this);
5166 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ */
5167 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ */
5168 DEFINE_THISCALL_WRAPPER(basic_ostream_char_flush, 4)
5169 basic_ostream_char* __thiscall basic_ostream_char_flush(basic_ostream_char *this)
5171 /* this function is not matching C++ specification */
5172 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5174 TRACE("(%p)\n", this);
5176 if(basic_ios_char_rdbuf_get(base) && ios_base_good(&base->base)
5177 && basic_streambuf_char_pubsync(basic_ios_char_rdbuf_get(base))==-1)
5178 basic_ios_char_setstate(base, IOSTATE_badbit);
5182 /* ?flush@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
5183 /* ?flush@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
5184 basic_ostream_char* __cdecl flush_ostream_char(basic_ostream_char *ostream)
5186 return basic_ostream_char_flush(ostream);
5189 /* ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
5190 /* ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
5191 static void basic_ostream_char__Osfx(basic_ostream_char *this)
5193 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5195 TRACE("(%p)\n", this);
5197 if(base->base.fmtfl & FMTFLAG_unitbuf)
5198 basic_ostream_char_flush(this);
5201 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
5202 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
5203 DEFINE_THISCALL_WRAPPER(basic_ostream_char_osfx, 4)
5204 void __thiscall basic_ostream_char_osfx(basic_ostream_char *this)
5206 TRACE("(%p)\n", this);
5207 basic_ostream_char__Osfx(this);
5210 static BOOL basic_ostream_char_sentry_create(basic_ostream_char *ostr)
5212 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
5214 if(basic_ios_char_rdbuf_get(base))
5215 basic_streambuf_char__Lock(base->strbuf);
5217 if(ios_base_good(&base->base) && base->stream)
5218 basic_ostream_char_flush(base->stream);
5220 return ios_base_good(&base->base);
5223 static void basic_ostream_char_sentry_destroy(basic_ostream_char *ostr)
5225 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
5227 if(ios_base_good(&base->base) && !__uncaught_exception())
5228 basic_ostream_char_osfx(ostr);
5230 if(basic_ios_char_rdbuf_get(base))
5231 basic_streambuf_char__Unlock(base->strbuf);
5234 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE_NXZ */
5235 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA_NXZ */
5236 DEFINE_THISCALL_WRAPPER(basic_ostream_char_opfx, 4)
5237 MSVCP_bool __thiscall basic_ostream_char_opfx(basic_ostream_char *this)
5239 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5241 TRACE("(%p)\n", this);
5243 if(ios_base_good(&base->base) && base->stream)
5244 basic_ostream_char_flush(base->stream);
5245 return ios_base_good(&base->base);
5248 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z */
5249 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z */
5250 DEFINE_THISCALL_WRAPPER(basic_ostream_char_put, 8)
5251 basic_ostream_char* __thiscall basic_ostream_char_put(basic_ostream_char *this, char ch)
5253 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5255 TRACE("(%p %c)\n", this, ch);
5257 if(!basic_ostream_char_sentry_create(this)
5258 || basic_streambuf_char_sputc(base->strbuf, ch)==EOF) {
5259 basic_ostream_char_sentry_destroy(this);
5260 basic_ios_char_setstate(base, IOSTATE_badbit);
5264 basic_ostream_char_sentry_destroy(this);
5268 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
5269 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
5270 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp_fpos, 28)
5271 basic_ostream_char* __thiscall basic_ostream_char_seekp_fpos(basic_ostream_char *this, fpos_int pos)
5273 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5275 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos));
5277 if(!ios_base_fail(&base->base)) {
5280 basic_streambuf_char_pubseekpos(basic_ios_char_rdbuf_get(base),
5281 &seek, pos, OPENMODE_out);
5282 if(seek.off==-1 && seek.pos==0 && seek.state==0)
5283 basic_ios_char_setstate(base, IOSTATE_failbit);
5288 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
5289 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
5290 DEFINE_THISCALL_WRAPPER(basic_ostream_char_tellp, 8)
5291 fpos_int* __thiscall basic_ostream_char_tellp(basic_ostream_char *this, fpos_int *ret)
5293 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5295 TRACE("(%p)\n", this);
5297 if(!ios_base_fail(&base->base)) {
5298 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base),
5299 ret, 0, SEEKDIR_cur, OPENMODE_out);
5308 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@PBDH@Z */
5309 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z */
5310 DEFINE_THISCALL_WRAPPER(basic_ostream_char_write, 12)
5311 basic_ostream_char* __thiscall basic_ostream_char_write(basic_ostream_char *this, const char *str, streamsize count)
5313 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5315 TRACE("(%p %s %ld)\n", this, debugstr_a(str), count);
5317 if(!basic_ostream_char_sentry_create(this)
5318 || basic_streambuf_char_sputn(base->strbuf, str, count)!=count) {
5319 basic_ostream_char_sentry_destroy(this);
5320 basic_ios_char_setstate(base, IOSTATE_badbit);
5324 basic_ostream_char_sentry_destroy(this);
5328 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@F@Z */
5329 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@F@Z */
5330 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_short, 8)
5331 basic_ostream_char* __thiscall basic_ostream_char_print_short(basic_ostream_char *this, short val)
5333 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5334 int state = IOSTATE_goodbit;
5336 TRACE("(%p %d)\n", this, val);
5338 if(basic_ostream_char_sentry_create(this)) {
5339 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5340 const num_put *numput = num_put_char_use_facet(&strbuf->loc);
5341 ostreambuf_iterator_char dest = {0, strbuf};
5343 num_put_char_put_long(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base),
5344 (ios_base_flags_get(&base->base) & FMTFLAG_basefield & (FMTFLAG_oct | FMTFLAG_hex))
5345 ? (LONG)((unsigned short)val) : (LONG)val);
5347 basic_ostream_char_sentry_destroy(this);
5349 basic_ios_char_setstate(base, state);
5353 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@G@Z */
5354 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@G@Z */
5355 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ushort, 8)
5356 basic_ostream_char* __thiscall basic_ostream_char_print_ushort(basic_ostream_char *this, unsigned short val)
5358 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5359 int state = IOSTATE_goodbit;
5361 TRACE("(%p %u)\n", this, val);
5363 if(basic_ostream_char_sentry_create(this)) {
5364 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5365 const num_put *numput = num_put_char_use_facet(&strbuf->loc);
5366 ostreambuf_iterator_char dest = {0, strbuf};
5368 num_put_char_put_ulong(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5370 basic_ostream_char_sentry_destroy(this);
5372 basic_ios_char_setstate(base, state);
5376 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@H@Z */
5377 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z */
5378 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@J@Z */
5379 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@J@Z */
5380 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int, 8)
5381 basic_ostream_char* __thiscall basic_ostream_char_print_int(basic_ostream_char *this, int val)
5383 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5384 int state = IOSTATE_goodbit;
5386 TRACE("(%p %d)\n", this, val);
5388 if(basic_ostream_char_sentry_create(this)) {
5389 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5390 const num_put *numput = num_put_char_use_facet(&strbuf->loc);
5391 ostreambuf_iterator_char dest = {0, strbuf};
5393 num_put_char_put_long(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5395 basic_ostream_char_sentry_destroy(this);
5397 basic_ios_char_setstate(base, state);
5401 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@I@Z */
5402 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@I@Z */
5403 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@K@Z */
5404 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@K@Z */
5405 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint, 8)
5406 basic_ostream_char* __thiscall basic_ostream_char_print_uint(basic_ostream_char *this, unsigned int val)
5408 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5409 int state = IOSTATE_goodbit;
5411 TRACE("(%p %u)\n", this, val);
5413 if(basic_ostream_char_sentry_create(this)) {
5414 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5415 const num_put *numput = num_put_char_use_facet(&strbuf->loc);
5416 ostreambuf_iterator_char dest = {0, strbuf};
5418 num_put_char_put_ulong(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5420 basic_ostream_char_sentry_destroy(this);
5422 basic_ios_char_setstate(base, state);
5426 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@M@Z */
5427 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z */
5428 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_float, 8)
5429 basic_ostream_char* __thiscall basic_ostream_char_print_float(basic_ostream_char *this, float val)
5431 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5432 int state = IOSTATE_goodbit;
5434 TRACE("(%p %f)\n", this, val);
5436 if(basic_ostream_char_sentry_create(this)) {
5437 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5438 const num_put *numput = num_put_char_use_facet(&strbuf->loc);
5439 ostreambuf_iterator_char dest = {0, strbuf};
5441 num_put_char_put_double(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5443 basic_ostream_char_sentry_destroy(this);
5445 basic_ios_char_setstate(base, state);
5449 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@N@Z */
5450 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z */
5451 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_double, 12)
5452 basic_ostream_char* __thiscall basic_ostream_char_print_double(basic_ostream_char *this, double val)
5454 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5455 int state = IOSTATE_goodbit;
5457 TRACE("(%p %lf)\n", this, val);
5459 if(basic_ostream_char_sentry_create(this)) {
5460 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5461 const num_put *numput = num_put_char_use_facet(&strbuf->loc);
5462 ostreambuf_iterator_char dest = {0, strbuf};
5464 num_put_char_put_double(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5466 basic_ostream_char_sentry_destroy(this);
5468 basic_ios_char_setstate(base, state);
5472 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@O@Z */
5473 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@O@Z */
5474 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ldouble, 12)
5475 basic_ostream_char* __thiscall basic_ostream_char_print_ldouble(basic_ostream_char *this, double val)
5477 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5478 int state = IOSTATE_goodbit;
5480 TRACE("(%p %lf)\n", this, val);
5482 if(basic_ostream_char_sentry_create(this)) {
5483 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5484 const num_put *numput = num_put_char_use_facet(&strbuf->loc);
5485 ostreambuf_iterator_char dest = {0, strbuf};
5487 num_put_char_put_ldouble(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5489 basic_ostream_char_sentry_destroy(this);
5491 basic_ios_char_setstate(base, state);
5495 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
5496 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
5497 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_streambuf, 8)
5498 basic_ostream_char* __thiscall basic_ostream_char_print_streambuf(basic_ostream_char *this, basic_streambuf_char *val)
5500 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5501 IOSB_iostate state = IOSTATE_badbit;
5504 TRACE("(%p %p)\n", this, val);
5506 if(basic_ostream_char_sentry_create(this)) {
5507 for(c = basic_streambuf_char_sgetc(val); c!=EOF;
5508 c = basic_streambuf_char_snextc(val)) {
5509 state = IOSTATE_goodbit;
5511 if(basic_streambuf_char_sputc(base->strbuf, c) == EOF) {
5512 state = IOSTATE_badbit;
5517 state = IOSTATE_badbit;
5519 basic_ostream_char_sentry_destroy(this);
5521 ios_base_width_set(&base->base, 0);
5522 basic_ios_char_setstate(base, state);
5526 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PBX@Z */
5527 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEBX@Z */
5528 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ptr, 8)
5529 basic_ostream_char* __thiscall basic_ostream_char_print_ptr(basic_ostream_char *this, const void *val)
5531 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5532 int state = IOSTATE_goodbit;
5534 TRACE("(%p %p)\n", this, val);
5536 if(basic_ostream_char_sentry_create(this)) {
5537 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5538 const num_put *numput = num_put_char_use_facet(&strbuf->loc);
5539 ostreambuf_iterator_char dest = {0, strbuf};
5541 num_put_char_put_ptr(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5543 basic_ostream_char_sentry_destroy(this);
5545 basic_ios_char_setstate(base, state);
5549 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_J@Z */
5550 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_J@Z */
5551 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int64, 12)
5552 basic_ostream_char* __thiscall basic_ostream_char_print_int64(basic_ostream_char *this, __int64 val)
5554 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5555 int state = IOSTATE_goodbit;
5557 TRACE("(%p)\n", this);
5559 if(basic_ostream_char_sentry_create(this)) {
5560 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5561 const num_put *numput = num_put_char_use_facet(&strbuf->loc);
5562 ostreambuf_iterator_char dest = {0, strbuf};
5564 num_put_char_put_int64(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5566 basic_ostream_char_sentry_destroy(this);
5568 basic_ios_char_setstate(base, state);
5572 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_K@Z */
5573 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z */
5574 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint64, 12)
5575 basic_ostream_char* __thiscall basic_ostream_char_print_uint64(basic_ostream_char *this, unsigned __int64 val)
5577 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5578 int state = IOSTATE_goodbit;
5580 TRACE("(%p)\n", this);
5582 if(basic_ostream_char_sentry_create(this)) {
5583 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5584 const num_put *numput = num_put_char_use_facet(&strbuf->loc);
5585 ostreambuf_iterator_char dest = {0, strbuf};
5587 num_put_char_put_uint64(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5589 basic_ostream_char_sentry_destroy(this);
5591 basic_ios_char_setstate(base, state);
5595 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_N@Z */
5596 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_N@Z */
5597 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_bool, 8)
5598 basic_ostream_char* __thiscall basic_ostream_char_print_bool(basic_ostream_char *this, MSVCP_bool val)
5600 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5601 int state = IOSTATE_goodbit;
5603 TRACE("(%p %x)\n", this, val);
5605 if(basic_ostream_char_sentry_create(this)) {
5606 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5607 const num_put *numput = num_put_char_use_facet(&strbuf->loc);
5608 ostreambuf_iterator_char dest = {0, strbuf};
5610 num_put_char_put_bool(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5612 basic_ostream_char_sentry_destroy(this);
5614 basic_ios_char_setstate(base, state);
5618 /* ?ends@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
5619 /* ?ends@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
5620 basic_ostream_char* __cdecl basic_ostream_char_ends(basic_ostream_char *ostr)
5622 TRACE("(%p)\n", ostr);
5624 basic_ostream_char_put(ostr, 0);
5628 /* ?endl@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
5629 /* ?endl@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
5630 basic_ostream_char* __cdecl basic_ostream_char_endl(basic_ostream_char *ostr)
5632 TRACE("(%p)\n", ostr);
5634 basic_ostream_char_put(ostr, '\n');
5635 basic_ostream_char_flush(ostr);
5639 /* $?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 */
5640 /* ??$?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 */
5641 basic_ostream_char* __cdecl basic_ostream_char_print_bstr(basic_ostream_char *ostr, const basic_string_char *str)
5643 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
5644 IOSB_iostate state = IOSTATE_goodbit;
5646 TRACE("(%p %p)\n", ostr, str);
5648 if(basic_ostream_char_sentry_create(ostr)) {
5649 MSVCP_size_t len = basic_string_char_length(str);
5650 streamsize pad = (base->base.wide>len ? base->base.wide-len : 0);
5652 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
5653 for(; pad!=0; pad--) {
5654 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
5655 state = IOSTATE_badbit;
5661 if(state == IOSTATE_goodbit) {
5662 if(basic_streambuf_char_sputn(base->strbuf, basic_string_char_c_str(str), len) != len)
5663 state = IOSTATE_badbit;
5666 if(state == IOSTATE_goodbit) {
5667 for(; pad!=0; pad--) {
5668 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
5669 state = IOSTATE_badbit;
5675 base->base.wide = 0;
5677 state = IOSTATE_badbit;
5679 basic_ostream_char_sentry_destroy(ostr);
5681 basic_ios_char_setstate(base, state);
5685 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@C@Z */
5686 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@C@Z */
5687 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@D@Z */
5688 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z */
5689 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@E@Z */
5690 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@E@Z */
5691 basic_ostream_char* __cdecl basic_ostream_char_print_ch(basic_ostream_char *ostr, char ch)
5693 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
5694 IOSB_iostate state = IOSTATE_goodbit;
5696 TRACE("(%p %d)\n", ostr, ch);
5698 if(basic_ostream_char_sentry_create(ostr)) {
5699 streamsize pad = (base->base.wide>1 ? base->base.wide-1 : 0);
5701 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
5702 for(; pad!=0; pad--) {
5703 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
5704 state = IOSTATE_badbit;
5710 if(state == IOSTATE_goodbit) {
5711 if(basic_streambuf_char_sputc(base->strbuf, ch) == EOF)
5712 state = IOSTATE_badbit;
5715 if(state == IOSTATE_goodbit) {
5716 for(; pad!=0; pad--) {
5717 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
5718 state = IOSTATE_badbit;
5724 base->base.wide = 0;
5726 state = IOSTATE_badbit;
5728 basic_ostream_char_sentry_destroy(ostr);
5730 basic_ios_char_setstate(base, state);
5734 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBC@Z */
5735 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBC@Z */
5736 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z */
5737 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBD@Z */
5738 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBE@Z */
5739 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBE@Z */
5740 basic_ostream_char* __cdecl basic_ostream_char_print_str(basic_ostream_char *ostr, const char *str)
5742 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
5743 IOSB_iostate state = IOSTATE_goodbit;
5745 TRACE("(%p %s)\n", ostr, str);
5747 if(basic_ostream_char_sentry_create(ostr)) {
5748 MSVCP_size_t len = strlen(str);
5749 streamsize pad = (base->base.wide>len ? base->base.wide-len : 0);
5751 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
5752 for(; pad!=0; pad--) {
5753 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
5754 state = IOSTATE_badbit;
5760 if(state == IOSTATE_goodbit) {
5761 if(basic_streambuf_char_sputn(base->strbuf, str, len) != len)
5762 state = IOSTATE_badbit;
5765 if(state == IOSTATE_goodbit) {
5766 for(; pad!=0; pad--) {
5767 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
5768 state = IOSTATE_badbit;
5774 base->base.wide = 0;
5776 state = IOSTATE_badbit;
5778 basic_ostream_char_sentry_destroy(ostr);
5780 basic_ios_char_setstate(base, state);
5784 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
5785 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
5786 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func, 8)
5787 basic_ostream_char* __thiscall basic_ostream_char_print_func(basic_ostream_char *this,
5788 basic_ostream_char* (__cdecl *pfunc)(basic_ostream_char*))
5790 TRACE("(%p %p)\n", this, pfunc);
5795 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@DU?$char_traits@D@std@@@1@AAV21@@Z@Z */
5796 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z */
5797 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func_basic_ios, 8)
5798 basic_ostream_char* __thiscall basic_ostream_char_print_func_basic_ios(basic_ostream_char *this,
5799 basic_ios_char* (__cdecl *pfunc)(basic_ios_char*))
5801 TRACE("(%p %p)\n", this, pfunc);
5802 pfunc(basic_ostream_char_get_basic_ios(this));
5806 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
5807 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
5808 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func_ios_base, 8)
5809 basic_ostream_char* __thiscall basic_ostream_char_print_func_ios_base(
5810 basic_ostream_char *this, ios_base* (__cdecl *pfunc)(ios_base*))
5812 TRACE("(%p %p)\n", this, pfunc);
5813 pfunc(&basic_ostream_char_get_basic_ios(this)->base);
5817 /* Caution: basic_ostream uses virtual inheritance. */
5818 static inline basic_ios_wchar* basic_ostream_wchar_get_basic_ios(basic_ostream_wchar *this)
5820 return (basic_ios_wchar*)((char*)this+this->vbtable[1]);
5823 static inline basic_ios_wchar* basic_ostream_wchar_to_basic_ios(basic_ostream_wchar *ptr)
5825 return (basic_ios_wchar*)((char*)ptr+basic_ostream_wchar_vbtable[1]);
5828 static inline basic_ostream_wchar* basic_ostream_wchar_from_basic_ios(basic_ios_wchar *ptr)
5830 return (basic_ostream_wchar*)((char*)ptr-basic_ostream_wchar_vbtable[1]);
5833 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z */
5834 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z */
5835 DEFINE_THISCALL_WRAPPER(basic_ostream_short_ctor, 20)
5836 basic_ostream_wchar* __thiscall basic_ostream_short_ctor(basic_ostream_wchar *this,
5837 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool init, MSVCP_bool virt_init)
5839 basic_ios_wchar *base;
5841 TRACE("(%p %p %d %d %d)\n", this, strbuf, isstd, init, virt_init);
5844 this->vbtable = basic_ostream_wchar_vbtable;
5845 base = basic_ostream_wchar_get_basic_ios(this);
5846 basic_ios_wchar_ctor(base);
5848 base = basic_ostream_wchar_get_basic_ios(this);
5851 base->base.vtable = &MSVCP_basic_ostream_short_vtable;
5853 basic_ios_wchar_init(base, strbuf, isstd);
5857 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */
5858 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
5859 DEFINE_THISCALL_WRAPPER(basic_ostream_short_ctor_uninitialized, 12)
5860 basic_ostream_wchar* __thiscall basic_ostream_short_ctor_uninitialized(basic_ostream_wchar *this,
5861 int uninitialized, MSVCP_bool virt_init)
5863 basic_ios_wchar *base;
5865 TRACE("(%p %d)\n", this, uninitialized);
5868 this->vbtable = basic_ostream_wchar_vbtable;
5869 base = basic_ostream_wchar_get_basic_ios(this);
5870 basic_ios_wchar_ctor(base);
5872 base = basic_ostream_wchar_get_basic_ios(this);
5875 base->base.vtable = &MSVCP_basic_ostream_short_vtable;
5876 ios_base_Addstd(&base->base);
5880 /* ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
5881 /* ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
5882 /* ??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UAE@XZ */
5883 /* ??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
5884 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_dtor, 4)
5885 void __thiscall basic_ostream_wchar_dtor(basic_ios_wchar *base)
5887 basic_ostream_wchar *this = basic_ostream_wchar_from_basic_ios(base);
5889 /* don't destroy virtual base here */
5890 TRACE("(%p)\n", this);
5893 /* ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
5894 /* ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
5895 /* ??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
5896 /* ??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
5897 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_vbase_dtor, 4)
5898 void __thiscall basic_ostream_wchar_vbase_dtor(basic_ostream_wchar *this)
5900 TRACE("(%p)\n", this);
5901 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(this));
5902 basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(this));
5905 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_vector_dtor, 8)
5906 basic_ostream_wchar* __thiscall basic_ostream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
5908 basic_ostream_wchar *this = basic_ostream_wchar_from_basic_ios(base);
5910 TRACE("(%p %x)\n", this, flags);
5913 /* we have an array, with the number of elements stored before the first object */
5914 INT_PTR i, *ptr = (INT_PTR *)this-1;
5916 for(i=*ptr-1; i>=0; i--)
5917 basic_ostream_wchar_vbase_dtor(this+i);
5918 MSVCRT_operator_delete(ptr);
5920 basic_ostream_wchar_vbase_dtor(this);
5922 MSVCRT_operator_delete(this);
5928 /* ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ */
5929 /* ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ */
5930 /* ?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@XZ */
5931 /* ?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ */
5932 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_flush, 4)
5933 basic_ostream_wchar* __thiscall basic_ostream_wchar_flush(basic_ostream_wchar *this)
5935 /* this function is not matching C++ specification */
5936 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
5938 TRACE("(%p)\n", this);
5940 if(basic_ios_wchar_rdbuf_get(base) && ios_base_good(&base->base)
5941 && basic_streambuf_wchar_pubsync(basic_ios_wchar_rdbuf_get(base))==-1)
5942 basic_ios_wchar_setstate(base, IOSTATE_badbit);
5946 /* ?flush@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
5947 /* ?flush@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
5948 /* ?flush@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
5949 /* ?flush@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
5950 basic_ostream_wchar* __cdecl flush_ostream_wchar(basic_ostream_wchar *ostream)
5952 return basic_ostream_wchar_flush(ostream);
5955 /* ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
5956 /* ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
5957 /* ?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
5958 /* ?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
5959 static void basic_ostream_wchar__Osfx(basic_ostream_wchar *this)
5961 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
5963 TRACE("(%p)\n", this);
5965 if(base->base.fmtfl & FMTFLAG_unitbuf)
5966 basic_ostream_wchar_flush(this);
5969 /* ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
5970 /* ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
5971 /* ?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
5972 /* ?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
5973 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_osfx, 4)
5974 void __thiscall basic_ostream_wchar_osfx(basic_ostream_wchar *this)
5976 TRACE("(%p)\n", this);
5977 basic_ostream_wchar__Osfx(this);
5980 static BOOL basic_ostream_wchar_sentry_create(basic_ostream_wchar *ostr)
5982 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
5984 if(basic_ios_wchar_rdbuf_get(base))
5985 basic_streambuf_wchar__Lock(base->strbuf);
5987 if(ios_base_good(&base->base) && base->stream)
5988 basic_ostream_wchar_flush(base->stream);
5990 return ios_base_good(&base->base);
5993 static void basic_ostream_wchar_sentry_destroy(basic_ostream_wchar *ostr)
5995 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
5997 if(ios_base_good(&base->base) && !__uncaught_exception())
5998 basic_ostream_wchar_osfx(ostr);
6000 if(basic_ios_wchar_rdbuf_get(base))
6001 basic_streambuf_wchar__Unlock(base->strbuf);
6004 /* ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE_NXZ */
6005 /* ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA_NXZ */
6006 /* ?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE_NXZ */
6007 /* ?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA_NXZ */
6008 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_opfx, 4)
6009 MSVCP_bool __thiscall basic_ostream_wchar_opfx(basic_ostream_wchar *this)
6011 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6013 TRACE("(%p)\n", this);
6015 if(ios_base_good(&base->base) && base->stream)
6016 basic_ostream_wchar_flush(base->stream);
6017 return ios_base_good(&base->base);
6020 /* ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@_W@Z */
6021 /* ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z */
6022 /* ?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@G@Z */
6023 /* ?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z */
6024 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_put, 8)
6025 basic_ostream_wchar* __thiscall basic_ostream_wchar_put(basic_ostream_wchar *this, wchar_t ch)
6027 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6029 TRACE("(%p %c)\n", this, ch);
6031 if(!basic_ostream_wchar_sentry_create(this)
6032 || basic_streambuf_wchar_sputc(base->strbuf, ch)==WEOF) {
6033 basic_ostream_wchar_sentry_destroy(this);
6034 basic_ios_wchar_setstate(base, IOSTATE_badbit);
6038 basic_ostream_wchar_sentry_destroy(this);
6042 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
6043 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
6044 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
6045 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
6046 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_seekp_fpos, 28)
6047 basic_ostream_wchar* __thiscall basic_ostream_wchar_seekp_fpos(basic_ostream_wchar *this, fpos_int pos)
6049 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6051 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos));
6053 if(!ios_base_fail(&base->base)) {
6056 basic_streambuf_wchar_pubseekpos(basic_ios_wchar_rdbuf_get(base),
6057 &seek, pos, OPENMODE_out);
6058 if(seek.off==-1 && seek.pos==0 && seek.state==0)
6059 basic_ios_wchar_setstate(base, IOSTATE_failbit);
6064 /* ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@XZ */
6065 /* ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
6066 /* ?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@XZ */
6067 /* ?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
6068 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_tellp, 8)
6069 fpos_int* __thiscall basic_ostream_wchar_tellp(basic_ostream_wchar *this, fpos_int *ret)
6071 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6073 TRACE("(%p)\n", this);
6075 if(!ios_base_fail(&base->base)) {
6076 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base),
6077 ret, 0, SEEKDIR_cur, OPENMODE_out);
6086 /* ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PB_WH@Z */
6087 /* ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEB_W_J@Z */
6088 /* ?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@PBGH@Z */
6089 /* ?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEBG_J@Z */
6090 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_write, 12)
6091 basic_ostream_wchar* __thiscall basic_ostream_wchar_write(basic_ostream_wchar *this, const wchar_t *str, streamsize count)
6093 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6095 TRACE("(%p %s %ld)\n", this, debugstr_w(str), count);
6097 if(!basic_ostream_wchar_sentry_create(this)
6098 || basic_streambuf_wchar_sputn(base->strbuf, str, count)!=count) {
6099 basic_ostream_wchar_sentry_destroy(this);
6100 basic_ios_wchar_setstate(base, IOSTATE_badbit);
6104 basic_ostream_wchar_sentry_destroy(this);
6108 static basic_ostream_wchar* basic_ostream_print_short(basic_ostream_wchar *this, short val, const num_put *numput)
6110 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6111 int state = IOSTATE_goodbit;
6113 TRACE("(%p %d)\n", this, val);
6115 if(basic_ostream_wchar_sentry_create(this)) {
6116 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6117 ostreambuf_iterator_wchar dest = {0, strbuf};
6119 num_put_wchar_put_long(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base),
6120 (ios_base_flags_get(&base->base) & FMTFLAG_basefield & (FMTFLAG_oct | FMTFLAG_hex))
6121 ? (LONG)((unsigned short)val) : (LONG)val);
6123 basic_ostream_wchar_sentry_destroy(this);
6125 basic_ios_wchar_setstate(base, state);
6129 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@F@Z */
6130 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@F@Z */
6131 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_short, 8)
6132 basic_ostream_wchar* __thiscall basic_ostream_short_print_short(basic_ostream_wchar *this, short val)
6134 return basic_ostream_print_short(this, val, num_put_short_use_facet(
6135 &basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6138 static basic_ostream_wchar* basic_ostream_print_int(basic_ostream_wchar *this, int val, const num_put *numput)
6140 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6141 int state = IOSTATE_goodbit;
6143 TRACE("(%p %d)\n", this, val);
6145 if(basic_ostream_wchar_sentry_create(this)) {
6146 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6147 ostreambuf_iterator_wchar dest = {0, strbuf};
6149 num_put_wchar_put_long(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6151 basic_ostream_wchar_sentry_destroy(this);
6153 basic_ios_wchar_setstate(base, state);
6157 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@H@Z */
6158 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@H@Z */
6159 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@J@Z */
6160 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@J@Z */
6161 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_int, 8)
6162 basic_ostream_wchar* __thiscall basic_ostream_short_print_int(basic_ostream_wchar *this, int val)
6164 return basic_ostream_print_int(this, val, num_put_short_use_facet(
6165 &basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6168 static basic_ostream_wchar* basic_ostream_print_uint(basic_ostream_wchar *this, unsigned int val, const num_put *numput)
6170 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6171 int state = IOSTATE_goodbit;
6173 TRACE("(%p %u)\n", this, val);
6175 if(basic_ostream_wchar_sentry_create(this)) {
6176 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6177 ostreambuf_iterator_wchar dest = {0, strbuf};
6179 num_put_wchar_put_ulong(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6181 basic_ostream_wchar_sentry_destroy(this);
6183 basic_ios_wchar_setstate(base, state);
6187 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@I@Z */
6188 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@I@Z */
6189 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@K@Z */
6190 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@K@Z */
6191 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_uint, 8)
6192 basic_ostream_wchar* __thiscall basic_ostream_short_print_uint(basic_ostream_wchar *this, unsigned int val)
6194 return basic_ostream_print_uint(this, val, num_put_short_use_facet(
6195 &basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6198 static basic_ostream_wchar* basic_ostream_print_float(basic_ostream_wchar *this, float val, const num_put *numput)
6200 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6201 int state = IOSTATE_goodbit;
6203 TRACE("(%p %f)\n", this, val);
6205 if(basic_ostream_wchar_sentry_create(this)) {
6206 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6207 ostreambuf_iterator_wchar dest = {0, strbuf};
6209 num_put_wchar_put_double(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6211 basic_ostream_wchar_sentry_destroy(this);
6213 basic_ios_wchar_setstate(base, state);
6217 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@M@Z */
6218 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@M@Z */
6219 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_float, 8)
6220 basic_ostream_wchar* __thiscall basic_ostream_short_print_float(basic_ostream_wchar *this, float val)
6222 return basic_ostream_print_float(this, val, num_put_short_use_facet(
6223 &basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6226 static basic_ostream_wchar* basic_ostream_print_double(basic_ostream_wchar *this, double val, const num_put *numput)
6228 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6229 int state = IOSTATE_goodbit;
6231 TRACE("(%p %lf)\n", this, val);
6233 if(basic_ostream_wchar_sentry_create(this)) {
6234 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6235 ostreambuf_iterator_wchar dest = {0, strbuf};
6237 num_put_wchar_put_double(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6239 basic_ostream_wchar_sentry_destroy(this);
6241 basic_ios_wchar_setstate(base, state);
6245 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@N@Z */
6246 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@N@Z */
6247 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_double, 12)
6248 basic_ostream_wchar* __thiscall basic_ostream_short_print_double(basic_ostream_wchar *this, double val)
6250 return basic_ostream_print_double(this, val, num_put_short_use_facet(
6251 &basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6254 static basic_ostream_wchar* basic_ostream_print_ldouble(basic_ostream_wchar *this, double val, const num_put *numput)
6256 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6257 int state = IOSTATE_goodbit;
6259 TRACE("(%p %lf)\n", this, val);
6261 if(basic_ostream_wchar_sentry_create(this)) {
6262 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6263 ostreambuf_iterator_wchar dest = {0, strbuf};
6265 num_put_wchar_put_ldouble(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6267 basic_ostream_wchar_sentry_destroy(this);
6269 basic_ios_wchar_setstate(base, state);
6273 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@O@Z */
6274 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@O@Z */
6275 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_ldouble, 12)
6276 basic_ostream_wchar* __thiscall basic_ostream_short_print_ldouble(basic_ostream_wchar *this, double val)
6278 return basic_ostream_print_ldouble(this, val, num_put_short_use_facet(
6279 &basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6282 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
6283 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
6284 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
6285 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
6286 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_streambuf, 8)
6287 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_streambuf(basic_ostream_wchar *this, basic_streambuf_wchar *val)
6289 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6290 IOSB_iostate state = IOSTATE_badbit;
6291 unsigned short c = '\n';
6293 TRACE("(%p %p)\n", this, val);
6295 if(basic_ostream_wchar_sentry_create(this)) {
6296 for(c = basic_streambuf_wchar_sgetc(val); c!=WEOF;
6297 c = basic_streambuf_wchar_snextc(val)) {
6298 state = IOSTATE_goodbit;
6300 if(basic_streambuf_wchar_sputc(base->strbuf, c) == WEOF) {
6301 state = IOSTATE_badbit;
6306 state = IOSTATE_badbit;
6308 basic_ostream_wchar_sentry_destroy(this);
6310 ios_base_width_set(&base->base, 0);
6311 basic_ios_wchar_setstate(base, state);
6315 static basic_ostream_wchar* basic_ostream_print_ptr(basic_ostream_wchar *this, const void *val, const num_put *numput)
6317 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6318 int state = IOSTATE_goodbit;
6320 TRACE("(%p %p)\n", this, val);
6322 if(basic_ostream_wchar_sentry_create(this)) {
6323 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6324 ostreambuf_iterator_wchar dest = {0, strbuf};
6326 num_put_wchar_put_ptr(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6328 basic_ostream_wchar_sentry_destroy(this);
6330 basic_ios_wchar_setstate(base, state);
6334 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@PBX@Z */
6335 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEBX@Z */
6336 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_ptr, 8)
6337 basic_ostream_wchar* __thiscall basic_ostream_short_print_ptr(basic_ostream_wchar *this, const void *val)
6339 return basic_ostream_print_ptr(this, val, num_put_short_use_facet(
6340 &basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6343 static basic_ostream_wchar* basic_ostream_print_int64(basic_ostream_wchar *this, __int64 val, const num_put *numput)
6345 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6346 int state = IOSTATE_goodbit;
6348 TRACE("(%p)\n", this);
6350 if(basic_ostream_wchar_sentry_create(this)) {
6351 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6352 ostreambuf_iterator_wchar dest = {0, strbuf};
6354 num_put_wchar_put_int64(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6356 basic_ostream_wchar_sentry_destroy(this);
6358 basic_ios_wchar_setstate(base, state);
6362 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_J@Z */
6363 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_J@Z */
6364 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_int64, 12)
6365 basic_ostream_wchar* __thiscall basic_ostream_short_print_int64(basic_ostream_wchar *this, __int64 val)
6367 return basic_ostream_print_int64(this, val, num_put_short_use_facet(
6368 &basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6371 static basic_ostream_wchar* basic_ostream_print_uint64(basic_ostream_wchar *this, unsigned __int64 val, const num_put *numput)
6373 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6374 int state = IOSTATE_goodbit;
6376 TRACE("(%p)\n", this);
6378 if(basic_ostream_wchar_sentry_create(this)) {
6379 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6380 ostreambuf_iterator_wchar dest = {0, strbuf};
6382 num_put_wchar_put_uint64(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6384 basic_ostream_wchar_sentry_destroy(this);
6386 basic_ios_wchar_setstate(base, state);
6390 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_K@Z */
6391 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_K@Z */
6392 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_uint64, 12)
6393 basic_ostream_wchar* __thiscall basic_ostream_short_print_uint64(basic_ostream_wchar *this, unsigned __int64 val)
6395 return basic_ostream_print_uint64(this, val, num_put_short_use_facet(
6396 &basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6399 static basic_ostream_wchar* basic_ostream_print_bool(basic_ostream_wchar *this, MSVCP_bool val, const num_put *numput)
6401 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6402 int state = IOSTATE_goodbit;
6404 TRACE("(%p %x)\n", this, val);
6406 if(basic_ostream_wchar_sentry_create(this)) {
6407 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6408 ostreambuf_iterator_wchar dest = {0, strbuf};
6410 num_put_wchar_put_bool(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6412 basic_ostream_wchar_sentry_destroy(this);
6414 basic_ios_wchar_setstate(base, state);
6418 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_N@Z */
6419 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_N@Z */
6420 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_bool, 8)
6421 basic_ostream_wchar* __thiscall basic_ostream_short_print_bool(basic_ostream_wchar *this, MSVCP_bool val)
6423 return basic_ostream_print_bool(this, val, num_put_short_use_facet(
6424 &basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc));
6427 /* ?ends@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
6428 /* ?ends@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
6429 /* ?ends@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
6430 /* ?ends@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
6431 basic_ostream_wchar* __cdecl basic_ostream_wchar_ends(basic_ostream_wchar *ostr)
6433 TRACE("(%p)\n", ostr);
6435 basic_ostream_wchar_put(ostr, 0);
6439 /* ?endl@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
6440 /* ?endl@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
6441 /* ?endl@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
6442 /* ?endl@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
6443 basic_ostream_wchar* __cdecl basic_ostream_wchar_endl(basic_ostream_wchar *ostr)
6445 TRACE("(%p)\n", ostr);
6447 basic_ostream_wchar_put(ostr, '\n');
6448 basic_ostream_wchar_flush(ostr);
6452 /* ??$?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 */
6453 /* ??$?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 */
6454 /* ??$?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 */
6455 /* ??$?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 */
6456 basic_ostream_wchar* __cdecl basic_ostream_wchar_print_bstr(basic_ostream_wchar *ostr, const basic_string_wchar *str)
6458 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
6459 IOSB_iostate state = IOSTATE_goodbit;
6461 TRACE("(%p %p)\n", ostr, str);
6463 if(basic_ostream_wchar_sentry_create(ostr)) {
6464 MSVCP_size_t len = basic_string_wchar_length(str);
6465 streamsize pad = (base->base.wide>len ? base->base.wide-len : 0);
6467 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
6468 for(; pad!=0; pad--) {
6469 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
6470 state = IOSTATE_badbit;
6476 if(state == IOSTATE_goodbit) {
6477 if(basic_streambuf_wchar_sputn(base->strbuf, basic_string_wchar_c_str(str), len) != len)
6478 state = IOSTATE_badbit;
6481 if(state == IOSTATE_goodbit) {
6482 for(; pad!=0; pad--) {
6483 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
6484 state = IOSTATE_badbit;
6490 base->base.wide = 0;
6492 state = IOSTATE_badbit;
6494 basic_ostream_wchar_sentry_destroy(ostr);
6496 basic_ios_wchar_setstate(base, state);
6500 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@_W@Z */
6501 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@_W@Z */
6502 /* ??$?6GU?$char_traits@G@std@@@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@G@Z */
6503 /* ??$?6GU?$char_traits@G@std@@@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@G@Z */
6504 basic_ostream_wchar* __cdecl basic_ostream_wchar_print_ch(basic_ostream_wchar *ostr, wchar_t ch)
6506 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
6507 IOSB_iostate state = IOSTATE_goodbit;
6509 TRACE("(%p %d)\n", ostr, ch);
6511 if(basic_ostream_wchar_sentry_create(ostr)) {
6512 streamsize pad = (base->base.wide>1 ? base->base.wide-1 : 0);
6514 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
6515 for(; pad!=0; pad--) {
6516 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
6517 state = IOSTATE_badbit;
6523 if(state == IOSTATE_goodbit) {
6524 if(basic_streambuf_wchar_sputc(base->strbuf, ch) == WEOF)
6525 state = IOSTATE_badbit;
6528 if(state == IOSTATE_goodbit) {
6529 for(; pad!=0; pad--) {
6530 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
6531 state = IOSTATE_badbit;
6537 base->base.wide = 0;
6539 state = IOSTATE_badbit;
6541 basic_ostream_wchar_sentry_destroy(ostr);
6543 basic_ios_wchar_setstate(base, state);
6547 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@PB_W@Z */
6548 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@PEB_W@Z */
6549 /* ??$?6GU?$char_traits@G@std@@@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@PBG@Z */
6550 /* ??$?6GU?$char_traits@G@std@@@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@PEBG@Z */
6551 basic_ostream_wchar* __cdecl basic_ostream_wchar_print_str(basic_ostream_wchar *ostr, const wchar_t *str)
6553 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
6554 IOSB_iostate state = IOSTATE_goodbit;
6556 TRACE("(%p %s)\n", ostr, debugstr_w(str));
6558 if(basic_ostream_wchar_sentry_create(ostr)) {
6559 MSVCP_size_t len = wcslen(str);
6560 streamsize pad = (base->base.wide>len ? base->base.wide-len : 0);
6562 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
6563 for(; pad!=0; pad--) {
6564 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
6565 state = IOSTATE_badbit;
6571 if(state == IOSTATE_goodbit) {
6572 if(basic_streambuf_wchar_sputn(base->strbuf, str, len) != len)
6573 state = IOSTATE_badbit;
6576 if(state == IOSTATE_goodbit) {
6577 for(; pad!=0; pad--) {
6578 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
6579 state = IOSTATE_badbit;
6585 base->base.wide = 0;
6587 state = IOSTATE_badbit;
6589 basic_ostream_wchar_sentry_destroy(ostr);
6591 basic_ios_wchar_setstate(base, state);
6595 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
6596 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
6597 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
6598 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
6599 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func, 8)
6600 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_func(basic_ostream_wchar *this,
6601 basic_ostream_wchar* (__cdecl *pfunc)(basic_ostream_wchar*))
6603 TRACE("(%p %p)\n", this, pfunc);
6608 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AAV21@@Z@Z */
6609 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z */
6610 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@GU?$char_traits@G@std@@@1@AAV21@@Z@Z */
6611 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z */
6612 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func_basic_ios, 8)
6613 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_func_basic_ios(basic_ostream_wchar *this,
6614 basic_ios_wchar* (__cdecl *pfunc)(basic_ios_wchar*))
6616 TRACE("(%p %p)\n", this, pfunc);
6617 pfunc(basic_ostream_wchar_get_basic_ios(this));
6621 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
6622 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
6623 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
6624 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
6625 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func_ios_base, 8)
6626 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_func_ios_base(
6627 basic_ostream_wchar *this, ios_base* (__cdecl *pfunc)(ios_base*))
6629 TRACE("(%p %p)\n", this, pfunc);
6630 pfunc(&basic_ostream_wchar_get_basic_ios(this)->base);
6634 /* Caution: basic_istream uses virtual inheritance. */
6635 static inline basic_ios_char* basic_istream_char_get_basic_ios(basic_istream_char *this)
6637 return (basic_ios_char*)((char*)this+this->vbtable[1]);
6640 static inline basic_ios_char* basic_istream_char_to_basic_ios(basic_istream_char *ptr)
6642 return (basic_ios_char*)((char*)ptr+basic_istream_char_vbtable[1]);
6645 static inline basic_istream_char* basic_istream_char_from_basic_ios(basic_ios_char *ptr)
6647 return (basic_istream_char*)((char*)ptr-basic_istream_char_vbtable[1]);
6650 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
6651 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
6652 static basic_istream_char* basic_istream_char_ctor_init(basic_istream_char *this, basic_streambuf_char *strbuf, MSVCP_bool isstd, MSVCP_bool noinit, MSVCP_bool virt_init)
6654 basic_ios_char *base;
6656 TRACE("(%p %p %d %d %d)\n", this, strbuf, isstd, noinit, virt_init);
6659 this->vbtable = basic_istream_char_vbtable;
6660 base = basic_istream_char_get_basic_ios(this);
6661 basic_ios_char_ctor(base);
6663 base = basic_istream_char_get_basic_ios(this);
6666 base->base.vtable = &MSVCP_basic_istream_char_vtable;
6669 basic_ios_char_init(base, strbuf, isstd);
6673 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
6674 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
6675 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor, 16)
6676 basic_istream_char* __thiscall basic_istream_char_ctor(basic_istream_char *this, basic_streambuf_char *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
6678 return basic_istream_char_ctor_init(this, strbuf, isstd, FALSE, virt_init);
6681 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
6682 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
6683 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor_uninitialized, 12)
6684 basic_istream_char* __thiscall basic_istream_char_ctor_uninitialized(basic_istream_char *this, int uninitialized, MSVCP_bool virt_init)
6686 basic_ios_char *base;
6688 TRACE("(%p %d %d)\n", this, uninitialized, virt_init);
6691 this->vbtable = basic_istream_char_vbtable;
6692 base = basic_istream_char_get_basic_ios(this);
6693 basic_ios_char_ctor(base);
6695 base = basic_istream_char_get_basic_ios(this);
6698 base->base.vtable = &MSVCP_basic_istream_char_vtable;
6699 ios_base_Addstd(&base->base);
6703 /* ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ */
6704 /* ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
6705 DEFINE_THISCALL_WRAPPER(basic_istream_char_dtor, 4)
6706 void __thiscall basic_istream_char_dtor(basic_ios_char *base)
6708 basic_istream_char *this = basic_istream_char_from_basic_ios(base);
6710 /* don't destroy virtual base here */
6711 TRACE("(%p)\n", this);
6714 /* ??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ */
6715 /* ??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
6716 DEFINE_THISCALL_WRAPPER(basic_istream_char_vbase_dtor, 4)
6717 void __thiscall basic_istream_char_vbase_dtor(basic_istream_char *this)
6719 TRACE("(%p)\n", this);
6720 basic_istream_char_dtor(basic_istream_char_to_basic_ios(this));
6721 basic_ios_char_dtor(basic_istream_char_get_basic_ios(this));
6724 DEFINE_THISCALL_WRAPPER(basic_istream_char_vector_dtor, 8)
6725 basic_istream_char* __thiscall basic_istream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
6727 basic_istream_char *this = basic_istream_char_from_basic_ios(base);
6729 TRACE("(%p %x)\n", this, flags);
6732 /* we have an array, with the number of elements stored before the first object */
6733 INT_PTR i, *ptr = (INT_PTR *)this-1;
6735 for(i=*ptr-1; i>=0; i--)
6736 basic_istream_char_vbase_dtor(this+i);
6737 MSVCRT_operator_delete(ptr);
6739 basic_istream_char_vbase_dtor(this);
6741 MSVCRT_operator_delete(this);
6747 /* ?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z */
6748 /* ?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z */
6749 static MSVCP_bool basic_istream_char__Ipfx(basic_istream_char *this, MSVCP_bool noskip)
6751 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
6753 TRACE("(%p %d)\n", this, noskip);
6755 if(ios_base_good(&base->base)) {
6756 if(basic_ios_char_tie_get(base))
6757 basic_ostream_char_flush(basic_ios_char_tie_get(base));
6759 if(!noskip && (ios_base_flags_get(&base->base) & FMTFLAG_skipws)) {
6760 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
6761 const ctype_char *ctype = ctype_char_use_facet(&base->strbuf->loc);
6764 for(ch = basic_streambuf_char_sgetc(strbuf); ;
6765 ch = basic_streambuf_char_snextc(strbuf)) {
6766 if(ch==EOF || !ctype_char_is_ch(ctype, _SPACE|_BLANK, ch))
6772 if(!ios_base_good(&base->base)) {
6773 basic_ios_char_setstate(base, IOSTATE_failbit);
6780 /* ?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z */
6781 /* ?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z */
6782 DEFINE_THISCALL_WRAPPER(basic_istream_char_ipfx, 8)
6783 MSVCP_bool __thiscall basic_istream_char_ipfx(basic_istream_char *this, MSVCP_bool noskip)
6785 return basic_istream_char__Ipfx(this, noskip);
6788 /* ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ */
6789 /* ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
6790 DEFINE_THISCALL_WRAPPER(basic_istream_char_isfx, 4)
6791 void __thiscall basic_istream_char_isfx(basic_istream_char *this)
6793 TRACE("(%p)\n", this);
6796 static BOOL basic_istream_char_sentry_create(basic_istream_char *istr, MSVCP_bool noskip)
6798 basic_ios_char *base = basic_istream_char_get_basic_ios(istr);
6800 if(basic_ios_char_rdbuf_get(base))
6801 basic_streambuf_char__Lock(base->strbuf);
6803 return basic_istream_char_ipfx(istr, noskip);
6806 static void basic_istream_char_sentry_destroy(basic_istream_char *istr)
6808 basic_ios_char *base = basic_istream_char_get_basic_ios(istr);
6810 if(basic_ios_char_rdbuf_get(base))
6811 basic_streambuf_char__Unlock(base->strbuf);
6814 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QBEHXZ */
6815 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QEBA_JXZ */
6816 DEFINE_THISCALL_WRAPPER(basic_istream_char_gcount, 4)
6817 int __thiscall basic_istream_char_gcount(const basic_istream_char *this)
6819 TRACE("(%p)\n", this);
6823 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
6824 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
6825 DEFINE_THISCALL_WRAPPER(basic_istream_char_get, 4)
6826 int __thiscall basic_istream_char_get(basic_istream_char *this)
6828 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
6831 TRACE("(%p)\n", this);
6835 if(!basic_istream_char_sentry_create(this, TRUE)) {
6836 basic_istream_char_sentry_destroy(this);
6840 ret = basic_streambuf_char_sbumpc(basic_ios_char_rdbuf_get(base));
6841 basic_istream_char_sentry_destroy(this);
6843 basic_ios_char_setstate(base, IOSTATE_eofbit|IOSTATE_failbit);
6850 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAD@Z */
6851 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAD@Z */
6852 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_ch, 8)
6853 basic_istream_char* __thiscall basic_istream_char_get_ch(basic_istream_char *this, char *ch)
6857 TRACE("(%p %p)\n", this, ch);
6859 ret = basic_istream_char_get(this);
6865 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADHD@Z */
6866 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z */
6867 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_str_delim, 16)
6868 basic_istream_char* __thiscall basic_istream_char_get_str_delim(basic_istream_char *this, char *str, streamsize count, char delim)
6870 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
6873 TRACE("(%p %p %ld %c)\n", this, str, count, delim);
6877 if(basic_istream_char_sentry_create(this, TRUE)) {
6878 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
6880 for(ch = basic_streambuf_char_sgetc(strbuf); count>1;
6881 ch = basic_streambuf_char_snextc(strbuf)) {
6882 if(ch==EOF || ch==delim)
6890 basic_istream_char_sentry_destroy(this);
6892 basic_ios_char_setstate(base, (!this->count ? IOSTATE_failbit : IOSTATE_goodbit) |
6893 (ch==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
6899 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
6900 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
6901 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_str, 12)
6902 basic_istream_char* __thiscall basic_istream_char_get_str(basic_istream_char *this, char *str, streamsize count)
6904 return basic_istream_char_get_str_delim(this, str, count, '\n');
6907 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z */
6908 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z */
6909 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_streambuf_delim, 12)
6910 basic_istream_char* __thiscall basic_istream_char_get_streambuf_delim(basic_istream_char *this, basic_streambuf_char *strbuf, char delim)
6912 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
6915 TRACE("(%p %p %c)\n", this, strbuf, delim);
6919 if(basic_istream_char_sentry_create(this, TRUE)) {
6920 basic_streambuf_char *strbuf_read = basic_ios_char_rdbuf_get(base);
6922 for(ch = basic_streambuf_char_sgetc(strbuf_read); ;
6923 ch = basic_streambuf_char_snextc(strbuf_read)) {
6924 if(ch==EOF || ch==delim)
6927 if(basic_streambuf_char_sputc(strbuf, ch) == EOF)
6932 basic_istream_char_sentry_destroy(this);
6934 basic_ios_char_setstate(base, (!this->count ? IOSTATE_failbit : IOSTATE_goodbit) |
6935 (ch==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
6939 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z */
6940 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z */
6941 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_streambuf, 8)
6942 basic_istream_char* __thiscall basic_istream_char_get_streambuf(basic_istream_char *this, basic_streambuf_char *strbuf)
6944 return basic_istream_char_get_streambuf_delim(this, strbuf, '\n');
6947 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADHD@Z */
6948 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z */
6949 DEFINE_THISCALL_WRAPPER(basic_istream_char_getline_delim, 16)
6950 basic_istream_char* __thiscall basic_istream_char_getline_delim(basic_istream_char *this, char *str, streamsize count, char delim)
6952 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
6953 int ch = (unsigned char)delim;
6955 TRACE("(%p %p %ld %c)\n", this, str, count, delim);
6959 if(basic_istream_char_sentry_create(this, TRUE) && count>0) {
6960 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
6963 ch = basic_streambuf_char_sbumpc(strbuf);
6965 if(ch==EOF || ch==(unsigned char)delim)
6973 if(ch == (unsigned char)delim)
6975 else if(ch != EOF) {
6976 ch = basic_streambuf_char_sgetc(strbuf);
6978 if(ch == (unsigned char)delim) {
6979 basic_streambuf_char__Gninc(strbuf);
6984 basic_istream_char_sentry_destroy(this);
6986 basic_ios_char_setstate(base, (ch==EOF ? IOSTATE_eofbit : IOSTATE_goodbit) |
6987 (!this->count || (ch!=(unsigned char)delim && ch!=EOF) ? IOSTATE_failbit : IOSTATE_goodbit));
6993 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
6994 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
6995 DEFINE_THISCALL_WRAPPER(basic_istream_char_getline, 12)
6996 basic_istream_char* __thiscall basic_istream_char_getline(basic_istream_char *this, char *str, streamsize count)
6998 return basic_istream_char_getline_delim(this, str, count, '\n');
7001 /* ?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@HH@Z */
7002 /* ?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
7003 DEFINE_THISCALL_WRAPPER(basic_istream_char_ignore, 12)
7004 basic_istream_char* __thiscall basic_istream_char_ignore(basic_istream_char *this, streamsize count, int delim)
7006 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7007 int ch = (unsigned char)delim;
7010 TRACE("(%p %ld %d)\n", this, count, delim);
7014 if(basic_istream_char_sentry_create(this, TRUE)) {
7015 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7016 state = IOSTATE_goodbit;
7019 ch = basic_streambuf_char_sbumpc(strbuf);
7022 state = IOSTATE_eofbit;
7026 if(ch==(unsigned char)delim)
7030 if(count != INT_MAX)
7034 state = IOSTATE_failbit;
7035 basic_istream_char_sentry_destroy(this);
7037 basic_ios_char_setstate(base, state);
7041 /* ?ws@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@1@AAV21@@Z */
7042 /* ?ws@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
7043 basic_istream_char* __cdecl ws_basic_istream_char(basic_istream_char *istream)
7045 basic_ios_char *base = basic_istream_char_get_basic_ios(istream);
7048 TRACE("(%p)\n", istream);
7050 if(basic_istream_char_sentry_create(istream, TRUE)) {
7051 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7052 const ctype_char *ctype = ctype_char_use_facet(&strbuf->loc);
7054 for(ch = basic_streambuf_char_sgetc(strbuf); ctype_char_is_ch(ctype, _SPACE, ch);
7055 ch = basic_streambuf_char_snextc(strbuf)) {
7060 basic_istream_char_sentry_destroy(istream);
7063 basic_ios_char_setstate(base, IOSTATE_eofbit);
7067 /* ?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
7068 /* ?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
7069 DEFINE_THISCALL_WRAPPER(basic_istream_char_peek, 4)
7070 int __thiscall basic_istream_char_peek(basic_istream_char *this)
7072 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7075 TRACE("(%p)\n", this);
7079 if(basic_istream_char_sentry_create(this, TRUE))
7080 ret = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base));
7081 basic_istream_char_sentry_destroy(this);
7084 basic_ios_char_setstate(base, IOSTATE_eofbit);
7089 /* ?_Read_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADIH@Z */
7090 /* ?_Read_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_K_J@Z */
7091 static basic_istream_char* basic_istream_char__Read_s(basic_istream_char *this, char *str, MSVCP_size_t size, streamsize count)
7093 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7094 IOSB_iostate state = IOSTATE_goodbit;
7096 TRACE("(%p %p %lu %ld)\n", this, str, size, count);
7098 if(basic_istream_char_sentry_create(this, TRUE)) {
7099 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7101 this->count = basic_streambuf_char__Sgetn_s(strbuf, str, size, count);
7102 if(this->count != count)
7103 state |= IOSTATE_failbit | IOSTATE_eofbit;
7107 basic_istream_char_sentry_destroy(this);
7109 basic_ios_char_setstate(base, state);
7113 /* ?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
7114 /* ?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
7115 DEFINE_THISCALL_WRAPPER(basic_istream_char_read, 12)
7116 basic_istream_char* __thiscall basic_istream_char_read(basic_istream_char *this, char *str, streamsize count)
7118 return basic_istream_char__Read_s(this, str, count, count);
7121 /* ?_Readsome_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHPADIH@Z */
7122 /* ?_Readsome_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_K_J@Z */
7123 static streamsize basic_istream_char__Readsome_s(basic_istream_char *this, char *str, MSVCP_size_t size, streamsize count)
7125 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7126 IOSB_iostate state = IOSTATE_goodbit;
7128 TRACE("(%p %p %lu %ld)\n", this, str, size, count);
7132 if(basic_istream_char_sentry_create(this, TRUE)) {
7133 streamsize avail = basic_streambuf_char_in_avail(basic_ios_char_rdbuf_get(base));
7138 state |= IOSTATE_eofbit;
7140 basic_istream_char__Read_s(this, str, size, avail);
7142 state |= IOSTATE_failbit;
7144 basic_istream_char_sentry_destroy(this);
7146 basic_ios_char_setstate(base, state);
7150 /* ?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHPADH@Z */
7151 /* ?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z */
7152 DEFINE_THISCALL_WRAPPER(basic_istream_char_readsome, 12)
7153 streamsize __thiscall basic_istream_char_readsome(basic_istream_char *this, char *str, streamsize count)
7155 return basic_istream_char__Readsome_s(this, str, count, count);
7158 /* ?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z */
7159 /* ?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z */
7160 DEFINE_THISCALL_WRAPPER(basic_istream_char_putback, 8)
7161 basic_istream_char* __thiscall basic_istream_char_putback(basic_istream_char *this, char ch)
7163 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7164 IOSB_iostate state = IOSTATE_goodbit;
7166 TRACE("(%p %c)\n", this, ch);
7170 if(basic_istream_char_sentry_create(this, TRUE)) {
7171 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7173 if(!ios_base_good(&base->base))
7174 state |= IOSTATE_failbit;
7175 else if(!strbuf || basic_streambuf_char_sputbackc(strbuf, ch)==EOF)
7176 state |= IOSTATE_badbit;
7178 basic_istream_char_sentry_destroy(this);
7180 basic_ios_char_setstate(base, state);
7184 /* ?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ */
7185 /* ?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ */
7186 DEFINE_THISCALL_WRAPPER(basic_istream_char_unget, 4)
7187 basic_istream_char* __thiscall basic_istream_char_unget(basic_istream_char *this)
7189 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7190 IOSB_iostate state = IOSTATE_goodbit;
7192 TRACE("(%p)\n", this);
7196 if(basic_istream_char_sentry_create(this, TRUE)) {
7197 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7199 if(!ios_base_good(&base->base))
7200 state |= IOSTATE_failbit;
7201 else if(!strbuf || basic_streambuf_char_sungetc(strbuf)==EOF)
7202 state |= IOSTATE_badbit;
7204 basic_istream_char_sentry_destroy(this);
7206 basic_ios_char_setstate(base, state);
7210 /* ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
7211 /* ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
7212 DEFINE_THISCALL_WRAPPER(basic_istream_char_sync, 4)
7213 int __thiscall basic_istream_char_sync(basic_istream_char *this)
7215 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7216 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7218 TRACE("(%p)\n", this);
7223 if(basic_istream_char_sentry_create(this, TRUE)) {
7224 if(basic_streambuf_char_pubsync(strbuf) != -1) {
7225 basic_istream_char_sentry_destroy(this);
7229 basic_istream_char_sentry_destroy(this);
7231 basic_ios_char_setstate(base, IOSTATE_badbit);
7235 /* ?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
7236 /* ?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
7237 DEFINE_THISCALL_WRAPPER(basic_istream_char_tellg, 8)
7238 fpos_int* __thiscall basic_istream_char_tellg(basic_istream_char *this, fpos_int *ret)
7240 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7242 TRACE("(%p %p)\n", this, ret);
7244 if(ios_base_fail(&base->base)) {
7251 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base),
7252 ret, 0, SEEKDIR_cur, OPENMODE_in);
7254 if(ret->off==-1 && ret->pos==0 && ret->state==0)
7255 basic_ios_char_setstate(base, IOSTATE_failbit);
7260 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@JW4seekdir@ios_base@2@@Z */
7261 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JW4seekdir@ios_base@2@@Z */
7262 DEFINE_THISCALL_WRAPPER(basic_istream_char_seekg, 12)
7263 basic_istream_char* __thiscall basic_istream_char_seekg(basic_istream_char *this, streamoff off, int dir)
7265 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7267 TRACE("(%p %ld %d)\n", this, off, dir);
7269 if(!ios_base_fail(&base->base)) {
7270 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7273 basic_streambuf_char_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in);
7279 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
7280 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
7281 DEFINE_THISCALL_WRAPPER(basic_istream_char_seekg_fpos, 28)
7282 basic_istream_char* __thiscall basic_istream_char_seekg_fpos(basic_istream_char *this, fpos_int pos)
7284 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7286 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos));
7288 if(!ios_base_fail(&base->base)) {
7289 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7292 basic_streambuf_char_pubseekpos(strbuf, &ret, pos, OPENMODE_in);
7298 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAF@Z */
7299 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAF@Z */
7300 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_short, 8)
7301 basic_istream_char* __thiscall basic_istream_char_read_short(basic_istream_char *this, short *v)
7303 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7304 int state = IOSTATE_goodbit;
7306 TRACE("(%p %p)\n", this, v);
7308 if(basic_istream_char_sentry_create(this, FALSE)) {
7309 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7310 const num_get *numget = num_get_char_use_facet(&strbuf->loc);
7311 istreambuf_iterator_char first={0}, last={0};
7314 first.strbuf = strbuf;
7315 num_get_char_get_long(numget, &last, first, last, &base->base, &state, &tmp);
7317 if(!(state&IOSTATE_failbit) && tmp==(LONG)((short)tmp))
7320 state |= IOSTATE_failbit;
7322 basic_istream_char_sentry_destroy(this);
7324 basic_ios_char_setstate(base, state);
7328 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAG@Z */
7329 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAG@Z */
7330 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ushort, 8)
7331 basic_istream_char* __thiscall basic_istream_char_read_ushort(basic_istream_char *this, unsigned short *v)
7333 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7334 int state = IOSTATE_goodbit;
7336 TRACE("(%p %p)\n", this, v);
7338 if(basic_istream_char_sentry_create(this, FALSE)) {
7339 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7340 const num_get *numget = num_get_char_use_facet(&strbuf->loc);
7341 istreambuf_iterator_char first={0}, last={0};
7343 first.strbuf = strbuf;
7344 num_get_char_get_ushort(numget, &last, first, last, &base->base, &state, v);
7346 basic_istream_char_sentry_destroy(this);
7348 basic_ios_char_setstate(base, state);
7352 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z */
7353 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAH@Z */
7354 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_int, 8)
7355 basic_istream_char* __thiscall basic_istream_char_read_int(basic_istream_char *this, int *v)
7357 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7358 int state = IOSTATE_goodbit;
7360 TRACE("(%p %p)\n", this, v);
7362 if(basic_istream_char_sentry_create(this, FALSE)) {
7363 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7364 const num_get *numget = num_get_char_use_facet(&strbuf->loc);
7365 istreambuf_iterator_char first={0}, last={0};
7367 first.strbuf = strbuf;
7368 num_get_char_get_long(numget, &last, first, last, &base->base, &state, v);
7370 basic_istream_char_sentry_destroy(this);
7372 basic_ios_char_setstate(base, state);
7376 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAI@Z */
7377 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAI@Z */
7378 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_uint, 8)
7379 basic_istream_char* __thiscall basic_istream_char_read_uint(basic_istream_char *this, unsigned int *v)
7381 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7382 int state = IOSTATE_goodbit;
7384 TRACE("(%p %p)\n", this, v);
7386 if(basic_istream_char_sentry_create(this, FALSE)) {
7387 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7388 const num_get *numget = num_get_char_use_facet(&strbuf->loc);
7389 istreambuf_iterator_char first={0}, last={0};
7391 first.strbuf = strbuf;
7392 num_get_char_get_uint(numget, &last, first, last, &base->base, &state, v);
7394 basic_istream_char_sentry_destroy(this);
7396 basic_ios_char_setstate(base, state);
7400 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAJ@Z */
7401 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAJ@Z */
7402 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_long, 8)
7403 basic_istream_char* __thiscall basic_istream_char_read_long(basic_istream_char *this, LONG *v)
7405 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7406 int state = IOSTATE_goodbit;
7408 TRACE("(%p %p)\n", this, v);
7410 if(basic_istream_char_sentry_create(this, FALSE)) {
7411 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7412 const num_get *numget = num_get_char_use_facet(&strbuf->loc);
7413 istreambuf_iterator_char first={0}, last={0};
7415 first.strbuf = strbuf;
7416 num_get_char_get_long(numget, &last, first, last, &base->base, &state, v);
7418 basic_istream_char_sentry_destroy(this);
7420 basic_ios_char_setstate(base, state);
7424 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAK@Z */
7425 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAK@Z */
7426 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ulong, 8)
7427 basic_istream_char* __thiscall basic_istream_char_read_ulong(basic_istream_char *this, ULONG *v)
7429 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7430 int state = IOSTATE_goodbit;
7432 TRACE("(%p %p)\n", this, v);
7434 if(basic_istream_char_sentry_create(this, FALSE)) {
7435 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7436 const num_get *numget = num_get_char_use_facet(&strbuf->loc);
7437 istreambuf_iterator_char first={0}, last={0};
7439 first.strbuf = strbuf;
7440 num_get_char_get_ulong(numget, &last, first, last, &base->base, &state, v);
7442 basic_istream_char_sentry_destroy(this);
7444 basic_ios_char_setstate(base, state);
7448 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAM@Z */
7449 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAM@Z */
7450 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_float, 8)
7451 basic_istream_char* __thiscall basic_istream_char_read_float(basic_istream_char *this, float *v)
7453 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7454 int state = IOSTATE_goodbit;
7456 TRACE("(%p %p)\n", this, v);
7458 if(basic_istream_char_sentry_create(this, FALSE)) {
7459 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7460 const num_get *numget = num_get_char_use_facet(&strbuf->loc);
7461 istreambuf_iterator_char first={0}, last={0};
7463 first.strbuf = strbuf;
7464 num_get_char_get_float(numget, &last, first, last, &base->base, &state, v);
7466 basic_istream_char_sentry_destroy(this);
7468 basic_ios_char_setstate(base, state);
7472 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAN@Z */
7473 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAN@Z */
7474 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_double, 8)
7475 basic_istream_char* __thiscall basic_istream_char_read_double(basic_istream_char *this, double *v)
7477 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7478 int state = IOSTATE_goodbit;
7480 TRACE("(%p %p)\n", this, v);
7482 if(basic_istream_char_sentry_create(this, FALSE)) {
7483 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7484 const num_get *numget = num_get_char_use_facet(&strbuf->loc);
7485 istreambuf_iterator_char first={0}, last={0};
7487 first.strbuf = strbuf;
7488 num_get_char_get_double(numget, &last, first, last, &base->base, &state, v);
7490 basic_istream_char_sentry_destroy(this);
7492 basic_ios_char_setstate(base, state);
7496 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAO@Z */
7497 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAO@Z */
7498 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ldouble, 8)
7499 basic_istream_char* __thiscall basic_istream_char_read_ldouble(basic_istream_char *this, double *v)
7501 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7502 int state = IOSTATE_goodbit;
7504 TRACE("(%p %p)\n", this, v);
7506 if(basic_istream_char_sentry_create(this, FALSE)) {
7507 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7508 const num_get *numget = num_get_char_use_facet(&strbuf->loc);
7509 istreambuf_iterator_char first={0}, last={0};
7511 first.strbuf = strbuf;
7512 num_get_char_get_ldouble(numget, &last, first, last, &base->base, &state, v);
7514 basic_istream_char_sentry_destroy(this);
7516 basic_ios_char_setstate(base, state);
7520 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAPAX@Z */
7521 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
7522 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ptr, 8)
7523 basic_istream_char* __thiscall basic_istream_char_read_ptr(basic_istream_char *this, void **v)
7525 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7526 int state = IOSTATE_goodbit;
7528 TRACE("(%p %p)\n", this, v);
7530 if(basic_istream_char_sentry_create(this, FALSE)) {
7531 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7532 const num_get *numget = num_get_char_use_facet(&strbuf->loc);
7533 istreambuf_iterator_char first={0}, last={0};
7535 first.strbuf = strbuf;
7536 num_get_char_get_void(numget, &last, first, last, &base->base, &state, v);
7538 basic_istream_char_sentry_destroy(this);
7540 basic_ios_char_setstate(base, state);
7544 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_J@Z */
7545 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_J@Z */
7546 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_int64, 8)
7547 basic_istream_char* __thiscall basic_istream_char_read_int64(basic_istream_char *this, __int64 *v)
7549 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7550 int state = IOSTATE_goodbit;
7552 TRACE("(%p %p)\n", this, v);
7554 if(basic_istream_char_sentry_create(this, FALSE)) {
7555 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7556 const num_get *numget = num_get_char_use_facet(&strbuf->loc);
7557 istreambuf_iterator_char first={0}, last={0};
7559 first.strbuf = strbuf;
7560 num_get_char_get_int64(numget, &last, first, last, &base->base, &state, v);
7562 basic_istream_char_sentry_destroy(this);
7564 basic_ios_char_setstate(base, state);
7568 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_K@Z */
7569 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_K@Z */
7570 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_uint64, 8)
7571 basic_istream_char* __thiscall basic_istream_char_read_uint64(basic_istream_char *this, unsigned __int64 *v)
7573 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7574 int state = IOSTATE_goodbit;
7576 TRACE("(%p %p)\n", this, v);
7578 if(basic_istream_char_sentry_create(this, FALSE)) {
7579 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7580 const num_get *numget = num_get_char_use_facet(&strbuf->loc);
7581 istreambuf_iterator_char first={0}, last={0};
7583 first.strbuf = strbuf;
7584 num_get_char_get_uint64(numget, &last, first, last, &base->base, &state, v);
7586 basic_istream_char_sentry_destroy(this);
7588 basic_ios_char_setstate(base, state);
7592 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_N@Z */
7593 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_N@Z */
7594 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_bool, 8)
7595 basic_istream_char* __thiscall basic_istream_char_read_bool(basic_istream_char *this, MSVCP_bool *v)
7597 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7598 int state = IOSTATE_goodbit;
7600 TRACE("(%p %p)\n", this, v);
7602 if(basic_istream_char_sentry_create(this, FALSE)) {
7603 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7604 const num_get *numget = num_get_char_use_facet(&strbuf->loc);
7605 istreambuf_iterator_char first={0}, last={0};
7607 first.strbuf = strbuf;
7608 num_get_char_get_bool(numget, &last, first, last, &base->base, &state, v);
7610 basic_istream_char_sentry_destroy(this);
7612 basic_ios_char_setstate(base, state);
7616 /* ??$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 */
7617 /* ??$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 */
7618 basic_istream_char* __cdecl basic_istream_char_getline_bstr_delim(
7619 basic_istream_char *istream, basic_string_char *str, char delim)
7621 basic_ios_char *base = basic_istream_char_get_basic_ios(istream);
7622 IOSB_iostate state = IOSTATE_goodbit;
7623 int c = (unsigned char)delim;
7625 TRACE("(%p %p %c)\n", istream, str, delim);
7627 basic_string_char_clear(str);
7628 if(basic_istream_char_sentry_create(istream, TRUE)) {
7629 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7631 c = basic_streambuf_char_sgetc(strbuf);
7632 for(; c!=(unsigned char)delim && c!=EOF; c = basic_streambuf_char_snextc(strbuf))
7633 basic_string_char_append_ch(str, c);
7634 if(c==EOF) state |= IOSTATE_eofbit;
7635 else if(c==(unsigned char)delim) basic_streambuf_char_sbumpc(strbuf);
7637 if(!basic_string_char_length(str) && c!=(unsigned char)delim) state |= IOSTATE_failbit;
7639 basic_istream_char_sentry_destroy(istream);
7641 basic_ios_char_setstate(basic_istream_char_get_basic_ios(istream), state);
7645 /* ??$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 */
7646 /* ??$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 */
7647 basic_istream_char* __cdecl basic_istream_char_getline_bstr(
7648 basic_istream_char *istream, basic_string_char *str)
7650 return basic_istream_char_getline_bstr_delim(istream, str, '\n');
7653 /* ??$?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 */
7654 /* ??$?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 */
7655 basic_istream_char* __cdecl basic_istream_char_read_bstr(
7656 basic_istream_char *istream, basic_string_char *str)
7658 basic_ios_char *base = basic_istream_char_get_basic_ios(istream);
7659 IOSB_iostate state = IOSTATE_failbit;
7662 TRACE("(%p %p)\n", istream, str);
7664 if(basic_istream_char_sentry_create(istream, FALSE)) {
7665 const ctype_char *ctype = ctype_char_use_facet(&base->strbuf->loc);
7666 MSVCP_size_t count = ios_base_width_get(&base->base);
7671 basic_string_char_clear(str);
7673 for(c = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base));
7674 c!=EOF && !ctype_char_is_ch(ctype, _SPACE|_BLANK, c) && count>0;
7675 c = basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base)), count--) {
7676 state = IOSTATE_goodbit;
7677 basic_string_char_append_ch(str, c);
7680 basic_istream_char_sentry_destroy(istream);
7682 ios_base_width_set(&base->base, 0);
7683 basic_ios_char_setstate(base, state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
7687 /* ??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z */
7688 /* ??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAD@Z */
7689 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAC@Z */
7690 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAC@Z */
7691 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAE@Z */
7692 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAE@Z */
7693 basic_istream_char* __cdecl basic_istream_char_read_str(basic_istream_char *istream, char *str)
7695 basic_ios_char *base = basic_istream_char_get_basic_ios(istream);
7696 IOSB_iostate state = IOSTATE_failbit;
7699 TRACE("(%p %p)\n", istream, str);
7701 if(basic_istream_char_sentry_create(istream, FALSE)) {
7702 const ctype_char *ctype = ctype_char_use_facet(&base->strbuf->loc);
7703 MSVCP_size_t count = ios_base_width_get(&base->base)-1;
7705 for(c = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base));
7706 c!=EOF && !ctype_char_is_ch(ctype, _SPACE|_BLANK, c) && count>0;
7707 c = basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base)), count--) {
7708 state = IOSTATE_goodbit;
7712 basic_istream_char_sentry_destroy(istream);
7715 ios_base_width_set(&base->base, 0);
7716 basic_ios_char_setstate(base, state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
7720 /* ??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAD@Z */
7721 /* ??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAD@Z */
7722 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAC@Z */
7723 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAC@Z */
7724 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAE@Z */
7725 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAE@Z */
7726 basic_istream_char* __cdecl basic_istream_char_read_ch(basic_istream_char *istream, char *ch)
7728 IOSB_iostate state = IOSTATE_failbit;
7731 TRACE("(%p %p)\n", istream, ch);
7733 if(basic_istream_char_sentry_create(istream, FALSE)) {
7734 c = basic_streambuf_char_sbumpc(basic_ios_char_rdbuf_get(
7735 basic_istream_char_get_basic_ios(istream)));
7737 state = IOSTATE_goodbit;
7741 basic_istream_char_sentry_destroy(istream);
7743 basic_ios_char_setstate(basic_istream_char_get_basic_ios(istream),
7744 state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
7748 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
7749 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
7750 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_streambuf, 8)
7751 basic_istream_char* __thiscall basic_istream_char_read_streambuf(
7752 basic_istream_char *this, basic_streambuf_char *streambuf)
7754 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7755 IOSB_iostate state = IOSTATE_failbit;
7758 TRACE("(%p %p)\n", this, streambuf);
7760 if(basic_istream_char_sentry_create(this, FALSE)) {
7761 for(c = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base)); c!=EOF;
7762 c = basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base))) {
7763 state = IOSTATE_goodbit;
7764 if(basic_streambuf_char_sputc(streambuf, c) == EOF)
7768 basic_istream_char_sentry_destroy(this);
7770 basic_ios_char_setstate(base, state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
7774 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
7775 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
7776 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func, 8)
7777 basic_istream_char* __thiscall basic_istream_char_read_func(basic_istream_char *this,
7778 basic_istream_char* (__cdecl *pfunc)(basic_istream_char*))
7780 TRACE("(%p %p)\n", this, pfunc);
7785 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@DU?$char_traits@D@std@@@1@AAV21@@Z@Z */
7786 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z */
7787 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func_basic_ios, 8)
7788 basic_istream_char* __thiscall basic_istream_char_read_func_basic_ios(basic_istream_char *this,
7789 basic_ios_char* (__cdecl *pfunc)(basic_ios_char*))
7791 TRACE("(%p %p)\n", this, pfunc);
7792 pfunc(basic_istream_char_get_basic_ios(this));
7796 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
7797 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
7798 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func_ios_base, 8)
7799 basic_istream_char* __thiscall basic_istream_char_read_func_ios_base(basic_istream_char *this,
7800 ios_base* (__cdecl *pfunc)(ios_base*))
7802 TRACE("(%p %p)\n", this, pfunc);
7803 pfunc(&basic_istream_char_get_basic_ios(this)->base);
7807 /* Caution: basic_istream uses virtual inheritance. */
7808 static inline basic_ios_wchar* basic_istream_wchar_get_basic_ios(basic_istream_wchar *this)
7810 return (basic_ios_wchar*)((char*)this+this->vbtable[1]);
7813 static inline basic_ios_wchar* basic_istream_wchar_to_basic_ios(basic_istream_wchar *ptr)
7815 return (basic_ios_wchar*)((char*)ptr+basic_istream_wchar_vbtable[1]);
7818 static inline basic_istream_wchar* basic_istream_wchar_from_basic_ios(basic_ios_wchar *ptr)
7820 return (basic_istream_wchar*)((char*)ptr-basic_istream_wchar_vbtable[1]);
7823 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z */
7824 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z */
7825 static basic_istream_wchar* basic_istream_wchar_ctor_init(basic_istream_wchar *this,
7826 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool noinit, MSVCP_bool virt_init)
7828 basic_ios_wchar *base;
7830 TRACE("(%p %p %d %d %d)\n", this, strbuf, isstd, noinit, virt_init);
7833 this->vbtable = basic_istream_wchar_vbtable;
7834 base = basic_istream_wchar_get_basic_ios(this);
7835 basic_ios_wchar_ctor(base);
7837 base = basic_istream_wchar_get_basic_ios(this);
7840 base->base.vtable = &MSVCP_basic_istream_wchar_vtable;
7843 basic_ios_wchar_init(base, strbuf, isstd);
7847 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z */
7848 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z */
7849 static basic_istream_wchar* basic_istream_short_ctor_init(basic_istream_wchar *this,
7850 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool noinit, MSVCP_bool virt_init)
7852 basic_istream_wchar_ctor_init(this, strbuf, isstd, noinit, virt_init);
7853 basic_istream_wchar_get_basic_ios(this)->base.vtable = &MSVCP_basic_istream_short_vtable;
7857 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
7858 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
7859 static basic_istream_wchar* basic_istream_wchar_ctor(basic_istream_wchar *this,
7860 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
7862 return basic_istream_wchar_ctor_init(this, strbuf, isstd, FALSE, virt_init);
7865 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
7866 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
7867 DEFINE_THISCALL_WRAPPER(basic_istream_short_ctor, 16)
7868 basic_istream_wchar* __thiscall basic_istream_short_ctor(basic_istream_wchar *this,
7869 basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init)
7871 return basic_istream_short_ctor_init(this, strbuf, isstd, FALSE, virt_init);
7874 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@@Z */
7875 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
7876 static basic_istream_wchar* basic_istream_wchar_ctor_uninitialized(
7877 basic_istream_wchar *this, int uninitialized, MSVCP_bool virt_init)
7879 basic_ios_wchar *base;
7881 TRACE("(%p %d %d)\n", this, uninitialized, virt_init);
7884 this->vbtable = basic_istream_wchar_vbtable;
7885 base = basic_istream_wchar_get_basic_ios(this);
7886 basic_ios_wchar_ctor(base);
7888 base = basic_istream_wchar_get_basic_ios(this);
7891 base->base.vtable = &MSVCP_basic_istream_wchar_vtable;
7892 ios_base_Addstd(&base->base);
7896 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */
7897 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
7898 DEFINE_THISCALL_WRAPPER(basic_istream_short_ctor_uninitialized, 12)
7899 basic_istream_wchar* __thiscall basic_istream_short_ctor_uninitialized(
7900 basic_istream_wchar *this, int uninitialized, MSVCP_bool virt_init)
7902 basic_istream_wchar_ctor_uninitialized(this, uninitialized, virt_init);
7903 basic_istream_wchar_get_basic_ios(this)->base.vtable = &MSVCP_basic_istream_short_vtable;
7907 /* ??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
7908 /* ??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
7909 /* ??1?$basic_istream@GU?$char_traits@G@std@@@std@@UAE@XZ */
7910 /* ??1?$basic_istream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
7911 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_dtor, 4)
7912 void __thiscall basic_istream_wchar_dtor(basic_ios_wchar *base)
7914 basic_istream_wchar *this = basic_istream_wchar_from_basic_ios(base);
7916 /* don't destroy virtual base here */
7917 TRACE("(%p)\n", this);
7920 /* ??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
7921 /* ??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
7922 /* ??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXXZ */
7923 /* ??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
7924 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_vbase_dtor, 4)
7925 void __thiscall basic_istream_wchar_vbase_dtor(basic_istream_wchar *this)
7927 TRACE("(%p)\n", this);
7928 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(this));
7929 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(this));
7932 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_vector_dtor, 8)
7933 basic_istream_wchar* __thiscall basic_istream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
7935 basic_istream_wchar *this = basic_istream_wchar_from_basic_ios(base);
7937 TRACE("(%p %x)\n", this, flags);
7940 /* we have an array, with the number of elements stored before the first object */
7941 INT_PTR i, *ptr = (INT_PTR *)this-1;
7943 for(i=*ptr-1; i>=0; i--)
7944 basic_istream_wchar_vbase_dtor(this+i);
7945 MSVCRT_operator_delete(ptr);
7947 basic_istream_wchar_vbase_dtor(this);
7949 MSVCRT_operator_delete(this);
7955 /* ?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE_N_N@Z */
7956 /* ?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z */
7957 /* ?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE_N_N@Z */
7958 /* ?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z */
7959 static MSVCP_bool basic_istream_wchar__Ipfx(basic_istream_wchar *this, MSVCP_bool noskip)
7961 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
7963 TRACE("(%p %d)\n", this, noskip);
7965 if(ios_base_good(&base->base)) {
7966 if(basic_ios_wchar_tie_get(base))
7967 basic_ostream_wchar_flush(basic_ios_wchar_tie_get(base));
7969 if(!noskip && (ios_base_flags_get(&base->base) & FMTFLAG_skipws)) {
7970 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
7971 const ctype_wchar *ctype = ctype_wchar_use_facet(&base->strbuf->loc);
7974 for(ch = basic_streambuf_wchar_sgetc(strbuf); ;
7975 ch = basic_streambuf_wchar_snextc(strbuf)) {
7976 if(ch==WEOF || !ctype_wchar_is_ch(ctype, _SPACE|_BLANK, ch))
7982 if(!ios_base_good(&base->base)) {
7983 basic_ios_wchar_setstate(base, IOSTATE_failbit);
7989 /* ?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE_N_N@Z */
7990 /* ?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z */
7991 /* ?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE_N_N@Z */
7992 /* ?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z */
7993 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ipfx, 8)
7994 MSVCP_bool __thiscall basic_istream_wchar_ipfx(basic_istream_wchar *this, MSVCP_bool noskip)
7996 return basic_istream_wchar__Ipfx(this, noskip);
7999 /* ?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
8000 /* ?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
8001 /* ?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXXZ */
8002 /* ?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
8003 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_isfx, 4)
8004 void __thiscall basic_istream_wchar_isfx(basic_istream_wchar *this)
8006 TRACE("(%p)\n", this);
8009 static BOOL basic_istream_wchar_sentry_create(basic_istream_wchar *istr, MSVCP_bool noskip)
8011 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istr);
8013 if(basic_ios_wchar_rdbuf_get(base))
8014 basic_streambuf_wchar__Lock(base->strbuf);
8016 return basic_istream_wchar_ipfx(istr, noskip);
8019 static void basic_istream_wchar_sentry_destroy(basic_istream_wchar *istr)
8021 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istr);
8023 if(basic_ios_wchar_rdbuf_get(base))
8024 basic_streambuf_wchar__Unlock(base->strbuf);
8027 /* ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QBEHXZ */
8028 /* ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEBA_JXZ */
8029 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QBEHXZ */
8030 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QEBA_JXZ */
8031 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_gcount, 4)
8032 int __thiscall basic_istream_wchar_gcount(const basic_istream_wchar *this)
8034 TRACE("(%p)\n", this);
8038 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
8039 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
8040 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEGXZ */
8041 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ */
8042 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get, 4)
8043 unsigned short __thiscall basic_istream_wchar_get(basic_istream_wchar *this)
8045 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8048 TRACE("(%p)\n", this);
8052 if(!basic_istream_wchar_sentry_create(this, TRUE)) {
8053 basic_istream_wchar_sentry_destroy(this);
8057 ret = basic_streambuf_wchar_sbumpc(basic_ios_wchar_rdbuf_get(base));
8058 basic_istream_wchar_sentry_destroy(this);
8060 basic_ios_wchar_setstate(base, IOSTATE_eofbit|IOSTATE_failbit);
8067 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AA_W@Z */
8068 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEA_W@Z */
8069 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAG@Z */
8070 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAG@Z */
8071 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_ch, 8)
8072 basic_istream_wchar* __thiscall basic_istream_wchar_get_ch(basic_istream_wchar *this, wchar_t *ch)
8076 TRACE("(%p %p)\n", this, ch);
8078 ret = basic_istream_wchar_get(this);
8084 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH_W@Z */
8085 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z */
8086 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGHG@Z */
8087 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z */
8088 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_str_delim, 16)
8089 basic_istream_wchar* __thiscall basic_istream_wchar_get_str_delim(basic_istream_wchar *this, wchar_t *str, streamsize count, wchar_t delim)
8091 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8092 unsigned short ch = delim;
8094 TRACE("(%p %p %ld %c)\n", this, str, count, delim);
8098 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8099 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8101 for(ch = basic_streambuf_wchar_sgetc(strbuf); count>1;
8102 ch = basic_streambuf_wchar_snextc(strbuf)) {
8103 if(ch==WEOF || ch==delim)
8111 basic_istream_wchar_sentry_destroy(this);
8113 basic_ios_wchar_setstate(base, (!this->count ? IOSTATE_failbit : IOSTATE_goodbit) |
8114 (ch==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8120 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
8121 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
8122 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
8123 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
8124 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_str, 12)
8125 basic_istream_wchar* __thiscall basic_istream_wchar_get_str(basic_istream_wchar *this, wchar_t *str, streamsize count)
8127 return basic_istream_wchar_get_str_delim(this, str, count, '\n');
8130 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z */
8131 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z */
8132 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAV?$basic_streambuf@GU?$char_traits@G@std@@@2@G@Z */
8133 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@G@Z */
8134 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_streambuf_delim, 12)
8135 basic_istream_wchar* __thiscall basic_istream_wchar_get_streambuf_delim(basic_istream_wchar *this, basic_streambuf_wchar *strbuf, wchar_t delim)
8137 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8138 unsigned short ch = delim;
8140 TRACE("(%p %p %c)\n", this, strbuf, delim);
8144 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8145 basic_streambuf_wchar *strbuf_read = basic_ios_wchar_rdbuf_get(base);
8147 for(ch = basic_streambuf_wchar_sgetc(strbuf_read); ;
8148 ch = basic_streambuf_wchar_snextc(strbuf_read)) {
8149 if(ch==WEOF || ch==delim)
8152 if(basic_streambuf_wchar_sputc(strbuf, ch) == WEOF)
8157 basic_istream_wchar_sentry_destroy(this);
8159 basic_ios_wchar_setstate(base, (!this->count ? IOSTATE_failbit : IOSTATE_goodbit) |
8160 (ch==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8164 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z */
8165 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z */
8166 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z */
8167 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z */
8168 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_streambuf, 8)
8169 basic_istream_wchar* __thiscall basic_istream_wchar_get_streambuf(basic_istream_wchar *this, basic_streambuf_wchar *strbuf)
8171 return basic_istream_wchar_get_streambuf_delim(this, strbuf, '\n');
8174 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH_W@Z */
8175 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z */
8176 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGHG@Z */
8177 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z */
8178 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_getline_delim, 16)
8179 basic_istream_wchar* __thiscall basic_istream_wchar_getline_delim(basic_istream_wchar *this, wchar_t *str, streamsize count, wchar_t delim)
8181 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8182 unsigned short ch = delim;
8184 TRACE("(%p %p %ld %c)\n", this, str, count, delim);
8188 if(basic_istream_wchar_sentry_create(this, TRUE) && count>0) {
8189 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8192 ch = basic_streambuf_wchar_sbumpc(strbuf);
8194 if(ch==WEOF || ch==delim)
8204 else if(ch != WEOF) {
8205 ch = basic_streambuf_wchar_sgetc(strbuf);
8208 basic_streambuf_wchar__Gninc(strbuf);
8213 basic_istream_wchar_sentry_destroy(this);
8215 basic_ios_wchar_setstate(base, (ch==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit) |
8216 (!this->count || (ch!=delim && ch!=WEOF) ? IOSTATE_failbit : IOSTATE_goodbit));
8222 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
8223 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
8224 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
8225 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
8226 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_getline, 12)
8227 basic_istream_wchar* __thiscall basic_istream_wchar_getline(basic_istream_wchar *this, wchar_t *str, streamsize count)
8229 return basic_istream_wchar_getline_delim(this, str, count, '\n');
8232 /* ?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@HG@Z */
8233 /* ?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JG@Z */
8234 /* ?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@HG@Z */
8235 /* ?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JG@Z */
8236 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ignore, 12)
8237 basic_istream_wchar* __thiscall basic_istream_wchar_ignore(basic_istream_wchar *this, streamsize count, unsigned short delim)
8239 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8240 unsigned short ch = delim;
8243 TRACE("(%p %ld %d)\n", this, count, delim);
8247 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8248 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8249 state = IOSTATE_goodbit;
8252 ch = basic_streambuf_wchar_sbumpc(strbuf);
8255 state = IOSTATE_eofbit;
8263 if(count != INT_MAX)
8267 state = IOSTATE_failbit;
8268 basic_istream_wchar_sentry_destroy(this);
8270 basic_ios_wchar_setstate(base, state);
8274 /* ?ws@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
8275 /* ?ws@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
8276 /* ?ws@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@1@AAV21@@Z */
8277 /* ?ws@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
8278 basic_istream_wchar* __cdecl ws_basic_istream_wchar(basic_istream_wchar *istream)
8280 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istream);
8281 unsigned short ch = '\n';
8283 TRACE("(%p)\n", istream);
8285 if(basic_istream_wchar_sentry_create(istream, TRUE)) {
8286 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8287 const ctype_wchar *ctype = ctype_wchar_use_facet(&strbuf->loc);
8289 for(ch = basic_streambuf_wchar_sgetc(strbuf); ctype_wchar_is_ch(ctype, _SPACE, ch);
8290 ch = basic_streambuf_wchar_snextc(strbuf)) {
8295 basic_istream_wchar_sentry_destroy(istream);
8298 basic_ios_wchar_setstate(base, IOSTATE_eofbit);
8302 /* ?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
8303 /* ?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
8304 /* ?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEGXZ */
8305 /* ?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ */
8306 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_peek, 4)
8307 unsigned short __thiscall basic_istream_wchar_peek(basic_istream_wchar *this)
8309 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8310 unsigned short ret = WEOF;
8312 TRACE("(%p)\n", this);
8316 if(basic_istream_wchar_sentry_create(this, TRUE))
8317 ret = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base));
8318 basic_istream_wchar_sentry_destroy(this);
8321 basic_ios_wchar_setstate(base, IOSTATE_eofbit);
8326 /* ?_Read_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WIH@Z */
8327 /* ?_Read_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_K_J@Z */
8328 /* ?_Read_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGIH@Z */
8329 /* ?_Read_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_K_J@Z */
8330 static basic_istream_wchar* basic_istream_wchar__Read_s(basic_istream_wchar *this, wchar_t *str, MSVCP_size_t size, streamsize count)
8332 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8333 IOSB_iostate state = IOSTATE_goodbit;
8335 TRACE("(%p %p %lu %ld)\n", this, str, size, count);
8337 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8338 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8340 this->count = basic_streambuf_wchar__Sgetn_s(strbuf, str, size, count);
8341 if(this->count != count)
8342 state |= IOSTATE_failbit | IOSTATE_eofbit;
8346 basic_istream_wchar_sentry_destroy(this);
8348 basic_ios_wchar_setstate(base, state);
8352 /* ?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
8353 /* ?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
8354 /* ?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
8355 /* ?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
8356 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read, 12)
8357 basic_istream_wchar* __thiscall basic_istream_wchar_read(basic_istream_wchar *this, wchar_t *str, streamsize count)
8359 return basic_istream_wchar__Read_s(this, str, count, count);
8362 /* ?_Readsome_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHPA_WIH@Z */
8363 /* ?_Readsome_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_K_J@Z */
8364 /* ?_Readsome_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHPAGIH@Z */
8365 /* ?_Readsome_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_K_J@Z */
8366 static streamsize basic_istream_wchar__Readsome_s(basic_istream_wchar *this, wchar_t *str, MSVCP_size_t size, streamsize count)
8368 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8369 IOSB_iostate state = IOSTATE_goodbit;
8371 TRACE("(%p %p %lu %ld)\n", this, str, size, count);
8375 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8376 streamsize avail = basic_streambuf_wchar_in_avail(basic_ios_wchar_rdbuf_get(base));
8381 state |= IOSTATE_eofbit;
8383 basic_istream_wchar__Read_s(this, str, size, avail);
8385 state |= IOSTATE_failbit;
8387 basic_istream_wchar_sentry_destroy(this);
8389 basic_ios_wchar_setstate(base, state);
8393 /* ?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHPA_WH@Z */
8394 /* ?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z */
8395 /* ?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHPAGH@Z */
8396 /* ?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z */
8397 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_readsome, 12)
8398 streamsize __thiscall basic_istream_wchar_readsome(basic_istream_wchar *this, wchar_t *str, streamsize count)
8400 return basic_istream_wchar__Readsome_s(this, str, count, count);
8403 /* ?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@_W@Z */
8404 /* ?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z */
8405 /* ?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@G@Z */
8406 /* ?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z */
8407 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_putback, 8)
8408 basic_istream_wchar* __thiscall basic_istream_wchar_putback(basic_istream_wchar *this, wchar_t ch)
8410 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8411 IOSB_iostate state = IOSTATE_goodbit;
8413 TRACE("(%p %c)\n", this, ch);
8417 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8418 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8420 if(!ios_base_good(&base->base))
8421 state |= IOSTATE_failbit;
8422 else if(!strbuf || basic_streambuf_wchar_sputbackc(strbuf, ch)==WEOF)
8423 state |= IOSTATE_badbit;
8425 basic_istream_wchar_sentry_destroy(this);
8427 basic_ios_wchar_setstate(base, state);
8431 /* ?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ */
8432 /* ?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ */
8433 /* ?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@XZ */
8434 /* ?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ */
8435 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_unget, 4)
8436 basic_istream_wchar* __thiscall basic_istream_wchar_unget(basic_istream_wchar *this)
8438 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8439 IOSB_iostate state = IOSTATE_goodbit;
8441 TRACE("(%p)\n", this);
8445 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8446 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8448 if(!ios_base_good(&base->base))
8449 state |= IOSTATE_failbit;
8450 else if(!strbuf || basic_streambuf_wchar_sungetc(strbuf)==WEOF)
8451 state |= IOSTATE_badbit;
8453 basic_istream_wchar_sentry_destroy(this);
8455 basic_ios_wchar_setstate(base, state);
8459 /* ?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
8460 /* ?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAHXZ */
8461 /* ?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHXZ */
8462 /* ?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAHXZ */
8463 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_sync, 4)
8464 int __thiscall basic_istream_wchar_sync(basic_istream_wchar *this)
8466 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8467 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8469 TRACE("(%p)\n", this);
8474 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8475 if(basic_streambuf_wchar_pubsync(strbuf) != -1) {
8476 basic_istream_wchar_sentry_destroy(this);
8480 basic_istream_wchar_sentry_destroy(this);
8482 basic_ios_wchar_setstate(base, IOSTATE_badbit);
8486 /* ?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@XZ */
8487 /* ?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
8488 /* ?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@XZ */
8489 /* ?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
8490 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_tellg, 8)
8491 fpos_int* __thiscall basic_istream_wchar_tellg(basic_istream_wchar *this, fpos_int *ret)
8493 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8495 TRACE("(%p %p)\n", this, ret);
8497 if(ios_base_fail(&base->base)) {
8504 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base),
8505 ret, 0, SEEKDIR_cur, OPENMODE_in);
8506 if(ret->off==-1 && ret->pos==0 && ret->state==0)
8507 basic_ios_wchar_setstate(base, IOSTATE_failbit);
8512 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@JW4seekdir@ios_base@2@@Z */
8513 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JW4seekdir@ios_base@2@@Z */
8514 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_seekg, 12)
8515 basic_istream_wchar* __thiscall basic_istream_wchar_seekg(basic_istream_wchar *this, streamoff off, int dir)
8517 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8519 TRACE("(%p %ld %d)\n", this, off, dir);
8521 if(!ios_base_fail(&base->base)) {
8522 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8525 basic_streambuf_wchar_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in);
8531 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
8532 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
8533 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
8534 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
8535 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_seekg_fpos, 28)
8536 basic_istream_wchar* __thiscall basic_istream_wchar_seekg_fpos(basic_istream_wchar *this, fpos_int pos)
8538 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8540 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos));
8542 if(!ios_base_fail(&base->base)) {
8543 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8546 basic_streambuf_wchar_pubseekpos(strbuf, &ret, pos, OPENMODE_in);
8552 static basic_istream_wchar* basic_istream_read_short(basic_istream_wchar *this, short *v, const num_get *numget)
8554 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8555 int state = IOSTATE_goodbit;
8557 TRACE("(%p %p)\n", this, v);
8559 if(basic_istream_wchar_sentry_create(this, FALSE)) {
8560 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8561 istreambuf_iterator_wchar first={0}, last={0};
8564 first.strbuf = strbuf;
8565 num_get_wchar_get_long(numget, &last, first, last, &base->base, &state, &tmp);
8567 if(!(state&IOSTATE_failbit) && tmp==(LONG)((short)tmp))
8570 state |= IOSTATE_failbit;
8572 basic_istream_wchar_sentry_destroy(this);
8574 basic_ios_wchar_setstate(base, state);
8578 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAF@Z */
8579 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAF@Z */
8580 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_short, 8)
8581 basic_istream_wchar* __thiscall basic_istream_short_read_short(basic_istream_wchar *this, short *v)
8583 return basic_istream_read_short(this, v, num_get_short_use_facet(
8584 &basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
8587 static basic_istream_wchar* basic_istream_read_int(basic_istream_wchar *this, int *v, const num_get *numget)
8589 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8590 int state = IOSTATE_goodbit;
8592 TRACE("(%p %p)\n", this, v);
8594 if(basic_istream_wchar_sentry_create(this, FALSE)) {
8595 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8596 istreambuf_iterator_wchar first={0}, last={0};
8598 first.strbuf = strbuf;
8599 num_get_wchar_get_long(numget, &last, first, last, &base->base, &state, v);
8601 basic_istream_wchar_sentry_destroy(this);
8603 basic_ios_wchar_setstate(base, state);
8607 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAH@Z */
8608 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAH@Z */
8609 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_int, 8)
8610 basic_istream_wchar* __thiscall basic_istream_short_read_int(basic_istream_wchar *this, int *v)
8612 return basic_istream_read_int(this, v, num_get_short_use_facet(
8613 &basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
8616 static basic_istream_wchar* basic_istream_read_uint(basic_istream_wchar *this, unsigned int *v, const num_get *numget)
8618 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8619 int state = IOSTATE_goodbit;
8621 TRACE("(%p %p)\n", this, v);
8623 if(basic_istream_wchar_sentry_create(this, FALSE)) {
8624 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8625 istreambuf_iterator_wchar first={0}, last={0};
8627 first.strbuf = strbuf;
8628 num_get_wchar_get_uint(numget, &last, first, last, &base->base, &state, v);
8630 basic_istream_wchar_sentry_destroy(this);
8632 basic_ios_wchar_setstate(base, state);
8636 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAI@Z */
8637 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAI@Z */
8638 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_uint, 8)
8639 basic_istream_wchar* __thiscall basic_istream_short_read_uint(basic_istream_wchar *this, unsigned int *v)
8641 return basic_istream_read_uint(this, v, num_get_short_use_facet(
8642 &basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
8645 static basic_istream_wchar* basic_istream_read_long(basic_istream_wchar *this, LONG *v, const num_get *numget)
8647 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8648 int state = IOSTATE_goodbit;
8650 TRACE("(%p %p)\n", this, v);
8652 if(basic_istream_wchar_sentry_create(this, FALSE)) {
8653 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8654 istreambuf_iterator_wchar first={0}, last={0};
8656 first.strbuf = strbuf;
8657 num_get_wchar_get_long(numget, &last, first, last, &base->base, &state, v);
8659 basic_istream_wchar_sentry_destroy(this);
8661 basic_ios_wchar_setstate(base, state);
8665 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAJ@Z */
8666 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAJ@Z */
8667 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_long, 8)
8668 basic_istream_wchar* __thiscall basic_istream_short_read_long(basic_istream_wchar *this, LONG *v)
8670 return basic_istream_read_long(this, v, num_get_short_use_facet(
8671 &basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
8674 static basic_istream_wchar* basic_istream_read_ulong(basic_istream_wchar *this, ULONG *v, const num_get *numget)
8676 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8677 int state = IOSTATE_goodbit;
8679 TRACE("(%p %p)\n", this, v);
8681 if(basic_istream_wchar_sentry_create(this, FALSE)) {
8682 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8683 istreambuf_iterator_wchar first={0}, last={0};
8685 first.strbuf = strbuf;
8686 num_get_wchar_get_ulong(numget, &last, first, last, &base->base, &state, v);
8688 basic_istream_wchar_sentry_destroy(this);
8690 basic_ios_wchar_setstate(base, state);
8694 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAK@Z */
8695 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAK@Z */
8696 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ulong, 8)
8697 basic_istream_wchar* __thiscall basic_istream_short_read_ulong(basic_istream_wchar *this, ULONG *v)
8699 return basic_istream_read_ulong(this, v, num_get_short_use_facet(
8700 &basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
8703 static basic_istream_wchar* basic_istream_read_float(basic_istream_wchar *this, float *v, const num_get *numget)
8705 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8706 int state = IOSTATE_goodbit;
8708 TRACE("(%p %p)\n", this, v);
8710 if(basic_istream_wchar_sentry_create(this, FALSE)) {
8711 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8712 istreambuf_iterator_wchar first={0}, last={0};
8714 first.strbuf = strbuf;
8715 num_get_wchar_get_float(numget, &last, first, last, &base->base, &state, v);
8717 basic_istream_wchar_sentry_destroy(this);
8719 basic_ios_wchar_setstate(base, state);
8723 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAM@Z */
8724 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAM@Z */
8725 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_float, 8)
8726 basic_istream_wchar* __thiscall basic_istream_short_read_float(basic_istream_wchar *this, float *v)
8728 return basic_istream_read_float(this, v, num_get_short_use_facet(
8729 &basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
8732 static basic_istream_wchar* basic_istream_read_double(basic_istream_wchar *this, double *v, const num_get *numget)
8734 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8735 int state = IOSTATE_goodbit;
8737 TRACE("(%p %p)\n", this, v);
8739 if(basic_istream_wchar_sentry_create(this, FALSE)) {
8740 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8741 istreambuf_iterator_wchar first={0}, last={0};
8743 first.strbuf = strbuf;
8744 num_get_wchar_get_double(numget, &last, first, last, &base->base, &state, v);
8746 basic_istream_wchar_sentry_destroy(this);
8748 basic_ios_wchar_setstate(base, state);
8752 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAN@Z */
8753 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAN@Z */
8754 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_double, 8)
8755 basic_istream_wchar* __thiscall basic_istream_short_read_double(basic_istream_wchar *this, double *v)
8757 return basic_istream_read_double(this, v, num_get_short_use_facet(
8758 &basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
8761 static basic_istream_wchar* basic_istream_read_ldouble(basic_istream_wchar *this, double *v, const num_get *numget)
8763 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8764 int state = IOSTATE_goodbit;
8766 TRACE("(%p %p)\n", this, v);
8768 if(basic_istream_wchar_sentry_create(this, FALSE)) {
8769 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8770 istreambuf_iterator_wchar first={0}, last={0};
8772 first.strbuf = strbuf;
8773 num_get_wchar_get_ldouble(numget, &last, first, last, &base->base, &state, v);
8775 basic_istream_wchar_sentry_destroy(this);
8777 basic_ios_wchar_setstate(base, state);
8781 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAO@Z */
8782 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAO@Z */
8783 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ldouble, 8)
8784 basic_istream_wchar* __thiscall basic_istream_short_read_ldouble(basic_istream_wchar *this, double *v)
8786 return basic_istream_read_ldouble(this, v, num_get_short_use_facet(
8787 &basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
8790 static basic_istream_wchar* basic_istream_read_ptr(basic_istream_wchar *this, void **v, const num_get *numget)
8792 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8793 int state = IOSTATE_goodbit;
8795 TRACE("(%p %p)\n", this, v);
8797 if(basic_istream_wchar_sentry_create(this, FALSE)) {
8798 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8799 istreambuf_iterator_wchar first={0}, last={0};
8801 first.strbuf = strbuf;
8802 num_get_wchar_get_void(numget, &last, first, last, &base->base, &state, v);
8804 basic_istream_wchar_sentry_destroy(this);
8806 basic_ios_wchar_setstate(base, state);
8810 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAPAX@Z */
8811 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
8812 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ptr, 8)
8813 basic_istream_wchar* __thiscall basic_istream_short_read_ptr(basic_istream_wchar *this, void **v)
8815 return basic_istream_read_ptr(this, v, num_get_short_use_facet(
8816 &basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
8819 static basic_istream_wchar* basic_istream_read_int64(basic_istream_wchar *this, __int64 *v, const num_get *numget)
8821 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8822 int state = IOSTATE_goodbit;
8824 TRACE("(%p %p)\n", this, v);
8826 if(basic_istream_wchar_sentry_create(this, FALSE)) {
8827 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8828 istreambuf_iterator_wchar first={0}, last={0};
8830 first.strbuf = strbuf;
8831 num_get_wchar_get_int64(numget, &last, first, last, &base->base, &state, v);
8833 basic_istream_wchar_sentry_destroy(this);
8835 basic_ios_wchar_setstate(base, state);
8839 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_J@Z */
8840 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_J@Z */
8841 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_int64, 8)
8842 basic_istream_wchar* __thiscall basic_istream_short_read_int64(basic_istream_wchar *this, __int64 *v)
8844 return basic_istream_read_int64(this, v, num_get_short_use_facet(
8845 &basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
8848 static basic_istream_wchar* basic_istream_read_uint64(basic_istream_wchar *this, unsigned __int64 *v, const num_get *numget)
8850 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8851 int state = IOSTATE_goodbit;
8853 TRACE("(%p %p)\n", this, v);
8855 if(basic_istream_wchar_sentry_create(this, FALSE)) {
8856 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8857 istreambuf_iterator_wchar first={0}, last={0};
8859 first.strbuf = strbuf;
8860 num_get_wchar_get_uint64(numget, &last, first, last, &base->base, &state, v);
8862 basic_istream_wchar_sentry_destroy(this);
8864 basic_ios_wchar_setstate(base, state);
8868 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_K@Z */
8869 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_K@Z */
8870 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_uint64, 8)
8871 basic_istream_wchar* __thiscall basic_istream_short_read_uint64(basic_istream_wchar *this, unsigned __int64 *v)
8873 return basic_istream_read_uint64(this, v, num_get_short_use_facet(
8874 &basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
8877 static basic_istream_wchar* basic_istream_read_bool(basic_istream_wchar *this, MSVCP_bool *v, const num_get *numget)
8879 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8880 int state = IOSTATE_goodbit;
8882 TRACE("(%p %p)\n", this, v);
8884 if(basic_istream_wchar_sentry_create(this, FALSE)) {
8885 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8886 istreambuf_iterator_wchar first={0}, last={0};
8888 first.strbuf = strbuf;
8889 num_get_wchar_get_bool(numget, &last, first, last, &base->base, &state, v);
8891 basic_istream_wchar_sentry_destroy(this);
8893 basic_ios_wchar_setstate(base, state);
8897 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_N@Z */
8898 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_N@Z */
8899 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_bool, 8)
8900 basic_istream_wchar* __thiscall basic_istream_short_read_bool(basic_istream_wchar *this, MSVCP_bool *v)
8902 return basic_istream_read_bool(this, v, num_get_short_use_facet(
8903 &basic_istream_wchar_get_basic_ios(this)->strbuf->loc));
8906 /* ??$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 */
8907 /* ??$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 */
8908 /* ??$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 */
8909 /* ??$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 */
8910 basic_istream_wchar* __cdecl basic_istream_wchar_getline_bstr_delim(
8911 basic_istream_wchar *istream, basic_string_wchar *str, wchar_t delim)
8913 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istream);
8914 IOSB_iostate state = IOSTATE_goodbit;
8917 TRACE("(%p %p %c)\n", istream, str, delim);
8919 basic_string_wchar_clear(str);
8920 if(basic_istream_wchar_sentry_create(istream, TRUE)) {
8921 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8923 c = basic_streambuf_wchar_sgetc(strbuf);
8924 for(; c!=delim && c!=WEOF; c = basic_streambuf_wchar_snextc(strbuf))
8925 basic_string_wchar_append_ch(str, c);
8926 if(c==delim) basic_streambuf_wchar_sbumpc(strbuf);
8927 else if(c==WEOF) state |= IOSTATE_eofbit;
8929 if(!basic_string_wchar_length(str) && c!=delim) state |= IOSTATE_failbit;
8931 basic_istream_wchar_sentry_destroy(istream);
8933 basic_ios_wchar_setstate(basic_istream_wchar_get_basic_ios(istream), state);
8937 /* ??$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 */
8938 /* ??$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 */
8939 /* ??$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 */
8940 /* ??$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 */
8941 basic_istream_wchar* __cdecl basic_istream_wchar_getline_bstr(
8942 basic_istream_wchar *istream, basic_string_wchar *str)
8944 return basic_istream_wchar_getline_bstr_delim(istream, str, '\n');
8947 static basic_istream_wchar* basic_istream_read_bstr(basic_istream_wchar *istream,
8948 basic_string_wchar *str, const ctype_wchar *ctype)
8950 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istream);
8951 IOSB_iostate state = IOSTATE_failbit;
8954 TRACE("(%p %p)\n", istream, str);
8956 if(basic_istream_wchar_sentry_create(istream, FALSE)) {
8957 MSVCP_size_t count = ios_base_width_get(&base->base);
8962 basic_string_wchar_clear(str);
8964 for(c = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base));
8965 c!=WEOF && !ctype_wchar_is_ch(ctype, _SPACE|_BLANK, c) && count>0;
8966 c = basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base)), count--) {
8967 state = IOSTATE_goodbit;
8968 basic_string_wchar_append_ch(str, c);
8971 basic_istream_wchar_sentry_destroy(istream);
8973 ios_base_width_set(&base->base, 0);
8974 basic_ios_wchar_setstate(base, state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8978 /* ??$?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 */
8979 /* ??$?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 */
8980 basic_istream_wchar* __cdecl basic_istream_wchar_read_bstr(
8981 basic_istream_wchar *istream, basic_string_wchar *str)
8983 return basic_istream_read_bstr(istream, str, ctype_wchar_use_facet(
8984 &basic_istream_wchar_get_basic_ios(istream)->strbuf->loc));
8987 /* ??$?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 */
8988 /* ??$?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 */
8989 basic_istream_wchar* __cdecl basic_istream_short_read_bstr(
8990 basic_istream_wchar *istream, basic_string_wchar *str)
8992 return basic_istream_read_bstr(istream, str, ctype_short_use_facet(
8993 &basic_istream_wchar_get_basic_ios(istream)->strbuf->loc));
8996 static basic_istream_wchar* basic_istream_read_str(basic_istream_wchar *istream, wchar_t *str, const ctype_wchar *ctype)
8998 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istream);
8999 IOSB_iostate state = IOSTATE_failbit;
9000 unsigned short c = '\n';
9002 TRACE("(%p %p)\n", istream, str);
9004 if(basic_istream_wchar_sentry_create(istream, FALSE)) {
9005 MSVCP_size_t count = ios_base_width_get(&base->base)-1;
9007 for(c = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base));
9008 c!=WEOF && !ctype_wchar_is_ch(ctype, _SPACE|_BLANK, c) && count>0;
9009 c = basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base)), count--) {
9010 state = IOSTATE_goodbit;
9014 basic_istream_wchar_sentry_destroy(istream);
9017 ios_base_width_set(&base->base, 0);
9018 basic_ios_wchar_setstate(base, state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
9022 /* ??$?5GU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@PAG@Z */
9023 /* ??$?5GU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@PEAG@Z */
9024 basic_istream_wchar* __cdecl basic_istream_short_read_str(basic_istream_wchar *istream, wchar_t *str)
9026 return basic_istream_read_str(istream, str, ctype_short_use_facet(
9027 &basic_istream_wchar_get_basic_ios(istream)->strbuf->loc));
9030 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AA_W@Z */
9031 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEA_W@Z */
9032 /* ??$?5GU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAG@Z */
9033 /* ??$?5GU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAG@Z */
9034 basic_istream_wchar* __cdecl basic_istream_wchar_read_ch(basic_istream_wchar *istream, wchar_t *ch)
9036 IOSB_iostate state = IOSTATE_failbit;
9037 unsigned short c = 0;
9039 TRACE("(%p %p)\n", istream, ch);
9041 if(basic_istream_wchar_sentry_create(istream, FALSE)) {
9042 c = basic_streambuf_wchar_sbumpc(basic_ios_wchar_rdbuf_get(
9043 basic_istream_wchar_get_basic_ios(istream)));
9045 state = IOSTATE_goodbit;
9049 basic_istream_wchar_sentry_destroy(istream);
9051 basic_ios_wchar_setstate(basic_istream_wchar_get_basic_ios(istream),
9052 state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
9056 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
9057 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
9058 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
9059 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
9060 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_streambuf, 8)
9061 basic_istream_wchar* __thiscall basic_istream_wchar_read_streambuf(
9062 basic_istream_wchar *this, basic_streambuf_wchar *streambuf)
9064 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9065 IOSB_iostate state = IOSTATE_failbit;
9066 unsigned short c = '\n';
9068 TRACE("(%p %p)\n", this, streambuf);
9070 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9071 for(c = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base)); c!=WEOF;
9072 c = basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base))) {
9073 state = IOSTATE_goodbit;
9074 if(basic_streambuf_wchar_sputc(streambuf, c) == WEOF)
9078 basic_istream_wchar_sentry_destroy(this);
9080 basic_ios_wchar_setstate(base, state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
9084 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
9085 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
9086 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
9087 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
9088 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func, 8)
9089 basic_istream_wchar* __thiscall basic_istream_wchar_read_func(basic_istream_wchar *this,
9090 basic_istream_wchar* (__cdecl *pfunc)(basic_istream_wchar*))
9092 TRACE("(%p %p)\n", this, pfunc);
9097 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AAV21@@Z@Z */
9098 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z */
9099 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@GU?$char_traits@G@std@@@1@AAV21@@Z@Z */
9100 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z */
9101 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func_basic_ios, 8)
9102 basic_istream_wchar* __thiscall basic_istream_wchar_read_func_basic_ios(basic_istream_wchar *this,
9103 basic_ios_wchar* (__cdecl *pfunc)(basic_ios_wchar*))
9105 TRACE("(%p %p)\n", this, pfunc);
9106 pfunc(basic_istream_wchar_get_basic_ios(this));
9110 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
9111 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
9112 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
9113 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
9114 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func_ios_base, 8)
9115 basic_istream_wchar* __thiscall basic_istream_wchar_read_func_ios_base(
9116 basic_istream_wchar *this, ios_base* (__cdecl *pfunc)(ios_base*))
9118 TRACE("(%p %p)\n", this, pfunc);
9119 pfunc(&basic_istream_wchar_get_basic_ios(this)->base);
9123 static inline basic_ios_char* basic_iostream_char_to_basic_ios(basic_iostream_char *ptr)
9125 return (basic_ios_char*)((char*)ptr+basic_iostream_char_vbtable1[1]);
9128 static inline basic_iostream_char* basic_iostream_char_from_basic_ios(basic_ios_char *ptr)
9130 return (basic_iostream_char*)((char*)ptr-basic_iostream_char_vbtable1[1]);
9133 /* ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
9134 /* ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
9135 DEFINE_THISCALL_WRAPPER(basic_iostream_char_ctor, 12)
9136 basic_iostream_char* __thiscall basic_iostream_char_ctor(basic_iostream_char *this, basic_streambuf_char *strbuf, MSVCP_bool virt_init)
9138 basic_ios_char *basic_ios;
9140 TRACE("(%p %p %d)\n", this, strbuf, virt_init);
9143 this->base1.vbtable = basic_iostream_char_vbtable1;
9144 this->base2.vbtable = basic_iostream_char_vbtable2;
9145 basic_ios = basic_istream_char_get_basic_ios(&this->base1);
9146 basic_ios_char_ctor(basic_ios);
9148 basic_ios = basic_istream_char_get_basic_ios(&this->base1);
9151 basic_ios->base.vtable = &MSVCP_basic_iostream_char_vtable;
9153 basic_istream_char_ctor(&this->base1, strbuf, FALSE, FALSE);
9154 basic_ostream_char_ctor(&this->base2, NULL, FALSE, FALSE, FALSE);
9158 /* ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
9159 /* ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
9160 DEFINE_THISCALL_WRAPPER(basic_iostream_char_dtor, 4)
9161 void __thiscall basic_iostream_char_dtor(basic_ios_char *base)
9163 basic_iostream_char *this = basic_iostream_char_from_basic_ios(base);
9165 TRACE("(%p)\n", this);
9166 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base2));
9167 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base1));
9170 /* ??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
9171 /* ??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
9172 DEFINE_THISCALL_WRAPPER(basic_iostream_char_vbase_dtor, 4)
9173 void __thiscall basic_iostream_char_vbase_dtor(basic_iostream_char *this)
9175 TRACE("(%p)\n", this);
9176 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(this));
9177 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base1));
9180 DEFINE_THISCALL_WRAPPER(basic_iostream_char_vector_dtor, 8)
9181 basic_iostream_char* __thiscall basic_iostream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
9183 basic_iostream_char *this = basic_iostream_char_from_basic_ios(base);
9185 TRACE("(%p %x)\n", this, flags);
9188 /* we have an array, with the number of elements stored before the first object */
9189 INT_PTR i, *ptr = (INT_PTR *)this-1;
9191 for(i=*ptr-1; i>=0; i--)
9192 basic_iostream_char_vbase_dtor(this+i);
9193 MSVCRT_operator_delete(ptr);
9195 basic_iostream_char_vbase_dtor(this);
9197 MSVCRT_operator_delete(this);
9203 static inline basic_ios_wchar* basic_iostream_wchar_to_basic_ios(basic_iostream_wchar *ptr)
9205 return (basic_ios_wchar*)((char*)ptr+basic_iostream_wchar_vbtable1[1]);
9208 static inline basic_iostream_wchar* basic_iostream_wchar_from_basic_ios(basic_ios_wchar *ptr)
9210 return (basic_iostream_wchar*)((char*)ptr-basic_iostream_wchar_vbtable1[1]);
9213 /* ??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
9214 /* ??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
9215 static basic_iostream_wchar* basic_iostream_wchar_ctor(basic_iostream_wchar *this,
9216 basic_streambuf_wchar *strbuf, MSVCP_bool virt_init)
9218 basic_ios_wchar *basic_ios;
9220 TRACE("(%p %p %d)\n", this, strbuf, virt_init);
9223 this->base1.vbtable = basic_iostream_wchar_vbtable1;
9224 this->base2.vbtable = basic_iostream_wchar_vbtable2;
9225 basic_ios = basic_istream_wchar_get_basic_ios(&this->base1);
9226 basic_ios_wchar_ctor(basic_ios);
9228 basic_ios = basic_istream_wchar_get_basic_ios(&this->base1);
9231 basic_istream_wchar_ctor(&this->base1, strbuf, FALSE, FALSE);
9232 basic_ostream_short_ctor(&this->base2, NULL, FALSE, FALSE, FALSE);
9234 basic_ios->base.vtable = &MSVCP_basic_iostream_wchar_vtable;
9238 /* ??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
9239 /* ??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
9240 DEFINE_THISCALL_WRAPPER(basic_iostream_short_ctor, 12)
9241 basic_iostream_wchar* __thiscall basic_iostream_short_ctor(basic_iostream_wchar *this,
9242 basic_streambuf_wchar *strbuf, MSVCP_bool virt_init)
9244 basic_iostream_wchar_ctor(this, strbuf, virt_init);
9245 basic_istream_wchar_get_basic_ios(&this->base1)->base.vtable = &MSVCP_basic_iostream_short_vtable;
9249 /* ??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
9250 /* ??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
9251 /* ??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UAE@XZ */
9252 /* ??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
9253 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_dtor, 4)
9254 void __thiscall basic_iostream_wchar_dtor(basic_ios_wchar *base)
9256 basic_iostream_wchar *this = basic_iostream_wchar_from_basic_ios(base);
9258 TRACE("(%p)\n", this);
9259 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base2));
9260 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base1));
9263 /* ??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
9264 /* ??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
9265 /* ??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
9266 /* ??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
9267 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_vbase_dtor, 4)
9268 void __thiscall basic_iostream_wchar_vbase_dtor(basic_iostream_wchar *this)
9270 TRACE("(%p)\n", this);
9271 basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(this));
9272 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base1));
9275 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_vector_dtor, 8)
9276 basic_iostream_wchar* __thiscall basic_iostream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
9278 basic_iostream_wchar *this = basic_iostream_wchar_from_basic_ios(base);
9280 TRACE("(%p %x)\n", this, flags);
9283 /* we have an array, with the number of elements stored before the first object */
9284 INT_PTR i, *ptr = (INT_PTR *)this-1;
9286 for(i=*ptr-1; i>=0; i--)
9287 basic_iostream_wchar_vbase_dtor(this+i);
9288 MSVCRT_operator_delete(ptr);
9290 basic_iostream_wchar_vbase_dtor(this);
9292 MSVCRT_operator_delete(this);
9298 static inline basic_ios_char* basic_ofstream_char_to_basic_ios(basic_ofstream_char *ptr)
9300 return (basic_ios_char*)((char*)ptr+basic_ofstream_char_vbtable[1]);
9303 static inline basic_ofstream_char* basic_ofstream_char_from_basic_ios(basic_ios_char *ptr)
9305 return (basic_ofstream_char*)((char*)ptr-basic_ofstream_char_vbtable[1]);
9308 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
9309 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
9310 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor, 8)
9311 basic_ofstream_char* __thiscall basic_ofstream_char_ctor(basic_ofstream_char *this, MSVCP_bool virt_init)
9313 basic_ios_char *basic_ios;
9315 TRACE("(%p %d)\n", this, virt_init);
9318 this->base.vbtable = basic_ofstream_char_vbtable;
9319 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
9320 basic_ios_char_ctor(basic_ios);
9322 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
9325 basic_filebuf_char_ctor(&this->filebuf);
9326 basic_ostream_char_ctor(&this->base, &this->filebuf.base, FALSE, TRUE, FALSE);
9327 basic_ios->base.vtable = &MSVCP_basic_ofstream_char_vtable;
9331 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
9332 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
9333 static basic_ofstream_char* basic_ofstream_char_ctor_file(
9334 basic_ofstream_char *this, FILE *file, MSVCP_bool virt_init)
9336 basic_ios_char *basic_ios;
9338 TRACE("(%p %p %d)\n", this, file, virt_init);
9341 this->base.vbtable = basic_ofstream_char_vbtable;
9342 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
9343 basic_ios_char_ctor(basic_ios);
9345 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
9348 basic_filebuf_char_ctor_file(&this->filebuf, file);
9349 basic_ostream_char_ctor(&this->base, &this->filebuf.base, FALSE, TRUE, FALSE);
9350 basic_ios->base.vtable = &MSVCP_basic_ofstream_char_vtable;
9354 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@ABV01@@Z */
9355 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@AEBV01@@Z */
9356 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_copy_ctor, 12)
9357 basic_ofstream_char* __thiscall basic_ofstream_char_copy_ctor(basic_ofstream_char *this,
9358 basic_ofstream_char *copy, MSVCP_bool virt_init)
9360 TRACE("(%p %p %d)\n", this, copy, virt_init);
9361 return basic_ofstream_char_ctor_file(this, copy->filebuf.file, virt_init);
9364 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z */
9365 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDH@Z */
9366 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_name, 16)
9367 basic_ofstream_char* __thiscall basic_ofstream_char_ctor_name(basic_ofstream_char *this,
9368 const char *name, int mode, MSVCP_bool virt_init)
9370 TRACE("(%p %s %d %d)\n", this, name, mode, virt_init);
9372 basic_ofstream_char_ctor(this, virt_init);
9374 if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_out, _SH_DENYNO)) {
9375 basic_ios_char *basic_ios = basic_ostream_char_get_basic_ios(&this->base);
9376 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
9381 /* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
9382 /* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
9383 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_dtor, 4)
9384 void __thiscall basic_ofstream_char_dtor(basic_ios_char *base)
9386 basic_ofstream_char *this = basic_ofstream_char_from_basic_ios(base);
9388 TRACE("(%p)\n", this);
9390 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base));
9391 basic_filebuf_char_dtor(&this->filebuf);
9394 /* ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
9395 /* ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
9396 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_vbase_dtor, 4)
9397 void __thiscall basic_ofstream_char_vbase_dtor(basic_ofstream_char *this)
9399 TRACE("(%p)\n", this);
9401 basic_ofstream_char_dtor(basic_ofstream_char_to_basic_ios(this));
9402 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base));
9405 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_vector_dtor, 8)
9406 basic_ofstream_char* __thiscall basic_ofstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
9408 basic_ofstream_char *this = basic_ofstream_char_from_basic_ios(base);
9410 TRACE("(%p %x)\n", this, flags);
9413 /* we have an array, with the number of elements stored before the first object */
9414 INT_PTR i, *ptr = (INT_PTR *)this-1;
9416 for(i=*ptr-1; i>=0; i--)
9417 basic_ofstream_char_vbase_dtor(this+i);
9418 MSVCRT_operator_delete(ptr);
9420 basic_ofstream_char_vbase_dtor(this);
9422 MSVCRT_operator_delete(this);
9428 /* ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
9429 /* ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
9430 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_close, 4)
9431 void __thiscall basic_ofstream_char_close(basic_ofstream_char *this)
9433 TRACE("(%p)\n", this);
9435 if(!basic_filebuf_char_close(&this->filebuf)) {
9436 basic_ios_char *basic_ios = basic_ostream_char_get_basic_ios(&this->base);
9437 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
9441 /* ?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
9442 /* ?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
9443 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_is_open, 4)
9444 MSVCP_bool __thiscall basic_ofstream_char_is_open(const basic_ofstream_char *this)
9446 TRACE("(%p)\n", this);
9447 return basic_filebuf_char_is_open(&this->filebuf);
9450 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDH@Z */
9451 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDH@Z */
9452 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open, 12)
9453 void __thiscall basic_ofstream_char_open(basic_ofstream_char *this,
9454 const char *name, int mode)
9456 TRACE("(%p %s %d)\n", this, name, mode);
9458 if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_out, _SH_DENYNO)) {
9459 basic_ios_char *basic_ios = basic_ostream_char_get_basic_ios(&this->base);
9460 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
9464 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDF@Z */
9465 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDF@Z */
9466 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open_old, 12)
9467 void __thiscall basic_ofstream_char_open_old(basic_ofstream_char *this,
9468 const char *name, short mode)
9470 basic_ofstream_char_open(this, name, mode);
9473 /* ?rdbuf@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
9474 /* ?rdbuf@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
9475 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_rdbuf, 4)
9476 basic_filebuf_char* __thiscall basic_ofstream_char_rdbuf(const basic_ofstream_char *this)
9478 TRACE("(%p)\n", this);
9479 return (basic_filebuf_char*)&this->filebuf;
9482 static inline basic_ios_wchar* basic_ofstream_wchar_to_basic_ios(basic_ofstream_wchar *ptr)
9484 return (basic_ios_wchar*)((char*)ptr+basic_ofstream_wchar_vbtable[1]);
9487 static inline basic_ofstream_wchar* basic_ofstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
9489 return (basic_ofstream_wchar*)((char*)ptr-basic_ofstream_wchar_vbtable[1]);
9492 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
9493 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
9494 static basic_ofstream_wchar* basic_ofstream_wchar_ctor(basic_ofstream_wchar *this, MSVCP_bool virt_init)
9496 basic_ios_wchar *basic_ios;
9498 TRACE("(%p %d)\n", this, virt_init);
9501 this->base.vbtable = basic_ofstream_wchar_vbtable;
9502 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
9503 basic_ios_wchar_ctor(basic_ios);
9505 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
9508 basic_filebuf_wchar_ctor(&this->filebuf);
9509 basic_ostream_short_ctor(&this->base, &this->filebuf.base, FALSE, TRUE, FALSE);
9510 basic_ios->base.vtable = &MSVCP_basic_ofstream_wchar_vtable;
9514 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
9515 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
9516 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor, 8)
9517 basic_ofstream_wchar* __thiscall basic_ofstream_short_ctor(basic_ofstream_wchar *this, MSVCP_bool virt_init)
9519 basic_ofstream_wchar_ctor(this, virt_init);
9520 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ofstream_short_vtable;
9524 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
9525 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
9526 static basic_ofstream_wchar* basic_ofstream_wchar_ctor_file(
9527 basic_ofstream_wchar *this, FILE *file, MSVCP_bool virt_init)
9529 basic_ios_wchar *basic_ios;
9531 TRACE("(%p %p %d)\n", this, file, virt_init);
9534 this->base.vbtable = basic_ofstream_wchar_vbtable;
9535 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
9536 basic_ios_wchar_ctor(basic_ios);
9538 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
9541 basic_filebuf_wchar_ctor_file(&this->filebuf, file);
9542 basic_ostream_short_ctor(&this->base, &this->filebuf.base, FALSE, TRUE, FALSE);
9543 basic_ios->base.vtable = &MSVCP_basic_ofstream_wchar_vtable;
9547 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
9548 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
9549 static basic_ofstream_wchar* basic_ofstream_short_ctor_file(
9550 basic_ofstream_wchar *this, FILE *file, MSVCP_bool virt_init)
9552 basic_ofstream_wchar_ctor_file(this, file, virt_init);
9553 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ofstream_short_vtable;
9557 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@ABV01@@Z */
9558 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@AEBV01@@Z */
9559 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_copy_ctor, 12)
9560 basic_ofstream_wchar* __thiscall basic_ofstream_short_copy_ctor(basic_ofstream_wchar *this,
9561 basic_ofstream_wchar *copy, MSVCP_bool virt_init)
9563 TRACE("(%p %p %d)\n", this, copy, virt_init);
9564 return basic_ofstream_short_ctor_file(this, copy->filebuf.file, virt_init);
9567 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PBDH@Z */
9568 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDH@Z */
9569 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor_name, 16)
9570 basic_ofstream_wchar* __thiscall basic_ofstream_short_ctor_name(basic_ofstream_wchar *this,
9571 const char *name, int mode, MSVCP_bool virt_init)
9573 TRACE("(%p %s %d %d)\n", this, name, mode, virt_init);
9575 basic_ofstream_short_ctor(this, virt_init);
9577 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_out, _SH_DENYNO)) {
9578 basic_ios_wchar *basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
9579 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
9584 /* ??1?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
9585 /* ??1?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
9586 /* ??1?$basic_ofstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
9587 /* ??1?$basic_ofstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
9588 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_dtor, 4)
9589 void __thiscall basic_ofstream_wchar_dtor(basic_ios_wchar *base)
9591 basic_ofstream_wchar *this = basic_ofstream_wchar_from_basic_ios(base);
9593 TRACE("(%p)\n", this);
9595 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base));
9596 basic_filebuf_wchar_dtor(&this->filebuf);
9599 /* ??_D?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
9600 /* ??_D?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
9601 /* ??_D?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
9602 /* ??_D?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
9603 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_vbase_dtor, 4)
9604 void __thiscall basic_ofstream_wchar_vbase_dtor(basic_ofstream_wchar *this)
9606 TRACE("(%p)\n", this);
9608 basic_ofstream_wchar_dtor(basic_ofstream_wchar_to_basic_ios(this));
9609 basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(&this->base));
9612 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_vector_dtor, 8)
9613 basic_ofstream_wchar* __thiscall basic_ofstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
9615 basic_ofstream_wchar *this = basic_ofstream_wchar_from_basic_ios(base);
9617 TRACE("(%p %x)\n", this, flags);
9620 /* we have an array, with the number of elements stored before the first object */
9621 INT_PTR i, *ptr = (INT_PTR *)this-1;
9623 for(i=*ptr-1; i>=0; i--)
9624 basic_ofstream_wchar_vbase_dtor(this+i);
9625 MSVCRT_operator_delete(ptr);
9627 basic_ofstream_wchar_vbase_dtor(this);
9629 MSVCRT_operator_delete(this);
9635 /* ?close@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
9636 /* ?close@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
9637 /* ?close@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
9638 /* ?close@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
9639 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_close, 4)
9640 void __thiscall basic_ofstream_wchar_close(basic_ofstream_wchar *this)
9642 TRACE("(%p)\n", this);
9644 if(!basic_filebuf_wchar_close(&this->filebuf)) {
9645 basic_ios_wchar *basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
9646 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
9650 /* ?is_open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
9651 /* ?is_open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
9652 /* ?is_open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
9653 /* ?is_open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
9654 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_is_open, 4)
9655 MSVCP_bool __thiscall basic_ofstream_wchar_is_open(const basic_ofstream_wchar *this)
9657 TRACE("(%p)\n", this);
9658 return basic_filebuf_wchar_is_open(&this->filebuf);
9661 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBDH@Z */
9662 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDH@Z */
9663 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_open, 12)
9664 void __thiscall basic_ofstream_wchar_open(basic_ofstream_wchar *this,
9665 const char *name, int mode)
9667 TRACE("(%p %s %d)\n", this, name, mode);
9669 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_out, _SH_DENYNO)) {
9670 basic_ios_wchar *basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
9671 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
9675 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBDF@Z */
9676 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDF@Z */
9677 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_open_old, 12)
9678 void __thiscall basic_ofstream_wchar_open_old(basic_ofstream_wchar *this,
9679 const char *name, int mode)
9681 basic_ofstream_wchar_open(this, name, mode);
9684 /* ?rdbuf@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
9685 /* ?rdbuf@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
9686 /* ?rdbuf@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
9687 /* ?rdbuf@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
9688 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_rdbuf, 4)
9689 basic_filebuf_wchar* __thiscall basic_ofstream_wchar_rdbuf(const basic_ofstream_wchar *this)
9691 TRACE("(%p)\n", this);
9692 return (basic_filebuf_wchar*)&this->filebuf;
9695 static inline basic_ios_char* basic_ifstream_char_to_basic_ios(basic_ifstream_char *ptr)
9697 return (basic_ios_char*)((char*)ptr+basic_ifstream_char_vbtable[1]);
9700 static inline basic_ifstream_char* basic_ifstream_char_from_basic_ios(basic_ios_char *ptr)
9702 return (basic_ifstream_char*)((char*)ptr-basic_ifstream_char_vbtable[1]);
9705 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
9706 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
9707 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor, 8)
9708 basic_ifstream_char* __thiscall basic_ifstream_char_ctor(basic_ifstream_char *this, MSVCP_bool virt_init)
9710 basic_ios_char *basic_ios;
9712 TRACE("(%p %d)\n", this, virt_init);
9715 this->base.vbtable = basic_ifstream_char_vbtable;
9716 basic_ios = basic_istream_char_get_basic_ios(&this->base);
9717 basic_ios_char_ctor(basic_ios);
9719 basic_ios = basic_istream_char_get_basic_ios(&this->base);
9722 basic_filebuf_char_ctor(&this->filebuf);
9723 basic_istream_char_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
9724 basic_ios->base.vtable = &MSVCP_basic_ifstream_char_vtable;
9728 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
9729 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
9730 static basic_ifstream_char* basic_ifstream_char_ctor_file(
9731 basic_ifstream_char *this, FILE *file, MSVCP_bool virt_init)
9733 basic_ios_char *basic_ios;
9735 TRACE("(%p %p %d)\n", this, file, virt_init);
9738 this->base.vbtable = basic_ifstream_char_vbtable;
9739 basic_ios = basic_istream_char_get_basic_ios(&this->base);
9740 basic_ios_char_ctor(basic_ios);
9742 basic_ios = basic_istream_char_get_basic_ios(&this->base);
9745 basic_filebuf_char_ctor_file(&this->filebuf, file);
9746 basic_istream_char_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
9747 basic_ios->base.vtable = &MSVCP_basic_ifstream_char_vtable;
9751 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@ABV01@@Z */
9752 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@AEBV01@@Z */
9753 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_copy_ctor, 12)
9754 basic_ifstream_char* __thiscall basic_ifstream_char_copy_ctor(basic_ifstream_char *this,
9755 const basic_ifstream_char *copy, MSVCP_bool virt_init)
9757 TRACE("(%p %p %d)\n", this, copy, virt_init);
9758 return basic_ifstream_char_ctor_file(this, copy->filebuf.file, virt_init);
9761 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z */
9762 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDH@Z */
9763 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_name, 16)
9764 basic_ifstream_char* __thiscall basic_ifstream_char_ctor_name(basic_ifstream_char *this,
9765 const char *name, int mode, MSVCP_bool virt_init)
9767 TRACE("(%p %s %d %d)\n", this, name, mode, virt_init);
9769 basic_ifstream_char_ctor(this, virt_init);
9771 if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_in, _SH_DENYNO)) {
9772 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base);
9773 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
9778 /* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
9779 /* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
9780 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_dtor, 4)
9781 void __thiscall basic_ifstream_char_dtor(basic_ios_char *base)
9783 basic_ifstream_char *this = basic_ifstream_char_from_basic_ios(base);
9785 TRACE("(%p)\n", this);
9787 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base));
9788 basic_filebuf_char_dtor(&this->filebuf);
9791 /* ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
9792 /* ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
9793 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_vbase_dtor, 4)
9794 void __thiscall basic_ifstream_char_vbase_dtor(basic_ifstream_char *this)
9796 TRACE("(%p)\n", this);
9798 basic_ifstream_char_dtor(basic_ifstream_char_to_basic_ios(this));
9799 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base));
9802 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_vector_dtor, 8)
9803 basic_ifstream_char* __thiscall basic_ifstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
9805 basic_ifstream_char *this = basic_ifstream_char_from_basic_ios(base);
9807 TRACE("(%p %x)\n", this, flags);
9810 /* we have an array, with the number of elements stored before the first object */
9811 INT_PTR i, *ptr = (INT_PTR *)this-1;
9813 for(i=*ptr-1; i>=0; i--)
9814 basic_ifstream_char_vbase_dtor(this+i);
9815 MSVCRT_operator_delete(ptr);
9817 basic_ifstream_char_vbase_dtor(this);
9819 MSVCRT_operator_delete(this);
9825 /* ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
9826 /* ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
9827 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_close, 4)
9828 void __thiscall basic_ifstream_char_close(basic_ifstream_char *this)
9830 TRACE("(%p)\n", this);
9832 if(!basic_filebuf_char_close(&this->filebuf)) {
9833 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base);
9834 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
9838 /* ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
9839 /* ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
9840 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_is_open, 4)
9841 MSVCP_bool __thiscall basic_ifstream_char_is_open(const basic_ifstream_char *this)
9843 TRACE("(%p)\n", this);
9844 return basic_filebuf_char_is_open(&this->filebuf);
9847 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDH@Z */
9848 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDH@Z */
9849 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open, 12)
9850 void __thiscall basic_ifstream_char_open(basic_ifstream_char *this,
9851 const char *name, int mode)
9853 TRACE("(%p %s %d)\n", this, name, mode);
9855 if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_in, _SH_DENYNO)) {
9856 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base);
9857 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
9861 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDF@Z */
9862 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDF@Z */
9863 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open_old, 12)
9864 void __thiscall basic_ifstream_char_open_old(basic_ifstream_char *this,
9865 const char *name, short mode)
9867 basic_ifstream_char_open(this, name, mode);
9870 /* ?rdbuf@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
9871 /* ?rdbuf@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
9872 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_rdbuf, 4)
9873 basic_filebuf_char* __thiscall basic_ifstream_char_rdbuf(const basic_ifstream_char *this)
9875 TRACE("(%p)\n", this);
9876 return (basic_filebuf_char*)&this->filebuf;
9879 static inline basic_ios_wchar* basic_ifstream_wchar_to_basic_ios(basic_ifstream_wchar *ptr)
9881 return (basic_ios_wchar*)((char*)ptr+basic_ifstream_wchar_vbtable[1]);
9884 static inline basic_ifstream_wchar* basic_ifstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
9886 return (basic_ifstream_wchar*)((char*)ptr-basic_ifstream_wchar_vbtable[1]);
9889 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
9890 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
9891 static basic_ifstream_wchar* basic_ifstream_wchar_ctor(basic_ifstream_wchar *this, MSVCP_bool virt_init)
9893 basic_ios_wchar *basic_ios;
9895 TRACE("(%p %d)\n", this, virt_init);
9898 this->base.vbtable = basic_ifstream_wchar_vbtable;
9899 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
9900 basic_ios_wchar_ctor(basic_ios);
9902 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
9905 basic_filebuf_wchar_ctor(&this->filebuf);
9906 basic_istream_wchar_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
9907 basic_ios->base.vtable = &MSVCP_basic_ifstream_wchar_vtable;
9911 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
9912 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
9913 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor, 8)
9914 basic_ifstream_wchar* __thiscall basic_ifstream_short_ctor(basic_ifstream_wchar *this, MSVCP_bool virt_init)
9916 basic_ifstream_wchar_ctor(this, virt_init);
9917 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ifstream_short_vtable;
9921 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
9922 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
9923 static basic_ifstream_wchar* basic_ifstream_wchar_ctor_file(
9924 basic_ifstream_wchar *this, FILE *file, MSVCP_bool virt_init)
9926 basic_ios_wchar *basic_ios;
9928 TRACE("(%p %p %d)\n", this, file, virt_init);
9931 this->base.vbtable = basic_ifstream_wchar_vbtable;
9932 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
9933 basic_ios_wchar_ctor(basic_ios);
9935 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
9938 basic_filebuf_wchar_ctor_file(&this->filebuf, file);
9939 basic_istream_wchar_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
9940 basic_ios->base.vtable = &MSVCP_basic_ifstream_wchar_vtable;
9944 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
9945 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
9946 static basic_ifstream_wchar* basic_ifstream_short_ctor_file(
9947 basic_ifstream_wchar *this, FILE *file, MSVCP_bool virt_init)
9949 basic_ifstream_wchar_ctor_file(this, file, virt_init);
9950 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ifstream_short_vtable;
9954 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@ABV01@@Z */
9955 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@AEBV01@@Z */
9956 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_copy_ctor, 12)
9957 basic_ifstream_wchar* __thiscall basic_ifstream_short_copy_ctor(basic_ifstream_wchar *this,
9958 basic_ifstream_wchar *copy, MSVCP_bool virt_init)
9960 TRACE("(%p %p %d)\n", this, copy, virt_init);
9961 return basic_ifstream_short_ctor_file(this, copy->filebuf.file, virt_init);
9964 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PBDH@Z */
9965 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDH@Z */
9966 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor_name, 16)
9967 basic_ifstream_wchar* __thiscall basic_ifstream_short_ctor_name(basic_ifstream_wchar *this,
9968 const char *name, int mode, MSVCP_bool virt_init)
9970 TRACE("(%p %s %d %d)\n", this, name, mode, virt_init);
9972 basic_ifstream_short_ctor(this, virt_init);
9974 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_in, _SH_DENYNO)) {
9975 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
9976 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
9981 /* ??1?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
9982 /* ??1?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
9983 /* ??1?$basic_ifstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
9984 /* ??1?$basic_ifstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
9985 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_dtor, 4)
9986 void __thiscall basic_ifstream_wchar_dtor(basic_ios_wchar *base)
9988 basic_ifstream_wchar *this = basic_ifstream_wchar_from_basic_ios(base);
9990 TRACE("(%p)\n", this);
9992 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base));
9993 basic_filebuf_wchar_dtor(&this->filebuf);
9996 /* ??_D?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
9997 /* ??_D?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
9998 /* ??_D?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
9999 /* ??_D?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10000 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_vbase_dtor, 4)
10001 void __thiscall basic_ifstream_wchar_vbase_dtor(basic_ifstream_wchar *this)
10003 TRACE("(%p)\n", this);
10005 basic_ifstream_wchar_dtor(basic_ifstream_wchar_to_basic_ios(this));
10006 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base));
10009 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_vector_dtor, 8)
10010 basic_ifstream_wchar* __thiscall basic_ifstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
10012 basic_ifstream_wchar *this = basic_ifstream_wchar_from_basic_ios(base);
10014 TRACE("(%p %x)\n", this, flags);
10017 /* we have an array, with the number of elements stored before the first object */
10018 INT_PTR i, *ptr = (INT_PTR *)this-1;
10020 for(i=*ptr-1; i>=0; i--)
10021 basic_ifstream_wchar_vbase_dtor(this+i);
10022 MSVCRT_operator_delete(ptr);
10024 basic_ifstream_wchar_vbase_dtor(this);
10026 MSVCRT_operator_delete(this);
10032 /* ?close@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10033 /* ?close@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10034 /* ?close@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10035 /* ?close@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10036 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_close, 4)
10037 void __thiscall basic_ifstream_wchar_close(basic_ifstream_wchar *this)
10039 TRACE("(%p)\n", this);
10041 if(!basic_filebuf_wchar_close(&this->filebuf)) {
10042 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10043 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10047 /* ?is_open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
10048 /* ?is_open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
10049 /* ?is_open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
10050 /* ?is_open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
10051 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_is_open, 4)
10052 MSVCP_bool __thiscall basic_ifstream_wchar_is_open(const basic_ifstream_wchar *this)
10054 TRACE("(%p)\n", this);
10055 return basic_filebuf_wchar_is_open(&this->filebuf);
10058 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBDH@Z */
10059 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDH@Z */
10060 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_open, 12)
10061 void __thiscall basic_ifstream_wchar_open(basic_ifstream_wchar *this,
10062 const char *name, int mode)
10064 TRACE("(%p %s %d)\n", this, name, mode);
10066 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_in, _SH_DENYNO)) {
10067 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10068 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10072 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBDF@Z */
10073 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDF@Z */
10074 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_open_old, 12)
10075 void __thiscall basic_ifstream_wchar_open_old(basic_ifstream_wchar *this,
10076 const char *name, short mode)
10078 basic_ifstream_wchar_open(this, name, mode);
10081 /* ?rdbuf@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10082 /* ?rdbuf@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10083 /* ?rdbuf@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10084 /* ?rdbuf@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10085 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_rdbuf, 4)
10086 basic_filebuf_wchar* __thiscall basic_ifstream_wchar_rdbuf(const basic_ifstream_wchar *this)
10088 TRACE("(%p)\n", this);
10089 return (basic_filebuf_wchar*)&this->filebuf;
10092 static inline basic_ios_char* basic_fstream_char_to_basic_ios(basic_fstream_char *ptr)
10094 return (basic_ios_char*)((char*)ptr+basic_fstream_char_vbtable1[1]);
10097 static inline basic_fstream_char* basic_fstream_char_from_basic_ios(basic_ios_char *ptr)
10099 return (basic_fstream_char*)((char*)ptr-basic_fstream_char_vbtable1[1]);
10102 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
10103 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
10104 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor, 8)
10105 basic_fstream_char* __thiscall basic_fstream_char_ctor(basic_fstream_char *this, MSVCP_bool virt_init)
10107 basic_ios_char *basic_ios;
10109 TRACE("(%p %d)\n", this, virt_init);
10112 this->base.base1.vbtable = basic_fstream_char_vbtable1;
10113 this->base.base2.vbtable = basic_fstream_char_vbtable2;
10114 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10115 basic_ios_char_ctor(basic_ios);
10117 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10120 basic_filebuf_char_ctor(&this->filebuf);
10121 basic_iostream_char_ctor(&this->base, &this->filebuf.base, FALSE);
10122 basic_ios->base.vtable = &MSVCP_basic_fstream_char_vtable;
10126 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
10127 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10128 static basic_fstream_char* basic_fstream_char_ctor_file(basic_fstream_char *this,
10129 FILE *file, MSVCP_bool virt_init)
10131 basic_ios_char *basic_ios;
10133 TRACE("(%p %p %d)\n", this, file, virt_init);
10136 this->base.base1.vbtable = basic_fstream_char_vbtable1;
10137 this->base.base2.vbtable = basic_fstream_char_vbtable2;
10138 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10139 basic_ios_char_ctor(basic_ios);
10141 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10144 basic_filebuf_char_ctor_file(&this->filebuf, file);
10145 basic_iostream_char_ctor(&this->base, &this->filebuf.base, FALSE);
10146 basic_ios->base.vtable = &MSVCP_basic_fstream_char_vtable;
10150 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@ABV01@@Z */
10151 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@AEBV01@@Z */
10152 DEFINE_THISCALL_WRAPPER(basic_fstream_char_copy_ctor, 12)
10153 basic_fstream_char* __thiscall basic_fstream_char_copy_ctor(basic_fstream_char *this,
10154 basic_fstream_char *copy, MSVCP_bool virt_init)
10156 TRACE("(%p %p %d)\n", this, copy, virt_init);
10157 return basic_fstream_char_ctor_file(this, copy->filebuf.file, virt_init);
10160 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z */
10161 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDH@Z */
10162 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_name, 16)
10163 basic_fstream_char* __thiscall basic_fstream_char_ctor_name(basic_fstream_char *this,
10164 const char *name, int mode, MSVCP_bool virt_init)
10166 TRACE("(%p %s %d %d)\n", this, name, mode, virt_init);
10168 basic_fstream_char_ctor(this, virt_init);
10170 if(!basic_filebuf_char_open(&this->filebuf, name, mode, _SH_DENYNO)) {
10171 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10172 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10177 /* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
10178 /* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
10179 DEFINE_THISCALL_WRAPPER(basic_fstream_char_dtor, 4)
10180 void __thiscall basic_fstream_char_dtor(basic_ios_char *base)
10182 basic_fstream_char *this = basic_fstream_char_from_basic_ios(base);
10184 TRACE("(%p)\n", this);
10186 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base));
10187 basic_filebuf_char_dtor(&this->filebuf);
10190 /* ??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10191 /* ??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10192 DEFINE_THISCALL_WRAPPER(basic_fstream_char_vbase_dtor, 4)
10193 void __thiscall basic_fstream_char_vbase_dtor(basic_fstream_char *this)
10195 TRACE("(%p)\n", this);
10197 basic_fstream_char_dtor(basic_fstream_char_to_basic_ios(this));
10198 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base.base1));
10201 DEFINE_THISCALL_WRAPPER(basic_fstream_char_vector_dtor, 8)
10202 basic_fstream_char* __thiscall basic_fstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
10204 basic_fstream_char *this = basic_fstream_char_from_basic_ios(base);
10206 TRACE("(%p %x)\n", this, flags);
10209 /* we have an array, with the number of elements stored before the first object */
10210 INT_PTR i, *ptr = (INT_PTR *)this-1;
10212 for(i=*ptr-1; i>=0; i--)
10213 basic_fstream_char_vbase_dtor(this+i);
10214 MSVCRT_operator_delete(ptr);
10216 basic_fstream_char_vbase_dtor(this);
10218 MSVCRT_operator_delete(this);
10224 /* ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10225 /* ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10226 DEFINE_THISCALL_WRAPPER(basic_fstream_char_close, 4)
10227 void __thiscall basic_fstream_char_close(basic_fstream_char *this)
10229 TRACE("(%p)\n", this);
10231 if(!basic_filebuf_char_close(&this->filebuf)) {
10232 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10233 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10237 /* ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
10238 /* ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
10239 DEFINE_THISCALL_WRAPPER(basic_fstream_char_is_open, 4)
10240 MSVCP_bool __thiscall basic_fstream_char_is_open(const basic_fstream_char *this)
10242 TRACE("(%p)\n", this);
10243 return basic_filebuf_char_is_open(&this->filebuf);
10246 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDH@Z */
10247 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDH@Z */
10248 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open, 12)
10249 void __thiscall basic_fstream_char_open(basic_fstream_char *this,
10250 const char *name, int mode)
10252 TRACE("(%p %s %d)\n", this, name, mode);
10254 if(!basic_filebuf_char_open(&this->filebuf, name, mode, _SH_DENYNO)) {
10255 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
10256 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10260 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDF@Z */
10261 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDF@Z */
10262 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open_old, 12)
10263 void __thiscall basic_fstream_char_open_old(basic_fstream_char *this,
10264 const char *name, int mode)
10266 basic_fstream_char_open(this, name, mode);
10269 /* ?rdbuf@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10270 /* ?rdbuf@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10271 DEFINE_THISCALL_WRAPPER(basic_fstream_char_rdbuf, 4)
10272 basic_filebuf_char* __thiscall basic_fstream_char_rdbuf(const basic_fstream_char *this)
10274 TRACE("(%p)\n", this);
10275 return (basic_filebuf_char*)&this->filebuf;
10278 static inline basic_ios_wchar* basic_fstream_wchar_to_basic_ios(basic_fstream_wchar *ptr)
10280 return (basic_ios_wchar*)((char*)ptr+basic_fstream_wchar_vbtable1[1]);
10283 static inline basic_fstream_wchar* basic_fstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
10285 return (basic_fstream_wchar*)((char*)ptr-basic_fstream_wchar_vbtable1[1]);
10288 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
10289 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
10290 static basic_fstream_wchar* basic_fstream_wchar_ctor(basic_fstream_wchar *this, MSVCP_bool virt_init)
10292 basic_ios_wchar *basic_ios;
10294 TRACE("(%p %d)\n", this, virt_init);
10297 this->base.base1.vbtable = basic_fstream_wchar_vbtable1;
10298 this->base.base2.vbtable = basic_fstream_wchar_vbtable2;
10299 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
10300 basic_ios_wchar_ctor(basic_ios);
10302 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
10305 basic_filebuf_wchar_ctor(&this->filebuf);
10306 basic_iostream_wchar_ctor(&this->base, &this->filebuf.base, FALSE);
10307 basic_ios->base.vtable = &MSVCP_basic_fstream_wchar_vtable;
10311 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
10312 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
10313 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor, 8)
10314 basic_fstream_wchar* __thiscall basic_fstream_short_ctor(basic_fstream_wchar *this, MSVCP_bool virt_init)
10316 basic_fstream_wchar_ctor(this, virt_init);
10317 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_fstream_short_vtable;
10321 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
10322 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10323 static basic_fstream_wchar* basic_fstream_wchar_ctor_file(basic_fstream_wchar *this,
10324 FILE *file, MSVCP_bool virt_init)
10326 basic_ios_wchar *basic_ios;
10328 TRACE("(%p %p %d)\n", this, file, virt_init);
10331 this->base.base1.vbtable = basic_fstream_wchar_vbtable1;
10332 this->base.base2.vbtable = basic_fstream_wchar_vbtable2;
10333 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
10334 basic_ios_wchar_ctor(basic_ios);
10336 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
10339 basic_filebuf_wchar_ctor_file(&this->filebuf, file);
10340 basic_iostream_wchar_ctor(&this->base, &this->filebuf.base, FALSE);
10341 basic_ios->base.vtable = &MSVCP_basic_fstream_wchar_vtable;
10345 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
10346 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10347 static basic_fstream_wchar* basic_fstream_short_ctor_file(basic_fstream_wchar *this,
10348 FILE *file, MSVCP_bool virt_init)
10350 basic_fstream_wchar_ctor_file(this, file, virt_init);
10351 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_fstream_short_vtable;
10355 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@ABV01@@Z */
10356 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@AEBV01@@Z */
10357 DEFINE_THISCALL_WRAPPER(basic_fstream_short_copy_ctor, 12)
10358 basic_fstream_wchar* __thiscall basic_fstream_short_copy_ctor(basic_fstream_wchar *this,
10359 basic_fstream_wchar *copy, MSVCP_bool virt_init)
10361 TRACE("(%p %p %d)\n", this, copy, virt_init);
10362 return basic_fstream_short_ctor_file(this, copy->filebuf.file, virt_init);
10365 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PB_WHH@Z */
10366 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEB_WHH@Z */
10367 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor_name, 16)
10368 basic_fstream_wchar* __thiscall basic_fstream_short_ctor_name(basic_fstream_wchar *this,
10369 const char *name, int mode, MSVCP_bool virt_init)
10371 TRACE("(%p %s %d %d)\n", this, name, mode, virt_init);
10373 basic_fstream_short_ctor(this, virt_init);
10375 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode, _SH_DENYNO)) {
10376 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
10377 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10382 /* ??1?$basic_fstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
10383 /* ??1?$basic_fstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
10384 /* ??1?$basic_fstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
10385 /* ??1?$basic_fstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
10386 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_dtor, 4)
10387 void __thiscall basic_fstream_wchar_dtor(basic_ios_wchar *base)
10389 basic_fstream_wchar *this = basic_fstream_wchar_from_basic_ios(base);
10391 TRACE("(%p)\n", this);
10393 basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(&this->base));
10394 basic_filebuf_wchar_dtor(&this->filebuf);
10397 /* ??_D?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10398 /* ??_D?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10399 /* ??_D?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10400 /* ??_D?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10401 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_vbase_dtor, 4)
10402 void __thiscall basic_fstream_wchar_vbase_dtor(basic_fstream_wchar *this)
10404 TRACE("(%p)\n", this);
10406 basic_fstream_wchar_dtor(basic_fstream_wchar_to_basic_ios(this));
10407 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base.base1));
10410 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_vector_dtor, 8)
10411 basic_fstream_wchar* __thiscall basic_fstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
10413 basic_fstream_wchar *this = basic_fstream_wchar_from_basic_ios(base);
10415 TRACE("(%p %x)\n", this, flags);
10418 /* we have an array, with the number of elements stored before the first object */
10419 INT_PTR i, *ptr = (INT_PTR *)this-1;
10421 for(i=*ptr-1; i>=0; i--)
10422 basic_fstream_wchar_vbase_dtor(this+i);
10423 MSVCRT_operator_delete(ptr);
10425 basic_fstream_wchar_vbase_dtor(this);
10427 MSVCRT_operator_delete(this);
10433 /* ?close@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10434 /* ?close@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10435 /* ?close@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10436 /* ?close@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10437 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_close, 4)
10438 void __thiscall basic_fstream_wchar_close(basic_fstream_wchar *this)
10440 TRACE("(%p)\n", this);
10442 if(!basic_filebuf_wchar_close(&this->filebuf)) {
10443 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
10444 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10448 /* ?is_open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
10449 /* ?is_open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
10450 /* ?is_open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
10451 /* ?is_open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
10452 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_is_open, 4)
10453 MSVCP_bool __thiscall basic_fstream_wchar_is_open(const basic_fstream_wchar *this)
10455 TRACE("(%p)\n", this);
10456 return basic_filebuf_wchar_is_open(&this->filebuf);
10459 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDH@Z */
10460 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDH@Z */
10461 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_open, 12)
10462 void __thiscall basic_fstream_wchar_open(basic_fstream_wchar *this,
10463 const char *name, int mode)
10465 TRACE("(%p %s %d)\n", this, name, mode);
10467 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode, _SH_DENYNO)) {
10468 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
10469 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10473 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDF@Z */
10474 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDF@Z */
10475 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_open_old, 12)
10476 void __thiscall basic_fstream_wchar_open_old(basic_fstream_wchar *this,
10477 const char *name, int mode)
10479 basic_fstream_wchar_open(this, name, mode);
10482 /* ?rdbuf@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10483 /* ?rdbuf@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10484 /* ?rdbuf@?$basic_fstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10485 /* ?rdbuf@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10486 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_rdbuf, 4)
10487 basic_filebuf_wchar* __thiscall basic_fstream_wchar_rdbuf(const basic_fstream_wchar *this)
10489 TRACE("(%p)\n", this);
10490 return (basic_filebuf_wchar*)&this->filebuf;
10493 static inline basic_ios_char* basic_ostringstream_char_to_basic_ios(basic_ostringstream_char *ptr)
10495 return (basic_ios_char*)((char*)ptr+basic_ostringstream_char_vbtable[1]);
10498 static inline basic_ostringstream_char* basic_ostringstream_char_from_basic_ios(basic_ios_char *ptr)
10500 return (basic_ostringstream_char*)((char*)ptr-basic_ostringstream_char_vbtable[1]);
10503 /* ??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 */
10504 /* ??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 */
10505 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_str, 16)
10506 basic_ostringstream_char* __thiscall basic_ostringstream_char_ctor_str(basic_ostringstream_char *this,
10507 const basic_string_char *str, int mode, MSVCP_bool virt_init)
10509 basic_ios_char *basic_ios;
10511 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
10514 this->base.vbtable = basic_ostringstream_char_vbtable;
10515 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10516 basic_ios_char_ctor(basic_ios);
10518 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10521 basic_stringbuf_char_ctor_str(&this->strbuf, str, mode|OPENMODE_out);
10522 basic_ostream_char_ctor(&this->base, &this->strbuf.base, FALSE, TRUE, FALSE);
10523 basic_ios->base.vtable = &MSVCP_basic_ostringstream_char_vtable;
10527 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
10528 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
10529 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_mode, 12)
10530 basic_ostringstream_char* __thiscall basic_ostringstream_char_ctor_mode(
10531 basic_ostringstream_char *this, int mode, MSVCP_bool virt_init)
10533 basic_ios_char *basic_ios;
10535 TRACE("(%p %d %d)\n", this, mode, virt_init);
10538 this->base.vbtable = basic_ostringstream_char_vbtable;
10539 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10540 basic_ios_char_ctor(basic_ios);
10542 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10545 basic_stringbuf_char_ctor_mode(&this->strbuf, mode|OPENMODE_out);
10546 basic_ostream_char_ctor(&this->base, &this->strbuf.base, FALSE, TRUE, FALSE);
10547 basic_ios->base.vtable = &MSVCP_basic_ostringstream_char_vtable;
10551 /* ??_F?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
10552 /* ??_F?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
10553 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor, 8)
10554 basic_ostringstream_char* __thiscall basic_ostringstream_char_ctor(
10555 basic_ostringstream_char *this, MSVCP_bool virt_init)
10557 return basic_ostringstream_char_ctor_mode(this, 0, virt_init);
10560 /* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
10561 /* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
10562 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_dtor, 4)
10563 void __thiscall basic_ostringstream_char_dtor(basic_ios_char *base)
10565 basic_ostringstream_char *this = basic_ostringstream_char_from_basic_ios(base);
10567 TRACE("(%p)\n", this);
10569 basic_stringbuf_char_dtor(&this->strbuf);
10570 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base));
10573 /* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
10574 /* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
10575 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_vbase_dtor, 4)
10576 void __thiscall basic_ostringstream_char_vbase_dtor(basic_ostringstream_char *this)
10578 TRACE("(%p)\n", this);
10580 basic_ostringstream_char_dtor(basic_ostringstream_char_to_basic_ios(this));
10581 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base));
10584 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_vector_dtor, 8)
10585 basic_ostringstream_char* __thiscall basic_ostringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
10587 basic_ostringstream_char *this = basic_ostringstream_char_from_basic_ios(base);
10589 TRACE("(%p %x)\n", this, flags);
10592 /* we have an array, with the number of elements stored before the first object */
10593 INT_PTR i, *ptr = (INT_PTR *)this-1;
10595 for(i=*ptr-1; i>=0; i--)
10596 basic_ostringstream_char_vbase_dtor(this+i);
10597 MSVCRT_operator_delete(ptr);
10599 basic_ostringstream_char_vbase_dtor(this);
10601 MSVCRT_operator_delete(this);
10607 /* ?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 */
10608 /* ?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 */
10609 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_rdbuf, 4)
10610 basic_stringbuf_char* __thiscall basic_ostringstream_char_rdbuf(const basic_ostringstream_char *this)
10612 TRACE("(%p)\n", this);
10613 return (basic_stringbuf_char*)&this->strbuf;
10616 /* ?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 */
10617 /* ?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 */
10618 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_str_set, 8)
10619 void __thiscall basic_ostringstream_char_str_set(basic_ostringstream_char *this, const basic_string_char *str)
10621 TRACE("(%p %p)\n", this, str);
10622 basic_stringbuf_char_str_set(&this->strbuf, str);
10625 /* ?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 */
10626 /* ?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 */
10627 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_str_get, 8)
10628 basic_string_char* __thiscall basic_ostringstream_char_str_get(const basic_ostringstream_char *this, basic_string_char *ret)
10630 TRACE("(%p %p)\n", this, ret);
10631 return basic_stringbuf_char_str_get(&this->strbuf, ret);
10634 static inline basic_ios_wchar* basic_ostringstream_wchar_to_basic_ios(basic_ostringstream_wchar *ptr)
10636 return (basic_ios_wchar*)((char*)ptr+basic_ostringstream_wchar_vbtable[1]);
10639 static inline basic_ostringstream_wchar* basic_ostringstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
10641 return (basic_ostringstream_wchar*)((char*)ptr-basic_ostringstream_wchar_vbtable[1]);
10644 /* ??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 */
10645 /* ??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 */
10646 static basic_ostringstream_wchar* basic_ostringstream_wchar_ctor_str(basic_ostringstream_wchar *this,
10647 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
10649 basic_ios_wchar *basic_ios;
10651 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
10654 this->base.vbtable = basic_ostringstream_wchar_vbtable;
10655 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10656 basic_ios_wchar_ctor(basic_ios);
10658 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10661 basic_stringbuf_wchar_ctor_str(&this->strbuf, str, mode|OPENMODE_out);
10662 basic_ostream_short_ctor(&this->base, &this->strbuf.base, FALSE, TRUE, FALSE);
10663 basic_ios->base.vtable = &MSVCP_basic_ostringstream_wchar_vtable;
10667 /* ??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 */
10668 /* ??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 */
10669 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor_str, 16)
10670 basic_ostringstream_wchar* __thiscall basic_ostringstream_short_ctor_str(basic_ostringstream_wchar *this,
10671 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
10673 basic_ostringstream_wchar_ctor_str(this, str, mode, virt_init);
10674 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ostringstream_short_vtable;
10678 /* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
10679 /* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
10680 static basic_ostringstream_wchar* basic_ostringstream_wchar_ctor_mode(
10681 basic_ostringstream_wchar *this, int mode, MSVCP_bool virt_init)
10683 basic_ios_wchar *basic_ios;
10685 TRACE("(%p %d %d)\n", this, mode, virt_init);
10688 this->base.vbtable = basic_ostringstream_wchar_vbtable;
10689 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10690 basic_ios_wchar_ctor(basic_ios);
10692 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10695 basic_stringbuf_wchar_ctor_mode(&this->strbuf, mode|OPENMODE_out);
10696 basic_ostream_short_ctor(&this->base, &this->strbuf.base, FALSE, TRUE, FALSE);
10697 basic_ios->base.vtable = &MSVCP_basic_ostringstream_wchar_vtable;
10701 /* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
10702 /* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
10703 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor_mode, 12)
10704 basic_ostringstream_wchar* __thiscall basic_ostringstream_short_ctor_mode(
10705 basic_ostringstream_wchar *this, int mode, MSVCP_bool virt_init)
10707 basic_ostringstream_wchar_ctor_mode(this, mode, virt_init);
10708 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_ostringstream_short_vtable;
10712 /* ??_F?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
10713 /* ??_F?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
10714 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor, 8)
10715 basic_ostringstream_wchar* __thiscall basic_ostringstream_short_ctor(
10716 basic_ostringstream_wchar *this, MSVCP_bool virt_init)
10718 return basic_ostringstream_short_ctor_mode(this, 0, virt_init);
10721 /* ??1?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
10722 /* ??1?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
10723 /* ??1?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
10724 /* ??1?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
10725 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_dtor, 4)
10726 void __thiscall basic_ostringstream_wchar_dtor(basic_ios_wchar *base)
10728 basic_ostringstream_wchar *this = basic_ostringstream_wchar_from_basic_ios(base);
10730 TRACE("(%p)\n", this);
10732 basic_stringbuf_wchar_dtor(&this->strbuf);
10733 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base));
10736 /* ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
10737 /* ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
10738 /* ??_D?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
10739 /* ??_D?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
10740 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_vbase_dtor, 4)
10741 void __thiscall basic_ostringstream_wchar_vbase_dtor(basic_ostringstream_wchar *this)
10743 TRACE("(%p)\n", this);
10745 basic_ostringstream_wchar_dtor(basic_ostringstream_wchar_to_basic_ios(this));
10746 basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(&this->base));
10749 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_vector_dtor, 8)
10750 basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
10752 basic_ostringstream_wchar *this = basic_ostringstream_wchar_from_basic_ios(base);
10754 TRACE("(%p %x)\n", this, flags);
10757 /* we have an array, with the number of elements stored before the first object */
10758 INT_PTR i, *ptr = (INT_PTR *)this-1;
10760 for(i=*ptr-1; i>=0; i--)
10761 basic_ostringstream_wchar_vbase_dtor(this+i);
10762 MSVCRT_operator_delete(ptr);
10764 basic_ostringstream_wchar_vbase_dtor(this);
10766 MSVCRT_operator_delete(this);
10772 /* ?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 */
10773 /* ?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 */
10774 /* ?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 */
10775 /* ?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 */
10776 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_rdbuf, 4)
10777 basic_stringbuf_wchar* __thiscall basic_ostringstream_wchar_rdbuf(const basic_ostringstream_wchar *this)
10779 TRACE("(%p)\n", this);
10780 return (basic_stringbuf_wchar*)&this->strbuf;
10783 /* ?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 */
10784 /* ?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 */
10785 /* ?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 */
10786 /* ?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 */
10787 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_str_set, 8)
10788 void __thiscall basic_ostringstream_wchar_str_set(basic_ostringstream_wchar *this, const basic_string_wchar *str)
10790 TRACE("(%p %p)\n", this, str);
10791 basic_stringbuf_wchar_str_set(&this->strbuf, str);
10794 /* ?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 */
10795 /* ?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 */
10796 /* ?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 */
10797 /* ?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 */
10798 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_str_get, 8)
10799 basic_string_wchar* __thiscall basic_ostringstream_wchar_str_get(const basic_ostringstream_wchar *this, basic_string_wchar *ret)
10801 TRACE("(%p %p)\n", this, ret);
10802 return basic_stringbuf_wchar_str_get(&this->strbuf, ret);
10805 static inline basic_ios_char* basic_istringstream_char_to_basic_ios(basic_istringstream_char *ptr)
10807 return (basic_ios_char*)((char*)ptr+basic_istringstream_char_vbtable[1]);
10810 static inline basic_istringstream_char* basic_istringstream_char_from_basic_ios(basic_ios_char *ptr)
10812 return (basic_istringstream_char*)((char*)ptr-basic_istringstream_char_vbtable[1]);
10815 /* ??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 */
10816 /* ??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 */
10817 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_str, 16)
10818 basic_istringstream_char* __thiscall basic_istringstream_char_ctor_str(basic_istringstream_char *this,
10819 const basic_string_char *str, int mode, MSVCP_bool virt_init)
10821 basic_ios_char *basic_ios;
10823 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
10826 this->base.vbtable = basic_istringstream_char_vbtable;
10827 basic_ios = basic_istream_char_get_basic_ios(&this->base);
10828 basic_ios_char_ctor(basic_ios);
10830 basic_ios = basic_istream_char_get_basic_ios(&this->base);
10833 basic_stringbuf_char_ctor_str(&this->strbuf, str, mode|OPENMODE_in);
10834 basic_istream_char_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
10835 basic_ios->base.vtable = &MSVCP_basic_istringstream_char_vtable;
10839 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
10840 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
10841 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_mode, 12)
10842 basic_istringstream_char* __thiscall basic_istringstream_char_ctor_mode(
10843 basic_istringstream_char *this, int mode, MSVCP_bool virt_init)
10845 basic_ios_char *basic_ios;
10847 TRACE("(%p %d %d)\n", this, mode, virt_init);
10850 this->base.vbtable = basic_istringstream_char_vbtable;
10851 basic_ios = basic_istream_char_get_basic_ios(&this->base);
10852 basic_ios_char_ctor(basic_ios);
10854 basic_ios = basic_istream_char_get_basic_ios(&this->base);
10857 basic_stringbuf_char_ctor_mode(&this->strbuf, mode|OPENMODE_in);
10858 basic_istream_char_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
10859 basic_ios->base.vtable = &MSVCP_basic_istringstream_char_vtable;
10863 /* ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
10864 /* ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
10865 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor, 8)
10866 basic_istringstream_char* __thiscall basic_istringstream_char_ctor(
10867 basic_istringstream_char *this, MSVCP_bool virt_init)
10869 return basic_istringstream_char_ctor_mode(this, 0, virt_init);
10872 /* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
10873 /* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
10874 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_dtor, 4)
10875 void __thiscall basic_istringstream_char_dtor(basic_ios_char *base)
10877 basic_istringstream_char *this = basic_istringstream_char_from_basic_ios(base);
10879 TRACE("(%p)\n", this);
10881 basic_stringbuf_char_dtor(&this->strbuf);
10882 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base));
10885 /* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
10886 /* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
10887 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_vbase_dtor, 4)
10888 void __thiscall basic_istringstream_char_vbase_dtor(basic_istringstream_char *this)
10890 TRACE("(%p)\n", this);
10892 basic_istringstream_char_dtor(basic_istringstream_char_to_basic_ios(this));
10893 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base));
10896 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_vector_dtor, 8)
10897 basic_istringstream_char* __thiscall basic_istringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
10899 basic_istringstream_char *this = basic_istringstream_char_from_basic_ios(base);
10901 TRACE("(%p %x)\n", this, flags);
10904 /* we have an array, with the number of elements stored before the first object */
10905 INT_PTR i, *ptr = (INT_PTR *)this-1;
10907 for(i=*ptr-1; i>=0; i--)
10908 basic_istringstream_char_vbase_dtor(this+i);
10909 MSVCRT_operator_delete(ptr);
10911 basic_istringstream_char_vbase_dtor(this);
10913 MSVCRT_operator_delete(this);
10919 /* ?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 */
10920 /* ?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 */
10921 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_rdbuf, 4)
10922 basic_stringbuf_char* __thiscall basic_istringstream_char_rdbuf(const basic_istringstream_char *this)
10924 TRACE("(%p)\n", this);
10925 return (basic_stringbuf_char*)&this->strbuf;
10928 /* ?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 */
10929 /* ?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 */
10930 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_str_set, 8)
10931 void __thiscall basic_istringstream_char_str_set(basic_istringstream_char *this, const basic_string_char *str)
10933 TRACE("(%p %p)\n", this, str);
10934 basic_stringbuf_char_str_set(&this->strbuf, str);
10937 /* ?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 */
10938 /* ?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 */
10939 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_str_get, 8)
10940 basic_string_char* __thiscall basic_istringstream_char_str_get(const basic_istringstream_char *this, basic_string_char *ret)
10942 TRACE("(%p %p)\n", this, ret);
10943 return basic_stringbuf_char_str_get(&this->strbuf, ret);
10946 static inline basic_ios_wchar* basic_istringstream_wchar_to_basic_ios(basic_istringstream_wchar *ptr)
10948 return (basic_ios_wchar*)((char*)ptr+basic_istringstream_wchar_vbtable[1]);
10951 static inline basic_istringstream_wchar* basic_istringstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
10953 return (basic_istringstream_wchar*)((char*)ptr-basic_istringstream_wchar_vbtable[1]);
10956 /* ??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 */
10957 /* ??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 */
10958 static basic_istringstream_wchar* basic_istringstream_wchar_ctor_str(basic_istringstream_wchar *this,
10959 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
10961 basic_ios_wchar *basic_ios;
10963 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
10966 this->base.vbtable = basic_istringstream_wchar_vbtable;
10967 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10968 basic_ios_wchar_ctor(basic_ios);
10970 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10973 basic_stringbuf_wchar_ctor_str(&this->strbuf, str, mode|OPENMODE_in);
10974 basic_istream_wchar_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
10975 basic_ios->base.vtable = &MSVCP_basic_istringstream_wchar_vtable;
10979 /* ??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 */
10980 /* ??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 */
10981 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor_str, 16)
10982 basic_istringstream_wchar* __thiscall basic_istringstream_short_ctor_str(basic_istringstream_wchar *this,
10983 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
10985 basic_istringstream_wchar_ctor_str(this, str, mode, virt_init);
10986 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_istringstream_short_vtable;
10990 /* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
10991 /* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
10992 static basic_istringstream_wchar* basic_istringstream_wchar_ctor_mode(
10993 basic_istringstream_wchar *this, int mode, MSVCP_bool virt_init)
10995 basic_ios_wchar *basic_ios;
10997 TRACE("(%p %d %d)\n", this, mode, virt_init);
11000 this->base.vbtable = basic_istringstream_wchar_vbtable;
11001 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
11002 basic_ios_wchar_ctor(basic_ios);
11004 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
11007 basic_stringbuf_wchar_ctor_mode(&this->strbuf, mode|OPENMODE_in);
11008 basic_istream_wchar_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11009 basic_ios->base.vtable = &MSVCP_basic_istringstream_wchar_vtable;
11013 /* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
11014 /* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
11015 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor_mode, 12)
11016 basic_istringstream_wchar* __thiscall basic_istringstream_short_ctor_mode(
11017 basic_istringstream_wchar *this, int mode, MSVCP_bool virt_init)
11019 basic_istringstream_wchar_ctor_mode(this, mode, virt_init);
11020 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &MSVCP_basic_istringstream_short_vtable;
11024 /* ??_F?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11025 /* ??_F?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11026 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor, 8)
11027 basic_istringstream_wchar* __thiscall basic_istringstream_short_ctor(
11028 basic_istringstream_wchar *this, MSVCP_bool virt_init)
11030 return basic_istringstream_short_ctor_mode(this, 0, virt_init);
11033 /* ??1?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
11034 /* ??1?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
11035 /* ??1?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
11036 /* ??1?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
11037 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_dtor, 4)
11038 void __thiscall basic_istringstream_wchar_dtor(basic_ios_wchar *base)
11040 basic_istringstream_wchar *this = basic_istringstream_wchar_from_basic_ios(base);
11042 TRACE("(%p)\n", this);
11044 basic_stringbuf_wchar_dtor(&this->strbuf);
11045 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base));
11048 /* ??_D?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11049 /* ??_D?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11050 /* ??_D?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11051 /* ??_D?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11052 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_vbase_dtor, 4)
11053 void __thiscall basic_istringstream_wchar_vbase_dtor(basic_istringstream_wchar *this)
11055 TRACE("(%p)\n", this);
11057 basic_istringstream_wchar_dtor(basic_istringstream_wchar_to_basic_ios(this));
11058 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base));
11061 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_vector_dtor, 8)
11062 basic_istringstream_wchar* __thiscall basic_istringstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
11064 basic_istringstream_wchar *this = basic_istringstream_wchar_from_basic_ios(base);
11066 TRACE("(%p %x)\n", this, flags);
11069 /* we have an array, with the number of elements stored before the first object */
11070 INT_PTR i, *ptr = (INT_PTR *)this-1;
11072 for(i=*ptr-1; i>=0; i--)
11073 basic_istringstream_wchar_vbase_dtor(this+i);
11074 MSVCRT_operator_delete(ptr);
11076 basic_istringstream_wchar_vbase_dtor(this);
11078 MSVCRT_operator_delete(this);
11084 /* ?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 */
11085 /* ?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 */
11086 /* ?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 */
11087 /* ?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 */
11088 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_rdbuf, 4)
11089 basic_stringbuf_wchar* __thiscall basic_istringstream_wchar_rdbuf(const basic_istringstream_wchar *this)
11091 TRACE("(%p)\n", this);
11092 return (basic_stringbuf_wchar*)&this->strbuf;
11095 /* ?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 */
11096 /* ?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 */
11097 /* ?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 */
11098 /* ?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 */
11099 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_str_set, 8)
11100 void __thiscall basic_istringstream_wchar_str_set(basic_istringstream_wchar *this, const basic_string_wchar *str)
11102 TRACE("(%p %p)\n", this, str);
11103 basic_stringbuf_wchar_str_set(&this->strbuf, str);
11106 /* ?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 */
11107 /* ?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 */
11108 /* ?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 */
11109 /* ?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 */
11110 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_str_get, 8)
11111 basic_string_wchar* __thiscall basic_istringstream_wchar_str_get(const basic_istringstream_wchar *this, basic_string_wchar *ret)
11113 TRACE("(%p %p)\n", this, ret);
11114 return basic_stringbuf_wchar_str_get(&this->strbuf, ret);
11117 static inline basic_ios_char* basic_stringstream_char_to_basic_ios(basic_stringstream_char *ptr)
11119 return (basic_ios_char*)((char*)ptr+basic_stringstream_char_vbtable1[1]);
11122 static inline basic_stringstream_char* basic_stringstream_char_from_basic_ios(basic_ios_char *ptr)
11124 return (basic_stringstream_char*)((char*)ptr-basic_stringstream_char_vbtable1[1]);
11127 /* ??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 */
11128 /* ??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 */
11129 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_str, 16)
11130 basic_stringstream_char* __thiscall basic_stringstream_char_ctor_str(basic_stringstream_char *this,
11131 const basic_string_char *str, int mode, MSVCP_bool virt_init)
11133 basic_ios_char *basic_ios;
11135 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11138 this->base.base1.vbtable = basic_stringstream_char_vbtable1;
11139 this->base.base2.vbtable = basic_stringstream_char_vbtable2;
11140 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11141 basic_ios_char_ctor(basic_ios);
11143 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11146 basic_stringbuf_char_ctor_str(&this->strbuf, str, mode);
11147 basic_iostream_char_ctor(&this->base, &this->strbuf.base, FALSE);
11148 basic_ios->base.vtable = &MSVCP_basic_stringstream_char_vtable;
11152 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
11153 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
11154 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_mode, 12)
11155 basic_stringstream_char* __thiscall basic_stringstream_char_ctor_mode(
11156 basic_stringstream_char *this, int mode, MSVCP_bool virt_init)
11158 basic_ios_char *basic_ios;
11160 TRACE("(%p %d %d)\n", this, mode, virt_init);
11163 this->base.base1.vbtable = basic_stringstream_char_vbtable1;
11164 this->base.base2.vbtable = basic_stringstream_char_vbtable2;
11165 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11166 basic_ios_char_ctor(basic_ios);
11168 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11171 basic_stringbuf_char_ctor_mode(&this->strbuf, mode);
11172 basic_iostream_char_ctor(&this->base, &this->strbuf.base, FALSE);
11173 basic_ios->base.vtable = &MSVCP_basic_stringstream_char_vtable;
11177 /* ??_F?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11178 /* ??_F?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11179 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor, 8)
11180 basic_stringstream_char* __thiscall basic_stringstream_char_ctor(
11181 basic_stringstream_char *this, MSVCP_bool virt_init)
11183 return basic_stringstream_char_ctor_mode(
11184 this, OPENMODE_out|OPENMODE_in, virt_init);
11187 /* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
11188 /* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
11189 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_dtor, 4)
11190 void __thiscall basic_stringstream_char_dtor(basic_ios_char *base)
11192 basic_stringstream_char *this = basic_stringstream_char_from_basic_ios(base);
11194 TRACE("(%p)\n", this);
11196 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base));
11197 basic_stringbuf_char_dtor(&this->strbuf);
11200 /* ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11201 /* ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11202 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_vbase_dtor, 4)
11203 void __thiscall basic_stringstream_char_vbase_dtor(basic_stringstream_char *this)
11205 TRACE("(%p)\n", this);
11207 basic_stringstream_char_dtor(basic_stringstream_char_to_basic_ios(this));
11208 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base.base1));
11211 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_vector_dtor, 8)
11212 basic_stringstream_char* __thiscall basic_stringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
11214 basic_stringstream_char *this = basic_stringstream_char_from_basic_ios(base);
11216 TRACE("(%p %x)\n", this, flags);
11219 /* we have an array, with the number of elements stored before the first object */
11220 INT_PTR i, *ptr = (INT_PTR *)this-1;
11222 for(i=*ptr-1; i>=0; i--)
11223 basic_stringstream_char_vbase_dtor(this+i);
11224 MSVCRT_operator_delete(ptr);
11226 basic_stringstream_char_vbase_dtor(this);
11228 MSVCRT_operator_delete(this);
11234 /* ?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 */
11235 /* ?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 */
11236 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_rdbuf, 4)
11237 basic_stringbuf_char* __thiscall basic_stringstream_char_rdbuf(const basic_stringstream_char *this)
11239 TRACE("(%p)\n", this);
11240 return (basic_stringbuf_char*)&this->strbuf;
11243 /* ?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 */
11244 /* ?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 */
11245 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_str_set, 8)
11246 void __thiscall basic_stringstream_char_str_set(basic_stringstream_char *this, const basic_string_char *str)
11248 TRACE("(%p %p)\n", this, str);
11249 basic_stringbuf_char_str_set(&this->strbuf, str);
11252 /* ?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 */
11253 /* ?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 */
11254 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_str_get, 8)
11255 basic_string_char* __thiscall basic_stringstream_char_str_get(const basic_stringstream_char *this, basic_string_char *ret)
11257 TRACE("(%p %p)\n", this, ret);
11258 return basic_stringbuf_char_str_get(&this->strbuf, ret);
11261 static inline basic_ios_wchar* basic_stringstream_wchar_to_basic_ios(basic_stringstream_wchar *ptr)
11263 return (basic_ios_wchar*)((char*)ptr+basic_stringstream_wchar_vbtable1[1]);
11266 static inline basic_stringstream_wchar* basic_stringstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
11268 return (basic_stringstream_wchar*)((char*)ptr-basic_stringstream_wchar_vbtable1[1]);
11271 /* ??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 */
11272 /* ??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 */
11273 static basic_stringstream_wchar* basic_stringstream_wchar_ctor_str(basic_stringstream_wchar *this,
11274 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
11276 basic_ios_wchar *basic_ios;
11278 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11281 this->base.base1.vbtable = basic_stringstream_wchar_vbtable1;
11282 this->base.base2.vbtable = basic_stringstream_wchar_vbtable2;
11283 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11284 basic_ios_wchar_ctor(basic_ios);
11286 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11289 basic_stringbuf_wchar_ctor_str(&this->strbuf, str, mode);
11290 basic_iostream_wchar_ctor(&this->base, &this->strbuf.base, FALSE);
11291 basic_ios->base.vtable = &MSVCP_basic_stringstream_wchar_vtable;
11295 /* ??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 */
11296 /* ??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 */
11297 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor_str, 16)
11298 basic_stringstream_wchar* __thiscall basic_stringstream_short_ctor_str(basic_stringstream_wchar *this,
11299 const basic_string_wchar *str, int mode, MSVCP_bool virt_init)
11301 basic_stringstream_wchar_ctor_str(this, str, mode, virt_init);
11302 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_stringstream_short_vtable;
11306 /* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
11307 /* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
11308 static basic_stringstream_wchar* basic_stringstream_wchar_ctor_mode(
11309 basic_stringstream_wchar *this, int mode, MSVCP_bool virt_init)
11311 basic_ios_wchar *basic_ios;
11313 TRACE("(%p %d %d)\n", this, mode, virt_init);
11316 this->base.base1.vbtable = basic_stringstream_wchar_vbtable1;
11317 this->base.base2.vbtable = basic_stringstream_wchar_vbtable2;
11318 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11319 basic_ios_wchar_ctor(basic_ios);
11321 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11324 basic_stringbuf_wchar_ctor_mode(&this->strbuf, mode);
11325 basic_iostream_wchar_ctor(&this->base, &this->strbuf.base, FALSE);
11326 basic_ios->base.vtable = &MSVCP_basic_stringstream_wchar_vtable;
11330 /* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
11331 /* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
11332 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor_mode, 12)
11333 basic_stringstream_wchar* __thiscall basic_stringstream_short_ctor_mode(
11334 basic_stringstream_wchar *this, int mode, MSVCP_bool virt_init)
11336 basic_stringstream_wchar_ctor_mode(this, mode, virt_init);
11337 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &MSVCP_basic_stringstream_short_vtable;
11341 /* ??_F?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11342 /* ??_F?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11343 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor, 8)
11344 basic_stringstream_wchar* __thiscall basic_stringstream_short_ctor(
11345 basic_stringstream_wchar *this, MSVCP_bool virt_init)
11347 return basic_stringstream_short_ctor_mode(
11348 this, OPENMODE_out|OPENMODE_in, virt_init);
11351 /* ??1?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
11352 /* ??1?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
11353 /* ??1?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
11354 /* ??1?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
11355 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_dtor, 4)
11356 void __thiscall basic_stringstream_wchar_dtor(basic_ios_wchar *base)
11358 basic_stringstream_wchar *this = basic_stringstream_wchar_from_basic_ios(base);
11360 TRACE("(%p)\n", this);
11362 basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(&this->base));
11363 basic_stringbuf_wchar_dtor(&this->strbuf);
11366 /* ??_D?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11367 /* ??_D?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11368 /* ??_D?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11369 /* ??_D?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11370 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_vbase_dtor, 4)
11371 void __thiscall basic_stringstream_wchar_vbase_dtor(basic_stringstream_wchar *this)
11373 TRACE("(%p)\n", this);
11375 basic_stringstream_wchar_dtor(basic_stringstream_wchar_to_basic_ios(this));
11376 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base.base1));
11379 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_vector_dtor, 8)
11380 basic_stringstream_wchar* __thiscall basic_stringstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
11382 basic_stringstream_wchar *this = basic_stringstream_wchar_from_basic_ios(base);
11384 TRACE("(%p %x)\n", this, flags);
11387 /* we have an array, with the number of elements stored before the first object */
11388 INT_PTR i, *ptr = (INT_PTR *)this-1;
11390 for(i=*ptr-1; i>=0; i--)
11391 basic_stringstream_wchar_vbase_dtor(this+i);
11392 MSVCRT_operator_delete(ptr);
11394 basic_stringstream_wchar_vbase_dtor(this);
11396 MSVCRT_operator_delete(this);
11402 /* ?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 */
11403 /* ?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 */
11404 /* ?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 */
11405 /* ?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 */
11406 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_rdbuf, 4)
11407 basic_stringbuf_wchar* __thiscall basic_stringstream_wchar_rdbuf(const basic_stringstream_wchar *this)
11409 TRACE("(%p)\n", this);
11410 return (basic_stringbuf_wchar*)&this->strbuf;
11413 /* ?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 */
11414 /* ?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 */
11415 /* ?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 */
11416 /* ?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 */
11417 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_str_set, 8)
11418 void __thiscall basic_stringstream_wchar_str_set(basic_stringstream_wchar *this, const basic_string_wchar *str)
11420 TRACE("(%p %p)\n", this, str);
11421 basic_stringbuf_wchar_str_set(&this->strbuf, str);
11424 /* ?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 */
11425 /* ?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 */
11426 /* ?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 */
11427 /* ?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 */
11428 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_str_get, 8)
11429 basic_string_wchar* __thiscall basic_stringstream_wchar_str_get(const basic_stringstream_wchar *this, basic_string_wchar *ret)
11431 TRACE("(%p %p)\n", this, ret);
11432 return basic_stringbuf_wchar_str_get(&this->strbuf, ret);
11435 /* ?_Init@strstreambuf@std@@IAEXHPAD0H@Z */
11436 /* ?_Init@strstreambuf@std@@IEAAX_JPEAD1H@Z */
11437 DEFINE_THISCALL_WRAPPER(strstreambuf__Init, 20)
11438 void __thiscall strstreambuf__Init(strstreambuf *this, streamsize len, char *g, char *p, int mode)
11440 TRACE("(%p %ld %p %p %d)\n", this, len, g, p, mode);
11442 this->minsize = 32;
11443 this->endsave = NULL;
11444 this->strmode = mode;
11445 this->palloc = NULL;
11446 this->pfree = NULL;
11449 this->strmode |= STRSTATE_Dynamic;
11450 if(len > this->minsize)
11451 this->minsize = len;
11452 this->seekhigh = NULL;
11461 this->seekhigh = g+len;
11462 basic_streambuf_char_setg(&this->base, g, g, p ? p : this->seekhigh);
11464 basic_streambuf_char_setp(&this->base, p, this->seekhigh);
11467 /* ??0strstreambuf@std@@QAE@PACH0@Z */
11468 /* ??0strstreambuf@std@@QEAA@PEAC_J0@Z */
11469 /* ??0strstreambuf@std@@QAE@PADH0@Z */
11470 /* ??0strstreambuf@std@@QEAA@PEAD_J0@Z */
11471 /* ??0strstreambuf@std@@QAE@PAEH0@Z */
11472 /* ??0strstreambuf@std@@QEAA@PEAE_J0@Z */
11473 static strstreambuf* strstreambuf_ctor_get_put(strstreambuf *this, char *g, streamsize len, char *p)
11475 TRACE("(%p %p %ld %p)\n", this, g, len, p);
11477 basic_streambuf_char_ctor(&this->base);
11478 this->base.vtable = &MSVCP_strstreambuf_vtable;
11480 strstreambuf__Init(this, len, g, p, 0);
11484 /* ?_Tidy@strstreambuf@std@@IAEXXZ */
11485 /* ?_Tidy@strstreambuf@std@@IEAAXXZ */
11486 DEFINE_THISCALL_WRAPPER(strstreambuf__Tidy, 4)
11487 void __thiscall strstreambuf__Tidy(strstreambuf *this)
11489 TRACE("(%p)\n", this);
11491 if((this->strmode & STRSTATE_Allocated) && !(this->strmode & STRSTATE_Frozen)) {
11493 this->pfree(basic_streambuf_char_eback(&this->base));
11495 MSVCRT_operator_delete(basic_streambuf_char_eback(&this->base));
11498 this->endsave = NULL;
11499 this->seekhigh = NULL;
11500 this->strmode &= ~(STRSTATE_Allocated | STRSTATE_Frozen);
11501 basic_streambuf_char_setg(&this->base, NULL, NULL, NULL);
11502 basic_streambuf_char_setp(&this->base, NULL, NULL);
11505 /* ??1strstreambuf@std@@UAE@XZ */
11506 /* ??1strstreambuf@std@@UEAA@XZ */
11507 DEFINE_THISCALL_WRAPPER(strstreambuf_dtor, 4)
11508 void __thiscall strstreambuf_dtor(strstreambuf *this)
11510 TRACE("(%p)\n", this);
11512 strstreambuf__Tidy(this);
11513 basic_streambuf_char_dtor(&this->base);
11516 DEFINE_THISCALL_WRAPPER(strstreambuf_vector_dtor, 8)
11517 strstreambuf* __thiscall strstreambuf_vector_dtor(strstreambuf *this, unsigned int flags)
11519 TRACE("(%p %x)\n", this, flags);
11521 /* we have an array, with the number of elements stored before the first object */
11522 INT_PTR i, *ptr = (INT_PTR *)this-1;
11524 for(i=*ptr-1; i>=0; i--)
11525 strstreambuf_dtor(this+i);
11526 MSVCRT_operator_delete(ptr);
11528 strstreambuf_dtor(this);
11530 MSVCRT_operator_delete(this);
11536 /* ?freeze@strstreambuf@std@@QAEX_N@Z */
11537 /* ?freeze@strstreambuf@std@@QEAAX_N@Z */
11538 DEFINE_THISCALL_WRAPPER(strstreambuf_freeze, 8)
11539 void __thiscall strstreambuf_freeze(strstreambuf *this, MSVCP_bool freeze)
11541 TRACE("(%p %d)\n", this, freeze);
11543 if(!freeze == !(this->strmode *STRSTATE_Frozen))
11547 this->strmode |= STRSTATE_Frozen;
11548 this->endsave = basic_streambuf_char_epptr(&this->base);
11549 basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base),
11550 basic_streambuf_char_pptr(&this->base), basic_streambuf_char_eback(&this->base));
11552 this->strmode &= ~STRSTATE_Frozen;
11553 basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base),
11554 basic_streambuf_char_pptr(&this->base), this->endsave);
11558 /* ?overflow@strstreambuf@std@@MAEHH@Z */
11559 /* ?overflow@strstreambuf@std@@MEAAHH@Z */
11560 DEFINE_THISCALL_WRAPPER(strstreambuf_overflow, 8)
11561 int __thiscall strstreambuf_overflow(strstreambuf *this, int c)
11563 MSVCP_size_t old_size, size;
11566 TRACE("(%p %d)\n", this, c);
11571 if(this->strmode & STRSTATE_Frozen)
11574 ptr = basic_streambuf_char_pptr(&this->base);
11575 if(ptr && ptr<basic_streambuf_char_epptr(&this->base))
11576 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = c);
11578 if(!(this->strmode & STRSTATE_Dynamic) || (this->strmode & STRSTATE_Constant))
11581 ptr = basic_streambuf_char_eback(&this->base);
11582 old_size = ptr ? basic_streambuf_char_epptr(&this->base) - ptr : 0;
11584 size = old_size + old_size/2;
11585 if(size < this->minsize)
11586 size = this->minsize;
11589 buf = this->palloc(size);
11591 buf = MSVCRT_operator_new(size);
11595 memcpy(buf, ptr, old_size);
11596 if(this->strmode & STRSTATE_Allocated) {
11600 MSVCRT_operator_delete(ptr);
11603 this->strmode |= STRSTATE_Allocated;
11605 this->seekhigh = buf;
11606 basic_streambuf_char_setp(&this->base, buf, buf+size);
11607 basic_streambuf_char_setg(&this->base, buf, buf, buf);
11609 this->seekhigh = this->seekhigh-ptr+buf;
11610 basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base)-ptr+buf,
11611 basic_streambuf_char_pptr(&this->base)-ptr+buf, buf+size);
11612 basic_streambuf_char_setg(&this->base, buf, basic_streambuf_char_gptr(&this->base)-ptr+buf,
11613 basic_streambuf_char_pptr(&this->base));
11616 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = c);
11619 /* ?pbackfail@strstreambuf@std@@MAEHH@Z */
11620 /* ?pbackfail@strstreambuf@std@@MEAAHH@Z */
11621 DEFINE_THISCALL_WRAPPER(strstreambuf_pbackfail, 8)
11622 int __thiscall strstreambuf_pbackfail(strstreambuf *this, int c)
11624 char *ptr = basic_streambuf_char_gptr(&this->base);
11626 TRACE("(%p %d)\n", this, c);
11628 if(ptr<=basic_streambuf_char_eback(&this->base)
11629 || ((this->strmode & STRSTATE_Constant) && c!=ptr[-1]))
11632 basic_streambuf_char_gbump(&this->base, -1);
11635 if(this->strmode & STRSTATE_Constant)
11636 return (unsigned char)c;
11638 return (unsigned char)(ptr[0] = c);
11641 /* ?seekoff@strstreambuf@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
11642 /* ?seekoff@strstreambuf@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
11643 DEFINE_THISCALL_WRAPPER(strstreambuf_seekoff, 20)
11644 fpos_int* __thiscall strstreambuf_seekoff(strstreambuf *this, fpos_int *ret, streamoff off, int way, int mode)
11646 char *eback = basic_streambuf_char_eback(&this->base);
11647 char *pptr = basic_streambuf_char_pptr(&this->base);
11648 char *gptr = basic_streambuf_char_gptr(&this->base);
11650 TRACE("(%p %p %ld %d %d)\n", this, ret, off, way, mode);
11655 if(pptr > this->seekhigh)
11656 this->seekhigh = pptr;
11658 if((mode & OPENMODE_in) && gptr) {
11659 if(way==SEEKDIR_cur && !(mode & OPENMODE_out))
11661 else if(way == SEEKDIR_end)
11662 off += this->seekhigh-eback;
11663 else if(way != SEEKDIR_beg)
11666 if(off<0 || off>this->seekhigh-eback) {
11669 basic_streambuf_char_gbump(&this->base, eback-gptr+off);
11670 if((mode & OPENMODE_out) && pptr) {
11671 basic_streambuf_char_setp_next(&this->base, eback,
11672 gptr, basic_streambuf_char_epptr(&this->base));
11675 }else if((mode & OPENMODE_out) && pptr) {
11676 if(way == SEEKDIR_cur)
11678 else if(way == SEEKDIR_end)
11679 off += this->seekhigh-eback;
11680 else if(way != SEEKDIR_beg)
11683 if(off<0 || off>this->seekhigh-eback)
11686 basic_streambuf_char_pbump(&this->base, eback-pptr+off);
11695 /* ?seekpos@strstreambuf@std@@MAE?AV?$fpos@H@2@V32@H@Z */
11696 /* ?seekpos@strstreambuf@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
11697 DEFINE_THISCALL_WRAPPER(strstreambuf_seekpos, 36)
11698 fpos_int* __thiscall strstreambuf_seekpos(strstreambuf *this, fpos_int *ret, fpos_int pos, int mode)
11700 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
11702 if(pos.off==-1 && pos.pos==0 && pos.state==0) {
11707 return strstreambuf_seekoff(this, ret, pos.off, SEEKDIR_beg, mode);
11710 /* ?underflow@strstreambuf@std@@MAEHXZ */
11711 /* ?underflow@strstreambuf@std@@MEAAHXZ */
11712 DEFINE_THISCALL_WRAPPER(strstreambuf_underflow, 4)
11713 int __thiscall strstreambuf_underflow(strstreambuf *this)
11715 char *gptr = basic_streambuf_char_gptr(&this->base);
11718 TRACE("(%p)\n", this);
11723 if(gptr < basic_streambuf_char_egptr(&this->base))
11724 return (unsigned char)(*gptr);
11726 pptr = basic_streambuf_char_gptr(&this->base);
11727 if(pptr > this->seekhigh)
11728 this->seekhigh = pptr;
11730 if(this->seekhigh <= gptr)
11733 basic_streambuf_char_setg(&this->base, basic_streambuf_char_eback(&this->base),
11734 gptr, this->seekhigh);
11735 return (unsigned char)(*gptr);
11738 static inline basic_ios_char* ostrstream_to_basic_ios(ostrstream *ptr)
11740 return (basic_ios_char*)((char*)ptr+ostrstream_vbtable[1]);
11743 static inline ostrstream* ostrstream_from_basic_ios(basic_ios_char *ptr)
11745 return (ostrstream*)((char*)ptr-ostrstream_vbtable[1]);
11748 /* ??0ostrstream@std@@QAE@PADHH@Z */
11749 DEFINE_THISCALL_WRAPPER(ostrstream_ctor, 20)
11750 ostrstream* __thiscall ostrstream_ctor(ostrstream *this, char *buf, streamsize size, int mode, MSVCP_bool virt_init)
11752 basic_ios_char *basic_ios;
11754 TRACE("(%p %p %ld %d %d)\n", this, buf, size, mode, virt_init);
11757 this->base.vbtable = ostrstream_vbtable;
11758 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
11759 basic_ios_char_ctor(basic_ios);
11761 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
11764 strstreambuf_ctor_get_put(&this->buf, buf, size,
11765 buf && (mode & OPENMODE_app) ? buf+strlen(buf) : buf);
11766 basic_ostream_char_ctor(&this->base, &this->buf.base, FALSE, TRUE, FALSE);
11767 basic_ios->base.vtable = &MSVCP_ostrstream_vtable;
11771 /* ??1ostrstream@std@@UAE@XZ */
11772 /* ??1ostrstream@std@@UEAA@XZ */
11773 DEFINE_THISCALL_WRAPPER(ostrstream_dtor, 4)
11774 void __thiscall ostrstream_dtor(basic_ios_char *base)
11776 ostrstream *this = ostrstream_from_basic_ios(base);
11778 TRACE("(%p)\n", this);
11780 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base));
11781 strstreambuf_dtor(&this->buf);
11784 static void ostrstream_vbase_dtor(ostrstream *this)
11786 TRACE("(%p)\n", this);
11788 ostrstream_dtor(ostrstream_to_basic_ios(this));
11789 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base));
11792 DEFINE_THISCALL_WRAPPER(ostrstream_vector_dtor, 8)
11793 ostrstream* __thiscall ostrstream_vector_dtor(basic_ios_char *base, unsigned int flags)
11795 ostrstream *this = ostrstream_from_basic_ios(base);
11797 TRACE("(%p %x)\n", this, flags);
11800 /* we have an array, with the number of elements stored before the first object */
11801 INT_PTR i, *ptr = (INT_PTR *)this-1;
11803 for(i=*ptr-1; i>=0; i--)
11804 ostrstream_vbase_dtor(this+i);
11805 MSVCRT_operator_delete(ptr);
11807 ostrstream_vbase_dtor(this);
11809 MSVCRT_operator_delete(this);
11815 static inline istrstream* istrstream_from_basic_ios(basic_ios_char *ptr)
11817 return (istrstream*)((char*)ptr-istrstream_vbtable[1]);
11820 /* ??1istrstream@std@@UAE@XZ */
11821 /* ??1istrstream@std@@UEAA@XZ */
11822 DEFINE_THISCALL_WRAPPER(istrstream_dtor, 4)
11823 void __thiscall istrstream_dtor(basic_ios_char *base)
11825 istrstream *this = istrstream_from_basic_ios(base);
11827 TRACE("(%p)\n", this);
11829 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base));
11830 strstreambuf_dtor(&this->buf);
11833 static inline basic_ios_char* strstream_to_basic_ios(strstream *ptr)
11835 return (basic_ios_char*)((char*)ptr+strstream_vbtable1[1]);
11838 static inline strstream* strstream_from_basic_ios(basic_ios_char *ptr)
11840 return (strstream*)((char*)ptr-strstream_vbtable1[1]);
11843 /* ??0strstream@std@@QAE@PADHH@Z */
11844 /* ??0strstream@std@@QEAA@PEAD_JH@Z */
11845 DEFINE_THISCALL_WRAPPER(strstream_ctor, 20)
11846 strstream* __thiscall strstream_ctor(strstream *this, char *buf, streamsize size, int mode, MSVCP_bool virt_init)
11848 basic_ios_char *basic_ios;
11850 TRACE("(%p %p %ld %d %d)\n", this, buf, size, mode, virt_init);
11853 this->base.base1.vbtable = strstream_vbtable1;
11854 this->base.base2.vbtable = strstream_vbtable2;
11855 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11856 basic_ios_char_ctor(basic_ios);
11858 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11861 strstreambuf_ctor_get_put(&this->buf, buf, size,
11862 buf && (mode & OPENMODE_app) ? buf+strlen(buf) : buf);
11863 basic_iostream_char_ctor(&this->base, &this->buf.base, FALSE);
11864 basic_ios->base.vtable = &MSVCP_strstream_vtable;
11868 /* ??1strstream@std@@UAE@XZ */
11869 /* ??1strstream@std@@UEAA@XZ */
11870 DEFINE_THISCALL_WRAPPER(strstream_dtor, 4)
11871 void __thiscall strstream_dtor(basic_ios_char *base)
11873 strstream *this = strstream_from_basic_ios(base);
11875 TRACE("(%p)\n", this);
11877 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base));
11878 strstreambuf_dtor(&this->buf);
11881 static void strstream_vbase_dtor(strstream *this)
11883 TRACE("(%p)\n", this);
11885 strstream_dtor(strstream_to_basic_ios(this));
11886 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base.base1));
11889 DEFINE_THISCALL_WRAPPER(strstream_vector_dtor, 8)
11890 strstream* __thiscall strstream_vector_dtor(basic_ios_char *base, unsigned int flags)
11892 strstream *this = strstream_from_basic_ios(base);
11894 TRACE("(%p %x)\n", this, flags);
11897 /* we have an array, with the number of elements stored before the first object */
11898 INT_PTR i, *ptr = (INT_PTR *)this-1;
11900 for(i=*ptr-1; i>=0; i--)
11901 strstream_vbase_dtor(this+i);
11902 MSVCRT_operator_delete(ptr);
11904 strstream_vbase_dtor(this);
11906 MSVCRT_operator_delete(this);
11912 static void __cdecl setprecision_func(ios_base *base, streamsize prec)
11914 ios_base_precision_set(base, prec);
11917 /* ?setprecision@std@@YA?AU?$_Smanip@H@1@H@Z */
11918 /* ?setprecision@std@@YA?AU?$_Smanip@_J@1@_J@Z */
11919 manip_streamsize* __cdecl setprecision(manip_streamsize *ret, streamsize prec)
11921 TRACE("(%p %ld)\n", ret, prec);
11923 ret->pfunc = setprecision_func;
11928 static void __cdecl setw_func(ios_base *base, streamsize width)
11930 ios_base_width_set(base, width);
11933 /* ?setw@std@@YA?AU?$_Smanip@H@1@H@Z */
11934 /* ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z */
11935 manip_streamsize* __cdecl setw(manip_streamsize *ret, streamsize width)
11937 TRACE("(%p %ld)\n", ret, width);
11939 ret->pfunc = setw_func;
11944 static void __cdecl resetioflags_func(ios_base *base, int mask)
11946 ios_base_setf_mask(base, 0, mask);
11949 /* ?resetiosflags@std@@YA?AU?$_Smanip@H@1@H@Z */
11950 manip_int* __cdecl resetiosflags(manip_int *ret, int mask)
11952 TRACE("(%p %d)\n", ret, mask);
11954 ret->pfunc = resetioflags_func;
11959 static void __cdecl setiosflags_func(ios_base *base, int mask)
11961 ios_base_setf_mask(base, FMTFLAG_mask, mask);
11964 /* ?setiosflags@std@@YA?AU?$_Smanip@H@1@H@Z */
11965 manip_int* __cdecl setiosflags(manip_int *ret, int mask)
11967 TRACE("(%p %d)\n", ret, mask);
11969 ret->pfunc = setiosflags_func;
11974 static void __cdecl setbase_func(ios_base *base, int set_base)
11977 set_base = FMTFLAG_dec;
11978 else if(set_base == 8)
11979 set_base = FMTFLAG_oct;
11980 else if(set_base == 16)
11981 set_base = FMTFLAG_hex;
11985 ios_base_setf_mask(base, set_base, FMTFLAG_basefield);
11988 /* ?setbase@std@@YA?AU?$_Smanip@H@1@H@Z */
11989 manip_int* __cdecl setbase(manip_int *ret, int base)
11991 TRACE("(%p %d)\n", ret, base);
11993 ret->pfunc = setbase_func;
11998 static basic_filebuf_char filebuf_char_stdin;
11999 /* ?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A */
12001 basic_istream_char obj;
12002 basic_ios_char vbase;
12004 /* ?_Ptr_cin@std@@3PAV?$basic_istream@DU?$char_traits@D@std@@@1@A */
12005 /* ?_Ptr_cin@std@@3PEAV?$basic_istream@DU?$char_traits@D@std@@@1@EA */
12006 basic_istream_char *_Ptr_cin = &cin.obj;
12008 static basic_filebuf_wchar filebuf_short_stdin;
12009 /* ?wcin@std@@3V?$basic_istream@GU?$char_traits@G@std@@@1@A */
12011 basic_istream_wchar obj;
12012 basic_ios_wchar vbase;
12013 } ucin = { { 0 } };
12014 /* ?_Ptr_wcin@std@@3PAV?$basic_istream@GU?$char_traits@G@std@@@1@A */
12015 /* ?_Ptr_wcin@std@@3PEAV?$basic_istream@GU?$char_traits@G@std@@@1@EA */
12016 basic_istream_wchar *_Ptr_ucin = &ucin.obj;
12018 static basic_filebuf_wchar filebuf_wchar_stdin;
12019 /* ?wcin@std@@3V?$basic_istream@_WU?$char_traits@_W@std@@@1@A */
12021 basic_istream_wchar obj;
12022 basic_ios_wchar vbase;
12023 } wcin = { { 0 } };
12024 /* ?_Ptr_wcin@std@@3PAV?$basic_istream@_WU?$char_traits@_W@std@@@1@A */
12025 /* ?_Ptr_wcin@std@@3PEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@EA */
12026 basic_istream_wchar *_Ptr_wcin = &wcin.obj;
12028 static basic_filebuf_char filebuf_char_stdout;
12029 /* ?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12031 basic_ostream_char obj;
12032 basic_ios_char vbase;
12033 } cout = { { 0 } };
12034 /* ?_Ptr_cout@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12035 /* ?_Ptr_cout@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
12036 basic_ostream_char *_Ptr_cout = &cout.obj;
12038 static basic_filebuf_wchar filebuf_short_stdout;
12039 /* ?wcout@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12041 basic_ostream_wchar obj;
12042 basic_ios_wchar vbase;
12043 } ucout = { { 0 } };
12044 /* ?_Ptr_wcout@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12045 /* ?_Ptr_wcout@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
12046 basic_ostream_wchar *_Ptr_ucout = &ucout.obj;
12048 static basic_filebuf_wchar filebuf_wchar_stdout;
12049 /* ?wcout@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12051 basic_ostream_wchar obj;
12052 basic_ios_wchar vbase;
12053 } wcout = { { 0 } };
12054 /* ?_Ptr_wcout@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12055 /* ?_Ptr_wcout@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
12056 basic_ostream_wchar *_Ptr_wcout = &wcout.obj;
12058 static basic_filebuf_char filebuf_char_stderr;
12059 /* ?cerr@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12061 basic_ostream_char obj;
12062 basic_ios_char vbase;
12063 } cerr = { { 0 } };
12064 /* ?_Ptr_cerr@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12065 /* ?_Ptr_cerr@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
12066 basic_ostream_char *_Ptr_cerr = &cerr.obj;
12068 static basic_filebuf_wchar filebuf_short_stderr;
12069 /* ?wcerr@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12071 basic_ostream_wchar obj;
12072 basic_ios_wchar vbase;
12073 } ucerr = { { 0 } };
12074 /* ?_Ptr_wcerr@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12075 /* ?_Ptr_wcerr@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
12076 basic_ostream_wchar *_Ptr_ucerr = &ucerr.obj;
12078 static basic_filebuf_wchar filebuf_wchar_stderr;
12079 /* ?wcerr@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12081 basic_ostream_wchar obj;
12082 basic_ios_wchar vbase;
12083 } wcerr = { { 0 } };
12084 /* ?_Ptr_wcerr@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12085 /* ?_Ptr_wcerr@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
12086 basic_ostream_wchar *_Ptr_wcerr = &wcerr.obj;
12088 static basic_filebuf_char filebuf_char_log;
12089 /* ?clog@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12091 basic_ostream_char obj;
12092 basic_ios_char vbase;
12093 } clog = { { 0 } };
12094 /* ?_Ptr_clog@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12095 /* ?_Ptr_clog@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
12096 basic_ostream_char *_Ptr_clog = &clog.obj;
12098 static basic_filebuf_wchar filebuf_short_log;
12099 /* ?wclog@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12101 basic_ostream_wchar obj;
12102 basic_ios_wchar vbase;
12103 } uclog = { { 0 } };
12104 /* ?_Ptr_wclog@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12105 /* ?_Ptr_wclog@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
12106 basic_ostream_wchar *_Ptr_uclog = &uclog.obj;
12108 static basic_filebuf_wchar filebuf_wchar_log;
12109 /* ?wclog@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12111 basic_ostream_wchar obj;
12112 basic_ios_wchar vbase;
12113 } wclog = { { 0 } };
12114 /* ?_Ptr_wclog@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12115 /* ?_Ptr_wclog@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
12116 basic_ostream_wchar *_Ptr_wclog = &wclog.obj;
12118 /* ?_Init_cnt@Init@ios_base@std@@0HA */
12119 int ios_base_Init__Init_cnt = -1;
12121 /* ?_Init_ctor@Init@ios_base@std@@CAXPAV123@@Z */
12122 /* ?_Init_ctor@Init@ios_base@std@@CAXPEAV123@@Z */
12123 static void ios_base_Init__Init_ctor(void *this)
12125 TRACE("(%p)\n", this);
12127 if(ios_base_Init__Init_cnt < 0)
12128 ios_base_Init__Init_cnt = 1;
12130 ios_base_Init__Init_cnt++;
12133 /* ??0Init@ios_base@std@@QAE@XZ */
12134 /* ??0Init@ios_base@std@@QEAA@XZ */
12135 DEFINE_THISCALL_WRAPPER(ios_base_Init_ctor, 4)
12136 void* __thiscall ios_base_Init_ctor(void *this)
12138 ios_base_Init__Init_ctor(this);
12142 /* ?_Init_dtor@Init@ios_base@std@@CAXPAV123@@Z */
12143 /* ?_Init_dtor@Init@ios_base@std@@CAXPEAV123@@Z */
12144 static void ios_base_Init__Init_dtor(void *this)
12146 TRACE("(%p)\n", this);
12148 ios_base_Init__Init_cnt--;
12149 if(!ios_base_Init__Init_cnt) {
12150 basic_ostream_char_flush(&cout.obj);
12151 basic_ostream_char_flush(&cerr.obj);
12152 basic_ostream_char_flush(&clog.obj);
12156 /* ??1Init@ios_base@std@@QAE@XZ */
12157 /* ??1Init@ios_base@std@@QEAA@XZ */
12158 DEFINE_THISCALL_WRAPPER(ios_base_Init_dtor, 4)
12159 void __thiscall ios_base_Init_dtor(void *this)
12161 ios_base_Init__Init_dtor(this);
12164 /* ??4Init@ios_base@std@@QAEAAV012@ABV012@@Z */
12165 /* ??4Init@ios_base@std@@QEAAAEAV012@AEBV012@@Z */
12166 DEFINE_THISCALL_WRAPPER(ios_base_Init_op_assign, 8)
12167 void* __thiscall ios_base_Init_op_assign(void *this, void *rhs)
12169 TRACE("(%p %p)\n", this, rhs);
12173 /* ?_Init_cnt@_Winit@std@@0HA */
12174 int _Winit__Init_cnt = -1;
12176 /* ??0_Winit@std@@QAE@XZ */
12177 /* ??0_Winit@std@@QEAA@XZ */
12178 DEFINE_THISCALL_WRAPPER(_Winit_ctor, 4)
12179 void* __thiscall _Winit_ctor(void *this)
12181 TRACE("(%p)\n", this);
12183 if(_Winit__Init_cnt < 0)
12184 _Winit__Init_cnt = 1;
12186 _Winit__Init_cnt++;
12191 /* ??1_Winit@std@@QAE@XZ */
12192 /* ??1_Winit@std@@QAE@XZ */
12193 DEFINE_THISCALL_WRAPPER(_Winit_dtor, 4)
12194 void __thiscall _Winit_dtor(void *this)
12196 TRACE("(%p)\n", this);
12198 _Winit__Init_cnt--;
12199 if(!_Winit__Init_cnt) {
12200 basic_ostream_wchar_flush(&wcout.obj);
12201 basic_ostream_wchar_flush(&wcerr.obj);
12202 basic_ostream_wchar_flush(&wclog.obj);
12206 /* ??4_Winit@std@@QAEAAV01@ABV01@@Z */
12207 /* ??4_Winit@std@@QEAAAEAV01@AEBV01@@Z */
12208 DEFINE_THISCALL_WRAPPER(_Winit_op_assign, 8)
12209 void* __thiscall _Winit_op_assign(void *this, void *rhs)
12211 TRACE("(%p %p)\n", this, rhs);
12215 void init_io(void *base)
12218 init_iosb_rtti(base);
12219 init_ios_base_rtti(base);
12220 init_basic_ios_char_rtti(base);
12221 init_basic_ios_wchar_rtti(base);
12222 init_basic_ios_short_rtti(base);
12223 init_basic_streambuf_char_rtti(base);
12224 init_basic_streambuf_wchar_rtti(base);
12225 init_basic_streambuf_short_rtti(base);
12226 init_basic_filebuf_char_rtti(base);
12227 init_basic_filebuf_wchar_rtti(base);
12228 init_basic_filebuf_short_rtti(base);
12229 init_basic_stringbuf_char_rtti(base);
12230 init_basic_stringbuf_wchar_rtti(base);
12231 init_basic_stringbuf_short_rtti(base);
12232 init_basic_ostream_char_rtti(base);
12233 init_basic_ostream_wchar_rtti(base);
12234 init_basic_ostream_short_rtti(base);
12235 init_basic_istream_char_rtti(base);
12236 init_basic_istream_wchar_rtti(base);
12237 init_basic_istream_short_rtti(base);
12238 init_basic_iostream_char_rtti(base);
12239 init_basic_iostream_wchar_rtti(base);
12240 init_basic_iostream_short_rtti(base);
12241 init_basic_ofstream_char_rtti(base);
12242 init_basic_ofstream_wchar_rtti(base);
12243 init_basic_ofstream_short_rtti(base);
12244 init_basic_ifstream_char_rtti(base);
12245 init_basic_ifstream_wchar_rtti(base);
12246 init_basic_ifstream_short_rtti(base);
12247 init_basic_fstream_char_rtti(base);
12248 init_basic_fstream_wchar_rtti(base);
12249 init_basic_fstream_short_rtti(base);
12250 init_basic_ostringstream_char_rtti(base);
12251 init_basic_ostringstream_wchar_rtti(base);
12252 init_basic_ostringstream_short_rtti(base);
12253 init_basic_istringstream_char_rtti(base);
12254 init_basic_istringstream_wchar_rtti(base);
12255 init_basic_istringstream_short_rtti(base);
12256 init_basic_stringstream_char_rtti(base);
12257 init_basic_stringstream_wchar_rtti(base);
12258 init_basic_stringstream_short_rtti(base);
12259 init_strstreambuf_rtti(base);
12260 init_strstream_rtti(base);
12261 init_ostrstream_rtti(base);
12264 basic_filebuf_char_ctor_file(&filebuf_char_stdin, stdin);
12265 basic_istream_char_ctor(&cin.obj, &filebuf_char_stdin.base, FALSE/*FIXME*/, TRUE);
12267 basic_filebuf_short_ctor_file(&filebuf_short_stdin, stdin);
12268 basic_istream_short_ctor(&ucin.obj, &filebuf_short_stdin.base, FALSE/*FIXME*/, TRUE);
12270 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stdin, stdin);
12271 basic_istream_wchar_ctor(&wcin.obj, &filebuf_wchar_stdin.base, FALSE/*FIXME*/, TRUE);
12273 basic_filebuf_char_ctor_file(&filebuf_char_stdout, stdout);
12274 basic_ostream_char_ctor(&cout.obj, &filebuf_char_stdout.base, FALSE/*FIXME*/, TRUE, TRUE);
12276 basic_filebuf_short_ctor_file(&filebuf_short_stdout, stdout);
12277 basic_ostream_short_ctor(&ucout.obj, &filebuf_short_stdout.base, FALSE/*FIXME*/, TRUE, TRUE);
12279 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stdout, stdout);
12280 basic_ostream_short_ctor(&wcout.obj, &filebuf_wchar_stdout.base, FALSE/*FIXME*/, TRUE, TRUE);
12282 basic_filebuf_char_ctor_file(&filebuf_char_stderr, stderr);
12283 basic_ostream_char_ctor(&cerr.obj, &filebuf_char_stderr.base, FALSE/*FIXME*/, TRUE, TRUE);
12285 basic_filebuf_short_ctor_file(&filebuf_short_stderr, stderr);
12286 basic_ostream_short_ctor(&ucerr.obj, &filebuf_short_stderr.base, FALSE/*FIXME*/, TRUE, TRUE);
12288 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stderr, stderr);
12289 basic_ostream_short_ctor(&wcerr.obj, &filebuf_wchar_stderr.base, FALSE/*FIXME*/, TRUE, TRUE);
12291 basic_filebuf_char_ctor_file(&filebuf_char_log, stderr);
12292 basic_ostream_char_ctor(&clog.obj, &filebuf_char_log.base, FALSE/*FIXME*/, TRUE, TRUE);
12294 basic_filebuf_short_ctor_file(&filebuf_short_log, stderr);
12295 basic_ostream_short_ctor(&uclog.obj, &filebuf_short_log.base, FALSE/*FIXME*/, TRUE, TRUE);
12297 basic_filebuf_wchar_ctor_file(&filebuf_wchar_log, stderr);
12298 basic_ostream_short_ctor(&wclog.obj, &filebuf_wchar_log.base, FALSE/*FIXME*/, TRUE, TRUE);
12303 basic_istream_char_vbase_dtor(&cin.obj);
12304 basic_filebuf_char_dtor(&filebuf_char_stdin);
12306 basic_istream_wchar_vbase_dtor(&ucin.obj);
12307 basic_filebuf_wchar_dtor(&filebuf_short_stdin);
12309 basic_istream_wchar_vbase_dtor(&wcin.obj);
12310 basic_filebuf_wchar_dtor(&filebuf_wchar_stdin);
12312 basic_ostream_char_vbase_dtor(&cout.obj);
12313 basic_filebuf_char_dtor(&filebuf_char_stdout);
12315 basic_ostream_wchar_vbase_dtor(&ucout.obj);
12316 basic_filebuf_wchar_dtor(&filebuf_short_stdout);
12318 basic_ostream_wchar_vbase_dtor(&wcout.obj);
12319 basic_filebuf_wchar_dtor(&filebuf_wchar_stdout);
12321 basic_ostream_char_vbase_dtor(&cerr.obj);
12322 basic_filebuf_char_dtor(&filebuf_char_stderr);
12324 basic_ostream_wchar_vbase_dtor(&ucerr.obj);
12325 basic_filebuf_wchar_dtor(&filebuf_short_stderr);
12327 basic_ostream_wchar_vbase_dtor(&wcerr.obj);
12328 basic_filebuf_wchar_dtor(&filebuf_wchar_stderr);
12330 basic_ostream_char_vbase_dtor(&clog.obj);
12331 basic_filebuf_char_dtor(&filebuf_char_log);
12333 basic_ostream_wchar_vbase_dtor(&uclog.obj);
12334 basic_filebuf_wchar_dtor(&filebuf_short_log);
12336 basic_ostream_wchar_vbase_dtor(&wclog.obj);
12337 basic_filebuf_wchar_dtor(&filebuf_wchar_log);