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
28 #include "wine/debug.h"
30 WINE_DEFAULT_DEBUG_CHANNEL(msvcp
);
32 #define SECSPERDAY 86400
33 /* 1601 to 1970 is 369 years plus 89 leap days */
34 #define SECS_1601_TO_1970 ((369 * 365 + 89) * (ULONGLONG)SECSPERDAY)
35 #define TICKSPERSEC 10000000
36 #define TICKS_1601_TO_1970 (SECS_1601_TO_1970 * TICKSPERSEC)
38 /* ?_Index@ios_base@std@@0HA */
39 int ios_base_Index
= 0;
40 /* ?_Sync@ios_base@std@@0_NA */
41 bool ios_base_Sync
= FALSE
;
45 __int64
DECLSPEC_ALIGN(8) pos
;
49 static inline const char* debugstr_fpos_mbstatet(fpos_mbstatet
*fpos
)
51 return wine_dbg_sprintf("fpos(%s %s %d)", wine_dbgstr_longlong(fpos
->off
),
52 wine_dbgstr_longlong(fpos
->pos
), MBSTATET_TO_INT(&fpos
->state
));
56 void (__cdecl
*pfunc
)(ios_base
*, streamsize
);
61 void (__cdecl
*pfunc
)(ios_base
*, int);
69 } basic_filebuf__Initfl
;
72 basic_streambuf_char base
;
77 basic_string_char
*conv
;
91 basic_streambuf_wchar base
;
96 basic_string_char
*conv
;
107 } basic_filebuf_wchar
;
110 STRINGBUF_allocated
= 1,
111 STRINGBUF_no_write
= 2,
112 STRINGBUF_no_read
= 4,
113 STRINGBUF_append
= 8,
114 STRINGBUF_at_end
= 16
115 } basic_stringbuf_state
;
118 basic_streambuf_char base
;
121 char allocator
; /* empty struct */
122 } basic_stringbuf_char
;
125 basic_streambuf_wchar base
;
128 char allocator
; /* empty struct */
129 } basic_stringbuf_wchar
;
133 basic_streambuf_char
*strbuf
;
134 struct _basic_ostream_char
*stream
;
140 basic_streambuf_wchar
*strbuf
;
141 struct _basic_ostream_wchar
*stream
;
145 typedef struct _basic_ostream_char
{
147 /* virtual inheritance
148 * basic_ios_char basic_ios;
150 } basic_ostream_char
;
152 typedef struct _basic_ostream_wchar
{
154 /* virtual inheritance
155 * basic_ios_wchar basic_ios;
157 } basic_ostream_wchar
;
162 /* virtual inheritance
163 * basic_ios_char basic_ios;
165 } basic_istream_char
;
170 /* virtual inheritance
171 * basic_ios_wchar basic_ios;
173 } basic_istream_wchar
;
176 basic_istream_char base1
;
177 basic_ostream_char base2
;
178 /* virtual inheritance
179 * basic_ios_char basic_ios;
181 } basic_iostream_char
;
184 basic_istream_wchar base1
;
185 basic_ostream_wchar base2
;
186 /* virtual inheritance
187 * basic_ios_wchar basic_ios;
189 } basic_iostream_wchar
;
192 basic_ostream_char base
;
193 basic_filebuf_char filebuf
;
194 /* virtual inheritance
195 * basic_ios_char basic_ios;
197 } basic_ofstream_char
;
200 basic_ostream_wchar base
;
201 basic_filebuf_wchar filebuf
;
202 /* virtual inheritance
203 * basic_ios_wchar basic_ios;
205 } basic_ofstream_wchar
;
208 basic_istream_char base
;
209 basic_filebuf_char filebuf
;
210 /* virtual inheritance
211 * basic_ios_char basic_ios;
213 } basic_ifstream_char
;
216 basic_istream_wchar base
;
217 basic_filebuf_wchar filebuf
;
218 /* virtual inheritance
219 * basic_ios_wchar basic_ios;
221 } basic_ifstream_wchar
;
224 basic_iostream_char base
;
225 basic_filebuf_char filebuf
;
226 /* virtual inheritance
227 * basic_ios_char basic_ios;
229 } basic_fstream_char
;
232 basic_iostream_wchar base
;
233 basic_filebuf_wchar filebuf
;
234 /* virtual inheritance
235 * basic_ios_char basic_ios;
237 } basic_fstream_wchar
;
240 basic_ostream_char base
;
241 basic_stringbuf_char strbuf
;
242 /* virtual inheritance
243 * basic_ios_char basic_ios;
245 } basic_ostringstream_char
;
248 basic_ostream_wchar base
;
249 basic_stringbuf_wchar strbuf
;
250 /* virtual inheritance
251 * basic_ios_wchar basic_ios;
253 } basic_ostringstream_wchar
;
256 basic_istream_char base
;
257 basic_stringbuf_char strbuf
;
258 /* virtual inheritance
259 * basic_ios_char basic_ios;
261 } basic_istringstream_char
;
264 basic_istream_wchar base
;
265 basic_stringbuf_wchar strbuf
;
266 /* virtual inheritance
267 * basic_ios_wchar basic_ios;
269 } basic_istringstream_wchar
;
272 basic_iostream_char base
;
273 basic_stringbuf_char strbuf
;
274 /* virtual inheritance
275 * basic_ios_char basic_ios;
277 } basic_stringstream_char
;
280 basic_iostream_wchar base
;
281 basic_stringbuf_wchar strbuf
;
282 /* virtual inheritance
283 * basic_ios_wchar basic_ios;
285 } basic_stringstream_wchar
;
288 STRSTATE_Allocated
= 1,
289 STRSTATE_Constant
= 2,
290 STRSTATE_Dynamic
= 4,
292 } strstreambuf__Strstate
;
295 basic_streambuf_char base
;
300 void* (__cdecl
*palloc
)(size_t);
301 void (__cdecl
*pfree
)(void*);
305 basic_ostream_char base
;
307 /* virtual inheritance
308 * basic_ios_char basic_ios;
313 basic_istream_char base
;
315 /* virtual inheritance
316 * basic_ios_char basic_ios;
321 basic_iostream_char base
;
323 /* virtual inheritance
324 * basic_ios_char basic_ios;
356 #if _MSVCP_VER >= 110
357 #define BASIC_IOS_VTORDISP 1
358 #define INIT_BASIC_IOS_VTORDISP(basic_ios) ((int*)basic_ios)[-1] = 0
360 #define BASIC_IOS_VTORDISP 0
361 #define INIT_BASIC_IOS_VTORDISP(basic_ios)
364 #define VBTABLE_ENTRY(class, offset, vbase, vtordisp) ALIGNED_SIZE(sizeof(class)+vtordisp*sizeof(int), TYPE_ALIGNMENT(vbase))-offset
365 #define VBTABLE_BASIC_IOS_ENTRY(class, offset) VBTABLE_ENTRY(class, offset, basic_ios_char, BASIC_IOS_VTORDISP)
367 extern const vtable_ptr iosb_vtable
;
369 /* ??_7ios_base@std@@6B@ */
370 extern const vtable_ptr ios_base_vtable
;
372 /* ??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@ */
373 extern const vtable_ptr basic_ios_char_vtable
;
375 /* ??_7?$basic_ios@_WU?$char_traits@_W@std@@@std@@6B@ */
376 extern const vtable_ptr basic_ios_wchar_vtable
;
378 /* ??_7?$basic_ios@GU?$char_traits@G@std@@@std@@6B@ */
379 extern const vtable_ptr basic_ios_short_vtable
;
381 /* ??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@ */
382 extern const vtable_ptr basic_streambuf_char_vtable
;
384 /* ??_7?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@6B@ */
385 extern const vtable_ptr basic_streambuf_wchar_vtable
;
387 /* ??_7?$basic_streambuf@GU?$char_traits@G@std@@@std@@6B@ */
388 extern const vtable_ptr basic_streambuf_short_vtable
;
390 /* ??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ */
391 extern const vtable_ptr basic_filebuf_char_vtable
;
393 /* ??_7?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@6B@ */
394 extern const vtable_ptr basic_filebuf_wchar_vtable
;
396 /* ??_7?$basic_filebuf@GU?$char_traits@G@std@@@std@@6B@ */
397 extern const vtable_ptr basic_filebuf_short_vtable
;
399 /* ??_7?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
400 extern const vtable_ptr basic_stringbuf_char_vtable
;
402 /* ??_7?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
403 extern const vtable_ptr basic_stringbuf_wchar_vtable
;
405 /* ??_7?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
406 extern const vtable_ptr basic_stringbuf_short_vtable
;
408 /* ??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@ */
409 const int basic_ostream_char_vbtable
[] = {0,
410 VBTABLE_BASIC_IOS_ENTRY(basic_ostream_char
, 0)};
411 /* ??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@ */
412 extern const vtable_ptr basic_ostream_char_vtable
;
414 /* ??_8?$basic_ostream@_WU?$char_traits@_W@std@@@std@@7B@ */
415 const int basic_ostream_wchar_vbtable
[] = {0,
416 VBTABLE_BASIC_IOS_ENTRY(basic_ostream_wchar
, 0)};
417 /* ??_7?$basic_ostream@_WU?$char_traits@_W@std@@@std@@6B@ */
418 extern const vtable_ptr basic_ostream_wchar_vtable
;
420 /* ??_8?$basic_ostream@GU?$char_traits@G@std@@@std@@7B@ */
421 const int basic_ostream_short_vbtable
[] = {0,
422 VBTABLE_BASIC_IOS_ENTRY(basic_ostream_wchar
, 0)};
423 /* ??_7?$basic_ostream@GU?$char_traits@G@std@@@std@@6B@ */
424 extern const vtable_ptr basic_ostream_short_vtable
;
426 /* ??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@ */
427 const int basic_istream_char_vbtable
[] = {0,
428 VBTABLE_BASIC_IOS_ENTRY(basic_istream_char
, 0)};
429 /* ??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@ */
430 extern const vtable_ptr basic_istream_char_vtable
;
432 /* ??_8?$basic_istream@_WU?$char_traits@_W@std@@@std@@7B@ */
433 const int basic_istream_wchar_vbtable
[] = {0,
434 VBTABLE_BASIC_IOS_ENTRY(basic_istream_wchar
, 0)};
435 /* ??_7?$basic_istream@_WU?$char_traits@_W@std@@@std@@6B@ */
436 extern const vtable_ptr basic_istream_wchar_vtable
;
438 /* ??_8?$basic_istream@GU?$char_traits@G@std@@@std@@7B@ */
439 const int basic_istream_short_vbtable
[] = {0,
440 VBTABLE_BASIC_IOS_ENTRY(basic_istream_wchar
, 0)};
441 /* ??_7?$basic_istream@GU?$char_traits@G@std@@@std@@6B@ */
442 extern const vtable_ptr basic_istream_short_vtable
;
444 /* ??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
445 const int basic_iostream_char_vbtable1
[] = {0,
446 VBTABLE_BASIC_IOS_ENTRY(basic_iostream_char
, 0)};
447 /* ??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
448 const int basic_iostream_char_vbtable2
[] = {0,
449 VBTABLE_BASIC_IOS_ENTRY(basic_iostream_char
, FIELD_OFFSET(basic_iostream_char
, base2
))};
450 /* ??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@ */
451 extern const vtable_ptr basic_iostream_char_vtable
;
453 /* ??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
454 /* ??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
455 const int basic_iostream_wchar_vbtable1
[] = {0,
456 VBTABLE_BASIC_IOS_ENTRY(basic_iostream_wchar
, 0)};
457 /* ??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
458 /* ??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
459 const int basic_iostream_wchar_vbtable2
[] = {0,
460 VBTABLE_BASIC_IOS_ENTRY(basic_iostream_wchar
, FIELD_OFFSET(basic_iostream_wchar
, base2
))};
461 /* ??_7?$basic_iostream@_WU?$char_traits@_W@std@@@std@@6B@ */
462 extern const vtable_ptr basic_iostream_wchar_vtable
;
463 /* ??_7?$basic_iostream@GU?$char_traits@G@std@@@std@@6B@ */
464 extern const vtable_ptr basic_iostream_short_vtable
;
466 /* ??_8?$basic_ofstream@DU?$char_traits@D@std@@@std@@7B@ */
467 const int basic_ofstream_char_vbtable
[] = {0,
468 VBTABLE_BASIC_IOS_ENTRY(basic_ofstream_char
, 0)};
469 /* ??_7?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ */
470 extern const vtable_ptr basic_ofstream_char_vtable
;
472 /* ??_8?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@7B@ */
473 const int basic_ofstream_wchar_vbtable
[] = {0,
474 VBTABLE_BASIC_IOS_ENTRY(basic_ofstream_wchar
, 0)};
475 /* ??_7?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@6B@ */
476 extern const vtable_ptr basic_ofstream_wchar_vtable
;
478 /* ??_8?$basic_ofstream@GU?$char_traits@G@std@@@std@@7B@ */
479 const int basic_ofstream_short_vbtable
[] = {0,
480 VBTABLE_BASIC_IOS_ENTRY(basic_ofstream_wchar
, 0)};
481 /* ??_7?$basic_ofstream@GU?$char_traits@G@std@@@std@@6B@ */
482 extern const vtable_ptr basic_ofstream_short_vtable
;
484 /* ??_8?$basic_ifstream@DU?$char_traits@D@std@@@std@@7B@ */
485 const int basic_ifstream_char_vbtable
[] = {0,
486 VBTABLE_BASIC_IOS_ENTRY(basic_ifstream_char
, 0)};
487 /* ??_7?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@ */
488 extern const vtable_ptr basic_ifstream_char_vtable
;
490 /* ??_8?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@7B@ */
491 const int basic_ifstream_wchar_vbtable
[] = {0,
492 VBTABLE_BASIC_IOS_ENTRY(basic_ifstream_wchar
, 0)};
493 /* ??_7?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@6B@ */
494 extern const vtable_ptr basic_ifstream_wchar_vtable
;
496 /* ??_8?$basic_ifstream@GU?$char_traits@G@std@@@std@@7B@ */
497 const int basic_ifstream_short_vbtable
[] = {0,
498 VBTABLE_BASIC_IOS_ENTRY(basic_ifstream_wchar
, 0)};
499 /* ??_7?$basic_ifstream@GU?$char_traits@G@std@@@std@@6B@ */
500 extern const vtable_ptr basic_ifstream_short_vtable
;
502 /* ??_8?$basic_fstream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
503 const int basic_fstream_char_vbtable1
[] = {0,
504 VBTABLE_BASIC_IOS_ENTRY(basic_fstream_char
, 0)};
505 /* ??_8?$basic_fstream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
506 const int basic_fstream_char_vbtable2
[] = {0,
507 VBTABLE_BASIC_IOS_ENTRY(basic_fstream_char
, FIELD_OFFSET(basic_fstream_char
, base
.base2
))};
508 /* ??_7?$basic_fstream@DU?$char_traits@D@std@@@std@@6B@ */
509 extern const vtable_ptr basic_fstream_char_vtable
;
511 /* ??_8?$basic_fstream@_WU?$char_traits@_W@std@@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
512 /* ??_8?$basic_fstream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
513 const int basic_fstream_wchar_vbtable1
[] = {0,
514 VBTABLE_BASIC_IOS_ENTRY(basic_fstream_wchar
, 0)};
515 /* ??_8?$basic_fstream@_WU?$char_traits@_W@std@@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
516 /* ??_8?$basic_fstream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
517 const int basic_fstream_wchar_vbtable2
[] = {0,
518 VBTABLE_BASIC_IOS_ENTRY(basic_fstream_wchar
, FIELD_OFFSET(basic_fstream_wchar
, base
.base2
))};
519 /* ??_7?$basic_fstream@_WU?$char_traits@_W@std@@@std@@6B@ */
520 extern const vtable_ptr basic_fstream_wchar_vtable
;
521 /* ??_7?$basic_fstream@GU?$char_traits@G@std@@@std@@6B@ */
522 extern const vtable_ptr basic_fstream_short_vtable
;
524 /* ??_8?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B@ */
525 const int basic_ostringstream_char_vbtable
[] = {0,
526 VBTABLE_BASIC_IOS_ENTRY(basic_ostringstream_char
, 0)};
527 /* ??_7?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
528 extern const vtable_ptr basic_ostringstream_char_vtable
;
530 /* ??_8?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B@ */
531 const int basic_ostringstream_wchar_vbtable
[] = {0,
532 VBTABLE_BASIC_IOS_ENTRY(basic_ostringstream_wchar
, 0)};
533 /* ??_7?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
534 extern const vtable_ptr basic_ostringstream_wchar_vtable
;
536 /* ??_8?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B@ */
537 const int basic_ostringstream_short_vbtable
[] = {0,
538 VBTABLE_BASIC_IOS_ENTRY(basic_ostringstream_wchar
, 0)};
539 /* ??_7?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
540 extern const vtable_ptr basic_ostringstream_short_vtable
;
542 /* ??_8?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B@ */
543 const int basic_istringstream_char_vbtable
[] = {0,
544 VBTABLE_BASIC_IOS_ENTRY(basic_istringstream_char
, 0)};
545 /* ??_7?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
546 extern const vtable_ptr basic_istringstream_char_vtable
;
548 /* ??_8?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B@ */
549 const int basic_istringstream_wchar_vbtable
[] = {0,
550 VBTABLE_BASIC_IOS_ENTRY(basic_istringstream_wchar
, 0)};
551 /* ??_7?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
552 extern const vtable_ptr basic_istringstream_wchar_vtable
;
554 /* ??_8?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B@ */
555 const int basic_istringstream_short_vbtable
[] = {0,
556 VBTABLE_BASIC_IOS_ENTRY(basic_istringstream_wchar
, 0)};
557 /* ??_7?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
558 extern const vtable_ptr basic_istringstream_short_vtable
;
560 /* ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
561 const int basic_stringstream_char_vbtable1
[] = {0,
562 VBTABLE_BASIC_IOS_ENTRY(basic_stringstream_char
, 0)};
563 /* ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
564 const int basic_stringstream_char_vbtable2
[] = {0,
565 VBTABLE_BASIC_IOS_ENTRY(basic_stringstream_char
, FIELD_OFFSET(basic_stringstream_char
, base
.base2
))};
566 /* ??_7?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
567 extern const vtable_ptr basic_stringstream_char_vtable
;
569 /* ??_8?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
570 const int basic_stringstream_wchar_vbtable1
[] = {0,
571 VBTABLE_BASIC_IOS_ENTRY(basic_stringstream_wchar
, 0)};
572 /* ??_8?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
573 const int basic_stringstream_wchar_vbtable2
[] = {0,
574 VBTABLE_BASIC_IOS_ENTRY(basic_stringstream_wchar
, FIELD_OFFSET(basic_stringstream_wchar
, base
.base2
))};
575 /* ??_7?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
576 extern const vtable_ptr basic_stringstream_wchar_vtable
;
578 /* ??_8?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
579 const int basic_stringstream_short_vbtable1
[] = {0,
580 VBTABLE_BASIC_IOS_ENTRY(basic_stringstream_wchar
, 0)};
581 /* ??_8?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
582 const int basic_stringstream_short_vbtable2
[] = {0,
583 VBTABLE_BASIC_IOS_ENTRY(basic_stringstream_wchar
, FIELD_OFFSET(basic_stringstream_wchar
, base
.base2
))};
584 /* ??_7?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
585 extern const vtable_ptr basic_stringstream_short_vtable
;
587 /* ??_7strstreambuf@std@@6B */
588 extern const vtable_ptr strstreambuf_vtable
;
590 static const int ostrstream_vbtable
[] = {0, VBTABLE_BASIC_IOS_ENTRY(ostrstream
, 0)};
591 extern const vtable_ptr ostrstream_vtable
;
593 static const int istrstream_vbtable
[] = {0, VBTABLE_BASIC_IOS_ENTRY(istrstream
, 0)};
595 static const int strstream_vbtable1
[] = {0, VBTABLE_BASIC_IOS_ENTRY(strstream
, 0)};
596 static const int strstream_vbtable2
[] = {0,
597 VBTABLE_BASIC_IOS_ENTRY(strstream
, FIELD_OFFSET(strstream
, base
.base2
))};
598 extern const vtable_ptr strstream_vtable
;
600 DEFINE_RTTI_DATA0(iosb
, 0, ".?AV?$_Iosb@H@std@@")
601 DEFINE_RTTI_DATA1(ios_base
, 0, &iosb_rtti_base_descriptor
, ".?AV?$_Iosb@H@std@@")
602 DEFINE_RTTI_DATA2(basic_ios_char
, 0, &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
603 ".?AV?$basic_ios@DU?$char_traits@D@std@@@std@@")
604 DEFINE_RTTI_DATA2(basic_ios_wchar
, 0, &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
605 ".?AV?$basic_ios@_WU?$char_traits@_W@std@@@std@@")
606 DEFINE_RTTI_DATA2(basic_ios_short
, 0, &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
607 ".?AV?$basic_ios@GU?$char_traits@G@std@@@std@@")
608 DEFINE_RTTI_DATA0(basic_streambuf_char
, 0,
609 ".?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@")
610 DEFINE_RTTI_DATA0(basic_streambuf_wchar
, 0,
611 ".?AV?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@")
612 DEFINE_RTTI_DATA0(basic_streambuf_short
, 0,
613 ".?AV?$basic_streambuf@GU?$char_traits@G@std@@@std@@")
614 DEFINE_RTTI_DATA1(basic_filebuf_char
, 0, &basic_streambuf_char_rtti_base_descriptor
,
615 ".?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@")
616 DEFINE_RTTI_DATA1(basic_filebuf_wchar
, 0, &basic_streambuf_wchar_rtti_base_descriptor
,
617 ".?AV?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@")
618 DEFINE_RTTI_DATA1(basic_filebuf_short
, 0, &basic_streambuf_short_rtti_base_descriptor
,
619 ".?AV?$basic_filebuf@GU?$char_traits@G@std@@@std@@")
620 DEFINE_RTTI_DATA1(basic_stringbuf_char
, 0, &basic_streambuf_char_rtti_base_descriptor
,
621 ".?AV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@")
622 DEFINE_RTTI_DATA1(basic_stringbuf_wchar
, 0, &basic_streambuf_wchar_rtti_base_descriptor
,
623 ".?AV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@")
624 DEFINE_RTTI_DATA1(basic_stringbuf_short
, 0, &basic_streambuf_short_rtti_base_descriptor
,
625 ".?AV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@")
626 DEFINE_RTTI_DATA3(basic_ostream_char
, sizeof(basic_ostream_char
), &basic_ios_char_rtti_base_descriptor
,
627 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
628 ".?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@")
629 DEFINE_RTTI_DATA3(basic_ostream_wchar
, sizeof(basic_ostream_wchar
), &basic_ios_wchar_rtti_base_descriptor
,
630 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
631 ".?AV?$basic_ostream@_WU?$char_traits@_W@std@@@std@@")
632 DEFINE_RTTI_DATA3(basic_ostream_short
, sizeof(basic_ostream_wchar
), &basic_ios_short_rtti_base_descriptor
,
633 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
634 ".?AV?$basic_ostream@GU?$char_traits@G@std@@@std@@")
635 DEFINE_RTTI_DATA3(basic_istream_char
, sizeof(basic_istream_char
), &basic_ios_char_rtti_base_descriptor
,
636 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
637 ".?AV?$basic_istream@DU?$char_traits@D@std@@@std@@")
638 DEFINE_RTTI_DATA3(basic_istream_wchar
, sizeof(basic_istream_wchar
), &basic_ios_wchar_rtti_base_descriptor
,
639 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
640 ".?AV?$basic_istream@_WU?$char_traits@_W@std@@@std@@")
641 DEFINE_RTTI_DATA3(basic_istream_short
, sizeof(basic_istream_wchar
), &basic_ios_short_rtti_base_descriptor
,
642 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
643 ".?AV?$basic_istream@GU?$char_traits@G@std@@@std@@")
644 DEFINE_RTTI_DATA8(basic_iostream_char
, sizeof(basic_iostream_char
),
645 &basic_istream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
646 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
647 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
648 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
649 ".?AV?$basic_iostream@DU?$char_traits@D@std@@@std@@")
650 DEFINE_RTTI_DATA8(basic_iostream_wchar
, sizeof(basic_iostream_wchar
),
651 &basic_istream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
652 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
653 &basic_ostream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
654 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
655 ".?AV?$basic_iostream@_WU?$char_traits@_W@std@@@std@@")
656 DEFINE_RTTI_DATA8(basic_iostream_short
, sizeof(basic_iostream_wchar
),
657 &basic_istream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
658 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
659 &basic_ostream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
660 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
661 ".?AV?$basic_iostream@GU?$char_traits@G@std@@@std@@")
662 DEFINE_RTTI_DATA4(basic_ofstream_char
, sizeof(basic_ofstream_char
),
663 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
664 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
665 ".?AV?$basic_ofstream@DU?$char_traits@D@std@@@std@@")
666 DEFINE_RTTI_DATA4(basic_ofstream_wchar
, sizeof(basic_ofstream_wchar
),
667 &basic_ostream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
668 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
669 ".?AV?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@")
670 DEFINE_RTTI_DATA4(basic_ofstream_short
, sizeof(basic_ofstream_wchar
),
671 &basic_ostream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
672 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
673 ".?AV?$basic_ofstream@GU?$char_traits@G@std@@@std@@")
674 DEFINE_RTTI_DATA4(basic_ifstream_char
, sizeof(basic_ifstream_char
),
675 &basic_istream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
676 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
677 ".?AV?$basic_ifstream@DU?$char_traits@D@std@@@std@@")
678 DEFINE_RTTI_DATA4(basic_ifstream_wchar
, sizeof(basic_ifstream_wchar
),
679 &basic_istream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
680 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
681 ".?AV?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@")
682 DEFINE_RTTI_DATA4(basic_ifstream_short
, sizeof(basic_ifstream_wchar
),
683 &basic_istream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
684 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
685 ".?AV?$basic_ifstream@GU?$char_traits@G@std@@@std@@")
686 DEFINE_RTTI_DATA8(basic_fstream_char
, sizeof(basic_fstream_char
),
687 &basic_istream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
688 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
689 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
690 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
691 ".?AV?$basic_fstream@DU?$char_traits@D@std@@@std@@")
692 DEFINE_RTTI_DATA8(basic_fstream_wchar
, sizeof(basic_fstream_wchar
),
693 &basic_istream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
694 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
695 &basic_ostream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
696 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
697 ".?AV?$basic_fstream@_WU?$char_traits@_W@std@@@std@@")
698 DEFINE_RTTI_DATA8(basic_fstream_short
, sizeof(basic_fstream_wchar
),
699 &basic_istream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
700 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
701 &basic_ostream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
702 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
703 ".?AV?$basic_fstream@GU?$char_traits@G@std@@@std@@")
704 DEFINE_RTTI_DATA4(basic_ostringstream_char
, sizeof(basic_ostringstream_char
),
705 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
706 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
707 ".?AV?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@")
708 DEFINE_RTTI_DATA4(basic_ostringstream_wchar
, sizeof(basic_ostringstream_wchar
),
709 &basic_ostream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
710 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
711 ".?AV?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@")
712 DEFINE_RTTI_DATA4(basic_ostringstream_short
, sizeof(basic_ostringstream_wchar
),
713 &basic_ostream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
714 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
715 ".?AV?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@")
716 DEFINE_RTTI_DATA4(basic_istringstream_char
, sizeof(basic_istringstream_char
),
717 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
718 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
719 ".?AV?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@")
720 DEFINE_RTTI_DATA4(basic_istringstream_wchar
, sizeof(basic_istringstream_wchar
),
721 &basic_ostream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
722 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
723 ".?AV?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@")
724 DEFINE_RTTI_DATA4(basic_istringstream_short
, sizeof(basic_istringstream_wchar
),
725 &basic_ostream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
726 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
727 ".?AV?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@")
728 DEFINE_RTTI_DATA8(basic_stringstream_char
, sizeof(basic_stringstream_char
),
729 &basic_istream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
730 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
731 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
732 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
733 ".?AV?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@")
734 DEFINE_RTTI_DATA8(basic_stringstream_wchar
, sizeof(basic_stringstream_wchar
),
735 &basic_istream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
736 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
737 &basic_ostream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
738 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
739 ".?AV?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@")
740 DEFINE_RTTI_DATA8(basic_stringstream_short
, sizeof(basic_stringstream_wchar
),
741 &basic_istream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
742 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
743 &basic_ostream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
744 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
745 ".?AV?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@")
746 DEFINE_RTTI_DATA1(strstreambuf
, sizeof(strstreambuf
),
747 &basic_streambuf_char_rtti_base_descriptor
, ".?AVstrstreambuf@std@@")
748 DEFINE_RTTI_DATA4(ostrstream
, sizeof(ostrstream
),
749 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
750 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
751 "?AVostrstream@std@@")
752 DEFINE_RTTI_DATA8(strstream
, sizeof(strstream
),
753 &basic_istream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
754 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
755 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
756 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
757 "?AVstrstream@std@@")
759 __ASM_BLOCK_BEGIN(ios_vtables
)
761 VTABLE_ADD_FUNC(iosb_vector_dtor
));
762 __ASM_VTABLE(ios_base
,
763 VTABLE_ADD_FUNC(ios_base_vector_dtor
));
764 __ASM_VTABLE(basic_ios_char
,
765 VTABLE_ADD_FUNC(basic_ios_char_vector_dtor
)
766 #if _MSVCP_VER == 110
767 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
768 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
771 __ASM_VTABLE(basic_ios_wchar
,
772 VTABLE_ADD_FUNC(basic_ios_wchar_vector_dtor
)
773 #if _MSVCP_VER == 110
774 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
775 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
778 __ASM_VTABLE(basic_ios_short
,
779 VTABLE_ADD_FUNC(basic_ios_wchar_vector_dtor
)
780 #if _MSVCP_VER == 110
781 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
782 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
785 __ASM_VTABLE(basic_streambuf_char
,
786 VTABLE_ADD_FUNC(basic_streambuf_char_vector_dtor
)
787 #if _MSVCP_VER >= 100
788 VTABLE_ADD_FUNC(basic_streambuf_char__Lock
)
789 VTABLE_ADD_FUNC(basic_streambuf_char__Unlock
)
791 VTABLE_ADD_FUNC(basic_streambuf_char_overflow
)
792 VTABLE_ADD_FUNC(basic_streambuf_char_pbackfail
)
793 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc
)
794 VTABLE_ADD_FUNC(basic_streambuf_char_underflow
)
795 VTABLE_ADD_FUNC(basic_streambuf_char_uflow
)
796 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn
)
797 #if _MSVCP_VER >= 80 && _MSVCP_VER <= 90
798 VTABLE_ADD_FUNC(basic_streambuf_char__Xsgetn_s
)
800 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn
)
801 VTABLE_ADD_FUNC(basic_streambuf_char_seekoff
)
802 VTABLE_ADD_FUNC(basic_streambuf_char_seekpos
)
803 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf
)
804 VTABLE_ADD_FUNC(basic_streambuf_char_sync
)
805 VTABLE_ADD_FUNC(basic_streambuf_char_imbue
));
806 __ASM_VTABLE(basic_streambuf_wchar
,
807 VTABLE_ADD_FUNC(basic_streambuf_wchar_vector_dtor
)
808 #if _MSVCP_VER >= 100
809 VTABLE_ADD_FUNC(basic_streambuf_wchar__Lock
)
810 VTABLE_ADD_FUNC(basic_streambuf_wchar__Unlock
)
812 VTABLE_ADD_FUNC(basic_streambuf_wchar_overflow
)
813 VTABLE_ADD_FUNC(basic_streambuf_wchar_pbackfail
)
814 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc
)
815 VTABLE_ADD_FUNC(basic_streambuf_wchar_underflow
)
816 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow
)
817 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn
)
818 #if _MSVCP_VER >= 80 && _MSVCP_VER <= 90
819 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s
)
821 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn
)
822 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff
)
823 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos
)
824 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf
)
825 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync
)
826 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue
));
827 __ASM_VTABLE(basic_streambuf_short
,
828 VTABLE_ADD_FUNC(basic_streambuf_wchar_vector_dtor
)
829 #if _MSVCP_VER >= 100
830 VTABLE_ADD_FUNC(basic_streambuf_wchar__Lock
)
831 VTABLE_ADD_FUNC(basic_streambuf_wchar__Unlock
)
833 VTABLE_ADD_FUNC(basic_streambuf_wchar_overflow
)
834 VTABLE_ADD_FUNC(basic_streambuf_wchar_pbackfail
)
835 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc
)
836 VTABLE_ADD_FUNC(basic_streambuf_wchar_underflow
)
837 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow
)
838 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn
)
839 #if _MSVCP_VER >= 80 && _MSVCP_VER <= 90
840 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s
)
842 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn
)
843 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff
)
844 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos
)
845 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf
)
846 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync
)
847 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue
));
848 __ASM_VTABLE(basic_filebuf_char
,
849 VTABLE_ADD_FUNC(basic_filebuf_char_vector_dtor
)
850 #if _MSVCP_VER >= 100
851 VTABLE_ADD_FUNC(basic_streambuf_char__Lock
)
852 VTABLE_ADD_FUNC(basic_streambuf_char__Unlock
)
854 VTABLE_ADD_FUNC(basic_filebuf_char_overflow
)
855 VTABLE_ADD_FUNC(basic_filebuf_char_pbackfail
)
856 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc
)
857 VTABLE_ADD_FUNC(basic_filebuf_char_underflow
)
858 VTABLE_ADD_FUNC(basic_filebuf_char_uflow
)
859 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn
)
860 #if _MSVCP_VER >= 80 && _MSVCP_VER <= 90
861 VTABLE_ADD_FUNC(basic_streambuf_char__Xsgetn_s
)
863 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn
)
864 VTABLE_ADD_FUNC(basic_filebuf_char_seekoff
)
865 VTABLE_ADD_FUNC(basic_filebuf_char_seekpos
)
866 VTABLE_ADD_FUNC(basic_filebuf_char_setbuf
)
867 VTABLE_ADD_FUNC(basic_filebuf_char_sync
)
868 VTABLE_ADD_FUNC(basic_filebuf_char_imbue
));
869 __ASM_VTABLE(basic_filebuf_wchar
,
870 VTABLE_ADD_FUNC(basic_filebuf_wchar_vector_dtor
)
871 #if _MSVCP_VER >= 100
872 VTABLE_ADD_FUNC(basic_streambuf_wchar__Lock
)
873 VTABLE_ADD_FUNC(basic_streambuf_wchar__Unlock
)
875 VTABLE_ADD_FUNC(basic_filebuf_wchar_overflow
)
876 VTABLE_ADD_FUNC(basic_filebuf_wchar_pbackfail
)
877 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc
)
878 VTABLE_ADD_FUNC(basic_filebuf_wchar_underflow
)
879 VTABLE_ADD_FUNC(basic_filebuf_wchar_uflow
)
880 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn
)
881 #if _MSVCP_VER >= 80 && _MSVCP_VER <= 90
882 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s
)
884 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn
)
885 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekoff
)
886 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekpos
)
887 VTABLE_ADD_FUNC(basic_filebuf_wchar_setbuf
)
888 VTABLE_ADD_FUNC(basic_filebuf_wchar_sync
)
889 VTABLE_ADD_FUNC(basic_filebuf_wchar_imbue
));
890 __ASM_VTABLE(basic_filebuf_short
,
891 VTABLE_ADD_FUNC(basic_filebuf_wchar_vector_dtor
)
892 #if _MSVCP_VER >= 100
893 VTABLE_ADD_FUNC(basic_streambuf_wchar__Lock
)
894 VTABLE_ADD_FUNC(basic_streambuf_wchar__Unlock
)
896 VTABLE_ADD_FUNC(basic_filebuf_wchar_overflow
)
897 VTABLE_ADD_FUNC(basic_filebuf_wchar_pbackfail
)
898 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc
)
899 VTABLE_ADD_FUNC(basic_filebuf_wchar_underflow
)
900 VTABLE_ADD_FUNC(basic_filebuf_wchar_uflow
)
901 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn
)
902 #if _MSVCP_VER >= 80 && _MSVCP_VER <= 90
903 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s
)
905 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn
)
906 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekoff
)
907 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekpos
)
908 VTABLE_ADD_FUNC(basic_filebuf_short_setbuf
)
909 VTABLE_ADD_FUNC(basic_filebuf_wchar_sync
)
910 VTABLE_ADD_FUNC(basic_filebuf_short_imbue
));
911 __ASM_VTABLE(basic_stringbuf_char
,
912 VTABLE_ADD_FUNC(basic_stringbuf_char_vector_dtor
)
913 VTABLE_ADD_FUNC(basic_stringbuf_char_overflow
)
914 VTABLE_ADD_FUNC(basic_stringbuf_char_pbackfail
)
915 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc
)
916 VTABLE_ADD_FUNC(basic_stringbuf_char_underflow
)
917 VTABLE_ADD_FUNC(basic_streambuf_char_uflow
)
918 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn
)
919 #if _MSVCP_VER >= 80 && _MSVCP_VER <= 90
920 VTABLE_ADD_FUNC(basic_streambuf_char__Xsgetn_s
)
922 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn
)
923 VTABLE_ADD_FUNC(basic_stringbuf_char_seekoff
)
924 VTABLE_ADD_FUNC(basic_stringbuf_char_seekpos
)
925 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf
)
926 VTABLE_ADD_FUNC(basic_streambuf_char_sync
)
927 VTABLE_ADD_FUNC(basic_streambuf_char_imbue
));
928 __ASM_VTABLE(basic_stringbuf_wchar
,
929 VTABLE_ADD_FUNC(basic_stringbuf_wchar_vector_dtor
)
930 VTABLE_ADD_FUNC(basic_stringbuf_wchar_overflow
)
931 VTABLE_ADD_FUNC(basic_stringbuf_wchar_pbackfail
)
932 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc
)
933 VTABLE_ADD_FUNC(basic_stringbuf_wchar_underflow
)
934 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow
)
935 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn
)
936 #if _MSVCP_VER >= 80 && _MSVCP_VER <= 90
937 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s
)
939 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn
)
940 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekoff
)
941 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekpos
)
942 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf
)
943 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync
)
944 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue
));
945 __ASM_VTABLE(basic_stringbuf_short
,
946 VTABLE_ADD_FUNC(basic_stringbuf_wchar_vector_dtor
)
947 VTABLE_ADD_FUNC(basic_stringbuf_wchar_overflow
)
948 VTABLE_ADD_FUNC(basic_stringbuf_wchar_pbackfail
)
949 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc
)
950 VTABLE_ADD_FUNC(basic_stringbuf_wchar_underflow
)
951 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow
)
952 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn
)
953 #if _MSVCP_VER >= 80 && _MSVCP_VER <= 90
954 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s
)
956 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn
)
957 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekoff
)
958 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekpos
)
959 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf
)
960 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync
)
961 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue
));
962 __ASM_VTABLE(basic_ostream_char
,
963 VTABLE_ADD_FUNC(basic_ostream_char_vector_dtor
)
964 #if _MSVCP_VER == 110
965 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
966 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
969 __ASM_VTABLE(basic_ostream_wchar
,
970 VTABLE_ADD_FUNC(basic_ostream_wchar_vector_dtor
)
971 #if _MSVCP_VER == 110
972 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
973 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
976 __ASM_VTABLE(basic_ostream_short
,
977 VTABLE_ADD_FUNC(basic_ostream_wchar_vector_dtor
)
978 #if _MSVCP_VER == 110
979 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
980 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
983 __ASM_VTABLE(basic_istream_char
,
984 VTABLE_ADD_FUNC(basic_istream_char_vector_dtor
)
985 #if _MSVCP_VER == 110
986 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
987 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
990 __ASM_VTABLE(basic_istream_wchar
,
991 VTABLE_ADD_FUNC(basic_istream_wchar_vector_dtor
)
992 #if _MSVCP_VER == 110
993 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
994 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
997 __ASM_VTABLE(basic_istream_short
,
998 VTABLE_ADD_FUNC(basic_istream_wchar_vector_dtor
)
999 #if _MSVCP_VER == 110
1000 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1001 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1004 __ASM_VTABLE(basic_iostream_char
,
1005 VTABLE_ADD_FUNC(basic_iostream_char_vector_dtor
)
1006 #if _MSVCP_VER == 110
1007 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1008 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1011 __ASM_VTABLE(basic_iostream_wchar
,
1012 VTABLE_ADD_FUNC(basic_iostream_wchar_vector_dtor
)
1013 #if _MSVCP_VER == 110
1014 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1015 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1018 __ASM_VTABLE(basic_iostream_short
,
1019 VTABLE_ADD_FUNC(basic_iostream_wchar_vector_dtor
)
1020 #if _MSVCP_VER == 110
1021 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1022 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1025 __ASM_VTABLE(basic_ofstream_char
,
1026 VTABLE_ADD_FUNC(basic_ofstream_char_vector_dtor
)
1027 #if _MSVCP_VER == 110
1028 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1029 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1032 __ASM_VTABLE(basic_ofstream_wchar
,
1033 VTABLE_ADD_FUNC(basic_ofstream_wchar_vector_dtor
)
1034 #if _MSVCP_VER == 110
1035 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1036 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1039 __ASM_VTABLE(basic_ofstream_short
,
1040 VTABLE_ADD_FUNC(basic_ofstream_wchar_vector_dtor
)
1041 #if _MSVCP_VER == 110
1042 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1043 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1046 __ASM_VTABLE(basic_ifstream_char
,
1047 VTABLE_ADD_FUNC(basic_ifstream_char_vector_dtor
)
1048 #if _MSVCP_VER == 110
1049 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1050 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1053 __ASM_VTABLE(basic_ifstream_wchar
,
1054 VTABLE_ADD_FUNC(basic_ifstream_wchar_vector_dtor
)
1055 #if _MSVCP_VER == 110
1056 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1057 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1060 __ASM_VTABLE(basic_ifstream_short
,
1061 VTABLE_ADD_FUNC(basic_ifstream_wchar_vector_dtor
)
1062 #if _MSVCP_VER == 110
1063 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1064 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1067 __ASM_VTABLE(basic_fstream_char
,
1068 VTABLE_ADD_FUNC(basic_fstream_char_vector_dtor
)
1069 #if _MSVCP_VER == 110
1070 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1071 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1074 __ASM_VTABLE(basic_fstream_wchar
,
1075 VTABLE_ADD_FUNC(basic_fstream_wchar_vector_dtor
)
1076 #if _MSVCP_VER == 110
1077 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1078 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1081 __ASM_VTABLE(basic_fstream_short
,
1082 VTABLE_ADD_FUNC(basic_fstream_wchar_vector_dtor
)
1083 #if _MSVCP_VER == 110
1084 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1085 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1088 __ASM_VTABLE(basic_ostringstream_char
,
1089 VTABLE_ADD_FUNC(basic_ostringstream_char_vector_dtor
)
1090 #if _MSVCP_VER == 110
1091 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1092 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1095 __ASM_VTABLE(basic_ostringstream_wchar
,
1096 VTABLE_ADD_FUNC(basic_ostringstream_wchar_vector_dtor
)
1097 #if _MSVCP_VER == 110
1098 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1099 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1102 __ASM_VTABLE(basic_ostringstream_short
,
1103 VTABLE_ADD_FUNC(basic_ostringstream_wchar_vector_dtor
)
1104 #if _MSVCP_VER == 110
1105 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1106 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1109 __ASM_VTABLE(basic_istringstream_char
,
1110 VTABLE_ADD_FUNC(basic_istringstream_char_vector_dtor
)
1111 #if _MSVCP_VER == 110
1112 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1113 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1116 __ASM_VTABLE(basic_istringstream_wchar
,
1117 VTABLE_ADD_FUNC(basic_istringstream_wchar_vector_dtor
)
1118 #if _MSVCP_VER == 110
1119 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1120 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1123 __ASM_VTABLE(basic_istringstream_short
,
1124 VTABLE_ADD_FUNC(basic_istringstream_wchar_vector_dtor
)
1125 #if _MSVCP_VER == 110
1126 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1127 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1130 __ASM_VTABLE(basic_stringstream_char
,
1131 VTABLE_ADD_FUNC(basic_stringstream_char_vector_dtor
)
1132 #if _MSVCP_VER == 110
1133 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1134 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1137 __ASM_VTABLE(basic_stringstream_wchar
,
1138 VTABLE_ADD_FUNC(basic_stringstream_wchar_vector_dtor
)
1139 #if _MSVCP_VER == 110
1140 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1141 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1144 __ASM_VTABLE(basic_stringstream_short
,
1145 VTABLE_ADD_FUNC(basic_stringstream_wchar_vector_dtor
)
1146 #if _MSVCP_VER == 110
1147 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1148 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1151 __ASM_VTABLE(strstreambuf
,
1152 VTABLE_ADD_FUNC(strstreambuf_vector_dtor
)
1153 VTABLE_ADD_FUNC(strstreambuf_overflow
)
1154 VTABLE_ADD_FUNC(strstreambuf_pbackfail
)
1155 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc
)
1156 VTABLE_ADD_FUNC(strstreambuf_underflow
)
1157 VTABLE_ADD_FUNC(basic_streambuf_char_uflow
)
1158 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn
)
1159 #if _MSVCP_VER >= 80 && _MSVCP_VER <= 90
1160 VTABLE_ADD_FUNC(basic_streambuf_char__Xsgetn_s
)
1162 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn
)
1163 VTABLE_ADD_FUNC(strstreambuf_seekoff
)
1164 VTABLE_ADD_FUNC(strstreambuf_seekpos
)
1165 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf
)
1166 VTABLE_ADD_FUNC(basic_streambuf_char_sync
)
1167 VTABLE_ADD_FUNC(basic_streambuf_char_imbue
));
1168 __ASM_VTABLE(ostrstream
,
1169 VTABLE_ADD_FUNC(ostrstream_vector_dtor
)
1170 #if _MSVCP_VER == 110
1171 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1172 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1175 __ASM_VTABLE(strstream
,
1176 VTABLE_ADD_FUNC(strstream_vector_dtor
)
1177 #if _MSVCP_VER == 110
1178 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp1
)
1179 VTABLE_ADD_FUNC(basic_ios__Add_vtordisp2
)
1184 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
1185 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
1186 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp_next
, 16)
1187 void __thiscall
basic_streambuf_char_setp_next(basic_streambuf_char
*this, char *first
, char *next
, char *last
)
1189 TRACE("(%p %p %p %p)\n", this, first
, next
, last
);
1193 this->wsize
= last
-next
;
1196 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z */
1197 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z */
1198 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp
, 12)
1199 void __thiscall
basic_streambuf_char_setp(basic_streambuf_char
*this, char *first
, char *last
)
1201 basic_streambuf_char_setp_next(this, first
, first
, last
);
1204 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
1205 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
1206 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setg
, 16)
1207 void __thiscall
basic_streambuf_char_setg(basic_streambuf_char
*this, char *first
, char *next
, char *last
)
1209 TRACE("(%p %p %p %p)\n", this, first
, next
, last
);
1213 this->rsize
= last
-next
;
1216 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ */
1217 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ */
1218 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init_empty
, 4)
1219 void __thiscall
basic_streambuf_char__Init_empty(basic_streambuf_char
*this)
1221 TRACE("(%p)\n", this);
1223 this->prbuf
= &this->rbuf
;
1224 this->pwbuf
= &this->wbuf
;
1225 this->prpos
= &this->rpos
;
1226 this->pwpos
= &this->wpos
;
1227 this->prsize
= &this->rsize
;
1228 this->pwsize
= &this->wsize
;
1230 basic_streambuf_char_setp(this, NULL
, NULL
);
1231 basic_streambuf_char_setg(this, NULL
, NULL
, NULL
);
1234 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@W4_Uninitialized@1@@Z */
1235 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
1236 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor_uninitialized
, 8)
1237 basic_streambuf_char
* __thiscall
basic_streambuf_char_ctor_uninitialized(basic_streambuf_char
*this, int uninitialized
)
1239 TRACE("(%p %d)\n", this, uninitialized
);
1240 this->vtable
= &basic_streambuf_char_vtable
;
1241 #if _MSVCP_VER >= 70 && _MSVCP_VER <= 100
1242 mutex_ctor(&this->lock
);
1247 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ */
1248 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ */
1249 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor
, 4)
1250 basic_streambuf_char
* __thiscall
basic_streambuf_char_ctor(basic_streambuf_char
*this)
1252 TRACE("(%p)\n", this);
1254 this->vtable
= &basic_streambuf_char_vtable
;
1255 #if _MSVCP_VER >= 70 && _MSVCP_VER <= 100
1256 mutex_ctor(&this->lock
);
1258 #if _MSVCP_VER >= 70
1259 this->loc
= operator_new(sizeof(locale
));
1261 locale_ctor(IOS_LOCALE(this));
1262 basic_streambuf_char__Init_empty(this);
1267 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
1268 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
1269 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_dtor
, 4)
1270 void __thiscall
basic_streambuf_char_dtor(basic_streambuf_char
*this)
1272 TRACE("(%p)\n", this);
1274 #if _MSVCP_VER >= 70 && _MSVCP_VER <= 100
1275 mutex_dtor(&this->lock
);
1277 locale_dtor(IOS_LOCALE(this));
1278 #if _MSVCP_VER >= 70
1279 operator_delete(this->loc
);
1283 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_vector_dtor
, 8)
1284 basic_streambuf_char
* __thiscall
basic_streambuf_char_vector_dtor(basic_streambuf_char
*this, unsigned int flags
)
1286 TRACE("(%p %x)\n", this, flags
);
1288 /* we have an array, with the number of elements stored before the first object */
1289 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
1291 for(i
=*ptr
-1; i
>=0; i
--)
1292 basic_streambuf_char_dtor(this+i
);
1293 operator_delete(ptr
);
1295 basic_streambuf_char_dtor(this);
1297 operator_delete(this);
1303 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
1304 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
1305 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gnavail
, 4)
1306 streamsize __thiscall
basic_streambuf_char__Gnavail(const basic_streambuf_char
*this)
1308 TRACE("(%p)\n", this);
1309 return *this->prpos
? *this->prsize
: 0;
1312 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
1313 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
1314 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gndec
, 4)
1315 char* __thiscall
basic_streambuf_char__Gndec(basic_streambuf_char
*this)
1317 TRACE("(%p)\n", this);
1320 return *this->prpos
;
1323 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
1324 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
1325 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gninc
, 4)
1326 char* __thiscall
basic_streambuf_char__Gninc(basic_streambuf_char
*this)
1328 TRACE("(%p)\n", this);
1330 return (*this->prpos
)++;
1333 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
1334 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
1335 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gnpreinc
, 4)
1336 char* __thiscall
basic_streambuf_char__Gnpreinc(basic_streambuf_char
*this)
1338 TRACE("(%p)\n", this);
1341 return *this->prpos
;
1344 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z */
1345 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAPEAD0PEAH001@Z */
1346 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init
, 28)
1347 void __thiscall
basic_streambuf_char__Init(basic_streambuf_char
*this, char **gf
, char **gn
, int *gc
, char **pf
, char **pn
, int *pc
)
1349 TRACE("(%p %p %p %p %p %p %p)\n", this, gf
, gn
, gc
, pf
, pn
, pc
);
1359 /* ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1360 /* ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1361 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Lock
, 4)
1362 #if _MSVCP_VER >= 100
1363 #define call_basic_streambuf_char__Lock(this) CALL_VTBL_FUNC(this, 4, void, (basic_streambuf_char*), (this))
1365 #define call_basic_streambuf_char__Lock(this) basic_streambuf_char__Lock(this)
1367 void __thiscall
basic_streambuf_char__Lock(basic_streambuf_char
*this)
1369 TRACE("(%p)\n", this);
1370 #if _MSVCP_VER >= 70 && _MSVCP_VER <= 100
1371 mutex_lock(&this->lock
);
1375 /* ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
1376 /* ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
1377 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Pnavail
, 4)
1378 streamsize __thiscall
basic_streambuf_char__Pnavail(const basic_streambuf_char
*this)
1380 TRACE("(%p)\n", this);
1381 return *this->pwpos
? *this->pwsize
: 0;
1384 /* ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
1385 /* ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
1386 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Pninc
, 4)
1387 char* __thiscall
basic_streambuf_char__Pninc(basic_streambuf_char
*this)
1389 TRACE("(%p)\n", this);
1391 return (*this->pwpos
)++;
1394 /* ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1395 /* ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1396 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_underflow
, 4)
1397 #if _MSVCP_VER >= 100
1398 #define call_basic_streambuf_char_underflow(this) CALL_VTBL_FUNC(this, 24, int, (basic_streambuf_char*), (this))
1400 #define call_basic_streambuf_char_underflow(this) CALL_VTBL_FUNC(this, 16, int, (basic_streambuf_char*), (this))
1402 int __thiscall
basic_streambuf_char_underflow(basic_streambuf_char
*this)
1404 TRACE("(%p)\n", this);
1408 /* ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1409 /* ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1410 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_uflow
, 4)
1411 #if _MSVCP_VER >= 100
1412 #define call_basic_streambuf_char_uflow(this) CALL_VTBL_FUNC(this, 28, int, (basic_streambuf_char*), (this))
1414 #define call_basic_streambuf_char_uflow(this) CALL_VTBL_FUNC(this, 20, int, (basic_streambuf_char*), (this))
1416 int __thiscall
basic_streambuf_char_uflow(basic_streambuf_char
*this)
1420 TRACE("(%p)\n", this);
1422 if(call_basic_streambuf_char_underflow(this)==EOF
)
1425 ret
= (unsigned char)**this->prpos
;
1431 /* ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADIH@Z */
1432 /* ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_K_J@Z */
1433 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
1434 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Xsgetn_s
, 20)
1436 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Xsgetn_s
, 16)
1438 #if _MSVCP_VER >= 80 && _MSVCP_VER <= 90
1439 #define call_basic_streambuf_char__Xsgetn_s(this, ptr, size, count) CALL_VTBL_FUNC(this, 28, \
1440 streamsize, (basic_streambuf_char*, char*, size_t, streamsize), (this, ptr, size, count))
1442 #define call_basic_streambuf_char__Xsgetn_s(this, ptr, size, count) basic_streambuf_char__Xsgetn_s(this, ptr, size, count)
1444 streamsize __thiscall
basic_streambuf_char__Xsgetn_s(basic_streambuf_char
*this, char *ptr
, size_t size
, streamsize count
)
1446 streamsize copied
, chunk
;
1449 TRACE("(%p %p %Iu %s)\n", this, ptr
, size
, wine_dbgstr_longlong(count
));
1451 for(copied
=0; copied
<count
&& size
;) {
1452 chunk
= basic_streambuf_char__Gnavail(this);
1453 if(chunk
> count
-copied
)
1454 chunk
= count
-copied
;
1457 memcpy_s(ptr
+copied
, size
, *this->prpos
, chunk
);
1458 *this->prpos
+= chunk
;
1459 *this->prsize
-= chunk
;
1462 }else if((c
= call_basic_streambuf_char_uflow(this)) != EOF
) {
1474 /* ?_Sgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADIH@Z */
1475 /* ?_Sgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_K_J@Z */
1476 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
1477 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Sgetn_s
, 20)
1479 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Sgetn_s
, 16)
1481 streamsize __thiscall
basic_streambuf_char__Sgetn_s(basic_streambuf_char
*this, char *ptr
, size_t size
, streamsize count
)
1483 TRACE("(%p %p %Iu %s)\n", this, ptr
, size
, wine_dbgstr_longlong(count
));
1484 return call_basic_streambuf_char__Xsgetn_s(this, ptr
, size
, count
);
1487 /* ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1488 /* ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1489 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Unlock
, 4)
1490 #if _MSVCP_VER >= 100
1491 #define call_basic_streambuf_char__Unlock(this) CALL_VTBL_FUNC(this, 8, void, (basic_streambuf_char*), (this))
1493 #define call_basic_streambuf_char__Unlock(this) basic_streambuf_char__Unlock(this)
1495 void __thiscall
basic_streambuf_char__Unlock(basic_streambuf_char
*this)
1497 TRACE("(%p)\n", this);
1498 #if _MSVCP_VER >= 70 && _MSVCP_VER <= 100
1499 mutex_unlock(&this->lock
);
1503 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1504 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1505 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_eback
, 4)
1506 char* __thiscall
basic_streambuf_char_eback(const basic_streambuf_char
*this)
1508 TRACE("(%p)\n", this);
1509 return *this->prbuf
;
1512 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1513 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1514 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gptr
, 4)
1515 char* __thiscall
basic_streambuf_char_gptr(const basic_streambuf_char
*this)
1517 TRACE("(%p)\n", this);
1518 return *this->prpos
;
1521 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1522 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1523 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_egptr
, 4)
1524 char* __thiscall
basic_streambuf_char_egptr(const basic_streambuf_char
*this)
1526 TRACE("(%p)\n", this);
1527 return *this->prpos
+*this->prsize
;
1530 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1531 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1532 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_epptr
, 4)
1533 char* __thiscall
basic_streambuf_char_epptr(const basic_streambuf_char
*this)
1535 TRACE("(%p)\n", this);
1536 return *this->pwpos
+*this->pwsize
;
1539 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
1540 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
1541 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gbump
, 8)
1542 void __thiscall
basic_streambuf_char_gbump(basic_streambuf_char
*this, int off
)
1544 TRACE("(%p %d)\n", this, off
);
1545 *this->prpos
+= off
;
1546 *this->prsize
-= off
;
1549 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@XZ */
1550 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ */
1551 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@XZ */
1552 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?AVlocale@2@XZ */
1553 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_getloc
, 8)
1554 locale
* __thiscall
basic_streambuf_char_getloc(const basic_streambuf_char
*this, locale
*ret
)
1556 TRACE("(%p)\n", this);
1557 return locale_copy_ctor(ret
, IOS_LOCALE(this));
1560 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z */
1561 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z */
1562 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_imbue
, 8)
1563 #if _MSVCP_VER >= 100
1564 #define call_basic_streambuf_char_imbue(this, loc) CALL_VTBL_FUNC(this, 56, void, (basic_streambuf_char*, const locale*), (this, loc))
1565 #elif _MSVCP_VER >= 80
1566 #define call_basic_streambuf_char_imbue(this, loc) CALL_VTBL_FUNC(this, 52, void, (basic_streambuf_char*, const locale*), (this, loc))
1568 #define call_basic_streambuf_char_imbue(this, loc) CALL_VTBL_FUNC(this, 48, void, (basic_streambuf_char*, const locale*), (this, loc))
1570 void __thiscall
basic_streambuf_char_imbue(basic_streambuf_char
*this, const locale
*loc
)
1572 TRACE("(%p %p)\n", this, loc
);
1575 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
1576 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
1577 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_overflow
, 8)
1578 #if _MSVCP_VER >= 100
1579 #define call_basic_streambuf_char_overflow(this, ch) CALL_VTBL_FUNC(this, 12, int, (basic_streambuf_char*, int), (this, ch))
1581 #define call_basic_streambuf_char_overflow(this, ch) CALL_VTBL_FUNC(this, 4, int, (basic_streambuf_char*, int), (this, ch))
1583 int __thiscall
basic_streambuf_char_overflow(basic_streambuf_char
*this, int ch
)
1585 TRACE("(%p %d)\n", this, ch
);
1589 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
1590 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
1591 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbackfail
, 8)
1592 #if _MSVCP_VER >= 100
1593 #define call_basic_streambuf_char_pbackfail(this, ch) CALL_VTBL_FUNC(this, 16, int, (basic_streambuf_char*, int), (this, ch))
1595 #define call_basic_streambuf_char_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, int, (basic_streambuf_char*, int), (this, ch))
1597 int __thiscall
basic_streambuf_char_pbackfail(basic_streambuf_char
*this, int ch
)
1599 TRACE("(%p %d)\n", this, ch
);
1603 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1604 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1605 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbase
, 4)
1606 char* __thiscall
basic_streambuf_char_pbase(const basic_streambuf_char
*this)
1608 TRACE("(%p)\n", this);
1609 return *this->pwbuf
;
1612 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
1613 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
1614 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbump
, 8)
1615 void __thiscall
basic_streambuf_char_pbump(basic_streambuf_char
*this, int off
)
1617 TRACE("(%p %d)\n", this, off
);
1618 *this->pwpos
+= off
;
1619 *this->pwsize
-= off
;
1622 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1623 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1624 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pptr
, 4)
1625 char* __thiscall
basic_streambuf_char_pptr(const basic_streambuf_char
*this)
1627 TRACE("(%p)\n", this);
1628 return *this->pwpos
;
1631 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
1632 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
1633 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubimbue
, 12)
1634 locale
* __thiscall
basic_streambuf_char_pubimbue(basic_streambuf_char
*this, locale
*ret
, const locale
*loc
)
1636 TRACE("(%p %p)\n", this, loc
);
1637 memcpy(ret
, IOS_LOCALE(this), sizeof(locale
));
1638 call_basic_streambuf_char_imbue(this, loc
);
1639 locale_copy_ctor(IOS_LOCALE(this), loc
);
1643 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
1644 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
1645 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
1646 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
1647 #if STREAMOFF_BITS == 64
1648 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekoff
, 24)
1650 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekoff
, 20)
1652 #if _MSVCP_VER >= 100
1653 #define call_basic_streambuf_char_seekoff(this, ret, off, way, mode) \
1654 CALL_VTBL_FUNC(this, 40, fpos_mbstatet*, (basic_streambuf_char*, fpos_mbstatet*, streamoff, int, int), (this, ret, off, way, mode))
1655 #elif _MSVCP_VER >= 80
1656 #define call_basic_streambuf_char_seekoff(this, ret, off, way, mode) \
1657 CALL_VTBL_FUNC(this, 36, fpos_mbstatet*, (basic_streambuf_char*, fpos_mbstatet*, streamoff, int, int), (this, ret, off, way, mode))
1659 #define call_basic_streambuf_char_seekoff(this, ret, off, way, mode) \
1660 CALL_VTBL_FUNC(this, 32, fpos_mbstatet*, (basic_streambuf_char*, fpos_mbstatet*, streamoff, int, int), (this, ret, off, way, mode))
1662 fpos_mbstatet
* __thiscall
basic_streambuf_char_seekoff(basic_streambuf_char
*this,
1663 fpos_mbstatet
*ret
, streamoff off
, int way
, int mode
)
1665 TRACE("(%p %s %d %d)\n", this, wine_dbgstr_longlong(off
), way
, mode
);
1668 memset(&ret
->state
, 0, sizeof(ret
->state
));
1672 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
1673 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
1674 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JFF@Z */
1675 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JFF@Z */
1676 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
1677 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
1678 #if STREAMOFF_BITS == 64
1679 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff
, 24)
1681 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff
, 20)
1683 fpos_mbstatet
* __thiscall
basic_streambuf_char_pubseekoff(basic_streambuf_char
*this,
1684 fpos_mbstatet
*ret
, streamoff off
, int way
, int mode
)
1686 TRACE("(%p %s %d %d)\n", this, wine_dbgstr_longlong(off
), way
, mode
);
1687 return call_basic_streambuf_char_seekoff(this, ret
, off
, way
, mode
);
1690 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
1691 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
1692 #if STREAMOFF_BITS == 64
1693 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff_old
, 24)
1695 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff_old
, 20)
1697 fpos_mbstatet
* __thiscall
basic_streambuf_char_pubseekoff_old(basic_streambuf_char
*this,
1698 fpos_mbstatet
*ret
, streamoff off
, unsigned int way
, unsigned int mode
)
1700 TRACE("(%p %s %d %d)\n", this, wine_dbgstr_longlong(off
), way
, mode
);
1701 return basic_streambuf_char_pubseekoff(this, ret
, off
, way
, mode
);
1704 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
1705 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
1706 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekpos
, 36)
1707 #if _MSVCP_VER >= 100
1708 #define call_basic_streambuf_char_seekpos(this, ret, pos, mode) \
1709 CALL_VTBL_FUNC(this, 44, fpos_mbstatet*, (basic_streambuf_char*, fpos_mbstatet*, fpos_mbstatet, int), (this, ret, pos, mode))
1710 #elif _MSVCP_VER >= 80
1711 #define call_basic_streambuf_char_seekpos(this, ret, pos, mode) \
1712 CALL_VTBL_FUNC(this, 40, fpos_mbstatet*, (basic_streambuf_char*, fpos_mbstatet*, fpos_mbstatet, int), (this, ret, pos, mode))
1714 #define call_basic_streambuf_char_seekpos(this, ret, pos, mode) \
1715 CALL_VTBL_FUNC(this, 36, fpos_mbstatet*, (basic_streambuf_char*, fpos_mbstatet*, fpos_mbstatet, int), (this, ret, pos, mode))
1717 fpos_mbstatet
* __thiscall
basic_streambuf_char_seekpos(basic_streambuf_char
*this,
1718 fpos_mbstatet
*ret
, fpos_mbstatet pos
, int mode
)
1720 TRACE("(%p %s %d)\n", this, debugstr_fpos_mbstatet(&pos
), mode
);
1723 memset(&ret
->state
, 0, sizeof(ret
->state
));
1727 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
1728 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
1729 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos
, 36)
1730 fpos_mbstatet
* __thiscall
basic_streambuf_char_pubseekpos(basic_streambuf_char
*this,
1731 fpos_mbstatet
*ret
, fpos_mbstatet pos
, int mode
)
1733 TRACE("(%p %s %d)\n", this, debugstr_fpos_mbstatet(&pos
), mode
);
1734 return call_basic_streambuf_char_seekpos(this, ret
, pos
, mode
);
1737 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
1738 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
1739 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos_old
, 36)
1740 fpos_mbstatet
* __thiscall
basic_streambuf_char_pubseekpos_old(basic_streambuf_char
*this,
1741 fpos_mbstatet
*ret
, fpos_mbstatet pos
, unsigned int mode
)
1743 TRACE("(%p %s %d)\n", this, debugstr_fpos_mbstatet(&pos
), mode
);
1744 return basic_streambuf_char_pubseekpos(this, ret
, pos
, mode
);
1747 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z */
1748 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@PEAD_J@Z */
1749 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
1750 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setbuf
, 16)
1752 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setbuf
, 12)
1754 #if _MSVCP_VER >= 100
1755 #define call_basic_streambuf_char_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 48, basic_streambuf_char*, (basic_streambuf_char*, char*, streamsize), (this, buf, count))
1756 #elif _MSVCP_VER >= 80
1757 #define call_basic_streambuf_char_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 44, basic_streambuf_char*, (basic_streambuf_char*, char*, streamsize), (this, buf, count))
1759 #define call_basic_streambuf_char_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 40, basic_streambuf_char*, (basic_streambuf_char*, char*, streamsize), (this, buf, count))
1761 basic_streambuf_char
* __thiscall
basic_streambuf_char_setbuf(basic_streambuf_char
*this, char *buf
, streamsize count
)
1763 TRACE("(%p %p %s)\n", this, buf
, wine_dbgstr_longlong(count
));
1767 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PADH@Z */
1768 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEAD_J@Z */
1769 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
1770 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsetbuf
, 16)
1772 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsetbuf
, 12)
1774 basic_streambuf_char
* __thiscall
basic_streambuf_char_pubsetbuf(basic_streambuf_char
*this, char *buf
, streamsize count
)
1776 TRACE("(%p %p %s)\n", this, buf
, wine_dbgstr_longlong(count
));
1777 return call_basic_streambuf_char_setbuf(this, buf
, count
);
1780 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1781 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1782 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sync
, 4)
1783 #if _MSVCP_VER >= 100
1784 #define call_basic_streambuf_char_sync(this) CALL_VTBL_FUNC(this, 52, int, (basic_streambuf_char*), (this))
1785 #elif _MSVCP_VER >= 80
1786 #define call_basic_streambuf_char_sync(this) CALL_VTBL_FUNC(this, 48, int, (basic_streambuf_char*), (this))
1788 #define call_basic_streambuf_char_sync(this) CALL_VTBL_FUNC(this, 44, int, (basic_streambuf_char*), (this))
1790 int __thiscall
basic_streambuf_char_sync(basic_streambuf_char
*this)
1792 TRACE("(%p)\n", this);
1796 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1797 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1798 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsync
, 4)
1799 int __thiscall
basic_streambuf_char_pubsync(basic_streambuf_char
*this)
1801 TRACE("(%p)\n", this);
1802 return call_basic_streambuf_char_sync(this);
1805 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADH@Z */
1806 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z */
1807 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
1808 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetn
, 16)
1810 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetn
, 12)
1812 streamsize __thiscall
basic_streambuf_char_sgetn(basic_streambuf_char
*this, char *ptr
, streamsize count
)
1814 TRACE("(%p %p %s)\n", this, ptr
, wine_dbgstr_longlong(count
));
1815 return call_basic_streambuf_char__Xsgetn_s(this, ptr
, -1, count
);
1818 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1819 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ */
1820 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_showmanyc
, 4)
1821 #if _MSVCP_VER >= 100
1822 #define call_basic_streambuf_char_showmanyc(this) CALL_VTBL_FUNC(this, 20, streamsize, (basic_streambuf_char*), (this))
1824 #define call_basic_streambuf_char_showmanyc(this) CALL_VTBL_FUNC(this, 12, streamsize, (basic_streambuf_char*), (this))
1826 streamsize __thiscall
basic_streambuf_char_showmanyc(basic_streambuf_char
*this)
1828 TRACE("(%p)\n", this);
1832 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1833 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JXZ */
1834 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_in_avail
, 4)
1835 streamsize __thiscall
basic_streambuf_char_in_avail(basic_streambuf_char
*this)
1839 TRACE("(%p)\n", this);
1841 ret
= basic_streambuf_char__Gnavail(this);
1842 return ret
? ret
: call_basic_streambuf_char_showmanyc(this);
1845 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
1846 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
1847 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputbackc
, 8)
1848 int __thiscall
basic_streambuf_char_sputbackc(basic_streambuf_char
*this, char ch
)
1850 TRACE("(%p %d)\n", this, ch
);
1851 if(*this->prpos
&& *this->prpos
>*this->prbuf
&& (*this->prpos
)[-1]==ch
) {
1854 return (unsigned char)ch
;
1857 return call_basic_streambuf_char_pbackfail(this, (unsigned char)ch
);
1860 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
1861 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
1862 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputc
, 8)
1863 int __thiscall
basic_streambuf_char_sputc(basic_streambuf_char
*this, char ch
)
1865 TRACE("(%p %d)\n", this, ch
);
1866 return basic_streambuf_char__Pnavail(this) ?
1867 (unsigned char)(*basic_streambuf_char__Pninc(this) = ch
) :
1868 call_basic_streambuf_char_overflow(this, (unsigned char)ch
);
1871 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1872 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1873 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sungetc
, 4)
1874 int __thiscall
basic_streambuf_char_sungetc(basic_streambuf_char
*this)
1876 TRACE("(%p)\n", this);
1877 if(*this->prpos
&& *this->prpos
>*this->prbuf
) {
1880 return (unsigned char)**this->prpos
;
1883 return call_basic_streambuf_char_pbackfail(this, EOF
);
1886 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1887 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1888 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_stossc
, 4)
1889 void __thiscall
basic_streambuf_char_stossc(basic_streambuf_char
*this)
1891 TRACE("(%p)\n", this);
1892 if(basic_streambuf_char__Gnavail(this))
1893 basic_streambuf_char__Gninc(this);
1895 call_basic_streambuf_char_uflow(this);
1898 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1899 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1900 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sbumpc
, 4)
1901 int __thiscall
basic_streambuf_char_sbumpc(basic_streambuf_char
*this)
1903 TRACE("(%p)\n", this);
1904 return basic_streambuf_char__Gnavail(this) ?
1905 (int)(unsigned char)*basic_streambuf_char__Gninc(this) : call_basic_streambuf_char_uflow(this);
1908 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1909 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1910 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetc
, 4)
1911 int __thiscall
basic_streambuf_char_sgetc(basic_streambuf_char
*this)
1913 TRACE("(%p)\n", this);
1914 return basic_streambuf_char__Gnavail(this) ?
1915 (int)(unsigned char)*basic_streambuf_char_gptr(this) : call_basic_streambuf_char_underflow(this);
1918 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1919 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1920 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_snextc
, 4)
1921 int __thiscall
basic_streambuf_char_snextc(basic_streambuf_char
*this)
1923 TRACE("(%p)\n", this);
1925 if(basic_streambuf_char__Gnavail(this) > 1)
1926 return (unsigned char)*basic_streambuf_char__Gnpreinc(this);
1927 return basic_streambuf_char_sbumpc(this)==EOF
?
1928 EOF
: basic_streambuf_char_sgetc(this);
1931 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z */
1932 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z */
1933 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
1934 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsgetn
, 16)
1936 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsgetn
, 12)
1938 #if _MSVCP_VER >= 100
1939 #define call_basic_streambuf_char_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 32, streamsize, (basic_streambuf_char*, char*, streamsize), (this, ptr, count))
1941 #define call_basic_streambuf_char_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, streamsize, (basic_streambuf_char*, char*, streamsize), (this, ptr, count))
1943 streamsize __thiscall
basic_streambuf_char_xsgetn(basic_streambuf_char
*this, char *ptr
, streamsize count
)
1945 TRACE("(%p %p %s)\n", this, ptr
, wine_dbgstr_longlong(count
));
1946 return call_basic_streambuf_char__Xsgetn_s(this, ptr
, -1, count
);
1949 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z */
1950 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z */
1951 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
1952 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsputn
, 16)
1954 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsputn
, 12)
1956 #if _MSVCP_VER >= 100
1957 #define call_basic_streambuf_char_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 36, streamsize, (basic_streambuf_char*, const char*, streamsize), (this, ptr, count))
1958 #elif _MSVCP_VER >= 80
1959 #define call_basic_streambuf_char_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 32, streamsize, (basic_streambuf_char*, const char*, streamsize), (this, ptr, count))
1961 #define call_basic_streambuf_char_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 28, streamsize, (basic_streambuf_char*, const char*, streamsize), (this, ptr, count))
1963 streamsize __thiscall
basic_streambuf_char_xsputn(basic_streambuf_char
*this, const char *ptr
, streamsize count
)
1965 streamsize copied
, chunk
;
1967 TRACE("(%p %p %s)\n", this, ptr
, wine_dbgstr_longlong(count
));
1969 for(copied
=0; copied
<count
;) {
1970 chunk
= basic_streambuf_char__Pnavail(this);
1971 if(chunk
> count
-copied
)
1972 chunk
= count
-copied
;
1975 memcpy(*this->pwpos
, ptr
+copied
, chunk
);
1976 *this->pwpos
+= chunk
;
1977 *this->pwsize
-= chunk
;
1979 }else if(call_basic_streambuf_char_overflow(this, (unsigned char)ptr
[copied
]) != EOF
) {
1989 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z */
1990 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@Z */
1991 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
1992 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputn
, 16)
1994 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputn
, 12)
1996 streamsize __thiscall
basic_streambuf_char_sputn(basic_streambuf_char
*this, const char *ptr
, streamsize count
)
1998 TRACE("(%p %p %s)\n", this, ptr
, wine_dbgstr_longlong(count
));
1999 return call_basic_streambuf_char_xsputn(this, ptr
, count
);
2002 /* ?swap@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXAAV12@@Z */
2003 /* ?swap@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z */
2004 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_swap
, 8)
2005 void __thiscall
basic_streambuf_char_swap(basic_streambuf_char
*this, basic_streambuf_char
*r
)
2007 char *wfirst
, *wnext
, *wlast
, *rfirst
, *rnext
, *rlast
;
2014 TRACE("(%p %p)\n", this, r
);
2019 wfirst
= *this->pwbuf
;
2020 wnext
= *this->pwpos
;
2021 wlast
= *this->pwpos
+ *this->pwsize
;
2022 rfirst
= *this->prbuf
;
2023 rnext
= *this->prpos
;
2024 rlast
= *this->prpos
+ *this->prsize
;
2027 basic_streambuf_char_setp_next(this, *r
->pwbuf
, *r
->pwpos
, *r
->pwpos
+ *r
->pwsize
);
2028 basic_streambuf_char_setg(this, *r
->prbuf
, *r
->prpos
, *r
->prpos
+ *r
->prsize
);
2031 basic_streambuf_char_setp_next(r
, wfirst
, wnext
, wlast
);
2032 basic_streambuf_char_setg(r
, rfirst
, rnext
, rlast
);
2036 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z */
2037 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z */
2038 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG00@Z */
2039 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z */
2040 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setp_next
, 16)
2041 void __thiscall
basic_streambuf_wchar_setp_next(basic_streambuf_wchar
*this, wchar_t *first
, wchar_t *next
, wchar_t *last
)
2043 TRACE("(%p %p %p %p)\n", this, first
, next
, last
);
2047 this->wsize
= last
-next
;
2050 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W0@Z */
2051 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W0@Z */
2052 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG0@Z */
2053 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG0@Z */
2054 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setp
, 12)
2055 void __thiscall
basic_streambuf_wchar_setp(basic_streambuf_wchar
*this, wchar_t *first
, wchar_t *last
)
2057 basic_streambuf_wchar_setp_next(this, first
, first
, last
);
2060 /* ?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z */
2061 /* ?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z */
2062 /* ?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG00@Z */
2063 /* ?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z */
2064 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setg
, 16)
2065 void __thiscall
basic_streambuf_wchar_setg(basic_streambuf_wchar
*this, wchar_t *first
, wchar_t *next
, wchar_t *last
)
2067 TRACE("(%p %p %p %p)\n", this, first
, next
, last
);
2071 this->rsize
= last
-next
;
2074 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXXZ */
2075 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXXZ */
2076 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXXZ */
2077 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXXZ */
2078 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init_empty
, 4)
2079 void __thiscall
basic_streambuf_wchar__Init_empty(basic_streambuf_wchar
*this)
2081 TRACE("(%p)\n", this);
2083 this->prbuf
= &this->rbuf
;
2084 this->pwbuf
= &this->wbuf
;
2085 this->prpos
= &this->rpos
;
2086 this->pwpos
= &this->wpos
;
2087 this->prsize
= &this->rsize
;
2088 this->pwsize
= &this->wsize
;
2090 basic_streambuf_wchar_setp(this, NULL
, NULL
);
2091 basic_streambuf_wchar_setg(this, NULL
, NULL
, NULL
);
2094 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAE@W4_Uninitialized@1@@Z */
2095 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
2096 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_ctor_uninitialized
, 8)
2097 basic_streambuf_wchar
* __thiscall
basic_streambuf_wchar_ctor_uninitialized(basic_streambuf_wchar
*this, int uninitialized
)
2099 TRACE("(%p %d)\n", this, uninitialized
);
2100 this->vtable
= &basic_streambuf_wchar_vtable
;
2101 #if _MSVCP_VER >= 70 && _MSVCP_VER <= 100
2102 mutex_ctor(&this->lock
);
2107 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@W4_Uninitialized@1@@Z */
2108 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
2109 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor_uninitialized
, 8)
2110 basic_streambuf_wchar
* __thiscall
basic_streambuf_short_ctor_uninitialized(basic_streambuf_wchar
*this, int uninitialized
)
2112 TRACE("(%p %d)\n", this, uninitialized
);
2113 basic_streambuf_wchar_ctor_uninitialized(this, uninitialized
);
2114 this->vtable
= &basic_streambuf_short_vtable
;
2118 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
2119 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
2120 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_ctor
, 4)
2121 basic_streambuf_wchar
* __thiscall
basic_streambuf_wchar_ctor(basic_streambuf_wchar
*this)
2123 TRACE("(%p)\n", this);
2125 this->vtable
= &basic_streambuf_wchar_vtable
;
2126 #if _MSVCP_VER >= 70 && _MSVCP_VER <= 100
2127 mutex_ctor(&this->lock
);
2129 #if _MSVCP_VER >= 70
2130 this->loc
= operator_new(sizeof(locale
));
2132 locale_ctor(IOS_LOCALE(this));
2133 basic_streambuf_wchar__Init_empty(this);
2138 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@XZ */
2139 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@XZ */
2140 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor
, 4)
2141 basic_streambuf_wchar
* __thiscall
basic_streambuf_short_ctor(basic_streambuf_wchar
*this)
2143 TRACE("(%p)\n", this);
2144 basic_streambuf_wchar_ctor(this);
2145 this->vtable
= &basic_streambuf_short_vtable
;
2149 /* ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
2150 /* ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
2151 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UAE@XZ */
2152 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */
2153 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_dtor
, 4)
2154 void __thiscall
basic_streambuf_wchar_dtor(basic_streambuf_wchar
*this)
2156 TRACE("(%p)\n", this);
2158 #if _MSVCP_VER >= 70 && _MSVCP_VER <= 100
2159 mutex_dtor(&this->lock
);
2161 locale_dtor(IOS_LOCALE(this));
2162 #if _MSVCP_VER >= 70
2163 operator_delete(this->loc
);
2167 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_vector_dtor
, 8)
2168 basic_streambuf_wchar
* __thiscall
basic_streambuf_wchar_vector_dtor(basic_streambuf_wchar
*this, unsigned int flags
)
2170 TRACE("(%p %x)\n", this, flags
);
2172 /* we have an array, with the number of elements stored before the first object */
2173 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
2175 for(i
=*ptr
-1; i
>=0; i
--)
2176 basic_streambuf_wchar_dtor(this+i
);
2177 operator_delete(ptr
);
2179 basic_streambuf_wchar_dtor(this);
2181 operator_delete(this);
2187 /* ?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEHXZ */
2188 /* ?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ */
2189 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
2190 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
2191 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gnavail
, 4)
2192 streamsize __thiscall
basic_streambuf_wchar__Gnavail(const basic_streambuf_wchar
*this)
2194 TRACE("(%p)\n", this);
2195 return *this->prpos
? *this->prsize
: 0;
2198 /* ?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
2199 /* ?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
2200 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
2201 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
2202 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gndec
, 4)
2203 wchar_t* __thiscall
basic_streambuf_wchar__Gndec(basic_streambuf_wchar
*this)
2205 TRACE("(%p)\n", this);
2208 return *this->prpos
;
2211 /* ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
2212 /* ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
2213 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
2214 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
2215 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gninc
, 4)
2216 wchar_t* __thiscall
basic_streambuf_wchar__Gninc(basic_streambuf_wchar
*this)
2218 TRACE("(%p)\n", this);
2220 return (*this->prpos
)++;
2223 /* ?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
2224 /* ?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
2225 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
2226 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
2227 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gnpreinc
, 4)
2228 wchar_t* __thiscall
basic_streambuf_wchar__Gnpreinc(basic_streambuf_wchar
*this)
2230 TRACE("(%p)\n", this);
2233 return *this->prpos
;
2236 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPAPA_W0PAH001@Z */
2237 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAPEA_W0PEAH001@Z */
2238 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAPAG0PAH001@Z */
2239 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAPEAG0PEAH001@Z */
2240 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init
, 28)
2241 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
)
2243 TRACE("(%p %p %p %p %p %p %p)\n", this, gf
, gn
, gc
, pf
, pn
, pc
);
2253 /* ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
2254 /* ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
2255 /* ?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
2256 /* ?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
2257 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Lock
, 4)
2258 void __thiscall
basic_streambuf_wchar__Lock(basic_streambuf_wchar
*this)
2260 TRACE("(%p)\n", this);
2261 #if _MSVCP_VER >= 70 && _MSVCP_VER <= 100
2262 mutex_lock(&this->lock
);
2266 /* ?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEHXZ */
2267 /* ?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ */
2268 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
2269 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
2270 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Pnavail
, 4)
2271 streamsize __thiscall
basic_streambuf_wchar__Pnavail(const basic_streambuf_wchar
*this)
2273 TRACE("(%p)\n", this);
2274 return *this->pwpos
? *this->pwsize
: 0;
2277 /* ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
2278 /* ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
2279 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
2280 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
2281 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Pninc
, 4)
2282 wchar_t* __thiscall
basic_streambuf_wchar__Pninc(basic_streambuf_wchar
*this)
2284 TRACE("(%p)\n", this);
2286 return (*this->pwpos
)++;
2289 /* ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
2290 /* ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
2291 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
2292 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
2293 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_underflow
, 4)
2294 #if _MSVCP_VER >= 100
2295 #define call_basic_streambuf_wchar_underflow(this) CALL_VTBL_FUNC(this, 24, unsigned short, (basic_streambuf_wchar*), (this))
2297 #define call_basic_streambuf_wchar_underflow(this) CALL_VTBL_FUNC(this, 16, unsigned short, (basic_streambuf_wchar*), (this))
2299 unsigned short __thiscall
basic_streambuf_wchar_underflow(basic_streambuf_wchar
*this)
2301 TRACE("(%p)\n", this);
2305 /* ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
2306 /* ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
2307 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
2308 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
2309 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_uflow
, 4)
2310 #if _MSVCP_VER >= 100
2311 #define call_basic_streambuf_wchar_uflow(this) CALL_VTBL_FUNC(this, 28, unsigned short, (basic_streambuf_wchar*), (this))
2313 #define call_basic_streambuf_wchar_uflow(this) CALL_VTBL_FUNC(this, 20, unsigned short, (basic_streambuf_wchar*), (this))
2315 unsigned short __thiscall
basic_streambuf_wchar_uflow(basic_streambuf_wchar
*this)
2319 TRACE("(%p)\n", this);
2321 if(call_basic_streambuf_wchar_underflow(this)==WEOF
)
2324 ret
= **this->prpos
;
2330 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WIH@Z */
2331 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_K_J@Z */
2332 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGIH@Z */
2333 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_K_J@Z */
2334 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
2335 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Xsgetn_s
, 20)
2337 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Xsgetn_s
, 16)
2339 #if _MSVCP_VER >= 80 && _MSVCP_VER <= 90
2340 #define call_basic_streambuf_wchar__Xsgetn_s(this, ptr, size, count) CALL_VTBL_FUNC(this, 28, \
2341 streamsize, (basic_streambuf_wchar*, wchar_t*, size_t, streamsize), (this, ptr, size, count))
2343 #define call_basic_streambuf_wchar__Xsgetn_s(this, ptr, size, count) basic_streambuf_wchar__Xsgetn_s(this, ptr, size, count)
2345 streamsize __thiscall
basic_streambuf_wchar__Xsgetn_s(basic_streambuf_wchar
*this, wchar_t *ptr
, size_t size
, streamsize count
)
2347 streamsize copied
, chunk
;
2350 TRACE("(%p %p %Iu %s)\n", this, ptr
, size
, wine_dbgstr_longlong(count
));
2352 for(copied
=0; copied
<count
&& size
;) {
2353 chunk
= basic_streambuf_wchar__Gnavail(this);
2354 if(chunk
> count
-copied
)
2355 chunk
= count
-copied
;
2358 memcpy_s(ptr
+copied
, size
, *this->prpos
, chunk
*sizeof(wchar_t));
2359 *this->prpos
+= chunk
;
2360 *this->prsize
-= chunk
;
2362 size
-= chunk
*sizeof(wchar_t);
2363 }else if((c
= call_basic_streambuf_wchar_uflow(this)) != WEOF
) {
2375 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPA_WIH@Z */
2376 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_K_J@Z */
2377 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGIH@Z */
2378 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_K_J@Z */
2379 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
2380 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Sgetn_s
, 20)
2382 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Sgetn_s
, 16)
2384 streamsize __thiscall
basic_streambuf_wchar__Sgetn_s(basic_streambuf_wchar
*this, wchar_t *ptr
, size_t size
, streamsize count
)
2386 TRACE("(%p %p %Iu %s)\n", this, ptr
, size
, wine_dbgstr_longlong(count
));
2387 return call_basic_streambuf_wchar__Xsgetn_s(this, ptr
, size
, count
);
2390 /* ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
2391 /* ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
2392 /* ?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
2393 /* ?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
2394 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Unlock
, 4)
2395 void __thiscall
basic_streambuf_wchar__Unlock(basic_streambuf_wchar
*this)
2397 TRACE("(%p)\n", this);
2398 #if _MSVCP_VER >= 70 && _MSVCP_VER <= 100
2399 mutex_unlock(&this->lock
);
2403 /* ?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
2404 /* ?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
2405 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
2406 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
2407 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_eback
, 4)
2408 wchar_t* __thiscall
basic_streambuf_wchar_eback(const basic_streambuf_wchar
*this)
2410 TRACE("(%p)\n", this);
2411 return *this->prbuf
;
2414 /* ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
2415 /* ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
2416 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
2417 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
2418 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gptr
, 4)
2419 wchar_t* __thiscall
basic_streambuf_wchar_gptr(const basic_streambuf_wchar
*this)
2421 TRACE("(%p)\n", this);
2422 return *this->prpos
;
2425 /* ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
2426 /* ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
2427 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
2428 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
2429 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_egptr
, 4)
2430 wchar_t* __thiscall
basic_streambuf_wchar_egptr(const basic_streambuf_wchar
*this)
2432 TRACE("(%p)\n", this);
2433 return *this->prpos
+*this->prsize
;
2436 /* ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
2437 /* ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
2438 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
2439 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
2440 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_epptr
, 4)
2441 wchar_t* __thiscall
basic_streambuf_wchar_epptr(const basic_streambuf_wchar
*this)
2443 TRACE("(%p)\n", this);
2444 return *this->pwpos
+*this->pwsize
;
2447 /* ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z */
2448 /* ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z */
2449 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
2450 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
2451 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gbump
, 8)
2452 void __thiscall
basic_streambuf_wchar_gbump(basic_streambuf_wchar
*this, int off
)
2454 TRACE("(%p %d)\n", this, off
);
2455 *this->prpos
+= off
;
2456 *this->prsize
-= off
;
2459 /* ?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QBE?AVlocale@2@XZ */
2460 /* ?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEBA?AVlocale@2@XZ */
2461 /* ?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QBE?AVlocale@2@XZ */
2462 /* ?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEBA?AVlocale@2@XZ */
2463 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_getloc
, 8)
2464 locale
* __thiscall
basic_streambuf_wchar_getloc(const basic_streambuf_wchar
*this, locale
*ret
)
2466 TRACE("(%p)\n", this);
2467 return locale_copy_ctor(ret
, IOS_LOCALE(this));
2470 /* ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z */
2471 /* ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z */
2472 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEXABVlocale@2@@Z */
2473 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z */
2474 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_imbue
, 8)
2475 #if _MSVCP_VER >= 100
2476 #define call_basic_streambuf_wchar_imbue(this, loc) CALL_VTBL_FUNC(this, 56, void, (basic_streambuf_wchar*, const locale*), (this, loc))
2477 #elif _MSVCP_VER >= 80
2478 #define call_basic_streambuf_wchar_imbue(this, loc) CALL_VTBL_FUNC(this, 52, void, (basic_streambuf_wchar*, const locale*), (this, loc))
2480 #define call_basic_streambuf_wchar_imbue(this, loc) CALL_VTBL_FUNC(this, 48, void, (basic_streambuf_wchar*, const locale*), (this, loc))
2482 void __thiscall
basic_streambuf_wchar_imbue(basic_streambuf_wchar
*this, const locale
*loc
)
2484 TRACE("(%p %p)\n", this, loc
);
2487 /* ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
2488 /* ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
2489 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
2490 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
2491 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_overflow
, 8)
2492 #if _MSVCP_VER >= 100
2493 #define call_basic_streambuf_wchar_overflow(this, ch) CALL_VTBL_FUNC(this, 12, unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
2495 #define call_basic_streambuf_wchar_overflow(this, ch) CALL_VTBL_FUNC(this, 4, unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
2497 unsigned short __thiscall
basic_streambuf_wchar_overflow(basic_streambuf_wchar
*this, unsigned short ch
)
2499 TRACE("(%p %d)\n", this, ch
);
2503 /* ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
2504 /* ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
2505 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
2506 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
2507 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbackfail
, 8)
2508 #if _MSVCP_VER >= 100
2509 #define call_basic_streambuf_wchar_pbackfail(this, ch) CALL_VTBL_FUNC(this, 16, unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
2511 #define call_basic_streambuf_wchar_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
2513 unsigned short __thiscall
basic_streambuf_wchar_pbackfail(basic_streambuf_wchar
*this, unsigned short ch
)
2515 TRACE("(%p %d)\n", this, ch
);
2519 /* ?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
2520 /* ?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
2521 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
2522 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
2523 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbase
, 4)
2524 wchar_t* __thiscall
basic_streambuf_wchar_pbase(const basic_streambuf_wchar
*this)
2526 TRACE("(%p)\n", this);
2527 return *this->pwbuf
;
2530 /* ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z */
2531 /* ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z */
2532 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
2533 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
2534 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbump
, 8)
2535 void __thiscall
basic_streambuf_wchar_pbump(basic_streambuf_wchar
*this, int off
)
2537 TRACE("(%p %d)\n", this, off
);
2538 *this->pwpos
+= off
;
2539 *this->pwsize
-= off
;
2542 /* ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
2543 /* ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
2544 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
2545 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
2546 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pptr
, 4)
2547 wchar_t* __thiscall
basic_streambuf_wchar_pptr(const basic_streambuf_wchar
*this)
2549 TRACE("(%p)\n", this);
2550 return *this->pwpos
;
2553 /* ?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
2554 /* ?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
2555 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
2556 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
2557 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubimbue
, 12)
2558 locale
* __thiscall
basic_streambuf_wchar_pubimbue(basic_streambuf_wchar
*this, locale
*ret
, const locale
*loc
)
2560 TRACE("(%p %p)\n", this, loc
);
2561 memcpy(ret
, IOS_LOCALE(this), sizeof(locale
));
2562 call_basic_streambuf_wchar_imbue(this, loc
);
2563 locale_copy_ctor(IOS_LOCALE(this), loc
);
2567 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
2568 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
2569 /* ?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
2570 /* ?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
2571 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
2572 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
2573 #if STREAMOFF_BITS == 64
2574 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekoff
, 24)
2576 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekoff
, 20)
2578 #if _MSVCP_VER >= 100
2579 #define call_basic_streambuf_wchar_seekoff(this, ret, off, way, mode) \
2580 CALL_VTBL_FUNC(this, 40, fpos_mbstatet*, (basic_streambuf_wchar*, fpos_mbstatet*, streamoff, int, int), (this, ret, off, way, mode))
2581 #elif _MSVCP_VER >= 80
2582 #define call_basic_streambuf_wchar_seekoff(this, ret, off, way, mode) \
2583 CALL_VTBL_FUNC(this, 36, fpos_mbstatet*, (basic_streambuf_wchar*, fpos_mbstatet*, streamoff, int, int), (this, ret, off, way, mode))
2585 #define call_basic_streambuf_wchar_seekoff(this, ret, off, way, mode) \
2586 CALL_VTBL_FUNC(this, 32, fpos_mbstatet*, (basic_streambuf_wchar*, fpos_mbstatet*, streamoff, int, int), (this, ret, off, way, mode))
2588 fpos_mbstatet
* __thiscall
basic_streambuf_wchar_seekoff(basic_streambuf_wchar
*this,
2589 fpos_mbstatet
*ret
, streamoff off
, int way
, int mode
)
2591 TRACE("(%p %s %d %d)\n", this, wine_dbgstr_longlong(off
), way
, mode
);
2594 memset(&ret
->state
, 0, sizeof(ret
->state
));
2598 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
2599 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
2600 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
2601 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
2602 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JFF@Z */
2603 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JFF@Z */
2604 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
2605 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JW4seekdir@ioos_base@2@H@Z */
2606 #if STREAMOFF_BITS == 64
2607 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff
, 24)
2609 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff
, 20)
2611 fpos_mbstatet
* __thiscall
basic_streambuf_wchar_pubseekoff(basic_streambuf_wchar
*this,
2612 fpos_mbstatet
*ret
, streamoff off
, int way
, int mode
)
2614 TRACE("(%p %s %d %d)\n", this, wine_dbgstr_longlong(off
), way
, mode
);
2615 return call_basic_streambuf_wchar_seekoff(this, ret
, off
, way
, mode
);
2618 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
2619 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
2620 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
2621 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
2622 #if STREAMOFF_BITS == 64
2623 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff_old
, 24)
2625 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff_old
, 20)
2627 fpos_mbstatet
* __thiscall
basic_streambuf_wchar_pubseekoff_old(basic_streambuf_wchar
*this,
2628 fpos_mbstatet
*ret
, streamoff off
, unsigned int way
, unsigned int mode
)
2630 TRACE("(%p %s %d %d)\n", this, wine_dbgstr_longlong(off
), way
, mode
);
2631 return basic_streambuf_wchar_pubseekoff(this, ret
, off
, way
, mode
);
2634 /* ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2635 /* ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2636 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2637 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2638 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekpos
, 36)
2639 #if _MSVCP_VER >= 100
2640 #define call_basic_streambuf_wchar_seekpos(this, ret, pos, mode) \
2641 CALL_VTBL_FUNC(this, 44, fpos_mbstatet*, (basic_streambuf_wchar*, fpos_mbstatet*, fpos_mbstatet, int), (this, ret, pos, mode))
2642 #elif _MSVCP_VER >= 80
2643 #define call_basic_streambuf_wchar_seekpos(this, ret, pos, mode) \
2644 CALL_VTBL_FUNC(this, 40, fpos_mbstatet*, (basic_streambuf_wchar*, fpos_mbstatet*, fpos_mbstatet, int), (this, ret, pos, mode))
2646 #define call_basic_streambuf_wchar_seekpos(this, ret, pos, mode) \
2647 CALL_VTBL_FUNC(this, 36, fpos_mbstatet*, (basic_streambuf_wchar*, fpos_mbstatet*, fpos_mbstatet, int), (this, ret, pos, mode))
2649 fpos_mbstatet
* __thiscall
basic_streambuf_wchar_seekpos(basic_streambuf_wchar
*this,
2650 fpos_mbstatet
*ret
, fpos_mbstatet pos
, int mode
)
2652 TRACE("(%p %s %d)\n", this, debugstr_fpos_mbstatet(&pos
), mode
);
2655 memset(&ret
->state
, 0, sizeof(ret
->state
));
2659 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
2660 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
2661 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
2662 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
2663 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekpos
, 36)
2664 fpos_mbstatet
* __thiscall
basic_streambuf_wchar_pubseekpos(basic_streambuf_wchar
*this,
2665 fpos_mbstatet
*ret
, fpos_mbstatet pos
, int mode
)
2667 TRACE("(%p %s %d)\n", this, debugstr_fpos_mbstatet(&pos
), mode
);
2668 return call_basic_streambuf_wchar_seekpos(this, ret
, pos
, mode
);
2671 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
2672 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
2673 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
2674 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
2675 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekpos_old
, 36)
2676 fpos_mbstatet
* __thiscall
basic_streambuf_wchar_pubseekpos_old(basic_streambuf_wchar
*this,
2677 fpos_mbstatet
*ret
, fpos_mbstatet pos
, unsigned int mode
)
2679 TRACE("(%p %s %d)\n", this, debugstr_fpos_mbstatet(&pos
), mode
);
2680 return basic_streambuf_wchar_pubseekpos(this, ret
, pos
, mode
);
2683 /* ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEPAV12@PA_WH@Z */
2684 /* ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV12@PEA_W_J@Z */
2685 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEPAV12@PAGH@Z */
2686 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAPEAV12@PEAG_J@Z */
2687 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
2688 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setbuf
, 16)
2690 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setbuf
, 12)
2692 #if _MSVCP_VER >= 100
2693 #define call_basic_streambuf_wchar_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 48, basic_streambuf_wchar*, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, buf, count))
2694 #elif _MSVCP_VER >= 80
2695 #define call_basic_streambuf_wchar_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 44, basic_streambuf_wchar*, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, buf, count))
2697 #define call_basic_streambuf_wchar_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 40, basic_streambuf_wchar*, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, buf, count))
2699 basic_streambuf_wchar
* __thiscall
basic_streambuf_wchar_setbuf(basic_streambuf_wchar
*this, wchar_t *buf
, streamsize count
)
2701 TRACE("(%p %p %s)\n", this, buf
, wine_dbgstr_longlong(count
));
2705 /* ?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PA_WH@Z */
2706 /* ?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEA_W_J@Z */
2707 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PAGH@Z */
2708 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEAG_J@Z */
2709 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
2710 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsetbuf
, 16)
2712 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsetbuf
, 12)
2714 basic_streambuf_wchar
* __thiscall
basic_streambuf_wchar_pubsetbuf(basic_streambuf_wchar
*this, wchar_t *buf
, streamsize count
)
2716 TRACE("(%p %p %s)\n", this, buf
, wine_dbgstr_longlong(count
));
2717 return call_basic_streambuf_wchar_setbuf(this, buf
, count
);
2720 /* ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
2721 /* ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ */
2722 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
2723 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAHXZ */
2724 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sync
, 4)
2725 #if _MSVCP_VER >= 100
2726 #define call_basic_streambuf_wchar_sync(this) CALL_VTBL_FUNC(this, 52, int, (basic_streambuf_wchar*), (this))
2727 #elif _MSVCP_VER >= 80
2728 #define call_basic_streambuf_wchar_sync(this) CALL_VTBL_FUNC(this, 48, int, (basic_streambuf_wchar*), (this))
2730 #define call_basic_streambuf_wchar_sync(this) CALL_VTBL_FUNC(this, 44, int, (basic_streambuf_wchar*), (this))
2732 int __thiscall
basic_streambuf_wchar_sync(basic_streambuf_wchar
*this)
2734 TRACE("(%p)\n", this);
2738 /* ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
2739 /* ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAHXZ */
2740 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
2741 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHXZ */
2742 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsync
, 4)
2743 int __thiscall
basic_streambuf_wchar_pubsync(basic_streambuf_wchar
*this)
2745 TRACE("(%p)\n", this);
2746 return call_basic_streambuf_wchar_sync(this);
2749 /* ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WH@Z */
2750 /* ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_J@Z */
2751 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGH@Z */
2752 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_J@Z */
2753 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
2754 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsgetn
, 16)
2756 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsgetn
, 12)
2758 #if _MSVCP_VER >= 100
2759 #define call_basic_streambuf_wchar_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 32, streamsize, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, ptr, count))
2761 #define call_basic_streambuf_wchar_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, streamsize, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, ptr, count))
2763 streamsize __thiscall
basic_streambuf_wchar_xsgetn(basic_streambuf_wchar
*this, wchar_t *ptr
, streamsize count
)
2765 TRACE("(%p %p %s)\n", this, ptr
, wine_dbgstr_longlong(count
));
2766 return call_basic_streambuf_wchar__Xsgetn_s(this, ptr
, -1, count
);
2769 /* ?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPA_WH@Z */
2770 /* ?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z */
2771 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGH@Z */
2772 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z */
2773 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
2774 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetn
, 16)
2776 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetn
, 12)
2778 streamsize __thiscall
basic_streambuf_wchar_sgetn(basic_streambuf_wchar
*this, wchar_t *ptr
, streamsize count
)
2780 TRACE("(%p %p %s)\n", this, ptr
, wine_dbgstr_longlong(count
));
2781 return call_basic_streambuf_wchar_xsgetn(this, ptr
, count
);
2784 /* ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
2785 /* ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JXZ */
2786 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
2787 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JXZ */
2788 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_showmanyc
, 4)
2789 #if _MSVCP_VER >= 100
2790 #define call_basic_streambuf_wchar_showmanyc(this) CALL_VTBL_FUNC(this, 20, streamsize, (basic_streambuf_wchar*), (this))
2792 #define call_basic_streambuf_wchar_showmanyc(this) CALL_VTBL_FUNC(this, 12, streamsize, (basic_streambuf_wchar*), (this))
2794 streamsize __thiscall
basic_streambuf_wchar_showmanyc(basic_streambuf_wchar
*this)
2796 TRACE("(%p)\n", this);
2800 /* ?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
2801 /* ?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JXZ */
2802 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
2803 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JXZ */
2804 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_in_avail
, 4)
2805 streamsize __thiscall
basic_streambuf_wchar_in_avail(basic_streambuf_wchar
*this)
2809 TRACE("(%p)\n", this);
2811 ret
= basic_streambuf_wchar__Gnavail(this);
2812 return ret
? ret
: call_basic_streambuf_wchar_showmanyc(this);
2815 /* ?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z */
2816 /* ?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z */
2817 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
2818 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z */
2819 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputbackc
, 8)
2820 unsigned short __thiscall
basic_streambuf_wchar_sputbackc(basic_streambuf_wchar
*this, wchar_t ch
)
2822 TRACE("(%p %d)\n", this, ch
);
2823 if(*this->prpos
&& *this->prpos
>*this->prbuf
&& (*this->prpos
)[-1]==ch
) {
2829 return call_basic_streambuf_wchar_pbackfail(this, ch
);
2832 /* ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z */
2833 /* ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z */
2834 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
2835 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHG@Z */
2836 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputc
, 8)
2837 unsigned short __thiscall
basic_streambuf_wchar_sputc(basic_streambuf_wchar
*this, wchar_t ch
)
2839 TRACE("(%p %d)\n", this, ch
);
2840 return basic_streambuf_wchar__Pnavail(this) ?
2841 (*basic_streambuf_wchar__Pninc(this) = ch
) :
2842 call_basic_streambuf_wchar_overflow(this, ch
);
2845 /* ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2846 /* ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2847 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2848 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2849 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sungetc
, 4)
2850 unsigned short __thiscall
basic_streambuf_wchar_sungetc(basic_streambuf_wchar
*this)
2852 TRACE("(%p)\n", this);
2853 if(*this->prpos
&& *this->prpos
>*this->prbuf
) {
2856 return **this->prpos
;
2859 return call_basic_streambuf_wchar_pbackfail(this, WEOF
);
2862 /* ?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
2863 /* ?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
2864 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
2865 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
2866 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_stossc
, 4)
2867 void __thiscall
basic_streambuf_wchar_stossc(basic_streambuf_wchar
*this)
2869 TRACE("(%p)\n", this);
2870 if(basic_streambuf_wchar__Gnavail(this))
2871 basic_streambuf_wchar__Gninc(this);
2873 call_basic_streambuf_wchar_uflow(this);
2876 /* ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2877 /* ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2878 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2879 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2880 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sbumpc
, 4)
2881 unsigned short __thiscall
basic_streambuf_wchar_sbumpc(basic_streambuf_wchar
*this)
2883 TRACE("(%p)\n", this);
2884 return basic_streambuf_wchar__Gnavail(this) ?
2885 *basic_streambuf_wchar__Gninc(this) : call_basic_streambuf_wchar_uflow(this);
2888 /* ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2889 /* ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2890 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2891 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2892 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetc
, 4)
2893 unsigned short __thiscall
basic_streambuf_wchar_sgetc(basic_streambuf_wchar
*this)
2895 TRACE("(%p)\n", this);
2896 return basic_streambuf_wchar__Gnavail(this) ?
2897 *basic_streambuf_wchar_gptr(this) : call_basic_streambuf_wchar_underflow(this);
2900 /* ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2901 /* ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2902 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2903 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2904 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_snextc
, 4)
2905 unsigned short __thiscall
basic_streambuf_wchar_snextc(basic_streambuf_wchar
*this)
2907 TRACE("(%p)\n", this);
2909 if(basic_streambuf_wchar__Gnavail(this) > 1)
2910 return *basic_streambuf_wchar__Gnpreinc(this);
2911 return basic_streambuf_wchar_sbumpc(this)==WEOF
?
2912 WEOF
: basic_streambuf_wchar_sgetc(this);
2915 /* ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPB_WH@Z */
2916 /* ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEB_W_J@Z */
2917 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPBGH@Z */
2918 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEBG_J@Z */
2919 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
2920 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsputn
, 16)
2922 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsputn
, 12)
2924 #if _MSVCP_VER >= 100
2925 #define call_basic_streambuf_wchar_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 36, streamsize, (basic_streambuf_wchar*, const wchar_t*, streamsize), (this, ptr, count))
2926 #elif _MSVCP_VER >= 80
2927 #define call_basic_streambuf_wchar_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 32, streamsize, (basic_streambuf_wchar*, const wchar_t*, streamsize), (this, ptr, count))
2929 #define call_basic_streambuf_wchar_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 28, streamsize, (basic_streambuf_wchar*, const wchar_t*, streamsize), (this, ptr, count))
2931 streamsize __thiscall
basic_streambuf_wchar_xsputn(basic_streambuf_wchar
*this, const wchar_t *ptr
, streamsize count
)
2933 streamsize copied
, chunk
;
2935 TRACE("(%p %p %s)\n", this, ptr
, wine_dbgstr_longlong(count
));
2937 for(copied
=0; copied
<count
;) {
2938 chunk
= basic_streambuf_wchar__Pnavail(this);
2939 if(chunk
> count
-copied
)
2940 chunk
= count
-copied
;
2943 memcpy(*this->pwpos
, ptr
+copied
, chunk
*sizeof(wchar_t));
2944 *this->pwpos
+= chunk
;
2945 *this->pwsize
-= chunk
;
2947 }else if(call_basic_streambuf_wchar_overflow(this, ptr
[copied
]) != WEOF
) {
2957 /* ?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPB_WH@Z */
2958 /* ?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEB_W_J@Z */
2959 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPBGH@Z */
2960 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEBG_J@Z */
2961 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
2962 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputn
, 16)
2964 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputn
, 12)
2966 streamsize __thiscall
basic_streambuf_wchar_sputn(basic_streambuf_wchar
*this, const wchar_t *ptr
, streamsize count
)
2968 TRACE("(%p %p %s)\n", this, ptr
, wine_dbgstr_longlong(count
));
2969 return call_basic_streambuf_wchar_xsputn(this, ptr
, count
);
2972 /* ?swap@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXAAV12@@Z */
2973 /* ?swap@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z */
2974 /* ?swap@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXAAV12@@Z */
2975 /* ?swap@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXAAV12@@Z */
2976 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_swap
, 8)
2977 void __thiscall
basic_streambuf_wchar_swap(basic_streambuf_wchar
*this, basic_streambuf_wchar
*r
)
2979 wchar_t *wfirst
, *wnext
, *wlast
, *rfirst
, *rnext
, *rlast
;
2986 TRACE("(%p %p)\n", this, r
);
2991 wfirst
= *this->pwbuf
;
2992 wnext
= *this->pwpos
;
2993 wlast
= *this->pwpos
+ *this->pwsize
;
2994 rfirst
= *this->prbuf
;
2995 rnext
= *this->prpos
;
2996 rlast
= *this->prpos
+ *this->prsize
;
2999 basic_streambuf_wchar_setp_next(this, *r
->pwbuf
, *r
->pwpos
, *r
->pwpos
+ *r
->pwsize
);
3000 basic_streambuf_wchar_setg(this, *r
->prbuf
, *r
->prpos
, *r
->prpos
+ *r
->prsize
);
3003 basic_streambuf_wchar_setp_next(r
, wfirst
, wnext
, wlast
);
3004 basic_streambuf_wchar_setg(r
, rfirst
, rnext
, rlast
);
3008 /* ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
3009 /* ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
3010 #if _MSVCP_VER >= 140
3011 _Mbstatet basic_filebuf_char__Init__Stinit
= {0};
3013 _Mbstatet basic_filebuf_char__Init__Stinit
= 0;
3016 /* ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
3017 /* ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
3018 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Init
, 12)
3019 void __thiscall
basic_filebuf_char__Init(basic_filebuf_char
*this, FILE *file
, basic_filebuf__Initfl which
)
3021 TRACE("(%p %p %d)\n", this, file
, which
);
3024 this->wrotesome
= FALSE
;
3025 this->state
= basic_filebuf_char__Init__Stinit
;
3026 this->close
= (which
== INITFL_open
);
3029 basic_streambuf_char__Init_empty(&this->base
);
3031 basic_streambuf_char__Init(&this->base
, &file
->_base
, &file
->_ptr
,
3032 &file
->_cnt
, &file
->_base
, &file
->_ptr
, &file
->_cnt
);
3035 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAV?$codecvt@DDH@2@@Z */
3036 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$codecvt@DDH@2@@Z */
3037 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Initcvt_cvt
, 8)
3038 void __thiscall
basic_filebuf_char__Initcvt_cvt(basic_filebuf_char
*this, codecvt_char
*cvt
)
3040 TRACE("(%p %p)\n", this, cvt
);
3042 if(codecvt_base_always_noconv(&cvt
->base
)) {
3045 basic_streambuf_char__Init_empty(&this->base
);
3050 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXXZ */
3051 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXXZ */
3052 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Initcvt
, 4)
3053 void __thiscall
basic_filebuf_char__Initcvt(basic_filebuf_char
*this)
3055 codecvt_char
*cvt
= codecvt_char_use_facet(IOS_LOCALE(&this->base
));
3056 basic_filebuf_char__Initcvt_cvt( this, cvt
);
3059 /* ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ */
3060 /* ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ */
3061 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Endwrite
, 4)
3062 bool __thiscall
basic_filebuf_char__Endwrite(basic_filebuf_char
*this)
3064 TRACE("(%p)\n", this);
3066 if(!this->wrotesome
|| !this->cvt
)
3070 if(call_basic_streambuf_char_overflow(&this->base
, EOF
) == EOF
)
3074 /* TODO: check if we need a dynamic buffer here */
3079 ret
= codecvt_char_unshift(this->cvt
, &this->state
, buf
, buf
+sizeof(buf
), &next
);
3082 this->wrotesome
= FALSE
;
3084 case CODECVT_partial
:
3085 if(!fwrite(buf
, next
-buf
, 1, this->file
))
3090 case CODECVT_noconv
:
3091 if(call_basic_streambuf_char_overflow(&this->base
, EOF
) == EOF
)
3100 /* ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ */
3101 /* ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ */
3102 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_close
, 4)
3103 basic_filebuf_char
* __thiscall
basic_filebuf_char_close(basic_filebuf_char
*this)
3105 basic_filebuf_char
*ret
= this;
3107 TRACE("(%p)\n", this);
3112 /* TODO: handle exceptions */
3113 if(!basic_filebuf_char__Endwrite(this))
3115 if(fclose(this->file
))
3118 basic_filebuf_char__Init(this, NULL
, INITFL_close
);
3122 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
3123 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
3124 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor_file
, 8)
3125 basic_filebuf_char
* __thiscall
basic_filebuf_char_ctor_file(basic_filebuf_char
*this, FILE *file
)
3127 TRACE("(%p %p)\n", this, file
);
3129 basic_streambuf_char_ctor(&this->base
);
3130 this->base
.vtable
= &basic_filebuf_char_vtable
;
3132 basic_filebuf_char__Init(this, file
, INITFL_new
);
3136 /* ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
3137 /* ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
3138 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor
, 4)
3139 basic_filebuf_char
* __thiscall
basic_filebuf_char_ctor(basic_filebuf_char
*this)
3141 return basic_filebuf_char_ctor_file(this, NULL
);
3144 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
3145 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
3146 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor_uninitialized
, 8)
3147 basic_filebuf_char
* __thiscall
basic_filebuf_char_ctor_uninitialized(basic_filebuf_char
*this, int uninitialized
)
3149 TRACE("(%p %d)\n", this, uninitialized
);
3151 basic_streambuf_char_ctor(&this->base
);
3152 this->base
.vtable
= &basic_filebuf_char_vtable
;
3156 /* ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
3157 /* ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
3158 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_dtor
, 4)
3159 void __thiscall
basic_filebuf_char_dtor(basic_filebuf_char
*this)
3161 TRACE("(%p)\n", this);
3164 basic_filebuf_char_close(this);
3165 basic_streambuf_char_dtor(&this->base
);
3168 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_vector_dtor
, 8)
3169 basic_filebuf_char
* __thiscall
basic_filebuf_char_vector_dtor(basic_filebuf_char
*this, unsigned int flags
)
3171 TRACE("(%p %x)\n", this, flags
);
3173 /* we have an array, with the number of elements stored before the first object */
3174 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
3176 for(i
=*ptr
-1; i
>=0; i
--)
3177 basic_filebuf_char_dtor(this+i
);
3178 operator_delete(ptr
);
3180 basic_filebuf_char_dtor(this);
3182 operator_delete(this);
3188 /* ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QBE_NXZ */
3189 /* ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
3190 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_is_open
, 4)
3191 bool __thiscall
basic_filebuf_char_is_open(const basic_filebuf_char
*this)
3193 TRACE("(%p)\n", this);
3194 return this->file
!= NULL
;
3197 /* ?_Fiopen@std@@YAPAU_iobuf@@PB_WHH@Z */
3198 /* ?_Fiopen@std@@YAPEAU_iobuf@@PEB_WHH@Z */
3199 FILE* __cdecl
_Fiopen_wchar(const wchar_t *name
, int mode
, int prot
)
3201 static const struct {
3203 const wchar_t str
[4];
3204 const wchar_t str_bin
[4];
3206 {OPENMODE_out
, L
"w", L
"wb"},
3207 {OPENMODE_out
|OPENMODE_app
, L
"a", L
"ab"},
3208 {OPENMODE_app
, L
"a", L
"ab"},
3209 {OPENMODE_out
|OPENMODE_trunc
, L
"w", L
"wb"},
3210 {OPENMODE_in
, L
"r", L
"rb"},
3211 {OPENMODE_in
|OPENMODE_out
, L
"r+", L
"r+b"},
3212 {OPENMODE_in
|OPENMODE_out
|OPENMODE_trunc
, L
"w+", L
"w+b"},
3213 {OPENMODE_in
|OPENMODE_out
|OPENMODE_app
, L
"a+", L
"a+b"},
3214 {OPENMODE_in
|OPENMODE_app
, L
"a+", L
"a+b"}
3217 int real_mode
= mode
& ~(OPENMODE_ate
|OPENMODE__Nocreate
|OPENMODE__Noreplace
|OPENMODE_binary
);
3221 TRACE("(%s %d %d)\n", debugstr_w(name
), mode
, prot
);
3223 for(mode_idx
=0; mode_idx
<ARRAY_SIZE(str_mode
); mode_idx
++)
3224 if(str_mode
[mode_idx
].mode
== real_mode
)
3226 if(mode_idx
== ARRAY_SIZE(str_mode
))
3229 if((mode
& OPENMODE__Nocreate
) && !(f
= _wfopen(name
, L
"r")))
3234 if((mode
& OPENMODE__Noreplace
) && (mode
& (OPENMODE_out
|OPENMODE_app
))
3235 && (f
= _wfopen(name
, L
"r"))) {
3240 #if _MSVCP_VER < 80 /* msvcp60 - msvcp71 are ignoring prot argument */
3244 f
= _wfsopen(name
, (mode
& OPENMODE_binary
) ? str_mode
[mode_idx
].str_bin
3245 : str_mode
[mode_idx
].str
, prot
);
3249 if((mode
& OPENMODE_ate
) && fseek(f
, 0, SEEK_END
)) {
3257 /* ?_Fiopen@std@@YAPAU_iobuf@@PBDHH@Z */
3258 /* ?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z */
3259 FILE* __cdecl
_Fiopen(const char *name
, int mode
, int prot
)
3261 wchar_t nameW
[FILENAME_MAX
];
3263 TRACE("(%s %d %d)\n", name
, mode
, prot
);
3265 #if _MSVCP_VER >= 80 && _MSVCP_VER <= 90
3266 if(mbstowcs_s(NULL
, nameW
, FILENAME_MAX
, name
, FILENAME_MAX
-1) != 0)
3269 if(!MultiByteToWideChar(CP_ACP
, 0, name
, -1, nameW
, FILENAME_MAX
-1))
3272 return _Fiopen_wchar(nameW
, mode
, prot
);
3275 /* ?__Fiopen@std@@YAPAU_iobuf@@PBDH@Z */
3276 /* ?__Fiopen@std@@YAPEAU_iobuf@@PEBDH@Z */
3277 FILE* __cdecl
___Fiopen(const char *name
, int mode
)
3279 TRACE("(%p %d)\n", name
, mode
);
3280 return _Fiopen(name
, mode
, _SH_DENYNO
);
3283 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PB_WHH@Z */
3284 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
3285 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBGHH@Z */
3286 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBGHH@Z */
3287 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_wchar
, 16)
3288 basic_filebuf_char
* __thiscall
basic_filebuf_char_open_wchar(basic_filebuf_char
*this, const wchar_t *name
, int mode
, int prot
)
3292 TRACE("(%p %s %d %d)\n", this, debugstr_w(name
), mode
, prot
);
3294 if(basic_filebuf_char_is_open(this))
3297 if(!(f
= _Fiopen_wchar(name
, mode
, prot
)))
3300 basic_filebuf_char__Init(this, f
, INITFL_open
);
3301 basic_filebuf_char__Initcvt_cvt(this, codecvt_char_use_facet(IOS_LOCALE(&this->base
)));
3305 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PB_WI@Z */
3306 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEB_WI@Z */
3307 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBGI@Z */
3308 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBGI@Z */
3309 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_wchar_mode
, 12)
3310 basic_filebuf_char
* __thiscall
basic_filebuf_char_open_wchar_mode(basic_filebuf_char
*this, const wchar_t *name
, unsigned int mode
)
3312 return basic_filebuf_char_open_wchar(this, name
, mode
, SH_DENYNO
);
3315 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z */
3316 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z */
3317 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open
, 16)
3318 basic_filebuf_char
* __thiscall
basic_filebuf_char_open(basic_filebuf_char
*this, const char *name
, int mode
, int prot
)
3320 wchar_t nameW
[FILENAME_MAX
];
3322 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
3324 if(mbstowcs_s(NULL
, nameW
, FILENAME_MAX
, name
, FILENAME_MAX
-1) != 0)
3326 return basic_filebuf_char_open_wchar(this, nameW
, mode
, prot
);
3329 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDF@Z */
3330 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDF@Z */
3331 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_mode_old
, 12)
3332 basic_filebuf_char
* __thiscall
basic_filebuf_char_open_mode_old(basic_filebuf_char
*this, const char *name
, short mode
)
3334 TRACE("(%p %p %d)\n", this, name
, mode
);
3335 return basic_filebuf_char_open(this, name
, mode
, SH_DENYNO
);
3338 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDH@Z */
3339 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDH@Z */
3340 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDI@Z */
3341 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDI@Z */
3342 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_mode
, 12)
3343 basic_filebuf_char
* __thiscall
basic_filebuf_char_open_mode(basic_filebuf_char
*this, const char *name
, unsigned int mode
)
3345 return basic_filebuf_char_open(this, name
, mode
, SH_DENYNO
);
3348 /* ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
3349 /* ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
3350 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_overflow
, 8)
3351 int __thiscall
basic_filebuf_char_overflow(basic_filebuf_char
*this, int c
)
3353 char buf
[8], *dyn_buf
;
3354 char ch
= c
, *to_next
;
3355 const char *from_next
;
3359 TRACE("(%p %d)\n", this, c
);
3361 if(!basic_filebuf_char_is_open(this))
3367 return fputc(ch
, this->file
);
3371 ret
= codecvt_char_out(this->cvt
, &this->state
, from_next
, &ch
+1,
3372 &from_next
, buf
, buf
+sizeof(buf
), &to_next
);
3375 case CODECVT_partial
:
3380 if(!fwrite(buf
, to_next
-buf
, 1, this->file
))
3382 if(ret
== CODECVT_partial
)
3385 case CODECVT_noconv
:
3386 return fwrite(&ch
, sizeof(char), 1, this->file
) ? c
: EOF
;
3394 max_size
= codecvt_base_max_length(&this->cvt
->base
);
3395 dyn_buf
= malloc(max_size
);
3399 ret
= codecvt_char_out(this->cvt
, &this->state
, from_next
, &ch
+1,
3400 &from_next
, dyn_buf
, dyn_buf
+max_size
, &to_next
);
3404 ret
= fwrite(dyn_buf
, to_next
-dyn_buf
, 1, this->file
);
3406 return ret
? c
: EOF
;
3407 case CODECVT_partial
:
3408 ERR("buffer should be big enough to store all output\n");
3416 /* ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
3417 /* ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
3418 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_pbackfail
, 8)
3419 int __thiscall
basic_filebuf_char_pbackfail(basic_filebuf_char
*this, int c
)
3421 TRACE("(%p %d)\n", this, c
);
3423 if(!basic_filebuf_char_is_open(this))
3426 if(basic_streambuf_char_gptr(&this->base
)>basic_streambuf_char_eback(&this->base
)
3427 && (c
==EOF
|| (int)(unsigned char)basic_streambuf_char_gptr(&this->base
)[-1]==c
)) {
3428 basic_streambuf_char__Gndec(&this->base
);
3429 return c
==EOF
? !c
: c
;
3430 }else if(c
!=EOF
&& !this->cvt
) {
3431 return ungetc(c
, this->file
);
3437 /* ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
3438 /* ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
3439 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_uflow
, 4)
3440 int __thiscall
basic_filebuf_char_uflow(basic_filebuf_char
*this)
3442 char ch
, buf
[128], *to_next
;
3443 const char *buf_next
;
3447 TRACE("(%p)\n", this);
3449 if(!basic_filebuf_char_is_open(this))
3452 if(basic_streambuf_char_gptr(&this->base
) < basic_streambuf_char_egptr(&this->base
))
3453 return (unsigned char)*basic_streambuf_char__Gninc(&this->base
);
3455 c
= fgetc(this->file
);
3456 if(!this->cvt
|| c
==EOF
)
3460 for(i
=0; i
< ARRAY_SIZE(buf
); i
++) {
3463 switch(codecvt_char_in(this->cvt
, &this->state
, buf_next
,
3464 buf
+i
+1, &buf_next
, &ch
, &ch
+1, &to_next
)) {
3465 case CODECVT_partial
:
3467 if(to_next
== &ch
) {
3468 c
= fgetc(this->file
);
3474 for(j
= --i
; j
>= buf_next
-buf
; j
--)
3475 ungetc(buf
[j
], this->file
);
3477 case CODECVT_noconv
:
3478 return (unsigned char)buf
[0];
3484 FIXME("buffer is too small\n");
3488 /* ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
3489 /* ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
3490 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_underflow
, 4)
3491 int __thiscall
basic_filebuf_char_underflow(basic_filebuf_char
*this)
3495 TRACE("(%p)\n", this);
3497 if(basic_streambuf_char_gptr(&this->base
) < basic_streambuf_char_egptr(&this->base
))
3498 return (unsigned char)*basic_streambuf_char_gptr(&this->base
);
3500 ret
= call_basic_streambuf_char_uflow(&this->base
);
3502 ret
= call_basic_streambuf_char_pbackfail(&this->base
, ret
);
3506 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
3507 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
3508 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
3509 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
3510 #if STREAMOFF_BITS == 64
3511 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_seekoff
, 24)
3513 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_seekoff
, 20)
3515 fpos_mbstatet
* __thiscall
basic_filebuf_char_seekoff(basic_filebuf_char
*this,
3516 fpos_mbstatet
*ret
, streamoff off
, int way
, int mode
)
3520 TRACE("(%p %p %s %d %d)\n", this, ret
, wine_dbgstr_longlong(off
), way
, mode
);
3522 if(!basic_filebuf_char_is_open(this) || !basic_filebuf_char__Endwrite(this)
3523 || fseek(this->file
, off
, way
)) {
3526 memset(&ret
->state
, 0, sizeof(ret
->state
));
3530 fgetpos(this->file
, &pos
);
3533 ret
->state
= this->state
;
3537 /* ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3538 /* ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3539 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_seekpos
, 36)
3540 fpos_mbstatet
* __thiscall
basic_filebuf_char_seekpos(basic_filebuf_char
*this,
3541 fpos_mbstatet
*ret
, fpos_mbstatet pos
, int mode
)
3545 TRACE("(%p %p %s %d)\n", this, ret
, debugstr_fpos_mbstatet(&pos
), mode
);
3547 if(!basic_filebuf_char_is_open(this) || !basic_filebuf_char__Endwrite(this)
3548 || fseek(this->file
, (LONG
)pos
.pos
, SEEK_SET
)
3549 || (pos
.off
&& fseek(this->file
, pos
.off
, SEEK_CUR
))) {
3552 memset(&ret
->state
, 0, sizeof(ret
->state
));
3556 fgetpos(this->file
, &fpos
);
3559 ret
->state
= this->state
;
3563 /* ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PADH@Z */
3564 /* ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z */
3565 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
3566 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_setbuf
, 16)
3568 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_setbuf
, 12)
3570 basic_streambuf_char
* __thiscall
basic_filebuf_char_setbuf(basic_filebuf_char
*this, char *buf
, streamsize count
)
3572 TRACE("(%p %p %s)\n", this, buf
, wine_dbgstr_longlong(count
));
3574 if(!basic_filebuf_char_is_open(this))
3577 if(setvbuf(this->file
, buf
, (buf
==NULL
&& count
==0) ? _IONBF
: _IOFBF
, count
))
3580 basic_filebuf_char__Init(this, this->file
, INITFL_open
);
3584 /* ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
3585 /* ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
3586 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_sync
, 4)
3587 int __thiscall
basic_filebuf_char_sync(basic_filebuf_char
*this)
3589 TRACE("(%p)\n", this);
3591 if(!basic_filebuf_char_is_open(this))
3594 if(call_basic_streambuf_char_overflow(&this->base
, EOF
) == EOF
)
3596 return fflush(this->file
);
3599 /* ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z */
3600 /* ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z */
3601 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_imbue
, 8)
3602 void __thiscall
basic_filebuf_char_imbue(basic_filebuf_char
*this, const locale
*loc
)
3604 TRACE("(%p %p)\n", this, loc
);
3605 basic_filebuf_char__Initcvt_cvt(this, codecvt_char_use_facet(loc
));
3608 /* ?_Stinit@?1??_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
3609 /* ?_Stinit@?1??_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
3610 #if _MSVCP_VER >= 140
3611 _Mbstatet basic_filebuf_wchar__Init__Stinit
= {0};
3613 _Mbstatet basic_filebuf_wchar__Init__Stinit
= 0;
3616 /* ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
3617 /* ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
3618 #if _MSVCP_VER >= 140
3619 _Mbstatet basic_filebuf_short__Init__Stinit
= {0};
3621 _Mbstatet basic_filebuf_short__Init__Stinit
= 0;
3624 /* ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
3625 /* ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
3626 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Init
, 12)
3627 void __thiscall
basic_filebuf_wchar__Init(basic_filebuf_wchar
*this, FILE *file
, basic_filebuf__Initfl which
)
3629 TRACE("(%p %p %d)\n", this, file
, which
);
3632 this->wrotesome
= FALSE
;
3633 this->state
= basic_filebuf_wchar__Init__Stinit
;
3634 this->close
= (which
== INITFL_open
);
3637 basic_streambuf_wchar__Init_empty(&this->base
);
3640 /* ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
3641 /* ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
3642 DEFINE_THISCALL_WRAPPER(basic_filebuf_short__Init
, 12)
3643 void __thiscall
basic_filebuf_short__Init(basic_filebuf_wchar
*this, FILE *file
, basic_filebuf__Initfl which
)
3645 TRACE("(%p %p %d)\n", this, file
, which
);
3648 this->wrotesome
= FALSE
;
3649 this->state
= basic_filebuf_short__Init__Stinit
;
3650 this->close
= (which
== INITFL_open
);
3653 basic_streambuf_wchar__Init_empty(&this->base
);
3656 /* ?_Initcvt@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAV?$codecvt@_WDH@2@@Z */
3657 /* ?_Initcvt@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$codecvt@_WDH@2@@Z */
3658 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAV?$codecvt@GDH@2@@Z */
3659 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$codecvt@GDH@2@@Z */
3660 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Initcvt_cvt
, 8)
3661 void __thiscall
basic_filebuf_wchar__Initcvt_cvt(basic_filebuf_wchar
*this, codecvt_wchar
*cvt
)
3663 TRACE("(%p %p)\n", this, cvt
);
3665 if(codecvt_base_always_noconv(&cvt
->base
)) {
3668 basic_streambuf_wchar__Init_empty(&this->base
);
3673 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXXZ */
3674 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXXZ */
3675 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Initcvt
, 4)
3676 void __thiscall
basic_filebuf_wchar__Initcvt(basic_filebuf_wchar
*this)
3678 codecvt_wchar
*cvt
= codecvt_wchar_use_facet(IOS_LOCALE(&this->base
));
3679 basic_filebuf_wchar__Initcvt_cvt( this, cvt
);
3682 /* ?_Endwrite@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAE_NXZ */
3683 /* ?_Endwrite@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAA_NXZ */
3684 /* ?_Endwrite@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAE_NXZ */
3685 /* ?_Endwrite@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAA_NXZ */
3686 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Endwrite
, 4)
3687 bool __thiscall
basic_filebuf_wchar__Endwrite(basic_filebuf_wchar
*this)
3689 TRACE("(%p)\n", this);
3691 if(!this->wrotesome
|| !this->cvt
)
3694 if(call_basic_streambuf_wchar_overflow(&this->base
, WEOF
) == WEOF
)
3698 /* TODO: check if we need a dynamic buffer here */
3703 ret
= codecvt_wchar_unshift(this->cvt
, &this->state
, buf
, buf
+sizeof(buf
), &next
);
3706 this->wrotesome
= FALSE
;
3708 case CODECVT_partial
:
3709 if(!fwrite(buf
, next
-buf
, 1, this->file
))
3714 case CODECVT_noconv
:
3715 if(call_basic_streambuf_wchar_overflow(&this->base
, WEOF
) == WEOF
)
3724 /* ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@XZ */
3725 /* ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@XZ */
3726 /* ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@XZ */
3727 /* ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@XZ */
3728 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_close
, 4)
3729 basic_filebuf_wchar
* __thiscall
basic_filebuf_wchar_close(basic_filebuf_wchar
*this)
3731 basic_filebuf_wchar
*ret
= this;
3733 TRACE("(%p)\n", this);
3738 /* TODO: handle exceptions */
3739 if(!basic_filebuf_wchar__Endwrite(this))
3741 if(fclose(this->file
))
3744 basic_filebuf_wchar__Init(this, NULL
, INITFL_close
);
3748 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
3749 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
3750 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor_file
, 8)
3751 basic_filebuf_wchar
* __thiscall
basic_filebuf_wchar_ctor_file(basic_filebuf_wchar
*this, FILE *file
)
3753 TRACE("(%p %p)\n", this, file
);
3755 basic_streambuf_wchar_ctor(&this->base
);
3756 this->base
.vtable
= &basic_filebuf_wchar_vtable
;
3758 basic_filebuf_wchar__Init(this, file
, INITFL_new
);
3762 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
3763 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
3764 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor_file
, 8)
3765 basic_filebuf_wchar
* __thiscall
basic_filebuf_short_ctor_file(basic_filebuf_wchar
*this, FILE *file
)
3767 TRACE("(%p %p)\n", this, file
);
3769 basic_streambuf_short_ctor(&this->base
);
3770 this->base
.vtable
= &basic_filebuf_short_vtable
;
3772 basic_filebuf_short__Init(this, file
, INITFL_new
);
3776 /* ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
3777 /* ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
3778 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor
, 4)
3779 basic_filebuf_wchar
* __thiscall
basic_filebuf_wchar_ctor(basic_filebuf_wchar
*this)
3781 return basic_filebuf_wchar_ctor_file(this, NULL
);
3784 /* ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
3785 /* ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
3786 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor
, 4)
3787 basic_filebuf_wchar
* __thiscall
basic_filebuf_short_ctor(basic_filebuf_wchar
*this)
3789 return basic_filebuf_short_ctor_file(this, NULL
);
3792 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@@Z */
3793 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
3794 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor_uninitialized
, 8)
3795 basic_filebuf_wchar
* __thiscall
basic_filebuf_wchar_ctor_uninitialized(basic_filebuf_wchar
*this, int uninitialized
)
3797 TRACE("(%p %d)\n", this, uninitialized
);
3799 basic_streambuf_wchar_ctor(&this->base
);
3800 this->base
.vtable
= &basic_filebuf_wchar_vtable
;
3804 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */
3805 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
3806 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor_uninitialized
, 8)
3807 basic_filebuf_wchar
* __thiscall
basic_filebuf_short_ctor_uninitialized(basic_filebuf_wchar
*this, int uninitialized
)
3809 TRACE("(%p %d)\n", this, uninitialized
);
3811 basic_streambuf_short_ctor(&this->base
);
3812 this->base
.vtable
= &basic_filebuf_short_vtable
;
3816 /* ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
3817 /* ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
3818 /* ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UAE@XZ */
3819 /* ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */
3820 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_dtor
, 4)
3821 void __thiscall
basic_filebuf_wchar_dtor(basic_filebuf_wchar
*this)
3823 TRACE("(%p)\n", this);
3826 basic_filebuf_wchar_close(this);
3827 basic_streambuf_wchar_dtor(&this->base
);
3830 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_vector_dtor
, 8)
3831 basic_filebuf_wchar
* __thiscall
basic_filebuf_wchar_vector_dtor(basic_filebuf_wchar
*this, unsigned int flags
)
3833 TRACE("(%p %x)\n", this, flags
);
3835 /* we have an array, with the number of elements stored before the first object */
3836 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
3838 for(i
=*ptr
-1; i
>=0; i
--)
3839 basic_filebuf_wchar_dtor(this+i
);
3840 operator_delete(ptr
);
3842 basic_filebuf_wchar_dtor(this);
3844 operator_delete(this);
3850 /* ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
3851 /* ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
3852 /* ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QBE_NXZ */
3853 /* ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
3854 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_is_open
, 4)
3855 bool __thiscall
basic_filebuf_wchar_is_open(const basic_filebuf_wchar
*this)
3857 TRACE("(%p)\n", this);
3858 return this->file
!= NULL
;
3861 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PB_WHH@Z */
3862 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
3863 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBGHH@Z */
3864 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBGHH@Z */
3865 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open_wchar
, 16)
3866 basic_filebuf_wchar
* __thiscall
basic_filebuf_wchar_open_wchar(basic_filebuf_wchar
*this, const wchar_t *name
, int mode
, int prot
)
3870 TRACE("(%p %s %d %d)\n", this, debugstr_w(name
), mode
, prot
);
3872 if(basic_filebuf_wchar_is_open(this))
3875 if(!(f
= _Fiopen_wchar(name
, mode
, prot
)))
3878 basic_filebuf_wchar__Init(this, f
, INITFL_open
);
3879 basic_filebuf_wchar__Initcvt_cvt(this, codecvt_wchar_use_facet(IOS_LOCALE(&this->base
)));
3883 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PB_WHH@Z */
3884 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
3885 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBGHH@Z */
3886 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBGHH@Z */
3887 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open_wchar
, 16)
3888 basic_filebuf_wchar
* __thiscall
basic_filebuf_short_open_wchar(basic_filebuf_wchar
*this, const wchar_t *name
, int mode
, int prot
)
3892 TRACE("(%p %s %d %d)\n", this, debugstr_w(name
), mode
, prot
);
3894 if(basic_filebuf_wchar_is_open(this))
3897 if(!(f
= _Fiopen_wchar(name
, mode
, prot
)))
3900 basic_filebuf_short__Init(this, f
, INITFL_open
);
3901 basic_filebuf_wchar__Initcvt_cvt(this, codecvt_short_use_facet(IOS_LOCALE(&this->base
)));
3905 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PB_WI@Z */
3906 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEB_WI@Z */
3907 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBGI@Z */
3908 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBGI@Z */
3909 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open_wchar_mode
, 12)
3910 basic_filebuf_wchar
* __thiscall
basic_filebuf_wchar_open_wchar_mode(basic_filebuf_wchar
*this, const wchar_t *name
, unsigned int mode
)
3912 return basic_filebuf_wchar_open_wchar(this, name
, mode
, SH_DENYNO
);
3915 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PB_WI@Z */
3916 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEB_WI@Z */
3917 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBGI@Z */
3918 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBGI@Z */
3919 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open_wchar_mode
, 12)
3920 basic_filebuf_wchar
* __thiscall
basic_filebuf_short_open_wchar_mode(basic_filebuf_wchar
*this, const wchar_t *name
, unsigned int mode
)
3922 return basic_filebuf_short_open_wchar(this, name
, mode
, SH_DENYNO
);
3925 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDHH@Z */
3926 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDHH@Z */
3927 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open
, 16)
3928 basic_filebuf_wchar
* __thiscall
basic_filebuf_wchar_open(basic_filebuf_wchar
*this, const char *name
, int mode
, int prot
)
3930 wchar_t nameW
[FILENAME_MAX
];
3932 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
3934 if(mbstowcs_s(NULL
, nameW
, FILENAME_MAX
, name
, FILENAME_MAX
-1) != 0)
3936 return basic_filebuf_wchar_open_wchar(this, nameW
, mode
, prot
);
3939 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDHH@Z */
3940 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDHH@Z */
3941 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open
, 16)
3942 basic_filebuf_wchar
* __thiscall
basic_filebuf_short_open(basic_filebuf_wchar
*this, const char *name
, int mode
, int prot
)
3944 wchar_t nameW
[FILENAME_MAX
];
3946 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
3948 if(mbstowcs_s(NULL
, nameW
, FILENAME_MAX
, name
, FILENAME_MAX
-1) != 0)
3950 return basic_filebuf_short_open_wchar(this, nameW
, mode
, prot
);
3953 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDF@Z */
3954 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDF@Z */
3955 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open_mode_old
, 12)
3956 basic_filebuf_wchar
* __thiscall
basic_filebuf_wchar_open_mode_old(basic_filebuf_wchar
*this, const char *name
, short mode
)
3958 TRACE("(%p %p %d)\n", this, name
, mode
);
3959 return basic_filebuf_wchar_open(this, name
, mode
, SH_DENYNO
);
3962 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDH@Z */
3963 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDH@Z */
3964 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDI@Z */
3965 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDI@Z */
3966 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open_mode
, 12)
3967 basic_filebuf_wchar
* __thiscall
basic_filebuf_wchar_open_mode(basic_filebuf_wchar
*this, const char *name
, unsigned int mode
)
3969 return basic_filebuf_wchar_open(this, name
, mode
, SH_DENYNO
);
3972 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDI@Z */
3973 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDI@Z */
3974 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open_mode
, 12)
3975 basic_filebuf_wchar
* __thiscall
basic_filebuf_short_open_mode(basic_filebuf_wchar
*this, const char *name
, unsigned int mode
)
3977 return basic_filebuf_short_open(this, name
, mode
, SH_DENYNO
);
3980 /* ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
3981 /* ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
3982 /* ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
3983 /* ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
3984 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_overflow
, 8)
3985 unsigned short __thiscall
basic_filebuf_wchar_overflow(basic_filebuf_wchar
*this, unsigned short c
)
3987 char buf
[8], *dyn_buf
, *to_next
;
3989 const wchar_t *from_next
;
3994 TRACE("(%p %d)\n", this, c
);
3996 if(!basic_filebuf_wchar_is_open(this))
4002 return fputwc(ch
, this->file
);
4006 ret
= codecvt_wchar_out(this->cvt
, &this->state
, from_next
, &ch
+1,
4007 &from_next
, buf
, buf
+sizeof(buf
), &to_next
);
4010 case CODECVT_partial
:
4015 if(!fwrite(buf
, to_next
-buf
, 1, this->file
))
4017 if(ret
== CODECVT_partial
)
4020 case CODECVT_noconv
:
4021 return fwrite(&ch
, sizeof(wchar_t), 1, this->file
) ? c
: WEOF
;
4029 max_size
= codecvt_base_max_length(&this->cvt
->base
);
4030 dyn_buf
= malloc(max_size
);
4034 ret
= codecvt_wchar_out(this->cvt
, &this->state
, from_next
, &ch
+1,
4035 &from_next
, dyn_buf
, dyn_buf
+max_size
, &to_next
);
4039 ret
= fwrite(dyn_buf
, to_next
-dyn_buf
, 1, this->file
);
4041 return ret
? c
: WEOF
;
4042 case CODECVT_partial
:
4043 ERR("buffer should be big enough to store all output\n");
4051 /* ?pbackfail@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
4052 /* ?pbackfail@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
4053 /* ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
4054 /* ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
4055 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_pbackfail
, 8)
4056 unsigned short __thiscall
basic_filebuf_wchar_pbackfail(basic_filebuf_wchar
*this, unsigned short c
)
4058 TRACE("(%p %d)\n", this, c
);
4060 if(!basic_filebuf_wchar_is_open(this))
4063 if(basic_streambuf_wchar_gptr(&this->base
)>basic_streambuf_wchar_eback(&this->base
)
4064 && (c
==WEOF
|| basic_streambuf_wchar_gptr(&this->base
)[-1]==c
)) {
4065 basic_streambuf_wchar__Gndec(&this->base
);
4066 return c
==WEOF
? !c
: c
;
4067 }else if(c
!=WEOF
&& !this->cvt
) {
4068 return ungetwc(c
, this->file
);
4069 }else if(c
!=WEOF
&& basic_streambuf_wchar_gptr(&this->base
)!=&this->putback
) {
4071 basic_streambuf_wchar_setg(&this->base
, &this->putback
, &this->putback
, &this->putback
+1);
4078 /* ?uflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
4079 /* ?uflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
4080 /* ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
4081 /* ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
4082 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_uflow
, 4)
4083 unsigned short __thiscall
basic_filebuf_wchar_uflow(basic_filebuf_wchar
*this)
4085 wchar_t ch
, *to_next
;
4087 const char *buf_next
;
4091 TRACE("(%p)\n", this);
4093 if(!basic_filebuf_wchar_is_open(this))
4096 if(basic_streambuf_wchar_gptr(&this->base
) < basic_streambuf_wchar_egptr(&this->base
))
4097 return *basic_streambuf_wchar__Gninc(&this->base
);
4100 return fgetwc(this->file
);
4103 for(i
=0; i
< ARRAY_SIZE(buf
); i
++) {
4104 if((c
= fgetc(this->file
)) == EOF
)
4108 switch(codecvt_wchar_in(this->cvt
, &this->state
, buf_next
,
4109 buf
+i
+1, &buf_next
, &ch
, &ch
+1, &to_next
)) {
4110 case CODECVT_partial
:
4115 for(j
= --i
; j
>= buf_next
-buf
; j
--)
4116 ungetc(buf
[j
], this->file
);
4118 case CODECVT_noconv
:
4119 if(i
+1 < sizeof(wchar_t))
4122 memcpy(&ch
, buf
, sizeof(wchar_t));
4129 FIXME("buffer is too small\n");
4133 /* ?underflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
4134 /* ?underflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
4135 /* ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
4136 /* ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
4137 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_underflow
, 4)
4138 unsigned short __thiscall
basic_filebuf_wchar_underflow(basic_filebuf_wchar
*this)
4142 TRACE("(%p)\n", this);
4144 if(basic_streambuf_wchar_gptr(&this->base
) < basic_streambuf_wchar_egptr(&this->base
))
4145 return *basic_streambuf_wchar_gptr(&this->base
);
4147 ret
= call_basic_streambuf_wchar_uflow(&this->base
);
4149 ret
= call_basic_streambuf_wchar_pbackfail(&this->base
, ret
);
4153 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
4154 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
4155 /* ?seekoff@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
4156 /* ?seekoff@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
4157 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
4158 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
4159 #if STREAMOFF_BITS == 64
4160 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_seekoff
, 24)
4162 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_seekoff
, 20)
4164 fpos_mbstatet
* __thiscall
basic_filebuf_wchar_seekoff(basic_filebuf_wchar
*this,
4165 fpos_mbstatet
*ret
, streamoff off
, int way
, int mode
)
4169 TRACE("(%p %p %s %d %d)\n", this, ret
, wine_dbgstr_longlong(off
), way
, mode
);
4171 if(basic_streambuf_wchar_gptr(&this->base
) == &this->putback
) {
4172 if(way
== SEEKDIR_cur
)
4173 off
-= sizeof(wchar_t);
4175 basic_streambuf_wchar_setg(&this->base
, &this->putback
, &this->putback
+1, &this->putback
+1);
4178 if(!basic_filebuf_wchar_is_open(this) || !basic_filebuf_wchar__Endwrite(this)
4179 || fseek(this->file
, off
, way
)) {
4182 memset(&ret
->state
, 0, sizeof(ret
->state
));
4186 fgetpos(this->file
, &pos
);
4189 ret
->state
= this->state
;
4193 /* ?seekpos@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
4194 /* ?seekpos@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
4195 /* ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
4196 /* ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
4197 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_seekpos
, 36)
4198 fpos_mbstatet
* __thiscall
basic_filebuf_wchar_seekpos(basic_filebuf_wchar
*this,
4199 fpos_mbstatet
*ret
, fpos_mbstatet pos
, int mode
)
4203 TRACE("(%p %p %s %d)\n", this, ret
, debugstr_fpos_mbstatet(&pos
), mode
);
4205 if(!basic_filebuf_wchar_is_open(this) || !basic_filebuf_wchar__Endwrite(this)
4206 || fseek(this->file
, (LONG
)pos
.pos
, SEEK_SET
)
4207 || (pos
.off
&& fseek(this->file
, pos
.off
, SEEK_CUR
))) {
4210 memset(&ret
->state
, 0, sizeof(ret
->state
));
4214 if(basic_streambuf_wchar_gptr(&this->base
) == &this->putback
)
4215 basic_streambuf_wchar_setg(&this->base
, &this->putback
, &this->putback
+1, &this->putback
+1);
4217 fgetpos(this->file
, &fpos
);
4220 ret
->state
= this->state
;
4224 /* ?setbuf@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PA_WH@Z */
4225 /* ?setbuf@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEA_W_J@Z */
4226 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
4227 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_setbuf
, 16)
4229 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_setbuf
, 12)
4231 basic_streambuf_wchar
* __thiscall
basic_filebuf_wchar_setbuf(basic_filebuf_wchar
*this, wchar_t *buf
, streamsize count
)
4233 TRACE("(%p %p %s)\n", this, buf
, wine_dbgstr_longlong(count
));
4235 if(!basic_filebuf_wchar_is_open(this))
4238 if(setvbuf(this->file
, (char*)buf
, (buf
==NULL
&& count
==0) ? _IONBF
: _IOFBF
, count
*sizeof(wchar_t)))
4241 basic_filebuf_wchar__Init(this, this->file
, INITFL_open
);
4245 /* ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PAGH@Z */
4246 /* ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAG_J@Z */
4247 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
4248 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_setbuf
, 16)
4250 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_setbuf
, 12)
4252 basic_streambuf_wchar
* __thiscall
basic_filebuf_short_setbuf(basic_filebuf_wchar
*this, wchar_t *buf
, streamsize count
)
4254 TRACE("(%p %p %s)\n", this, buf
, wine_dbgstr_longlong(count
));
4256 if(!basic_filebuf_wchar_is_open(this))
4259 if(setvbuf(this->file
, (char*)buf
, (buf
==NULL
&& count
==0) ? _IONBF
: _IOFBF
, count
*sizeof(wchar_t)))
4262 basic_filebuf_short__Init(this, this->file
, INITFL_open
);
4266 /* ?sync@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
4267 /* ?sync@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ */
4268 /* ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
4269 /* ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAHXZ */
4270 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_sync
, 4)
4271 int __thiscall
basic_filebuf_wchar_sync(basic_filebuf_wchar
*this)
4273 TRACE("(%p)\n", this);
4275 if(!basic_filebuf_wchar_is_open(this))
4278 if(call_basic_streambuf_wchar_overflow(&this->base
, WEOF
) == WEOF
)
4280 return fflush(this->file
);
4283 /* ?imbue@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z */
4284 /* ?imbue@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z */
4285 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_imbue
, 8)
4286 void __thiscall
basic_filebuf_wchar_imbue(basic_filebuf_wchar
*this, const locale
*loc
)
4288 TRACE("(%p %p)\n", this, loc
);
4289 basic_filebuf_wchar__Initcvt_cvt(this, codecvt_wchar_use_facet(loc
));
4292 /* ?imbue@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEXABVlocale@2@@Z */
4293 /* ?imbue@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z */
4294 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_imbue
, 8)
4295 void __thiscall
basic_filebuf_short_imbue(basic_filebuf_wchar
*this, const locale
*loc
)
4297 TRACE("(%p %p)\n", this, loc
);
4298 basic_filebuf_wchar__Initcvt_cvt(this, codecvt_short_use_facet(loc
));
4301 /* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEHH@Z */
4302 /* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAHH@Z */
4303 /* ?_Mode@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEHH@Z */
4304 /* ?_Mode@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAHH@Z */
4305 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Getstate
, 8)
4306 int __thiscall
basic_stringbuf_char__Getstate(basic_stringbuf_char
*this, IOSB_openmode mode
)
4310 if(!(mode
& OPENMODE_in
))
4311 state
|= STRINGBUF_no_read
;
4313 if(!(mode
& OPENMODE_out
))
4314 state
|= STRINGBUF_no_write
;
4316 if(mode
& OPENMODE_ate
)
4317 state
|= STRINGBUF_at_end
;
4319 if(mode
& OPENMODE_app
)
4320 state
|= STRINGBUF_append
;
4325 /* ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXPBDIH@Z */
4326 /* ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAXPEBD_KH@Z */
4327 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Init
, 16)
4328 void __thiscall
basic_stringbuf_char__Init(basic_stringbuf_char
*this, const char *str
, size_t count
, int state
)
4330 TRACE("(%p, %p, %Iu, %d)\n", this, str
, count
, state
);
4332 basic_streambuf_char__Init_empty(&this->base
);
4334 this->state
= state
;
4335 this->seekhigh
= NULL
;
4338 char *buf
= operator_new(count
);
4340 memcpy(buf
, str
, count
);
4341 this->seekhigh
= buf
+ count
;
4343 this->state
|= STRINGBUF_allocated
;
4345 if(!(state
& STRINGBUF_no_read
))
4346 basic_streambuf_char_setg(&this->base
, buf
, buf
, buf
+ count
);
4348 if(!(state
& STRINGBUF_no_write
)) {
4349 basic_streambuf_char_setp_next(&this->base
, buf
, (state
& STRINGBUF_at_end
) ? buf
+ count
: buf
, buf
+ count
);
4351 if(!basic_streambuf_char_gptr(&this->base
))
4352 basic_streambuf_char_setg(&this->base
, buf
, 0, buf
);
4357 /* ??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 */
4358 /* ??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 */
4359 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor_str
, 12)
4360 basic_stringbuf_char
* __thiscall
basic_stringbuf_char_ctor_str(basic_stringbuf_char
*this,
4361 const basic_string_char
*str
, IOSB_openmode mode
)
4363 TRACE("(%p %p %d)\n", this, str
, mode
);
4365 basic_streambuf_char_ctor(&this->base
);
4366 this->base
.vtable
= &basic_stringbuf_char_vtable
;
4368 basic_stringbuf_char__Init(this, MSVCP_basic_string_char_c_str(str
),
4369 str
->size
, basic_stringbuf_char__Getstate(this, mode
));
4373 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
4374 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
4375 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor_mode
, 8)
4376 basic_stringbuf_char
* __thiscall
basic_stringbuf_char_ctor_mode(
4377 basic_stringbuf_char
*this, IOSB_openmode mode
)
4379 TRACE("(%p %d)\n", this, mode
);
4381 basic_streambuf_char_ctor(&this->base
);
4382 this->base
.vtable
= &basic_stringbuf_char_vtable
;
4384 basic_stringbuf_char__Init(this, NULL
, 0, basic_stringbuf_char__Getstate(this, mode
));
4388 /* ??_F?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
4389 /* ??_F?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
4390 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor
, 4)
4391 basic_stringbuf_char
* __thiscall
basic_stringbuf_char_ctor(basic_stringbuf_char
*this)
4393 return basic_stringbuf_char_ctor_mode(this, OPENMODE_in
|OPENMODE_out
);
4396 /* ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXXZ */
4397 /* ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAXXZ */
4398 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Tidy
, 4)
4399 void __thiscall
basic_stringbuf_char__Tidy(basic_stringbuf_char
*this)
4401 TRACE("(%p)\n", this);
4403 if(this->state
& STRINGBUF_allocated
) {
4404 operator_delete(basic_streambuf_char_eback(&this->base
));
4405 this->seekhigh
= NULL
;
4406 this->state
&= ~STRINGBUF_allocated
;
4409 basic_streambuf_char__Init_empty(&this->base
);
4412 /* ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
4413 /* ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
4414 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_dtor
, 4)
4415 void __thiscall
basic_stringbuf_char_dtor(basic_stringbuf_char
*this)
4417 TRACE("(%p)\n", this);
4419 basic_stringbuf_char__Tidy(this);
4420 basic_streambuf_char_dtor(&this->base
);
4423 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_vector_dtor
, 8)
4424 basic_stringbuf_char
* __thiscall
basic_stringbuf_char_vector_dtor(basic_stringbuf_char
*this, unsigned int flags
)
4426 TRACE("(%p %x)\n", this, flags
);
4429 /* we have an array, with the number of elements stored before the first object */
4430 INT_PTR i
, *ptr
= (INT_PTR
*) this - 1;
4432 for (i
= *ptr
- 1; i
>= 0; i
--)
4433 basic_stringbuf_char_dtor(this+i
);
4435 operator_delete(ptr
);
4437 basic_stringbuf_char_dtor(this);
4440 operator_delete(this);
4446 /* ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z */
4447 /* ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHH@Z */
4448 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_overflow
, 8)
4449 int __thiscall
basic_stringbuf_char_overflow(basic_stringbuf_char
*this, int meta
)
4451 size_t oldsize
, size
;
4454 TRACE("(%p %x)\n", this, meta
);
4458 if(this->state
& STRINGBUF_no_write
)
4461 ptr
= basic_streambuf_char_pptr(&this->base
);
4462 if((this->state
&STRINGBUF_append
) && ptr
<this->seekhigh
)
4463 basic_streambuf_char_setp_next(&this->base
, basic_streambuf_char_pbase(&this->base
),
4464 this->seekhigh
, basic_streambuf_char_epptr(&this->base
));
4466 if(ptr
&& ptr
<basic_streambuf_char_epptr(&this->base
))
4467 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base
) = meta
);
4469 oldsize
= (ptr
? basic_streambuf_char_epptr(&this->base
)-basic_streambuf_char_eback(&this->base
): 0);
4472 buf
= operator_new(size
);
4475 this->seekhigh
= buf
;
4476 basic_streambuf_char_setp(&this->base
, buf
, buf
+size
);
4477 if(this->state
& STRINGBUF_no_read
)
4478 basic_streambuf_char_setg(&this->base
, buf
, NULL
, buf
);
4480 basic_streambuf_char_setg(&this->base
, buf
, buf
, buf
+1);
4482 this->state
|= STRINGBUF_allocated
;
4484 ptr
= basic_streambuf_char_eback(&this->base
);
4485 memcpy(buf
, ptr
, oldsize
);
4487 this->seekhigh
= buf
+(this->seekhigh
-ptr
);
4488 basic_streambuf_char_setp_next(&this->base
, buf
,
4489 buf
+(basic_streambuf_char_pptr(&this->base
)-ptr
), buf
+size
);
4490 if(this->state
& STRINGBUF_no_read
)
4491 basic_streambuf_char_setg(&this->base
, buf
, NULL
, buf
);
4493 basic_streambuf_char_setg(&this->base
, buf
,
4494 buf
+(basic_streambuf_char_gptr(&this->base
)-ptr
),
4495 basic_streambuf_char_pptr(&this->base
)+1);
4497 operator_delete(ptr
);
4500 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base
) = meta
);
4503 /* ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z */
4504 /* ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHH@Z */
4505 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_pbackfail
, 8)
4506 int __thiscall
basic_stringbuf_char_pbackfail(basic_stringbuf_char
*this, int c
)
4510 TRACE("(%p %x)\n", this, c
);
4512 cur
= basic_streambuf_char_gptr(&this->base
);
4513 if(!cur
|| cur
==basic_streambuf_char_eback(&this->base
)
4514 || (c
!=EOF
&& c
!=cur
[-1] && this->state
&STRINGBUF_no_write
))
4519 basic_streambuf_char_gbump(&this->base
, -1);
4520 return c
==EOF
? !EOF
: c
;
4523 /* ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHXZ */
4524 /* ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHXZ */
4525 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_underflow
, 4)
4526 int __thiscall
basic_stringbuf_char_underflow(basic_stringbuf_char
*this)
4530 TRACE("(%p)\n", this);
4532 cur
= basic_streambuf_char_gptr(&this->base
);
4533 if(!cur
|| this->state
&STRINGBUF_no_read
)
4536 ptr
= basic_streambuf_char_pptr(&this->base
);
4537 if(this->seekhigh
< ptr
)
4538 this->seekhigh
= ptr
;
4540 ptr
= basic_streambuf_char_egptr(&this->base
);
4541 if(this->seekhigh
> ptr
)
4542 basic_streambuf_char_setg(&this->base
, basic_streambuf_char_eback(&this->base
), cur
, this->seekhigh
);
4544 if(cur
< this->seekhigh
)
4545 return (unsigned char)*cur
;
4549 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
4550 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
4551 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
4552 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
4553 #if STREAMOFF_BITS == 64
4554 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekoff
, 24)
4556 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekoff
, 20)
4558 fpos_mbstatet
* __thiscall
basic_stringbuf_char_seekoff(basic_stringbuf_char
*this,
4559 fpos_mbstatet
*ret
, streamoff off
, int way
, int mode
)
4561 char *beg
, *cur_r
, *cur_w
;
4563 TRACE("(%p %p %s %d %d)\n", this, ret
, wine_dbgstr_longlong(off
), way
, mode
);
4565 cur_w
= basic_streambuf_char_pptr(&this->base
);
4566 if(cur_w
> this->seekhigh
)
4567 this->seekhigh
= cur_w
;
4571 memset(&ret
->state
, 0, sizeof(ret
->state
));
4573 beg
= basic_streambuf_char_eback(&this->base
);
4574 cur_r
= basic_streambuf_char_gptr(&this->base
);
4575 if((mode
& OPENMODE_in
) && cur_r
) {
4576 if(way
==SEEKDIR_cur
&& !(mode
& OPENMODE_out
))
4578 else if(way
== SEEKDIR_end
)
4579 off
+= this->seekhigh
-beg
;
4580 else if(way
!= SEEKDIR_beg
)
4583 if(off
<0 || off
>this->seekhigh
-beg
) {
4586 basic_streambuf_char_gbump(&this->base
, beg
-cur_r
+off
);
4587 if((mode
& OPENMODE_out
) && cur_w
) {
4588 basic_streambuf_char_setp_next(&this->base
, beg
,
4589 basic_streambuf_char_gptr(&this->base
),
4590 basic_streambuf_char_epptr(&this->base
));
4593 }else if((mode
& OPENMODE_out
) && cur_w
) {
4594 if(way
== SEEKDIR_cur
)
4596 else if(way
== SEEKDIR_end
)
4597 off
+= this->seekhigh
-beg
;
4598 else if(way
!= SEEKDIR_beg
)
4601 if(off
<0 || off
>this->seekhigh
-beg
)
4604 basic_streambuf_char_pbump(&this->base
, beg
-cur_w
+off
);
4613 /* ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
4614 /* ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
4615 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekpos
, 36)
4616 fpos_mbstatet
* __thiscall
basic_stringbuf_char_seekpos(basic_stringbuf_char
*this,
4617 fpos_mbstatet
*ret
, fpos_mbstatet pos
, int mode
)
4619 TRACE("(%p %p %s %d)\n", this, ret
, debugstr_fpos_mbstatet(&pos
), mode
);
4621 if(pos
.off
==-1 && pos
.pos
==0 && MBSTATET_TO_INT(&pos
.state
)==0) {
4626 return basic_stringbuf_char_seekoff(this, ret
, pos
.pos
+pos
.off
, SEEKDIR_beg
, mode
);
4629 /* ?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 */
4630 /* ?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 */
4631 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_str_set
, 8)
4632 void __thiscall
basic_stringbuf_char_str_set(basic_stringbuf_char
*this, const basic_string_char
*str
)
4634 TRACE("(%p %p)\n", this, str
);
4636 basic_stringbuf_char__Tidy(this);
4637 basic_stringbuf_char__Init(this, MSVCP_basic_string_char_c_str(str
), str
->size
, this->state
);
4640 /* ?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 */
4641 /* ?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 */
4642 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_str_get
, 8)
4643 basic_string_char
* __thiscall
basic_stringbuf_char_str_get(const basic_stringbuf_char
*this, basic_string_char
*ret
)
4647 TRACE("(%p)\n", this);
4649 if(!(this->state
& STRINGBUF_no_write
) && basic_streambuf_char_pptr(&this->base
)) {
4652 ptr
= basic_streambuf_char_pbase(&this->base
);
4653 pptr
= basic_streambuf_char_pptr(&this->base
);
4655 return MSVCP_basic_string_char_ctor_cstr_len(ret
, ptr
, (this->seekhigh
< pptr
? pptr
: this->seekhigh
) - ptr
);
4658 if(!(this->state
& STRINGBUF_no_read
) && basic_streambuf_char_gptr(&this->base
)) {
4659 ptr
= basic_streambuf_char_eback(&this->base
);
4660 return MSVCP_basic_string_char_ctor_cstr_len(ret
, ptr
, basic_streambuf_char_egptr(&this->base
) - ptr
);
4663 return MSVCP_basic_string_char_ctor(ret
);
4666 /* ?_Getstate@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AAEHH@Z */
4667 /* ?_Getstate@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AEAAHH@Z */
4668 /* ?_Getstate@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AAEHH@Z */
4669 /* ?_Getstate@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AEAAHH@Z */
4670 /* ?_Mode@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AAEHH@Z */
4671 /* ?_Mode@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AEAAHH@Z */
4672 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Getstate
, 8)
4673 int __thiscall
basic_stringbuf_wchar__Getstate(basic_stringbuf_wchar
*this, IOSB_openmode mode
)
4677 if(!(mode
& OPENMODE_in
))
4678 state
|= STRINGBUF_no_read
;
4680 if(!(mode
& OPENMODE_out
))
4681 state
|= STRINGBUF_no_write
;
4683 if(mode
& OPENMODE_ate
)
4684 state
|= STRINGBUF_at_end
;
4686 if(mode
& OPENMODE_app
)
4687 state
|= STRINGBUF_append
;
4692 /* ?_Init@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXPB_WIH@Z */
4693 /* ?_Init@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAXPEB_W_KH@Z */
4694 /* ?_Init@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXPBGIH@Z */
4695 /* ?_Init@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAXPEBG_KH@Z */
4696 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Init
, 16)
4697 void __thiscall
basic_stringbuf_wchar__Init(basic_stringbuf_wchar
*this, const wchar_t *str
, size_t count
, int state
)
4699 TRACE("(%p, %p, %Iu, %d)\n", this, str
, count
, state
);
4701 basic_streambuf_wchar__Init_empty(&this->base
);
4703 this->state
= state
;
4704 this->seekhigh
= NULL
;
4707 wchar_t *buf
= operator_new(count
*sizeof(wchar_t));
4709 memcpy(buf
, str
, count
*sizeof(wchar_t));
4710 this->seekhigh
= buf
+ count
;
4712 this->state
|= STRINGBUF_allocated
;
4714 if(!(state
& STRINGBUF_no_read
))
4715 basic_streambuf_wchar_setg(&this->base
, buf
, buf
, buf
+ count
);
4717 if(!(state
& STRINGBUF_no_write
)) {
4718 basic_streambuf_wchar_setp_next(&this->base
, buf
, (state
& STRINGBUF_at_end
) ? buf
+ count
: buf
, buf
+ count
);
4720 if(!basic_streambuf_wchar_gptr(&this->base
))
4721 basic_streambuf_wchar_setg(&this->base
, buf
, 0, buf
);
4726 /* ??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 */
4727 /* ??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 */
4728 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor_str
, 12)
4729 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_wchar_ctor_str(basic_stringbuf_wchar
*this,
4730 const basic_string_wchar
*str
, IOSB_openmode mode
)
4732 TRACE("(%p %p %d)\n", this, str
, mode
);
4734 basic_streambuf_wchar_ctor(&this->base
);
4735 this->base
.vtable
= &basic_stringbuf_wchar_vtable
;
4737 basic_stringbuf_wchar__Init(this, MSVCP_basic_string_wchar_c_str(str
),
4738 str
->size
, basic_stringbuf_wchar__Getstate(this, mode
));
4742 /* ??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 */
4743 /* ??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 */
4744 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor_str
, 12)
4745 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_short_ctor_str(basic_stringbuf_wchar
*this,
4746 const basic_string_wchar
*str
, IOSB_openmode mode
)
4748 basic_stringbuf_wchar_ctor_str(this, str
, mode
);
4749 this->base
.vtable
= &basic_stringbuf_short_vtable
;
4753 /* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
4754 /* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
4755 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor_mode
, 8)
4756 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_wchar_ctor_mode(
4757 basic_stringbuf_wchar
*this, IOSB_openmode mode
)
4759 TRACE("(%p %d)\n", this, mode
);
4761 basic_streambuf_wchar_ctor(&this->base
);
4762 this->base
.vtable
= &basic_stringbuf_wchar_vtable
;
4764 basic_stringbuf_wchar__Init(this, NULL
, 0, basic_stringbuf_wchar__Getstate(this, mode
));
4768 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
4769 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
4770 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor_mode
, 8)
4771 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_short_ctor_mode(
4772 basic_stringbuf_wchar
*this, IOSB_openmode mode
)
4774 basic_stringbuf_wchar_ctor_mode(this, mode
);
4775 this->base
.vtable
= &basic_stringbuf_short_vtable
;
4779 /* ??_F?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
4780 /* ??_F?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
4781 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor
, 4)
4782 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_wchar_ctor(basic_stringbuf_wchar
*this)
4784 return basic_stringbuf_wchar_ctor_mode(this, OPENMODE_in
|OPENMODE_out
);
4787 /* ??_F?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
4788 /* ??_F?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
4789 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor
, 4)
4790 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_short_ctor(basic_stringbuf_wchar
*this)
4792 return basic_stringbuf_short_ctor_mode(this, OPENMODE_in
|OPENMODE_out
);
4795 /* ?_Tidy@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXXZ */
4796 /* ?_Tidy@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAXXZ */
4797 /* ?_Tidy@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXXZ */
4798 /* ?_Tidy@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAXXZ */
4799 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Tidy
, 4)
4800 void __thiscall
basic_stringbuf_wchar__Tidy(basic_stringbuf_wchar
*this)
4802 TRACE("(%p)\n", this);
4804 if(this->state
& STRINGBUF_allocated
) {
4805 operator_delete(basic_streambuf_wchar_eback(&this->base
));
4806 this->seekhigh
= NULL
;
4807 this->state
&= ~STRINGBUF_allocated
;
4810 basic_streambuf_wchar__Init_empty(&this->base
);
4813 /* ??1?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
4814 /* ??1?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
4815 /* ??1?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
4816 /* ??1?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
4817 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_dtor
, 4)
4818 void __thiscall
basic_stringbuf_wchar_dtor(basic_stringbuf_wchar
*this)
4820 TRACE("(%p)\n", this);
4822 basic_stringbuf_wchar__Tidy(this);
4823 basic_streambuf_wchar_dtor(&this->base
);
4826 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_vector_dtor
, 8)
4827 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_wchar_vector_dtor(basic_stringbuf_wchar
*this, unsigned int flags
)
4829 TRACE("(%p %x)\n", this, flags
);
4832 /* we have an array, with the number of elements stored before the first object */
4833 INT_PTR i
, *ptr
= (INT_PTR
*) this - 1;
4835 for (i
= *ptr
- 1; i
>= 0; i
--)
4836 basic_stringbuf_wchar_dtor(this+i
);
4838 operator_delete(ptr
);
4840 basic_stringbuf_wchar_dtor(this);
4843 operator_delete(this);
4849 /* ?overflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGG@Z */
4850 /* ?overflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGG@Z */
4851 /* ?overflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGG@Z */
4852 /* ?overflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGG@Z */
4853 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_overflow
, 8)
4854 unsigned short __thiscall
basic_stringbuf_wchar_overflow(basic_stringbuf_wchar
*this, unsigned short meta
)
4856 size_t oldsize
, size
;
4859 TRACE("(%p %x)\n", this, meta
);
4863 if(this->state
& STRINGBUF_no_write
)
4866 ptr
= basic_streambuf_wchar_pptr(&this->base
);
4867 if((this->state
&STRINGBUF_append
) && ptr
<this->seekhigh
)
4868 basic_streambuf_wchar_setp_next(&this->base
, basic_streambuf_wchar_pbase(&this->base
),
4869 this->seekhigh
, basic_streambuf_wchar_epptr(&this->base
));
4871 if(ptr
&& ptr
<basic_streambuf_wchar_epptr(&this->base
))
4872 return (*basic_streambuf_wchar__Pninc(&this->base
) = meta
);
4874 oldsize
= (ptr
? basic_streambuf_wchar_epptr(&this->base
)-basic_streambuf_wchar_eback(&this->base
): 0);
4877 buf
= operator_new(size
*sizeof(wchar_t));
4880 this->seekhigh
= buf
;
4881 basic_streambuf_wchar_setp(&this->base
, buf
, buf
+size
);
4882 if(this->state
& STRINGBUF_no_read
)
4883 basic_streambuf_wchar_setg(&this->base
, buf
, NULL
, buf
);
4885 basic_streambuf_wchar_setg(&this->base
, buf
, buf
, buf
+1);
4887 this->state
|= STRINGBUF_allocated
;
4889 ptr
= basic_streambuf_wchar_eback(&this->base
);
4890 memcpy(buf
, ptr
, oldsize
*sizeof(wchar_t));
4892 this->seekhigh
= buf
+(this->seekhigh
-ptr
);
4893 basic_streambuf_wchar_setp_next(&this->base
, buf
,
4894 buf
+(basic_streambuf_wchar_pptr(&this->base
)-ptr
), buf
+size
);
4895 if(this->state
& STRINGBUF_no_read
)
4896 basic_streambuf_wchar_setg(&this->base
, buf
, NULL
, buf
);
4898 basic_streambuf_wchar_setg(&this->base
, buf
,
4899 buf
+(basic_streambuf_wchar_gptr(&this->base
)-ptr
),
4900 basic_streambuf_wchar_pptr(&this->base
)+1);
4902 operator_delete(ptr
);
4905 return (*basic_streambuf_wchar__Pninc(&this->base
) = meta
);
4908 /* ?pbackfail@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGG@Z */
4909 /* ?pbackfail@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGG@Z */
4910 /* ?pbackfail@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGG@Z */
4911 /* ?pbackfail@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGG@Z */
4912 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_pbackfail
, 8)
4913 unsigned short __thiscall
basic_stringbuf_wchar_pbackfail(basic_stringbuf_wchar
*this, unsigned short c
)
4917 TRACE("(%p %x)\n", this, c
);
4919 cur
= basic_streambuf_wchar_gptr(&this->base
);
4920 if(!cur
|| cur
==basic_streambuf_wchar_eback(&this->base
)
4921 || (c
!=WEOF
&& c
!=cur
[-1] && this->state
&STRINGBUF_no_write
))
4926 basic_streambuf_wchar_gbump(&this->base
, -1);
4927 return c
==WEOF
? !WEOF
: c
;
4930 /* ?underflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGXZ */
4931 /* ?underflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGXZ */
4932 /* ?underflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGXZ */
4933 /* ?underflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGXZ */
4934 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_underflow
, 4)
4935 unsigned short __thiscall
basic_stringbuf_wchar_underflow(basic_stringbuf_wchar
*this)
4939 TRACE("(%p)\n", this);
4941 cur
= basic_streambuf_wchar_gptr(&this->base
);
4942 if(!cur
|| this->state
&STRINGBUF_no_read
)
4945 ptr
= basic_streambuf_wchar_pptr(&this->base
);
4946 if(this->seekhigh
< ptr
)
4947 this->seekhigh
= ptr
;
4949 ptr
= basic_streambuf_wchar_egptr(&this->base
);
4950 if(this->seekhigh
> ptr
)
4951 basic_streambuf_wchar_setg(&this->base
, basic_streambuf_wchar_eback(&this->base
), cur
, this->seekhigh
);
4953 if(cur
< this->seekhigh
)
4958 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
4959 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
4960 /* ?seekoff@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
4961 /* ?seekoff@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
4962 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
4963 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
4964 #if STREAMOFF_BITS == 64
4965 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_seekoff
, 24)
4967 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_seekoff
, 20)
4969 fpos_mbstatet
* __thiscall
basic_stringbuf_wchar_seekoff(basic_stringbuf_wchar
*this,
4970 fpos_mbstatet
*ret
, streamoff off
, int way
, int mode
)
4972 wchar_t *beg
, *cur_r
, *cur_w
;
4974 TRACE("(%p %p %s %d %d)\n", this, ret
, wine_dbgstr_longlong(off
), way
, mode
);
4976 cur_w
= basic_streambuf_wchar_pptr(&this->base
);
4977 if(cur_w
> this->seekhigh
)
4978 this->seekhigh
= cur_w
;
4982 memset(&ret
->state
, 0, sizeof(ret
->state
));
4984 beg
= basic_streambuf_wchar_eback(&this->base
);
4985 cur_r
= basic_streambuf_wchar_gptr(&this->base
);
4986 if((mode
& OPENMODE_in
) && cur_r
) {
4987 if(way
==SEEKDIR_cur
&& !(mode
& OPENMODE_out
))
4989 else if(way
== SEEKDIR_end
)
4990 off
+= this->seekhigh
-beg
;
4991 else if(way
!= SEEKDIR_beg
)
4994 if(off
<0 || off
>this->seekhigh
-beg
) {
4997 basic_streambuf_wchar_gbump(&this->base
, beg
-cur_r
+off
);
4998 if((mode
& OPENMODE_out
) && cur_w
) {
4999 basic_streambuf_wchar_setp_next(&this->base
, beg
,
5000 basic_streambuf_wchar_gptr(&this->base
),
5001 basic_streambuf_wchar_epptr(&this->base
));
5004 }else if((mode
& OPENMODE_out
) && cur_w
) {
5005 if(way
== SEEKDIR_cur
)
5007 else if(way
== SEEKDIR_end
)
5008 off
+= this->seekhigh
-beg
;
5009 else if(way
!= SEEKDIR_beg
)
5012 if(off
<0 || off
>this->seekhigh
-beg
)
5015 basic_streambuf_wchar_pbump(&this->base
, beg
-cur_w
+off
);
5024 /* ?seekpos@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
5025 /* ?seekpos@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
5026 /* ?seekpos@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
5027 /* ?seekpos@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
5028 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_seekpos
, 36)
5029 fpos_mbstatet
* __thiscall
basic_stringbuf_wchar_seekpos(basic_stringbuf_wchar
*this,
5030 fpos_mbstatet
*ret
, fpos_mbstatet pos
, int mode
)
5032 TRACE("(%p %p %s %d)\n", this, ret
, debugstr_fpos_mbstatet(&pos
), mode
);
5034 if(pos
.off
==-1 && pos
.pos
==0 && MBSTATET_TO_INT(&pos
.state
)==0) {
5039 return basic_stringbuf_wchar_seekoff(this, ret
, pos
.pos
+pos
.off
, SEEKDIR_beg
, mode
);
5042 /* ?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 */
5043 /* ?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 */
5044 /* ?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 */
5045 /* ?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 */
5046 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_str_set
, 8)
5047 void __thiscall
basic_stringbuf_wchar_str_set(basic_stringbuf_wchar
*this, const basic_string_wchar
*str
)
5049 TRACE("(%p %p)\n", this, str
);
5051 basic_stringbuf_wchar__Tidy(this);
5052 basic_stringbuf_wchar__Init(this, MSVCP_basic_string_wchar_c_str(str
), str
->size
, this->state
);
5055 /* ?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 */
5056 /* ?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 */
5057 /* ?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 */
5058 /* ?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 */
5059 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_str_get
, 8)
5060 basic_string_wchar
* __thiscall
basic_stringbuf_wchar_str_get(const basic_stringbuf_wchar
*this, basic_string_wchar
*ret
)
5064 TRACE("(%p)\n", this);
5066 if(!(this->state
& STRINGBUF_no_write
) && basic_streambuf_wchar_pptr(&this->base
)) {
5069 ptr
= basic_streambuf_wchar_pbase(&this->base
);
5070 pptr
= basic_streambuf_wchar_pptr(&this->base
);
5072 return MSVCP_basic_string_wchar_ctor_cstr_len(ret
, ptr
, (this->seekhigh
< pptr
? pptr
: this->seekhigh
) - ptr
);
5075 if(!(this->state
& STRINGBUF_no_read
) && basic_streambuf_wchar_gptr(&this->base
)) {
5076 ptr
= basic_streambuf_wchar_eback(&this->base
);
5077 return MSVCP_basic_string_wchar_ctor_cstr_len(ret
, ptr
, basic_streambuf_wchar_egptr(&this->base
) - ptr
);
5080 return MSVCP_basic_string_wchar_ctor(ret
);
5083 /* ??0ios_base@std@@IAE@XZ */
5084 /* ??0ios_base@std@@IEAA@XZ */
5085 DEFINE_THISCALL_WRAPPER(ios_base_ctor
, 4)
5086 ios_base
* __thiscall
ios_base_ctor(ios_base
*this)
5088 TRACE("(%p)\n", this);
5089 this->vtable
= &ios_base_vtable
;
5093 /* ??0ios_base@std@@QAE@ABV01@@Z */
5094 /* ??0ios_base@std@@QEAA@AEBV01@@Z */
5095 DEFINE_THISCALL_WRAPPER(ios_base_copy_ctor
, 8)
5096 ios_base
* __thiscall
ios_base_copy_ctor(ios_base
*this, const ios_base
*copy
)
5098 TRACE("(%p %p)\n", this, copy
);
5100 this->vtable
= &ios_base_vtable
;
5104 /* ?_Callfns@ios_base@std@@AAEXW4event@12@@Z */
5105 /* ?_Callfns@ios_base@std@@AEAAXW4event@12@@Z */
5106 DEFINE_THISCALL_WRAPPER(ios_base_Callfns
, 8)
5107 void __thiscall
ios_base_Callfns(ios_base
*this, IOS_BASE_event event
)
5109 IOS_BASE_fnarray
*cur
;
5111 TRACE("(%p %x)\n", this, event
);
5113 for(cur
=this->calls
; cur
; cur
=cur
->next
)
5114 cur
->event_handler(event
, this, cur
->index
);
5117 /* ?_Tidy@ios_base@std@@AAAXXZ */
5118 /* ?_Tidy@ios_base@std@@AEAAXXZ */
5119 void __cdecl
ios_base_Tidy(ios_base
*this)
5121 IOS_BASE_iosarray
*arr_cur
, *arr_next
;
5122 IOS_BASE_fnarray
*event_cur
, *event_next
;
5124 TRACE("(%p)\n", this);
5126 ios_base_Callfns(this, EVENT_erase_event
);
5128 for(arr_cur
=this->arr
; arr_cur
; arr_cur
=arr_next
) {
5129 arr_next
= arr_cur
->next
;
5130 operator_delete(arr_cur
);
5134 for(event_cur
=this->calls
; event_cur
; event_cur
=event_next
) {
5135 event_next
= event_cur
->next
;
5136 operator_delete(event_cur
);
5141 /* ?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z */
5142 /* ?_Ios_base_dtor@ios_base@std@@CAXPEAV12@@Z */
5143 void __cdecl
ios_base_Ios_base_dtor(ios_base
*obj
)
5145 TRACE("(%p)\n", obj
);
5146 locale_dtor(IOS_LOCALE(obj
));
5147 #if _MSVCP_VER >= 70
5148 operator_delete(obj
->loc
);
5153 /* ??1ios_base@std@@UAE@XZ */
5154 /* ??1ios_base@std@@UEAA@XZ */
5155 DEFINE_THISCALL_WRAPPER(ios_base_dtor
, 4)
5156 void __thiscall
ios_base_dtor(ios_base
*this)
5158 ios_base_Ios_base_dtor(this);
5161 DEFINE_THISCALL_WRAPPER(ios_base_vector_dtor
, 8)
5162 ios_base
* __thiscall
ios_base_vector_dtor(ios_base
*this, unsigned int flags
)
5164 TRACE("(%p %x)\n", this, flags
);
5166 /* we have an array, with the number of elements stored before the first object */
5167 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
5169 for(i
=*ptr
-1; i
>=0; i
--)
5170 ios_base_dtor(this+i
);
5171 operator_delete(ptr
);
5173 ios_base_dtor(this);
5175 operator_delete(this);
5181 DEFINE_THISCALL_WRAPPER(iosb_vector_dtor
, 8)
5182 void* __thiscall
iosb_vector_dtor(void *this, unsigned int flags
)
5184 TRACE("(%p %x)\n", this, flags
);
5186 INT_PTR
*ptr
= (INT_PTR
*)this-1;
5187 operator_delete(ptr
);
5190 operator_delete(this);
5196 /* ?_Findarr@ios_base@std@@AAEAAU_Iosarray@12@H@Z */
5197 /* ?_Findarr@ios_base@std@@AEAAAEAU_Iosarray@12@H@Z */
5198 DEFINE_THISCALL_WRAPPER(ios_base_Findarr
, 8)
5199 IOS_BASE_iosarray
* __thiscall
ios_base_Findarr(ios_base
*this, int index
)
5201 IOS_BASE_iosarray
*p
;
5203 TRACE("(%p %d)\n", this, index
);
5205 for(p
=this->arr
; p
; p
=p
->next
) {
5206 if(p
->index
== index
)
5210 for(p
=this->arr
; p
; p
=p
->next
) {
5211 if(!p
->long_val
&& !p
->ptr_val
) {
5217 p
= operator_new(sizeof(IOS_BASE_iosarray
));
5218 p
->next
= this->arr
;
5226 /* ?iword@ios_base@std@@QAEAAJH@Z */
5227 /* ?iword@ios_base@std@@QEAAAEAJH@Z */
5228 DEFINE_THISCALL_WRAPPER(ios_base_iword
, 8)
5229 LONG
* __thiscall
ios_base_iword(ios_base
*this, int index
)
5231 TRACE("(%p %d)\n", this, index
);
5232 return &ios_base_Findarr(this, index
)->long_val
;
5235 /* ?pword@ios_base@std@@QAEAAPAXH@Z */
5236 /* ?pword@ios_base@std@@QEAAAEAPEAXH@Z */
5237 DEFINE_THISCALL_WRAPPER(ios_base_pword
, 8)
5238 void** __thiscall
ios_base_pword(ios_base
*this, int index
)
5240 TRACE("(%p %d)\n", this, index
);
5241 return &ios_base_Findarr(this, index
)->ptr_val
;
5244 /* ?register_callback@ios_base@std@@QAEXP6AXW4event@12@AAV12@H@ZH@Z */
5245 /* ?register_callback@ios_base@std@@QEAAXP6AXW4event@12@AEAV12@H@ZH@Z */
5246 DEFINE_THISCALL_WRAPPER(ios_base_register_callback
, 12)
5247 void __thiscall
ios_base_register_callback(ios_base
*this, IOS_BASE_event_callback callback
, int index
)
5249 IOS_BASE_fnarray
*event
;
5251 TRACE("(%p %p %d)\n", this, callback
, index
);
5253 event
= operator_new(sizeof(IOS_BASE_fnarray
));
5254 event
->next
= this->calls
;
5255 event
->index
= index
;
5256 event
->event_handler
= callback
;
5257 this->calls
= event
;
5260 /* ?clear@ios_base@std@@QAEXH_N@Z */
5261 /* ?clear@ios_base@std@@QEAAXH_N@Z */
5262 DEFINE_THISCALL_WRAPPER(ios_base_clear_reraise
, 12)
5263 void __thiscall
ios_base_clear_reraise(ios_base
*this, IOSB_iostate state
, bool reraise
)
5265 TRACE("(%p %x %x)\n", this, state
, reraise
);
5267 this->state
= state
& IOSTATE_mask
;
5268 if(!(this->state
& this->except
))
5272 _CxxThrowException(NULL
, NULL
);
5273 else if(this->state
& this->except
& IOSTATE_eofbit
)
5274 throw_failure("eofbit is set");
5275 else if(this->state
& this->except
& IOSTATE_failbit
)
5276 throw_failure("failbit is set");
5277 else if(this->state
& this->except
& IOSTATE_badbit
)
5278 throw_failure("badbit is set");
5279 else if(this->state
& this->except
& IOSTATE__Hardfail
)
5280 throw_failure("_Hardfail is set");
5283 /* ?clear@ios_base@std@@QAEXH@Z */
5284 /* ?clear@ios_base@std@@QEAAXH@Z */
5285 DEFINE_THISCALL_WRAPPER(ios_base_clear
, 8)
5286 void __thiscall
ios_base_clear(ios_base
*this, IOSB_iostate state
)
5288 ios_base_clear_reraise(this, state
, FALSE
);
5291 /* ?clear@ios_base@std@@QAEXI@Z */
5292 /* ?clear@ios_base@std@@QEAAXI@Z */
5293 DEFINE_THISCALL_WRAPPER(ios_base_clear_unsigned
, 8)
5294 void __thiscall
ios_base_clear_unsigned(ios_base
*this, unsigned int state
)
5296 ios_base_clear_reraise(this, (IOSB_iostate
)state
, FALSE
);
5299 /* ?exceptions@ios_base@std@@QAEXH@Z */
5300 /* ?exceptions@ios_base@std@@QEAAXH@Z */
5301 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_set
, 8)
5302 void __thiscall
ios_base_exceptions_set(ios_base
*this, IOSB_iostate state
)
5304 TRACE("(%p %x)\n", this, state
);
5305 this->except
= state
& IOSTATE_mask
;
5306 ios_base_clear(this, this->state
);
5309 /* ?exceptions@ios_base@std@@QAEXI@Z */
5310 /* ?exceptions@ios_base@std@@QEAAXI@Z */
5311 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_set_unsigned
, 8)
5312 void __thiscall
ios_base_exceptions_set_unsigned(ios_base
*this, unsigned int state
)
5314 TRACE("(%p %x)\n", this, state
);
5315 ios_base_exceptions_set(this, state
);
5318 /* ?exceptions@ios_base@std@@QBEHXZ */
5319 /* ?exceptions@ios_base@std@@QEBAHXZ */
5320 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_get
, 4)
5321 IOSB_iostate __thiscall
ios_base_exceptions_get(ios_base
*this)
5323 TRACE("(%p)\n", this);
5324 return this->except
;
5327 /* ?copyfmt@ios_base@std@@QAEAAV12@ABV12@@Z */
5328 /* ?copyfmt@ios_base@std@@QEAAAEAV12@AEBV12@@Z */
5329 DEFINE_THISCALL_WRAPPER(ios_base_copyfmt
, 8)
5330 ios_base
* __thiscall
ios_base_copyfmt(ios_base
*this, const ios_base
*rhs
)
5332 TRACE("(%p %p)\n", this, rhs
);
5335 IOS_BASE_iosarray
*arr_cur
;
5336 IOS_BASE_fnarray
*event_cur
;
5338 ios_base_Tidy(this);
5340 for(arr_cur
=rhs
->arr
; arr_cur
; arr_cur
=arr_cur
->next
) {
5341 if(arr_cur
->long_val
)
5342 *ios_base_iword(this, arr_cur
->index
) = arr_cur
->long_val
;
5343 if(arr_cur
->ptr_val
)
5344 *ios_base_pword(this, arr_cur
->index
) = arr_cur
->ptr_val
;
5346 this->stdstr
= rhs
->stdstr
;
5347 this->fmtfl
= rhs
->fmtfl
;
5348 this->prec
= rhs
->prec
;
5349 this->wide
= rhs
->wide
;
5350 locale_operator_assign(IOS_LOCALE(this), IOS_LOCALE(rhs
));
5352 for(event_cur
=rhs
->calls
; event_cur
; event_cur
=event_cur
->next
)
5353 ios_base_register_callback(this, event_cur
->event_handler
, event_cur
->index
);
5355 ios_base_Callfns(this, EVENT_copyfmt_event
);
5356 ios_base_exceptions_set(this, rhs
->except
);
5362 /* ??4ios_base@std@@QAEAAV01@ABV01@@Z */
5363 /* ??4ios_base@std@@QEAAAEAV01@AEBV01@@Z */
5364 DEFINE_THISCALL_WRAPPER(ios_base_assign
, 8)
5365 ios_base
* __thiscall
ios_base_assign(ios_base
*this, const ios_base
*right
)
5367 TRACE("(%p %p)\n", this, right
);
5370 this->state
= right
->state
;
5371 ios_base_copyfmt(this, right
);
5377 /* ?fail@ios_base@std@@QBE_NXZ */
5378 /* ?fail@ios_base@std@@QEBA_NXZ */
5379 DEFINE_THISCALL_WRAPPER(ios_base_fail
, 4)
5380 bool __thiscall
ios_base_fail(const ios_base
*this)
5382 TRACE("(%p)\n", this);
5383 return (this->state
& (IOSTATE_failbit
|IOSTATE_badbit
)) != 0;
5386 /* ??7ios_base@std@@QBE_NXZ */
5387 /* ??7ios_base@std@@QEBA_NXZ */
5388 DEFINE_THISCALL_WRAPPER(ios_base_op_succ
, 4)
5389 bool __thiscall
ios_base_op_succ(const ios_base
*this)
5391 TRACE("(%p)\n", this);
5392 return ios_base_fail(this);
5395 /* ??Bios_base@std@@QBEPAXXZ */
5396 /* ??Bios_base@std@@QEBAPEAXXZ */
5397 DEFINE_THISCALL_WRAPPER(ios_base_op_fail
, 4)
5398 void* __thiscall
ios_base_op_fail(const ios_base
*this)
5400 TRACE("(%p)\n", this);
5401 return ios_base_fail(this) ? NULL
: (void*)this;
5404 /* ??Bios_base@std@@QBA_NXZ */
5405 /* ??Bios_base@std@@QBE_NXZ */
5406 /* ??Bios_base@std@@QEBA_NXZ */
5407 DEFINE_THISCALL_WRAPPER(ios_base_operator_bool
, 4)
5408 bool __thiscall
ios_base_operator_bool(const ios_base
*this)
5410 TRACE("(%p)\n", this);
5411 return (this->state
& (IOSTATE_failbit
|IOSTATE_badbit
)) == 0;
5414 /* ?_Addstd@ios_base@std@@SAXPAV12@@Z */
5415 /* ?_Addstd@ios_base@std@@SAXPEAV12@@Z */
5416 void __cdecl
ios_base_Addstd(ios_base
*add
)
5418 FIXME("(%p) stub\n", add
);
5421 /* ?_Index_func@ios_base@std@@CAAAHXZ */
5422 /* ?_Index_func@ios_base@std@@CAAEAHXZ */
5423 int* __cdecl
ios_base_Index_func(void)
5426 return &ios_base_Index
;
5429 /* ?_Init@ios_base@std@@IAEXXZ */
5430 /* ?_Init@ios_base@std@@IEAAXXZ */
5431 DEFINE_THISCALL_WRAPPER(ios_base__Init
, 4)
5432 void __thiscall
ios_base__Init(ios_base
*this)
5434 TRACE("(%p)\n", this);
5437 this->state
= this->except
= IOSTATE_goodbit
;
5438 this->fmtfl
= FMTFLAG_skipws
| FMTFLAG_dec
;
5443 #if _MSVCP_VER >= 70
5444 this->loc
= operator_new(sizeof(locale
));
5446 locale_ctor(IOS_LOCALE(this));
5449 /* ?_Sync_func@ios_base@std@@CAAA_NXZ */
5450 /* ?_Sync_func@ios_base@std@@CAAEA_NXZ */
5451 bool* __cdecl
ios_base_Sync_func(void)
5454 return &ios_base_Sync
;
5457 /* ?bad@ios_base@std@@QBE_NXZ */
5458 /* ?bad@ios_base@std@@QEBA_NXZ */
5459 DEFINE_THISCALL_WRAPPER(ios_base_bad
, 4)
5460 bool __thiscall
ios_base_bad(const ios_base
*this)
5462 TRACE("(%p)\n", this);
5463 return (this->state
& IOSTATE_badbit
) != 0;
5466 /* ?eof@ios_base@std@@QBE_NXZ */
5467 /* ?eof@ios_base@std@@QEBA_NXZ */
5468 DEFINE_THISCALL_WRAPPER(ios_base_eof
, 4)
5469 bool __thiscall
ios_base_eof(const ios_base
*this)
5471 TRACE("(%p)\n", this);
5472 return (this->state
& IOSTATE_eofbit
) != 0;
5475 /* ?flags@ios_base@std@@QAEHH@Z */
5476 /* ?flags@ios_base@std@@QEAAHH@Z */
5477 DEFINE_THISCALL_WRAPPER(ios_base_flags_set
, 8)
5478 IOSB_fmtflags __thiscall
ios_base_flags_set(ios_base
*this, IOSB_fmtflags flags
)
5480 IOSB_fmtflags ret
= this->fmtfl
;
5482 TRACE("(%p %x)\n", this, flags
);
5484 this->fmtfl
= flags
& FMTFLAG_mask
;
5488 /* ?flags@ios_base@std@@QBEHXZ */
5489 /* ?flags@ios_base@std@@QEBAHXZ */
5490 DEFINE_THISCALL_WRAPPER(ios_base_flags_get
, 4)
5491 IOSB_fmtflags __thiscall
ios_base_flags_get(const ios_base
*this)
5493 TRACE("(%p)\n", this);
5497 /* ?getloc@ios_base@std@@QBE?AVlocale@2@XZ */
5498 /* ?getloc@ios_base@std@@QEBA?AVlocale@2@XZ */
5499 DEFINE_THISCALL_WRAPPER(ios_base_getloc
, 8)
5500 locale
* __thiscall
ios_base_getloc(const ios_base
*this, locale
*ret
)
5502 TRACE("(%p)\n", this);
5503 return locale_copy_ctor(ret
, IOS_LOCALE(this));
5506 /* ?good@ios_base@std@@QBE_NXZ */
5507 /* ?good@ios_base@std@@QEBA_NXZ */
5508 DEFINE_THISCALL_WRAPPER(ios_base_good
, 4)
5509 bool __thiscall
ios_base_good(const ios_base
*this)
5511 TRACE("(%p)\n", this);
5512 return this->state
== IOSTATE_goodbit
;
5515 /* ?imbue@ios_base@std@@QAE?AVlocale@2@ABV32@@Z */
5516 /* ?imbue@ios_base@std@@QEAA?AVlocale@2@AEBV32@@Z */
5517 DEFINE_THISCALL_WRAPPER(ios_base_imbue
, 12)
5518 locale
* __thiscall
ios_base_imbue(ios_base
*this, locale
*ret
, const locale
*loc
)
5520 TRACE("(%p %p)\n", this, loc
);
5521 *ret
= *IOS_LOCALE(this);
5522 locale_copy_ctor(IOS_LOCALE(this), loc
);
5526 /* ?precision@ios_base@std@@QAEHH@Z */
5527 /* ?precision@ios_base@std@@QEAA_J_J@Z */
5528 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
5529 DEFINE_THISCALL_WRAPPER(ios_base_precision_set
, 12)
5531 DEFINE_THISCALL_WRAPPER(ios_base_precision_set
, 8)
5533 streamsize __thiscall
ios_base_precision_set(ios_base
*this, streamsize precision
)
5535 streamsize ret
= this->prec
;
5537 TRACE("(%p %s)\n", this, wine_dbgstr_longlong(precision
));
5539 this->prec
= precision
;
5543 /* ?precision@ios_base@std@@QBEHXZ */
5544 /* ?precision@ios_base@std@@QEBA_JXZ */
5545 DEFINE_THISCALL_WRAPPER(ios_base_precision_get
, 4)
5546 streamsize __thiscall
ios_base_precision_get(const ios_base
*this)
5548 TRACE("(%p)\n", this);
5552 /* ?rdstate@ios_base@std@@QBEHXZ */
5553 /* ?rdstate@ios_base@std@@QEBAHXZ */
5554 DEFINE_THISCALL_WRAPPER(ios_base_rdstate
, 4)
5555 IOSB_iostate __thiscall
ios_base_rdstate(const ios_base
*this)
5557 TRACE("(%p)\n", this);
5561 /* ?setf@ios_base@std@@QAEHHH@Z */
5562 /* ?setf@ios_base@std@@QEAAHHH@Z */
5563 DEFINE_THISCALL_WRAPPER(ios_base_setf_mask
, 12)
5564 IOSB_fmtflags __thiscall
ios_base_setf_mask(ios_base
*this, IOSB_fmtflags flags
, IOSB_fmtflags mask
)
5566 IOSB_fmtflags ret
= this->fmtfl
;
5568 TRACE("(%p %x %x)\n", this, flags
, mask
);
5570 this->fmtfl
= (this->fmtfl
& (~mask
)) | (flags
& mask
& FMTFLAG_mask
);
5574 /* ?setf@ios_base@std@@QAEHH@Z */
5575 /* ?setf@ios_base@std@@QEAAHH@Z */
5576 DEFINE_THISCALL_WRAPPER(ios_base_setf
, 8)
5577 IOSB_fmtflags __thiscall
ios_base_setf(ios_base
*this, IOSB_fmtflags flags
)
5579 IOSB_fmtflags ret
= this->fmtfl
;
5581 TRACE("(%p %x)\n", this, flags
);
5583 this->fmtfl
|= flags
& FMTFLAG_mask
;
5587 /* ?setstate@ios_base@std@@QAEXH_N@Z */
5588 /* ?setstate@ios_base@std@@QEAAXH_N@Z */
5589 DEFINE_THISCALL_WRAPPER(ios_base_setstate_reraise
, 12)
5590 void __thiscall
ios_base_setstate_reraise(ios_base
*this, IOSB_iostate state
, bool reraise
)
5592 TRACE("(%p %x %x)\n", this, state
, reraise
);
5594 if(state
!= IOSTATE_goodbit
)
5595 ios_base_clear_reraise(this, this->state
| state
, reraise
);
5598 /* ?setstate@ios_base@std@@QAEXH@Z */
5599 /* ?setstate@ios_base@std@@QEAAXH@Z */
5600 DEFINE_THISCALL_WRAPPER(ios_base_setstate
, 8)
5601 void __thiscall
ios_base_setstate(ios_base
*this, IOSB_iostate state
)
5603 ios_base_setstate_reraise(this, state
, FALSE
);
5606 /* ?setstate@ios_base@std@@QAEXI@Z */
5607 /* ?setstate@ios_base@std@@QEAAXI@Z */
5608 DEFINE_THISCALL_WRAPPER(ios_base_setstate_unsigned
, 8)
5609 void __thiscall
ios_base_setstate_unsigned(ios_base
*this, unsigned int state
)
5611 ios_base_setstate_reraise(this, (IOSB_iostate
)state
, FALSE
);
5614 /* ?sync_with_stdio@ios_base@std@@SA_N_N@Z */
5615 bool __cdecl
ios_base_sync_with_stdio(bool sync
)
5620 TRACE("(%x)\n", sync
);
5622 _Lockit_ctor_locktype(&lock
, _LOCK_STREAM
);
5623 ret
= ios_base_Sync
;
5624 ios_base_Sync
= sync
;
5625 _Lockit_dtor(&lock
);
5629 /* ?unsetf@ios_base@std@@QAEXH@Z */
5630 /* ?unsetf@ios_base@std@@QEAAXH@Z */
5631 DEFINE_THISCALL_WRAPPER(ios_base_unsetf
, 8)
5632 void __thiscall
ios_base_unsetf(ios_base
*this, IOSB_fmtflags flags
)
5634 TRACE("(%p %x)\n", this, flags
);
5635 this->fmtfl
&= ~flags
;
5638 /* ?width@ios_base@std@@QAEHH@Z */
5639 /* ?width@ios_base@std@@QEAA_J_J@Z */
5640 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
5641 DEFINE_THISCALL_WRAPPER(ios_base_width_set
, 12)
5643 DEFINE_THISCALL_WRAPPER(ios_base_width_set
, 8)
5645 streamsize __thiscall
ios_base_width_set(ios_base
*this, streamsize width
)
5647 streamsize ret
= this->wide
;
5649 TRACE("(%p %s)\n", this, wine_dbgstr_longlong(width
));
5655 /* ?width@ios_base@std@@QBEHXZ */
5656 /* ?width@ios_base@std@@QEBA_JXZ */
5657 DEFINE_THISCALL_WRAPPER(ios_base_width_get
, 4)
5658 streamsize __thiscall
ios_base_width_get(ios_base
*this)
5660 TRACE("(%p)\n", this);
5664 /* ?xalloc@ios_base@std@@SAHXZ */
5665 int __cdecl
ios_base_xalloc(void)
5672 _Lockit_ctor_locktype(&lock
, _LOCK_STREAM
);
5673 ret
= ios_base_Index
++;
5674 _Lockit_dtor(&lock
);
5678 /* ?swap@ios_base@std@@QAEXAAV12@@Z */
5679 /* ?swap@ios_base@std@@QEAAXAEAV12@@Z */
5680 DEFINE_THISCALL_WRAPPER(ios_base_swap
, 8)
5681 void __thiscall
ios_base_swap(ios_base
*this, ios_base
*r
)
5685 TRACE("(%p %p)\n", this, r
);
5692 this->vtable
= tmp
.vtable
;
5693 tmp
.vtable
= r
->vtable
;
5697 DEFINE_THISCALL_WRAPPER(basic_ios__Add_vtordisp1
, 4)
5698 void __thiscall
basic_ios__Add_vtordisp1(void *this)
5700 WARN("should not be called (%p)\n", this);
5703 DEFINE_THISCALL_WRAPPER(basic_ios__Add_vtordisp2
, 4)
5704 void __thiscall
basic_ios__Add_vtordisp2(void *this)
5706 WARN("should not be called (%p)\n", this);
5709 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ */
5710 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ */
5711 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor
, 4)
5712 basic_ios_char
* __thiscall
basic_ios_char_ctor(basic_ios_char
*this)
5714 TRACE("(%p)\n", this);
5716 ios_base_ctor(&this->base
);
5717 this->base
.vtable
= &basic_ios_char_vtable
;
5721 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
5722 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
5723 DEFINE_THISCALL_WRAPPER(basic_ios_char_init
, 12)
5724 void __thiscall
basic_ios_char_init(basic_ios_char
*this, basic_streambuf_char
*streambuf
, bool isstd
)
5726 TRACE("(%p %p %x)\n", this, streambuf
, isstd
);
5727 ios_base__Init(&this->base
);
5728 this->strbuf
= streambuf
;
5729 this->stream
= NULL
;
5733 ios_base_setstate(&this->base
, IOSTATE_badbit
);
5736 FIXME("standard streams not handled yet\n");
5739 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
5740 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
5741 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor_streambuf
, 8)
5742 basic_ios_char
* __thiscall
basic_ios_char_ctor_streambuf(basic_ios_char
*this, basic_streambuf_char
*strbuf
)
5744 TRACE("(%p %p)\n", this, strbuf
);
5746 basic_ios_char_ctor(this);
5747 basic_ios_char_init(this, strbuf
, FALSE
);
5751 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ */
5752 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ */
5753 DEFINE_THISCALL_WRAPPER(basic_ios_char_dtor
, 4)
5754 void __thiscall
basic_ios_char_dtor(basic_ios_char
*this)
5756 TRACE("(%p)\n", this);
5757 ios_base_dtor(&this->base
);
5760 DEFINE_THISCALL_WRAPPER(basic_ios_char_vector_dtor
, 8)
5761 basic_ios_char
* __thiscall
basic_ios_char_vector_dtor(basic_ios_char
*this, unsigned int flags
)
5763 TRACE("(%p %x)\n", this, flags
);
5765 /* we have an array, with the number of elements stored before the first object */
5766 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
5768 for(i
=*ptr
-1; i
>=0; i
--)
5769 basic_ios_char_dtor(this+i
);
5770 operator_delete(ptr
);
5772 basic_ios_char_dtor(this);
5774 operator_delete(this);
5780 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
5781 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
5782 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear_reraise
, 12)
5783 void __thiscall
basic_ios_char_clear_reraise(basic_ios_char
*this, IOSB_iostate state
, bool reraise
)
5785 TRACE("(%p %x %x)\n", this, state
, reraise
);
5786 ios_base_clear_reraise(&this->base
, state
| (this->strbuf
? IOSTATE_goodbit
: IOSTATE_badbit
), reraise
);
5789 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
5790 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
5791 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear
, 8)
5792 void __thiscall
basic_ios_char_clear(basic_ios_char
*this, unsigned int state
)
5794 basic_ios_char_clear_reraise(this, (IOSB_iostate
)state
, FALSE
);
5797 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEAAV12@ABV12@@Z */
5798 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEBV12@@Z */
5799 DEFINE_THISCALL_WRAPPER(basic_ios_char_copyfmt
, 8)
5800 basic_ios_char
* __thiscall
basic_ios_char_copyfmt(basic_ios_char
*this, basic_ios_char
*copy
)
5802 TRACE("(%p %p)\n", this, copy
);
5806 this->stream
= copy
->stream
;
5807 this->fillch
= copy
->fillch
;
5808 ios_base_copyfmt(&this->base
, ©
->base
);
5812 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEDD@Z */
5813 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z */
5814 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_set
, 8)
5815 char __thiscall
basic_ios_char_fill_set(basic_ios_char
*this, char fill
)
5817 char ret
= this->fillch
;
5819 TRACE("(%p %c)\n", this, fill
);
5821 this->fillch
= fill
;
5825 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ */
5826 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ */
5827 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_get
, 4)
5828 char __thiscall
basic_ios_char_fill_get(basic_ios_char
*this)
5830 TRACE("(%p)\n", this);
5831 return this->fillch
;
5834 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
5835 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
5836 DEFINE_THISCALL_WRAPPER(basic_ios_char_imbue
, 12)
5837 locale
*__thiscall
basic_ios_char_imbue(basic_ios_char
*this, locale
*ret
, const locale
*loc
)
5839 TRACE("(%p %p %p)\n", this, ret
, loc
);
5842 basic_streambuf_char_pubimbue(this->strbuf
, ret
, loc
);
5846 return ios_base_imbue(&this->base
, ret
, loc
);
5849 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDDD@Z */
5850 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADDD@Z */
5851 DEFINE_THISCALL_WRAPPER(basic_ios_char_narrow
, 12)
5852 char __thiscall
basic_ios_char_narrow(basic_ios_char
*this, char ch
, char def
)
5854 TRACE("(%p %c %c)\n", this, ch
, def
);
5855 return ctype_char_narrow_ch(ctype_char_use_facet(IOS_LOCALE(&this->base
)), ch
, def
);
5858 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PAV32@@Z */
5859 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAV32@@Z */
5860 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_set
, 8)
5861 basic_streambuf_char
* __thiscall
basic_ios_char_rdbuf_set(basic_ios_char
*this, basic_streambuf_char
*streambuf
)
5863 basic_streambuf_char
*ret
= this->strbuf
;
5865 TRACE("(%p %p)\n", this, streambuf
);
5867 this->strbuf
= streambuf
;
5868 basic_ios_char_clear(this, IOSTATE_goodbit
);
5872 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
5873 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
5874 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_get
, 4)
5875 basic_streambuf_char
* __thiscall
basic_ios_char_rdbuf_get(const basic_ios_char
*this)
5877 TRACE("(%p)\n", this);
5878 return this->strbuf
;
5881 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
5882 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
5883 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate_reraise
, 12)
5884 void __thiscall
basic_ios_char_setstate_reraise(basic_ios_char
*this, IOSB_iostate state
, bool reraise
)
5886 TRACE("(%p %x %x)\n", this, state
, reraise
);
5888 if(state
!= IOSTATE_goodbit
)
5889 basic_ios_char_clear_reraise(this, this->base
.state
| state
, reraise
);
5892 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
5893 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
5894 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate
, 8)
5895 void __thiscall
basic_ios_char_setstate(basic_ios_char
*this, unsigned int state
)
5897 basic_ios_char_setstate_reraise(this, (IOSB_iostate
)state
, FALSE
);
5900 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@PAV32@@Z */
5901 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@PEAV32@@Z */
5902 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_set
, 8)
5903 basic_ostream_char
* __thiscall
basic_ios_char_tie_set(basic_ios_char
*this, basic_ostream_char
*ostream
)
5905 basic_ostream_char
*ret
= this->stream
;
5907 TRACE("(%p %p)\n", this, ostream
);
5909 this->stream
= ostream
;
5913 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
5914 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
5915 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_get
, 4)
5916 basic_ostream_char
* __thiscall
basic_ios_char_tie_get(const basic_ios_char
*this)
5918 TRACE("(%p)\n", this);
5919 return this->stream
;
5922 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z */
5923 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z */
5924 DEFINE_THISCALL_WRAPPER(basic_ios_char_widen
, 8)
5925 char __thiscall
basic_ios_char_widen(basic_ios_char
*this, char ch
)
5927 TRACE("(%p %c)\n", this, ch
);
5928 return ctype_char_widen_ch(ctype_char_use_facet(IOS_LOCALE(&this->base
)), ch
);
5931 /* ?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXAAV12@@Z */
5932 /* ?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z */
5933 DEFINE_THISCALL_WRAPPER(basic_ios_char_swap
, 8)
5934 void __thiscall
basic_ios_char_swap(basic_ios_char
*this, basic_ios_char
*r
)
5938 TRACE("(%p %p)\n", this, r
);
5943 ios_base_swap(&this->base
, &r
->base
);
5944 swap_ptr
= this->stream
;
5945 this->stream
= r
->stream
;
5946 r
->stream
= swap_ptr
;
5947 this->fillch
^= r
->fillch
;
5948 r
->fillch
^= this->fillch
;
5949 this->fillch
^= r
->fillch
;
5952 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
5953 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
5954 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_ctor
, 4)
5955 basic_ios_wchar
* __thiscall
basic_ios_wchar_ctor(basic_ios_wchar
*this)
5957 TRACE("(%p)\n", this);
5959 ios_base_ctor(&this->base
);
5960 this->base
.vtable
= &basic_ios_wchar_vtable
;
5964 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@IAE@XZ */
5965 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@IEAA@XZ */
5966 DEFINE_THISCALL_WRAPPER(basic_ios_short_ctor
, 4)
5967 basic_ios_wchar
* __thiscall
basic_ios_short_ctor(basic_ios_wchar
*this)
5969 basic_ios_wchar_ctor(this);
5970 this->base
.vtable
= &basic_ios_short_vtable
;
5974 /* ?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAEXPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z */
5975 /* ?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z */
5976 /* ?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IAEXPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z */
5977 /* ?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z */
5978 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_init
, 12)
5979 void __thiscall
basic_ios_wchar_init(basic_ios_wchar
*this, basic_streambuf_wchar
*streambuf
, bool isstd
)
5981 TRACE("(%p %p %x)\n", this, streambuf
, isstd
);
5982 ios_base__Init(&this->base
);
5983 this->strbuf
= streambuf
;
5984 this->stream
= NULL
;
5988 ios_base_setstate(&this->base
, IOSTATE_badbit
);
5991 FIXME("standard streams not handled yet\n");
5994 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
5995 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
5996 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_ctor_streambuf
, 8)
5997 basic_ios_wchar
* __thiscall
basic_ios_wchar_ctor_streambuf(basic_ios_wchar
*this, basic_streambuf_wchar
*strbuf
)
5999 TRACE("(%p %p)\n", this, strbuf
);
6001 basic_ios_wchar_ctor(this);
6002 basic_ios_wchar_init(this, strbuf
, FALSE
);
6006 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
6007 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
6008 DEFINE_THISCALL_WRAPPER(basic_ios_short_ctor_streambuf
, 8)
6009 basic_ios_wchar
* __thiscall
basic_ios_short_ctor_streambuf(basic_ios_wchar
*this, basic_streambuf_wchar
*strbuf
)
6011 basic_ios_wchar_ctor_streambuf(this, strbuf
);
6012 this->base
.vtable
= &basic_ios_short_vtable
;
6016 /* ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
6017 /* ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
6018 /* ??1?$basic_ios@GU?$char_traits@G@std@@@std@@UAE@XZ */
6019 /* ??1?$basic_ios@GU?$char_traits@G@std@@@std@@UEAA@XZ */
6020 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_dtor
, 4)
6021 void __thiscall
basic_ios_wchar_dtor(basic_ios_wchar
*this)
6023 TRACE("(%p)\n", this);
6024 ios_base_dtor(&this->base
);
6027 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_vector_dtor
, 8)
6028 basic_ios_wchar
* __thiscall
basic_ios_wchar_vector_dtor(basic_ios_wchar
*this, unsigned int flags
)
6030 TRACE("(%p %x)\n", this, flags
);
6032 /* we have an array, with the number of elements stored before the first object */
6033 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
6035 for(i
=*ptr
-1; i
>=0; i
--)
6036 basic_ios_wchar_dtor(this+i
);
6037 operator_delete(ptr
);
6039 basic_ios_wchar_dtor(this);
6041 operator_delete(this);
6047 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z */
6048 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z */
6049 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXH_N@Z */
6050 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z */
6051 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_clear_reraise
, 12)
6052 void __thiscall
basic_ios_wchar_clear_reraise(basic_ios_wchar
*this, IOSB_iostate state
, bool reraise
)
6054 TRACE("(%p %x %x)\n", this, state
, reraise
);
6055 ios_base_clear_reraise(&this->base
, state
| (this->strbuf
? IOSTATE_goodbit
: IOSTATE_badbit
), reraise
);
6058 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXI@Z */
6059 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z */
6060 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXI@Z */
6061 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z */
6062 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_clear
, 8)
6063 void __thiscall
basic_ios_wchar_clear(basic_ios_wchar
*this, unsigned int state
)
6065 basic_ios_wchar_clear_reraise(this, (IOSB_iostate
)state
, FALSE
);
6068 /* ?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEAAV12@ABV12@@Z */
6069 /* ?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEBV12@@Z */
6070 /* ?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEAAV12@ABV12@@Z */
6071 /* ?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEBV12@@Z */
6072 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_copyfmt
, 8)
6073 basic_ios_wchar
* __thiscall
basic_ios_wchar_copyfmt(basic_ios_wchar
*this, basic_ios_wchar
*copy
)
6075 TRACE("(%p %p)\n", this, copy
);
6079 this->stream
= copy
->stream
;
6080 this->fillch
= copy
->fillch
;
6081 ios_base_copyfmt(&this->base
, ©
->base
);
6085 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE_W_W@Z */
6086 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA_W_W@Z */
6087 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEGG@Z */
6088 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAGG@Z */
6089 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_fill_set
, 8)
6090 wchar_t __thiscall
basic_ios_wchar_fill_set(basic_ios_wchar
*this, wchar_t fill
)
6092 wchar_t ret
= this->fillch
;
6094 TRACE("(%p %c)\n", this, fill
);
6096 this->fillch
= fill
;
6100 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WXZ */
6101 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WXZ */
6102 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEGXZ */
6103 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGXZ */
6104 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_fill_get
, 4)
6105 wchar_t __thiscall
basic_ios_wchar_fill_get(basic_ios_wchar
*this)
6107 TRACE("(%p)\n", this);
6108 return this->fillch
;
6111 /* ?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
6112 /* ?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
6113 /* ?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
6114 /* ?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
6115 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_imbue
, 12)
6116 locale
*__thiscall
basic_ios_wchar_imbue(basic_ios_wchar
*this, locale
*ret
, const locale
*loc
)
6118 TRACE("(%p %p %p)\n", this, ret
, loc
);
6121 basic_streambuf_wchar_pubimbue(this->strbuf
, ret
, loc
);
6125 return ios_base_imbue(&this->base
, ret
, loc
);
6128 /* ?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBED_WD@Z */
6129 /* ?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAD_WD@Z */
6130 /* ?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEDGD@Z */
6131 /* ?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBADGD@Z */
6132 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_narrow
, 12)
6133 char __thiscall
basic_ios_wchar_narrow(basic_ios_wchar
*this, wchar_t ch
, char def
)
6135 TRACE("(%p %c %c)\n", this, ch
, def
);
6136 return ctype_wchar_narrow_ch(ctype_wchar_use_facet(IOS_LOCALE(&this->base
)), ch
, def
);
6139 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PAV32@@Z */
6140 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEAV32@@Z */
6141 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PAV32@@Z */
6142 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAV32@@Z */
6143 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_rdbuf_set
, 8)
6144 basic_streambuf_wchar
* __thiscall
basic_ios_wchar_rdbuf_set(basic_ios_wchar
*this, basic_streambuf_wchar
*streambuf
)
6146 basic_streambuf_wchar
*ret
= this->strbuf
;
6148 TRACE("(%p %p)\n", this, streambuf
);
6150 this->strbuf
= streambuf
;
6151 basic_ios_wchar_clear(this, IOSTATE_goodbit
);
6155 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ */
6156 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ */
6157 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ */
6158 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ */
6159 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_rdbuf_get
, 4)
6160 basic_streambuf_wchar
* __thiscall
basic_ios_wchar_rdbuf_get(const basic_ios_wchar
*this)
6162 TRACE("(%p)\n", this);
6163 return this->strbuf
;
6166 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z */
6167 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z */
6168 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXH_N@Z */
6169 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z */
6170 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_setstate_reraise
, 12)
6171 void __thiscall
basic_ios_wchar_setstate_reraise(basic_ios_wchar
*this, IOSB_iostate state
, bool reraise
)
6173 TRACE("(%p %x %x)\n", this, state
, reraise
);
6175 if(state
!= IOSTATE_goodbit
)
6176 basic_ios_wchar_clear_reraise(this, this->base
.state
| state
, reraise
);
6179 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXI@Z */
6180 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z */
6181 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXI@Z */
6182 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z */
6183 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_setstate
, 8)
6184 void __thiscall
basic_ios_wchar_setstate(basic_ios_wchar
*this, IOSB_iostate state
)
6186 basic_ios_wchar_setstate_reraise(this, state
, FALSE
);
6189 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PAV32@@Z */
6190 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PEAV32@@Z */
6191 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEPAV?$basic_ostream@GU?$char_traits@G@std@@@2@PAV32@@Z */
6192 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@PEAV32@@Z */
6193 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_tie_set
, 8)
6194 basic_ostream_wchar
* __thiscall
basic_ios_wchar_tie_set(basic_ios_wchar
*this, basic_ostream_wchar
*ostream
)
6196 basic_ostream_wchar
*ret
= this->stream
;
6198 TRACE("(%p %p)\n", this, ostream
);
6200 this->stream
= ostream
;
6204 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ */
6205 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ */
6206 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ */
6207 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ */
6208 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_tie_get
, 4)
6209 basic_ostream_wchar
* __thiscall
basic_ios_wchar_tie_get(const basic_ios_wchar
*this)
6211 TRACE("(%p)\n", this);
6212 return this->stream
;
6215 /* ?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WD@Z */
6216 /* ?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WD@Z */
6217 /* ?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEGD@Z */
6218 /* ?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGD@Z */
6219 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_widen
, 8)
6220 wchar_t __thiscall
basic_ios_wchar_widen(basic_ios_wchar
*this, char ch
)
6222 TRACE("(%p %c)\n", this, ch
);
6223 return ctype_wchar_widen_ch(ctype_wchar_use_facet(IOS_LOCALE(&this->base
)), ch
);
6226 /* ?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXAAV12@@Z */
6227 /* ?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z */
6228 /* ?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXAAV12@@Z */
6229 /* ?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z */
6230 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_swap
, 8)
6231 void __thiscall
basic_ios_wchar_swap(basic_ios_wchar
*this, basic_ios_wchar
*r
)
6235 TRACE("(%p %p)\n", this, r
);
6240 ios_base_swap(&this->base
, &r
->base
);
6241 swap_ptr
= this->stream
;
6242 this->stream
= r
->stream
;
6243 r
->stream
= swap_ptr
;
6244 this->fillch
^= r
->fillch
;
6245 r
->fillch
^= this->fillch
;
6246 this->fillch
^= r
->fillch
;
6249 /* Caution: basic_ostream uses virtual inheritance.
6250 * All constructors have additional parameter that says if base class should be initialized.
6251 * Base class needs to be accessed using vbtable.
6253 static inline basic_ios_char
* basic_ostream_char_get_basic_ios(basic_ostream_char
*this)
6255 return (basic_ios_char
*)((char*)this+this->vbtable
[1]);
6258 static inline basic_ios_char
* basic_ostream_char_to_basic_ios(basic_ostream_char
*ptr
)
6260 return (basic_ios_char
*)((char*)ptr
+basic_ostream_char_vbtable
[1]);
6263 static inline basic_ostream_char
* basic_ostream_char_from_basic_ios(basic_ios_char
*ptr
)
6265 return (basic_ostream_char
*)((char*)ptr
-basic_ostream_char_vbtable
[1]);
6268 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
6269 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
6270 DEFINE_THISCALL_WRAPPER(basic_ostream_char_ctor
, 16)
6271 basic_ostream_char
* __thiscall
basic_ostream_char_ctor(basic_ostream_char
*this,
6272 basic_streambuf_char
*strbuf
, bool isstd
, bool virt_init
)
6274 basic_ios_char
*base
;
6276 TRACE("(%p %p %d %d)\n", this, strbuf
, isstd
, virt_init
);
6279 this->vbtable
= basic_ostream_char_vbtable
;
6280 base
= basic_ostream_char_get_basic_ios(this);
6281 INIT_BASIC_IOS_VTORDISP(base
);
6282 basic_ios_char_ctor(base
);
6284 base
= basic_ostream_char_get_basic_ios(this);
6287 base
->base
.vtable
= &basic_ostream_char_vtable
;
6288 basic_ios_char_init(base
, strbuf
, isstd
);
6292 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@_N@Z */
6293 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z */
6294 DEFINE_THISCALL_WRAPPER(basic_ostream_char_ctor_uninitialized
, 16)
6295 basic_ostream_char
* __thiscall
basic_ostream_char_ctor_uninitialized(basic_ostream_char
*this,
6296 int uninitialized
, bool addstd
, bool virt_init
)
6298 basic_ios_char
*base
;
6300 TRACE("(%p %d %x)\n", this, uninitialized
, addstd
);
6303 this->vbtable
= basic_ostream_char_vbtable
;
6304 base
= basic_ostream_char_get_basic_ios(this);
6305 INIT_BASIC_IOS_VTORDISP(base
);
6306 basic_ios_char_ctor(base
);
6308 base
= basic_ostream_char_get_basic_ios(this);
6311 base
->base
.vtable
= &basic_ostream_char_vtable
;
6313 ios_base_Addstd(&base
->base
);
6317 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
6318 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
6319 DEFINE_THISCALL_WRAPPER(basic_ostream_char_dtor
, 4)
6320 void __thiscall
basic_ostream_char_dtor(basic_ios_char
*base
)
6322 basic_ostream_char
*this = basic_ostream_char_from_basic_ios(base
);
6324 /* don't destroy virtual base here */
6325 TRACE("(%p)\n", this);
6328 /* ??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
6329 /* ??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
6330 DEFINE_THISCALL_WRAPPER(basic_ostream_char_vbase_dtor
, 4)
6331 void __thiscall
basic_ostream_char_vbase_dtor(basic_ostream_char
*this)
6333 basic_ios_char
*base
= basic_ostream_char_to_basic_ios(this);
6335 TRACE("(%p)\n", this);
6337 basic_ostream_char_dtor(base
);
6338 basic_ios_char_dtor(base
);
6341 DEFINE_THISCALL_WRAPPER(basic_ostream_char_vector_dtor
, 8)
6342 basic_ostream_char
* __thiscall
basic_ostream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
6344 basic_ostream_char
*this = basic_ostream_char_from_basic_ios(base
);
6346 TRACE("(%p %x)\n", this, flags
);
6349 /* we have an array, with the number of elements stored before the first object */
6350 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
6352 for(i
=*ptr
-1; i
>=0; i
--)
6353 basic_ostream_char_vbase_dtor(this+i
);
6354 operator_delete(ptr
);
6356 basic_ostream_char_vbase_dtor(this);
6358 operator_delete(this);
6364 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ */
6365 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ */
6366 DEFINE_THISCALL_WRAPPER(basic_ostream_char_flush
, 4)
6367 basic_ostream_char
* __thiscall
basic_ostream_char_flush(basic_ostream_char
*this)
6369 /* this function is not matching C++ specification */
6370 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
6372 TRACE("(%p)\n", this);
6374 if(basic_ios_char_rdbuf_get(base
) && ios_base_good(&base
->base
)
6375 && basic_streambuf_char_pubsync(basic_ios_char_rdbuf_get(base
))==-1)
6376 basic_ios_char_setstate(base
, IOSTATE_badbit
);
6380 /* ?flush@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
6381 /* ?flush@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
6382 basic_ostream_char
* __cdecl
flush_ostream_char(basic_ostream_char
*ostream
)
6384 return basic_ostream_char_flush(ostream
);
6387 /* ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
6388 /* ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
6389 DEFINE_THISCALL_WRAPPER(basic_ostream_char__Osfx
, 4)
6390 void __thiscall
basic_ostream_char__Osfx(basic_ostream_char
*this)
6392 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
6394 TRACE("(%p)\n", this);
6396 if(base
->base
.fmtfl
& FMTFLAG_unitbuf
)
6397 basic_ostream_char_flush(this);
6400 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
6401 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
6402 DEFINE_THISCALL_WRAPPER(basic_ostream_char_osfx
, 4)
6403 void __thiscall
basic_ostream_char_osfx(basic_ostream_char
*this)
6405 TRACE("(%p)\n", this);
6406 basic_ostream_char__Osfx(this);
6409 static BOOL
basic_ostream_char_sentry_create(basic_ostream_char
*ostr
)
6411 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(ostr
);
6413 if(basic_ios_char_rdbuf_get(base
))
6414 call_basic_streambuf_char__Lock(base
->strbuf
);
6416 if(ios_base_good(&base
->base
) && base
->stream
)
6417 basic_ostream_char_flush(base
->stream
);
6419 return ios_base_good(&base
->base
);
6422 static void basic_ostream_char_sentry_destroy(basic_ostream_char
*ostr
)
6424 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(ostr
);
6426 if(ios_base_good(&base
->base
) && !__uncaught_exception())
6427 basic_ostream_char_osfx(ostr
);
6429 if(basic_ios_char_rdbuf_get(base
))
6430 call_basic_streambuf_char__Unlock(base
->strbuf
);
6433 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE_NXZ */
6434 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA_NXZ */
6435 DEFINE_THISCALL_WRAPPER(basic_ostream_char_opfx
, 4)
6436 bool __thiscall
basic_ostream_char_opfx(basic_ostream_char
*this)
6438 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
6440 TRACE("(%p)\n", this);
6442 if(ios_base_good(&base
->base
) && base
->stream
)
6443 basic_ostream_char_flush(base
->stream
);
6444 return ios_base_good(&base
->base
);
6447 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z */
6448 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z */
6449 DEFINE_THISCALL_WRAPPER(basic_ostream_char_put
, 8)
6450 basic_ostream_char
* __thiscall
basic_ostream_char_put(basic_ostream_char
*this, char ch
)
6452 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
6454 TRACE("(%p %c)\n", this, ch
);
6456 if(!basic_ostream_char_sentry_create(this)
6457 || basic_streambuf_char_sputc(base
->strbuf
, ch
)==EOF
) {
6458 basic_ostream_char_sentry_destroy(this);
6459 basic_ios_char_setstate(base
, IOSTATE_badbit
);
6463 basic_ostream_char_sentry_destroy(this);
6467 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@JH@Z */
6468 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
6469 #if STREAMOFF_BITS == 64
6470 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp
, 16)
6472 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp
, 12)
6474 basic_ostream_char
* __thiscall
basic_ostream_char_seekp(basic_ostream_char
*this, streamoff off
, int way
)
6476 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
6478 TRACE("(%p %s %d)\n", this, wine_dbgstr_longlong(off
), way
);
6480 if(!ios_base_fail(&base
->base
)) {
6483 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base
),
6484 &seek
, off
, way
, OPENMODE_out
);
6485 if(seek
.off
==-1 && seek
.pos
==0 && MBSTATET_TO_INT(&seek
.state
)==0)
6486 basic_ios_char_setstate(base
, IOSTATE_failbit
);
6491 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
6492 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
6493 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp_fpos
, 28)
6494 basic_ostream_char
* __thiscall
basic_ostream_char_seekp_fpos(basic_ostream_char
*this, fpos_mbstatet pos
)
6496 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
6498 TRACE("(%p %s)\n", this, debugstr_fpos_mbstatet(&pos
));
6500 if(!ios_base_fail(&base
->base
)) {
6503 basic_streambuf_char_pubseekpos(basic_ios_char_rdbuf_get(base
),
6504 &seek
, pos
, OPENMODE_out
);
6505 if(seek
.off
==-1 && seek
.pos
==0 && MBSTATET_TO_INT(&seek
.state
)==0)
6506 basic_ios_char_setstate(base
, IOSTATE_failbit
);
6511 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
6512 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
6513 DEFINE_THISCALL_WRAPPER(basic_ostream_char_tellp
, 8)
6514 fpos_mbstatet
* __thiscall
basic_ostream_char_tellp(basic_ostream_char
*this, fpos_mbstatet
*ret
)
6516 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
6518 TRACE("(%p)\n", this);
6520 if(!ios_base_fail(&base
->base
)) {
6521 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base
),
6522 ret
, 0, SEEKDIR_cur
, OPENMODE_out
);
6526 memset(&ret
->state
, 0, sizeof(ret
->state
));
6531 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@PBDH@Z */
6532 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z */
6533 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
6534 DEFINE_THISCALL_WRAPPER(basic_ostream_char_write
, 16)
6536 DEFINE_THISCALL_WRAPPER(basic_ostream_char_write
, 12)
6538 basic_ostream_char
* __thiscall
basic_ostream_char_write(basic_ostream_char
*this, const char *str
, streamsize count
)
6540 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
6542 TRACE("(%p %s %s)\n", this, debugstr_a(str
), wine_dbgstr_longlong(count
));
6544 if(!basic_ostream_char_sentry_create(this)
6545 || basic_streambuf_char_sputn(base
->strbuf
, str
, count
)!=count
) {
6546 basic_ostream_char_sentry_destroy(this);
6547 basic_ios_char_setstate(base
, IOSTATE_badbit
);
6551 basic_ostream_char_sentry_destroy(this);
6555 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@F@Z */
6556 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@F@Z */
6557 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_short
, 8)
6558 basic_ostream_char
* __thiscall
basic_ostream_char_print_short(basic_ostream_char
*this, short val
)
6560 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
6561 int state
= IOSTATE_goodbit
;
6563 TRACE("(%p %d)\n", this, val
);
6565 if(basic_ostream_char_sentry_create(this)) {
6566 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6567 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
6568 ostreambuf_iterator_char dest
;
6570 memset(&dest
, 0, sizeof(dest
));
6571 dest
.strbuf
= strbuf
;
6572 num_put_char_put_long(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
),
6573 (ios_base_flags_get(&base
->base
) & FMTFLAG_basefield
& (FMTFLAG_oct
| FMTFLAG_hex
))
6574 ? (LONG
)((unsigned short)val
) : (LONG
)val
);
6576 basic_ostream_char_sentry_destroy(this);
6578 basic_ios_char_setstate(base
, state
);
6582 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@G@Z */
6583 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@G@Z */
6584 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ushort
, 8)
6585 basic_ostream_char
* __thiscall
basic_ostream_char_print_ushort(basic_ostream_char
*this, unsigned short val
)
6587 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
6588 int state
= IOSTATE_goodbit
;
6590 TRACE("(%p %u)\n", this, val
);
6592 if(basic_ostream_char_sentry_create(this)) {
6593 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6594 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
6595 ostreambuf_iterator_char dest
;
6597 memset(&dest
, 0, sizeof(dest
));
6598 dest
.strbuf
= strbuf
;
6599 num_put_char_put_ulong(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
6601 basic_ostream_char_sentry_destroy(this);
6603 basic_ios_char_setstate(base
, state
);
6607 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@H@Z */
6608 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z */
6609 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@J@Z */
6610 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@J@Z */
6611 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int
, 8)
6612 basic_ostream_char
* __thiscall
basic_ostream_char_print_int(basic_ostream_char
*this, int val
)
6614 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
6615 int state
= IOSTATE_goodbit
;
6617 TRACE("(%p %d)\n", this, val
);
6619 if(basic_ostream_char_sentry_create(this)) {
6620 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6621 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
6622 ostreambuf_iterator_char dest
;
6624 memset(&dest
, 0, sizeof(dest
));
6625 dest
.strbuf
= strbuf
;
6626 num_put_char_put_long(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
6628 basic_ostream_char_sentry_destroy(this);
6630 basic_ios_char_setstate(base
, state
);
6634 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@I@Z */
6635 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@I@Z */
6636 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@K@Z */
6637 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@K@Z */
6638 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint
, 8)
6639 basic_ostream_char
* __thiscall
basic_ostream_char_print_uint(basic_ostream_char
*this, unsigned int val
)
6641 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
6642 int state
= IOSTATE_goodbit
;
6644 TRACE("(%p %u)\n", this, val
);
6646 if(basic_ostream_char_sentry_create(this)) {
6647 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6648 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
6649 ostreambuf_iterator_char dest
;
6651 memset(&dest
, 0, sizeof(dest
));
6652 dest
.strbuf
= strbuf
;
6653 num_put_char_put_ulong(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
6655 basic_ostream_char_sentry_destroy(this);
6657 basic_ios_char_setstate(base
, state
);
6661 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@M@Z */
6662 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z */
6663 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_float
, 8)
6664 basic_ostream_char
* __thiscall
basic_ostream_char_print_float(basic_ostream_char
*this, float val
)
6666 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
6667 int state
= IOSTATE_goodbit
;
6669 TRACE("(%p %f)\n", this, val
);
6671 if(basic_ostream_char_sentry_create(this)) {
6672 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6673 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
6674 ostreambuf_iterator_char dest
;
6676 memset(&dest
, 0, sizeof(dest
));
6677 dest
.strbuf
= strbuf
;
6678 num_put_char_put_double(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
6680 basic_ostream_char_sentry_destroy(this);
6682 basic_ios_char_setstate(base
, state
);
6686 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@N@Z */
6687 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z */
6688 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_double
, 12)
6689 basic_ostream_char
* __thiscall
basic_ostream_char_print_double(basic_ostream_char
*this, double val
)
6691 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
6692 int state
= IOSTATE_goodbit
;
6694 TRACE("(%p %lf)\n", this, val
);
6696 if(basic_ostream_char_sentry_create(this)) {
6697 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6698 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
6699 ostreambuf_iterator_char dest
;
6701 memset(&dest
, 0, sizeof(dest
));
6702 dest
.strbuf
= strbuf
;
6703 num_put_char_put_double(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
6705 basic_ostream_char_sentry_destroy(this);
6707 basic_ios_char_setstate(base
, state
);
6711 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@O@Z */
6712 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@O@Z */
6713 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ldouble
, 12)
6714 basic_ostream_char
* __thiscall
basic_ostream_char_print_ldouble(basic_ostream_char
*this, double val
)
6716 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
6717 int state
= IOSTATE_goodbit
;
6719 TRACE("(%p %lf)\n", this, val
);
6721 if(basic_ostream_char_sentry_create(this)) {
6722 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6723 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
6724 ostreambuf_iterator_char dest
;
6726 memset(&dest
, 0, sizeof(dest
));
6727 dest
.strbuf
= strbuf
;
6728 num_put_char_put_ldouble(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
6730 basic_ostream_char_sentry_destroy(this);
6732 basic_ios_char_setstate(base
, state
);
6736 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
6737 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
6738 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_streambuf
, 8)
6739 basic_ostream_char
* __thiscall
basic_ostream_char_print_streambuf(basic_ostream_char
*this, basic_streambuf_char
*val
)
6741 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
6742 IOSB_iostate state
= IOSTATE_badbit
;
6745 TRACE("(%p %p)\n", this, val
);
6747 if(basic_ostream_char_sentry_create(this)) {
6748 for(c
= basic_streambuf_char_sgetc(val
); c
!=EOF
;
6749 c
= basic_streambuf_char_snextc(val
)) {
6750 state
= IOSTATE_goodbit
;
6752 if(basic_streambuf_char_sputc(base
->strbuf
, c
) == EOF
) {
6753 state
= IOSTATE_badbit
;
6758 state
= IOSTATE_badbit
;
6760 basic_ostream_char_sentry_destroy(this);
6762 ios_base_width_set(&base
->base
, 0);
6763 basic_ios_char_setstate(base
, state
);
6767 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PBX@Z */
6768 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEBX@Z */
6769 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ptr
, 8)
6770 basic_ostream_char
* __thiscall
basic_ostream_char_print_ptr(basic_ostream_char
*this, const void *val
)
6772 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
6773 int state
= IOSTATE_goodbit
;
6775 TRACE("(%p %p)\n", this, val
);
6777 if(basic_ostream_char_sentry_create(this)) {
6778 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6779 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
6780 ostreambuf_iterator_char dest
;
6782 memset(&dest
, 0, sizeof(dest
));
6783 dest
.strbuf
= strbuf
;
6784 num_put_char_put_ptr(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
6786 basic_ostream_char_sentry_destroy(this);
6788 basic_ios_char_setstate(base
, state
);
6792 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_J@Z */
6793 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_J@Z */
6794 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int64
, 12)
6795 basic_ostream_char
* __thiscall
basic_ostream_char_print_int64(basic_ostream_char
*this, __int64 val
)
6797 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
6798 int state
= IOSTATE_goodbit
;
6800 TRACE("(%p)\n", this);
6802 if(basic_ostream_char_sentry_create(this)) {
6803 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6804 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
6805 ostreambuf_iterator_char dest
;
6807 memset(&dest
, 0, sizeof(dest
));
6808 dest
.strbuf
= strbuf
;
6809 num_put_char_put_int64(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
6811 basic_ostream_char_sentry_destroy(this);
6813 basic_ios_char_setstate(base
, state
);
6817 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_K@Z */
6818 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z */
6819 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint64
, 12)
6820 basic_ostream_char
* __thiscall
basic_ostream_char_print_uint64(basic_ostream_char
*this, unsigned __int64 val
)
6822 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
6823 int state
= IOSTATE_goodbit
;
6825 TRACE("(%p)\n", this);
6827 if(basic_ostream_char_sentry_create(this)) {
6828 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6829 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
6830 ostreambuf_iterator_char dest
;
6832 memset(&dest
, 0, sizeof(dest
));
6833 dest
.strbuf
= strbuf
;
6834 num_put_char_put_uint64(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
6836 basic_ostream_char_sentry_destroy(this);
6838 basic_ios_char_setstate(base
, state
);
6842 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_N@Z */
6843 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_N@Z */
6844 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_bool
, 8)
6845 basic_ostream_char
* __thiscall
basic_ostream_char_print_bool(basic_ostream_char
*this, bool val
)
6847 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
6848 int state
= IOSTATE_goodbit
;
6850 TRACE("(%p %x)\n", this, val
);
6852 if(basic_ostream_char_sentry_create(this)) {
6853 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6854 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
6855 ostreambuf_iterator_char dest
;
6857 memset(&dest
, 0, sizeof(dest
));
6858 dest
.strbuf
= strbuf
;
6859 num_put_char_put_bool(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
6861 basic_ostream_char_sentry_destroy(this);
6863 basic_ios_char_setstate(base
, state
);
6867 /* ?ends@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
6868 /* ?ends@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
6869 basic_ostream_char
* __cdecl
basic_ostream_char_ends(basic_ostream_char
*ostr
)
6871 TRACE("(%p)\n", ostr
);
6873 basic_ostream_char_put(ostr
, 0);
6877 /* ?endl@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
6878 /* ?endl@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
6879 basic_ostream_char
* __cdecl
basic_ostream_char_endl(basic_ostream_char
*ostr
)
6881 TRACE("(%p)\n", ostr
);
6883 basic_ostream_char_put(ostr
, '\n');
6884 basic_ostream_char_flush(ostr
);
6888 /* ??$?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 */
6889 /* ??$?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 */
6890 basic_ostream_char
* __cdecl
basic_ostream_char_print_bstr(basic_ostream_char
*ostr
, const basic_string_char
*str
)
6892 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(ostr
);
6893 IOSB_iostate state
= IOSTATE_goodbit
;
6895 TRACE("(%p %p)\n", ostr
, str
);
6897 if(basic_ostream_char_sentry_create(ostr
)) {
6898 size_t len
= MSVCP_basic_string_char_length(str
);
6899 streamsize pad
= (base
->base
.wide
>len
? base
->base
.wide
-len
: 0);
6901 if((base
->base
.fmtfl
& FMTFLAG_adjustfield
) != FMTFLAG_left
) {
6902 for(; pad
!=0; pad
--) {
6903 if(basic_streambuf_char_sputc(base
->strbuf
, base
->fillch
) == EOF
) {
6904 state
= IOSTATE_badbit
;
6910 if(state
== IOSTATE_goodbit
) {
6911 if(basic_streambuf_char_sputn(base
->strbuf
, MSVCP_basic_string_char_c_str(str
), len
) != len
)
6912 state
= IOSTATE_badbit
;
6915 if(state
== IOSTATE_goodbit
) {
6916 for(; pad
!=0; pad
--) {
6917 if(basic_streambuf_char_sputc(base
->strbuf
, base
->fillch
) == EOF
) {
6918 state
= IOSTATE_badbit
;
6924 base
->base
.wide
= 0;
6926 state
= IOSTATE_badbit
;
6928 basic_ostream_char_sentry_destroy(ostr
);
6930 basic_ios_char_setstate(base
, state
);
6934 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@C@Z */
6935 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@C@Z */
6936 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@D@Z */
6937 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z */
6938 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@E@Z */
6939 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@E@Z */
6940 basic_ostream_char
* __cdecl
basic_ostream_char_print_ch(basic_ostream_char
*ostr
, char ch
)
6942 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(ostr
);
6943 IOSB_iostate state
= IOSTATE_goodbit
;
6945 TRACE("(%p %d)\n", ostr
, ch
);
6947 if(basic_ostream_char_sentry_create(ostr
)) {
6948 streamsize pad
= (base
->base
.wide
>1 ? base
->base
.wide
-1 : 0);
6950 if((base
->base
.fmtfl
& FMTFLAG_adjustfield
) != FMTFLAG_left
) {
6951 for(; pad
!=0; pad
--) {
6952 if(basic_streambuf_char_sputc(base
->strbuf
, base
->fillch
) == EOF
) {
6953 state
= IOSTATE_badbit
;
6959 if(state
== IOSTATE_goodbit
) {
6960 if(basic_streambuf_char_sputc(base
->strbuf
, ch
) == EOF
)
6961 state
= IOSTATE_badbit
;
6964 if(state
== IOSTATE_goodbit
) {
6965 for(; pad
!=0; pad
--) {
6966 if(basic_streambuf_char_sputc(base
->strbuf
, base
->fillch
) == EOF
) {
6967 state
= IOSTATE_badbit
;
6973 base
->base
.wide
= 0;
6975 state
= IOSTATE_badbit
;
6977 basic_ostream_char_sentry_destroy(ostr
);
6979 basic_ios_char_setstate(base
, state
);
6983 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBC@Z */
6984 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBC@Z */
6985 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z */
6986 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBD@Z */
6987 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBE@Z */
6988 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBE@Z */
6989 basic_ostream_char
* __cdecl
basic_ostream_char_print_str(basic_ostream_char
*ostr
, const char *str
)
6991 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(ostr
);
6992 IOSB_iostate state
= IOSTATE_goodbit
;
6994 TRACE("(%p %s)\n", ostr
, str
);
6996 if(basic_ostream_char_sentry_create(ostr
)) {
6997 size_t len
= strlen(str
);
6998 streamsize pad
= (base
->base
.wide
>len
? base
->base
.wide
-len
: 0);
7000 if((base
->base
.fmtfl
& FMTFLAG_adjustfield
) != FMTFLAG_left
) {
7001 for(; pad
!=0; pad
--) {
7002 if(basic_streambuf_char_sputc(base
->strbuf
, base
->fillch
) == EOF
) {
7003 state
= IOSTATE_badbit
;
7009 if(state
== IOSTATE_goodbit
) {
7010 if(basic_streambuf_char_sputn(base
->strbuf
, str
, len
) != len
)
7011 state
= IOSTATE_badbit
;
7014 if(state
== IOSTATE_goodbit
) {
7015 for(; pad
!=0; pad
--) {
7016 if(basic_streambuf_char_sputc(base
->strbuf
, base
->fillch
) == EOF
) {
7017 state
= IOSTATE_badbit
;
7023 base
->base
.wide
= 0;
7025 state
= IOSTATE_badbit
;
7027 basic_ostream_char_sentry_destroy(ostr
);
7029 basic_ios_char_setstate(base
, state
);
7033 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
7034 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
7035 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func
, 8)
7036 basic_ostream_char
* __thiscall
basic_ostream_char_print_func(basic_ostream_char
*this,
7037 basic_ostream_char
* (__cdecl
*pfunc
)(basic_ostream_char
*))
7039 TRACE("(%p %p)\n", this, pfunc
);
7044 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@DU?$char_traits@D@std@@@1@AAV21@@Z@Z */
7045 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z */
7046 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func_basic_ios
, 8)
7047 basic_ostream_char
* __thiscall
basic_ostream_char_print_func_basic_ios(basic_ostream_char
*this,
7048 basic_ios_char
* (__cdecl
*pfunc
)(basic_ios_char
*))
7050 TRACE("(%p %p)\n", this, pfunc
);
7051 pfunc(basic_ostream_char_get_basic_ios(this));
7055 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
7056 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
7057 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func_ios_base
, 8)
7058 basic_ostream_char
* __thiscall
basic_ostream_char_print_func_ios_base(
7059 basic_ostream_char
*this, ios_base
* (__cdecl
*pfunc
)(ios_base
*))
7061 TRACE("(%p %p)\n", this, pfunc
);
7062 pfunc(&basic_ostream_char_get_basic_ios(this)->base
);
7066 /* ?swap@?$basic_ostream@DU?$char_traits@D@std@@@std@@IAEXAAV12@@Z */
7067 /* ?swap@?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z */
7068 DEFINE_THISCALL_WRAPPER(basic_ostream_char_swap
, 8)
7069 void __thiscall
basic_ostream_char_swap(basic_ostream_char
*this, basic_ostream_char
*r
)
7071 TRACE("(%p %p)\n", this, r
);
7076 basic_ios_char_swap(basic_ostream_char_get_basic_ios(this),
7077 basic_ostream_char_get_basic_ios(r
));
7080 /* Caution: basic_ostream uses virtual inheritance. */
7081 static inline basic_ios_wchar
* basic_ostream_wchar_get_basic_ios(basic_ostream_wchar
*this)
7083 return (basic_ios_wchar
*)((char*)this+this->vbtable
[1]);
7086 static inline basic_ios_wchar
* basic_ostream_wchar_to_basic_ios(basic_ostream_wchar
*ptr
)
7088 return (basic_ios_wchar
*)((char*)ptr
+basic_ostream_wchar_vbtable
[1]);
7091 static inline basic_ostream_wchar
* basic_ostream_wchar_from_basic_ios(basic_ios_wchar
*ptr
)
7093 return (basic_ostream_wchar
*)((char*)ptr
-basic_ostream_wchar_vbtable
[1]);
7096 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
7097 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
7098 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_ctor
, 16)
7099 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_ctor(basic_ostream_wchar
*this,
7100 basic_streambuf_wchar
*strbuf
, bool isstd
, bool virt_init
)
7102 basic_ios_wchar
*base
;
7104 TRACE("(%p %p %d %d)\n", this, strbuf
, isstd
, virt_init
);
7107 this->vbtable
= basic_ostream_wchar_vbtable
;
7108 base
= basic_ostream_wchar_get_basic_ios(this);
7109 INIT_BASIC_IOS_VTORDISP(base
);
7110 basic_ios_wchar_ctor(base
);
7112 base
= basic_ostream_wchar_get_basic_ios(this);
7115 base
->base
.vtable
= &basic_ostream_wchar_vtable
;
7116 basic_ios_wchar_init(base
, strbuf
, isstd
);
7120 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
7121 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
7122 DEFINE_THISCALL_WRAPPER(basic_ostream_short_ctor
, 16)
7123 basic_ostream_wchar
* __thiscall
basic_ostream_short_ctor(basic_ostream_wchar
*this,
7124 basic_streambuf_wchar
*strbuf
, bool isstd
, bool virt_init
)
7126 basic_ostream_wchar_ctor(this, strbuf
, isstd
, virt_init
);
7127 basic_ostream_wchar_get_basic_ios(this)->base
.vtable
= &basic_ostream_short_vtable
;
7131 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@_N@Z */
7132 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z */
7133 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_ctor_uninitialized
, 16)
7134 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_ctor_uninitialized(basic_ostream_wchar
*this,
7135 int uninitialized
, bool addstd
, bool virt_init
)
7137 basic_ios_wchar
*base
;
7139 TRACE("(%p %d %x)\n", this, uninitialized
, addstd
);
7142 this->vbtable
= basic_ostream_wchar_vbtable
;
7143 base
= basic_ostream_wchar_get_basic_ios(this);
7144 INIT_BASIC_IOS_VTORDISP(base
);
7145 basic_ios_wchar_ctor(base
);
7147 base
= basic_ostream_wchar_get_basic_ios(this);
7150 base
->base
.vtable
= &basic_ostream_wchar_vtable
;
7152 ios_base_Addstd(&base
->base
);
7156 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@_N@Z */
7157 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z */
7158 DEFINE_THISCALL_WRAPPER(basic_ostream_short_ctor_uninitialized
, 16)
7159 basic_ostream_wchar
* __thiscall
basic_ostream_short_ctor_uninitialized(basic_ostream_wchar
*this,
7160 int uninitialized
, bool addstd
, bool virt_init
)
7162 basic_ostream_wchar_ctor_uninitialized(this, uninitialized
, addstd
, virt_init
);
7163 basic_ostream_wchar_get_basic_ios(this)->base
.vtable
= &basic_ostream_short_vtable
;
7167 /* ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
7168 /* ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
7169 /* ??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UAE@XZ */
7170 /* ??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
7171 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_dtor
, 4)
7172 void __thiscall
basic_ostream_wchar_dtor(basic_ios_wchar
*base
)
7174 basic_ostream_wchar
*this = basic_ostream_wchar_from_basic_ios(base
);
7176 /* don't destroy virtual base here */
7177 TRACE("(%p)\n", this);
7180 /* ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
7181 /* ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
7182 /* ??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
7183 /* ??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
7184 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_vbase_dtor
, 4)
7185 void __thiscall
basic_ostream_wchar_vbase_dtor(basic_ostream_wchar
*this)
7187 basic_ios_wchar
*base
= basic_ostream_wchar_to_basic_ios(this);
7189 TRACE("(%p)\n", this);
7191 basic_ostream_wchar_dtor(base
);
7192 basic_ios_wchar_dtor(base
);
7195 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_vector_dtor
, 8)
7196 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
7198 basic_ostream_wchar
*this = basic_ostream_wchar_from_basic_ios(base
);
7200 TRACE("(%p %x)\n", this, flags
);
7203 /* we have an array, with the number of elements stored before the first object */
7204 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
7206 for(i
=*ptr
-1; i
>=0; i
--)
7207 basic_ostream_wchar_vbase_dtor(this+i
);
7208 operator_delete(ptr
);
7210 basic_ostream_wchar_vbase_dtor(this);
7212 operator_delete(this);
7218 /* ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ */
7219 /* ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ */
7220 /* ?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@XZ */
7221 /* ?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ */
7222 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_flush
, 4)
7223 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_flush(basic_ostream_wchar
*this)
7225 /* this function is not matching C++ specification */
7226 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
7228 TRACE("(%p)\n", this);
7230 if(basic_ios_wchar_rdbuf_get(base
) && ios_base_good(&base
->base
)
7231 && basic_streambuf_wchar_pubsync(basic_ios_wchar_rdbuf_get(base
))==-1)
7232 basic_ios_wchar_setstate(base
, IOSTATE_badbit
);
7236 /* ?flush@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
7237 /* ?flush@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
7238 /* ?flush@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
7239 /* ?flush@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
7240 basic_ostream_wchar
* __cdecl
flush_ostream_wchar(basic_ostream_wchar
*ostream
)
7242 return basic_ostream_wchar_flush(ostream
);
7245 /* ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
7246 /* ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
7247 /* ?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
7248 /* ?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
7249 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar__Osfx
, 4)
7250 void __thiscall
basic_ostream_wchar__Osfx(basic_ostream_wchar
*this)
7252 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
7254 TRACE("(%p)\n", this);
7256 if(base
->base
.fmtfl
& FMTFLAG_unitbuf
)
7257 basic_ostream_wchar_flush(this);
7260 /* ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
7261 /* ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
7262 /* ?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
7263 /* ?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
7264 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_osfx
, 4)
7265 void __thiscall
basic_ostream_wchar_osfx(basic_ostream_wchar
*this)
7267 TRACE("(%p)\n", this);
7268 basic_ostream_wchar__Osfx(this);
7271 static BOOL
basic_ostream_wchar_sentry_create(basic_ostream_wchar
*ostr
)
7273 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(ostr
);
7275 if(basic_ios_wchar_rdbuf_get(base
))
7276 basic_streambuf_wchar__Lock(base
->strbuf
);
7278 if(ios_base_good(&base
->base
) && base
->stream
)
7279 basic_ostream_wchar_flush(base
->stream
);
7281 return ios_base_good(&base
->base
);
7284 static void basic_ostream_wchar_sentry_destroy(basic_ostream_wchar
*ostr
)
7286 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(ostr
);
7288 if(ios_base_good(&base
->base
) && !__uncaught_exception())
7289 basic_ostream_wchar_osfx(ostr
);
7291 if(basic_ios_wchar_rdbuf_get(base
))
7292 basic_streambuf_wchar__Unlock(base
->strbuf
);
7295 /* ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE_NXZ */
7296 /* ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA_NXZ */
7297 /* ?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE_NXZ */
7298 /* ?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA_NXZ */
7299 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_opfx
, 4)
7300 bool __thiscall
basic_ostream_wchar_opfx(basic_ostream_wchar
*this)
7302 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
7304 TRACE("(%p)\n", this);
7306 if(ios_base_good(&base
->base
) && base
->stream
)
7307 basic_ostream_wchar_flush(base
->stream
);
7308 return ios_base_good(&base
->base
);
7311 /* ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@_W@Z */
7312 /* ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z */
7313 /* ?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@G@Z */
7314 /* ?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z */
7315 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_put
, 8)
7316 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_put(basic_ostream_wchar
*this, wchar_t ch
)
7318 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
7320 TRACE("(%p %c)\n", this, ch
);
7322 if(!basic_ostream_wchar_sentry_create(this)
7323 || basic_streambuf_wchar_sputc(base
->strbuf
, ch
)==WEOF
) {
7324 basic_ostream_wchar_sentry_destroy(this);
7325 basic_ios_wchar_setstate(base
, IOSTATE_badbit
);
7329 basic_ostream_wchar_sentry_destroy(this);
7333 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@JH@Z */
7334 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z */
7335 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@JH@Z */
7336 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z */
7337 #if STREAMOFF_BITS == 64
7338 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_seekp
, 16)
7340 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_seekp
, 12)
7342 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_seekp(basic_ostream_wchar
*this, streamoff off
, int way
)
7344 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
7346 TRACE("(%p %s %d)\n", this, wine_dbgstr_longlong(off
), way
);
7348 if(!ios_base_fail(&base
->base
)) {
7351 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base
),
7352 &seek
, off
, way
, OPENMODE_out
);
7353 if(seek
.off
==-1 && seek
.pos
==0 && MBSTATET_TO_INT(&seek
.state
)==0)
7354 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
7359 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
7360 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
7361 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
7362 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
7363 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_seekp_fpos
, 28)
7364 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_seekp_fpos(basic_ostream_wchar
*this, fpos_mbstatet pos
)
7366 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
7368 TRACE("(%p %s)\n", this, debugstr_fpos_mbstatet(&pos
));
7370 if(!ios_base_fail(&base
->base
)) {
7373 basic_streambuf_wchar_pubseekpos(basic_ios_wchar_rdbuf_get(base
),
7374 &seek
, pos
, OPENMODE_out
);
7375 if(seek
.off
==-1 && seek
.pos
==0 && MBSTATET_TO_INT(&seek
.state
)==0)
7376 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
7381 /* ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@XZ */
7382 /* ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
7383 /* ?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@XZ */
7384 /* ?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
7385 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_tellp
, 8)
7386 fpos_mbstatet
* __thiscall
basic_ostream_wchar_tellp(basic_ostream_wchar
*this, fpos_mbstatet
*ret
)
7388 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
7390 TRACE("(%p)\n", this);
7392 if(!ios_base_fail(&base
->base
)) {
7393 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base
),
7394 ret
, 0, SEEKDIR_cur
, OPENMODE_out
);
7398 memset(&ret
->state
, 0, sizeof(ret
->state
));
7403 /* ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PB_WH@Z */
7404 /* ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEB_W_J@Z */
7405 /* ?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@PBGH@Z */
7406 /* ?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEBG_J@Z */
7407 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
7408 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_write
, 16)
7410 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_write
, 12)
7412 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_write(basic_ostream_wchar
*this, const wchar_t *str
, streamsize count
)
7414 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
7416 TRACE("(%p %s %s)\n", this, debugstr_w(str
), wine_dbgstr_longlong(count
));
7418 if(!basic_ostream_wchar_sentry_create(this)
7419 || basic_streambuf_wchar_sputn(base
->strbuf
, str
, count
)!=count
) {
7420 basic_ostream_wchar_sentry_destroy(this);
7421 basic_ios_wchar_setstate(base
, IOSTATE_badbit
);
7425 basic_ostream_wchar_sentry_destroy(this);
7429 static basic_ostream_wchar
* basic_ostream_print_short(basic_ostream_wchar
*this, short val
, const num_put
*numput
)
7431 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
7432 int state
= IOSTATE_goodbit
;
7434 TRACE("(%p %d)\n", this, val
);
7436 if(basic_ostream_wchar_sentry_create(this)) {
7437 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7438 ostreambuf_iterator_wchar dest
;
7440 memset(&dest
, 0, sizeof(dest
));
7441 dest
.strbuf
= strbuf
;
7442 num_put_wchar_put_long(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
),
7443 (ios_base_flags_get(&base
->base
) & FMTFLAG_basefield
& (FMTFLAG_oct
| FMTFLAG_hex
))
7444 ? (LONG
)((unsigned short)val
) : (LONG
)val
);
7446 basic_ostream_wchar_sentry_destroy(this);
7448 basic_ios_wchar_setstate(base
, state
);
7452 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@F@Z */
7453 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@F@Z */
7454 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_short
, 8)
7455 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_short(basic_ostream_wchar
*this, short val
)
7457 return basic_ostream_print_short(this, val
, num_put_wchar_use_facet(
7458 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7461 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@F@Z */
7462 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@F@Z */
7463 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_short
, 8)
7464 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_short(basic_ostream_wchar
*this, short val
)
7466 return basic_ostream_print_short(this, val
, num_put_short_use_facet(
7467 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7470 static basic_ostream_wchar
* basic_ostream_print_ushort(basic_ostream_wchar
*this, unsigned short val
, const num_put
*numput
)
7472 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
7473 int state
= IOSTATE_goodbit
;
7475 TRACE("(%p %d)\n", this, val
);
7477 if(basic_ostream_wchar_sentry_create(this)) {
7478 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7479 ostreambuf_iterator_wchar dest
;
7481 memset(&dest
, 0, sizeof(dest
));
7482 dest
.strbuf
= strbuf
;
7483 num_put_wchar_put_ulong(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
7485 basic_ostream_wchar_sentry_destroy(this);
7487 basic_ios_wchar_setstate(base
, state
);
7491 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@G@Z */
7492 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@G@Z */
7493 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ushort
, 8)
7494 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_ushort(basic_ostream_wchar
*this, unsigned short val
)
7496 return basic_ostream_print_ushort(this, val
, num_put_wchar_use_facet(
7497 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7500 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@G@Z */
7501 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@G@Z */
7502 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_ushort
, 8)
7503 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_ushort(basic_ostream_wchar
*this, unsigned short val
)
7505 return basic_ostream_print_ushort(this, val
, num_put_short_use_facet(
7506 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7509 /* ??6std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@G@Z */
7510 /* ??6std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@G@Z */
7511 basic_ostream_wchar
* __cdecl
basic_ostream_short_print_ushort_global(basic_ostream_wchar
*ostr
, unsigned short val
)
7513 return basic_ostream_print_ushort(ostr
, val
, num_put_short_use_facet(
7514 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(ostr
)))));
7517 static basic_ostream_wchar
* basic_ostream_print_int(basic_ostream_wchar
*this, int val
, const num_put
*numput
)
7519 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
7520 int state
= IOSTATE_goodbit
;
7522 TRACE("(%p %d)\n", this, val
);
7524 if(basic_ostream_wchar_sentry_create(this)) {
7525 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7526 ostreambuf_iterator_wchar dest
;
7528 memset(&dest
, 0, sizeof(dest
));
7529 dest
.strbuf
= strbuf
;
7530 num_put_wchar_put_long(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
7532 basic_ostream_wchar_sentry_destroy(this);
7534 basic_ios_wchar_setstate(base
, state
);
7538 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@H@Z */
7539 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@H@Z */
7540 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@J@Z */
7541 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@J@Z */
7542 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_int
, 8)
7543 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_int(basic_ostream_wchar
*this, int val
)
7545 return basic_ostream_print_int(this, val
, num_put_wchar_use_facet(
7546 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7549 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@H@Z */
7550 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@H@Z */
7551 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@J@Z */
7552 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@J@Z */
7553 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_int
, 8)
7554 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_int(basic_ostream_wchar
*this, int val
)
7556 return basic_ostream_print_int(this, val
, num_put_short_use_facet(
7557 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7560 static basic_ostream_wchar
* basic_ostream_print_uint(basic_ostream_wchar
*this, unsigned int val
, const num_put
*numput
)
7562 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
7563 int state
= IOSTATE_goodbit
;
7565 TRACE("(%p %u)\n", this, val
);
7567 if(basic_ostream_wchar_sentry_create(this)) {
7568 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7569 ostreambuf_iterator_wchar dest
;
7571 memset(&dest
, 0, sizeof(dest
));
7572 dest
.strbuf
= strbuf
;
7573 num_put_wchar_put_ulong(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
7575 basic_ostream_wchar_sentry_destroy(this);
7577 basic_ios_wchar_setstate(base
, state
);
7581 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@I@Z */
7582 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@I@Z */
7583 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@K@Z */
7584 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@K@Z */
7585 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_uint
, 8)
7586 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_uint(basic_ostream_wchar
*this, unsigned int val
)
7588 return basic_ostream_print_uint(this, val
, num_put_wchar_use_facet(
7589 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7592 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@I@Z */
7593 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@I@Z */
7594 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@K@Z */
7595 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@K@Z */
7596 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_uint
, 8)
7597 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_uint(basic_ostream_wchar
*this, unsigned int val
)
7599 return basic_ostream_print_uint(this, val
, num_put_short_use_facet(
7600 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7603 static basic_ostream_wchar
* basic_ostream_print_float(basic_ostream_wchar
*this, float val
, const num_put
*numput
)
7605 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
7606 int state
= IOSTATE_goodbit
;
7608 TRACE("(%p %f)\n", this, val
);
7610 if(basic_ostream_wchar_sentry_create(this)) {
7611 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7612 ostreambuf_iterator_wchar dest
;
7614 memset(&dest
, 0, sizeof(dest
));
7615 dest
.strbuf
= strbuf
;
7616 num_put_wchar_put_double(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
7618 basic_ostream_wchar_sentry_destroy(this);
7620 basic_ios_wchar_setstate(base
, state
);
7624 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@M@Z */
7625 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@M@Z */
7626 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_float
, 8)
7627 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_float(basic_ostream_wchar
*this, float val
)
7629 return basic_ostream_print_float(this, val
, num_put_wchar_use_facet(
7630 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7633 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@M@Z */
7634 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@M@Z */
7635 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_float
, 8)
7636 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_float(basic_ostream_wchar
*this, float val
)
7638 return basic_ostream_print_float(this, val
, num_put_short_use_facet(
7639 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7642 static basic_ostream_wchar
* basic_ostream_print_double(basic_ostream_wchar
*this, double val
, const num_put
*numput
)
7644 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
7645 int state
= IOSTATE_goodbit
;
7647 TRACE("(%p %lf)\n", this, val
);
7649 if(basic_ostream_wchar_sentry_create(this)) {
7650 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7651 ostreambuf_iterator_wchar dest
;
7653 memset(&dest
, 0, sizeof(dest
));
7654 dest
.strbuf
= strbuf
;
7655 num_put_wchar_put_double(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
7657 basic_ostream_wchar_sentry_destroy(this);
7659 basic_ios_wchar_setstate(base
, state
);
7663 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@N@Z */
7664 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@N@Z */
7665 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_double
, 12)
7666 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_double(basic_ostream_wchar
*this, double val
)
7668 return basic_ostream_print_double(this, val
, num_put_wchar_use_facet(
7669 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7672 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@N@Z */
7673 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@N@Z */
7674 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_double
, 12)
7675 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_double(basic_ostream_wchar
*this, double val
)
7677 return basic_ostream_print_double(this, val
, num_put_short_use_facet(
7678 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7681 static basic_ostream_wchar
* basic_ostream_print_ldouble(basic_ostream_wchar
*this, double val
, const num_put
*numput
)
7683 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
7684 int state
= IOSTATE_goodbit
;
7686 TRACE("(%p %lf)\n", this, val
);
7688 if(basic_ostream_wchar_sentry_create(this)) {
7689 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7690 ostreambuf_iterator_wchar dest
;
7692 memset(&dest
, 0, sizeof(dest
));
7693 dest
.strbuf
= strbuf
;
7694 num_put_wchar_put_ldouble(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
7696 basic_ostream_wchar_sentry_destroy(this);
7698 basic_ios_wchar_setstate(base
, state
);
7702 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@O@Z */
7703 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@O@Z */
7704 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ldouble
, 12)
7705 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_ldouble(basic_ostream_wchar
*this, double val
)
7707 return basic_ostream_print_ldouble(this, val
, num_put_wchar_use_facet(
7708 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7711 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@O@Z */
7712 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@O@Z */
7713 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_ldouble
, 12)
7714 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_ldouble(basic_ostream_wchar
*this, double val
)
7716 return basic_ostream_print_ldouble(this, val
, num_put_short_use_facet(
7717 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7720 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
7721 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
7722 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
7723 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
7724 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_streambuf
, 8)
7725 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_streambuf(basic_ostream_wchar
*this, basic_streambuf_wchar
*val
)
7727 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
7728 IOSB_iostate state
= IOSTATE_badbit
;
7729 unsigned short c
= '\n';
7731 TRACE("(%p %p)\n", this, val
);
7733 if(basic_ostream_wchar_sentry_create(this)) {
7734 for(c
= basic_streambuf_wchar_sgetc(val
); c
!=WEOF
;
7735 c
= basic_streambuf_wchar_snextc(val
)) {
7736 state
= IOSTATE_goodbit
;
7738 if(basic_streambuf_wchar_sputc(base
->strbuf
, c
) == WEOF
) {
7739 state
= IOSTATE_badbit
;
7744 state
= IOSTATE_badbit
;
7746 basic_ostream_wchar_sentry_destroy(this);
7748 ios_base_width_set(&base
->base
, 0);
7749 basic_ios_wchar_setstate(base
, state
);
7753 static basic_ostream_wchar
* basic_ostream_print_ptr(basic_ostream_wchar
*this, const void *val
, const num_put
*numput
)
7755 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
7756 int state
= IOSTATE_goodbit
;
7758 TRACE("(%p %p)\n", this, val
);
7760 if(basic_ostream_wchar_sentry_create(this)) {
7761 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7762 ostreambuf_iterator_wchar dest
;
7764 memset(&dest
, 0, sizeof(dest
));
7765 dest
.strbuf
= strbuf
;
7766 num_put_wchar_put_ptr(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
7768 basic_ostream_wchar_sentry_destroy(this);
7770 basic_ios_wchar_setstate(base
, state
);
7774 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PBX@Z */
7775 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEBX@Z */
7776 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ptr
, 8)
7777 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_ptr(basic_ostream_wchar
*this, const void *val
)
7779 return basic_ostream_print_ptr(this, val
, num_put_wchar_use_facet(
7780 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7783 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@PBX@Z */
7784 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEBX@Z */
7785 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_ptr
, 8)
7786 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_ptr(basic_ostream_wchar
*this, const void *val
)
7788 return basic_ostream_print_ptr(this, val
, num_put_short_use_facet(
7789 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7792 static basic_ostream_wchar
* basic_ostream_print_int64(basic_ostream_wchar
*this, __int64 val
, const num_put
*numput
)
7794 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
7795 int state
= IOSTATE_goodbit
;
7797 TRACE("(%p)\n", this);
7799 if(basic_ostream_wchar_sentry_create(this)) {
7800 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7801 ostreambuf_iterator_wchar dest
;
7803 memset(&dest
, 0, sizeof(dest
));
7804 dest
.strbuf
= strbuf
;
7805 num_put_wchar_put_int64(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
7807 basic_ostream_wchar_sentry_destroy(this);
7809 basic_ios_wchar_setstate(base
, state
);
7813 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_J@Z */
7814 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_J@Z */
7815 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_int64
, 12)
7816 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_int64(basic_ostream_wchar
*this, __int64 val
)
7818 return basic_ostream_print_int64(this, val
, num_put_wchar_use_facet(
7819 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7822 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_J@Z */
7823 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_J@Z */
7824 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_int64
, 12)
7825 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_int64(basic_ostream_wchar
*this, __int64 val
)
7827 return basic_ostream_print_int64(this, val
, num_put_short_use_facet(
7828 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7831 static basic_ostream_wchar
* basic_ostream_print_uint64(basic_ostream_wchar
*this, unsigned __int64 val
, const num_put
*numput
)
7833 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
7834 int state
= IOSTATE_goodbit
;
7836 TRACE("(%p)\n", this);
7838 if(basic_ostream_wchar_sentry_create(this)) {
7839 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7840 ostreambuf_iterator_wchar dest
;
7842 memset(&dest
, 0, sizeof(dest
));
7843 dest
.strbuf
= strbuf
;
7844 num_put_wchar_put_uint64(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
7846 basic_ostream_wchar_sentry_destroy(this);
7848 basic_ios_wchar_setstate(base
, state
);
7852 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_K@Z */
7853 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_K@Z */
7854 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_uint64
, 12)
7855 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_uint64(basic_ostream_wchar
*this, unsigned __int64 val
)
7857 return basic_ostream_print_uint64(this, val
, num_put_wchar_use_facet(
7858 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7861 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_K@Z */
7862 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_K@Z */
7863 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_uint64
, 12)
7864 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_uint64(basic_ostream_wchar
*this, unsigned __int64 val
)
7866 return basic_ostream_print_uint64(this, val
, num_put_short_use_facet(
7867 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7870 static basic_ostream_wchar
* basic_ostream_print_bool(basic_ostream_wchar
*this, bool val
, const num_put
*numput
)
7872 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
7873 int state
= IOSTATE_goodbit
;
7875 TRACE("(%p %x)\n", this, val
);
7877 if(basic_ostream_wchar_sentry_create(this)) {
7878 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7879 ostreambuf_iterator_wchar dest
;
7881 memset(&dest
, 0, sizeof(dest
));
7882 dest
.strbuf
= strbuf
;
7883 num_put_wchar_put_bool(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
7885 basic_ostream_wchar_sentry_destroy(this);
7887 basic_ios_wchar_setstate(base
, state
);
7891 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_N@Z */
7892 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_N@Z */
7893 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_bool
, 8)
7894 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_bool(basic_ostream_wchar
*this, bool val
)
7896 return basic_ostream_print_bool(this, val
, num_put_wchar_use_facet(
7897 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7900 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_N@Z */
7901 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_N@Z */
7902 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_bool
, 8)
7903 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_bool(basic_ostream_wchar
*this, bool val
)
7905 return basic_ostream_print_bool(this, val
, num_put_short_use_facet(
7906 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7909 /* ?ends@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
7910 /* ?ends@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
7911 /* ?ends@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
7912 /* ?ends@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
7913 basic_ostream_wchar
* __cdecl
basic_ostream_wchar_ends(basic_ostream_wchar
*ostr
)
7915 TRACE("(%p)\n", ostr
);
7917 basic_ostream_wchar_put(ostr
, 0);
7921 /* ?endl@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
7922 /* ?endl@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
7923 /* ?endl@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
7924 /* ?endl@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
7925 basic_ostream_wchar
* __cdecl
basic_ostream_wchar_endl(basic_ostream_wchar
*ostr
)
7927 TRACE("(%p)\n", ostr
);
7929 basic_ostream_wchar_put(ostr
, '\n');
7930 basic_ostream_wchar_flush(ostr
);
7934 /* ??$?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 */
7935 /* ??$?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 */
7936 /* ??$?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 */
7937 /* ??$?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 */
7938 basic_ostream_wchar
* __cdecl
basic_ostream_wchar_print_bstr(basic_ostream_wchar
*ostr
, const basic_string_wchar
*str
)
7940 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(ostr
);
7941 IOSB_iostate state
= IOSTATE_goodbit
;
7943 TRACE("(%p %p)\n", ostr
, str
);
7945 if(basic_ostream_wchar_sentry_create(ostr
)) {
7946 size_t len
= MSVCP_basic_string_wchar_length(str
);
7947 streamsize pad
= (base
->base
.wide
>len
? base
->base
.wide
-len
: 0);
7949 if((base
->base
.fmtfl
& FMTFLAG_adjustfield
) != FMTFLAG_left
) {
7950 for(; pad
!=0; pad
--) {
7951 if(basic_streambuf_wchar_sputc(base
->strbuf
, base
->fillch
) == WEOF
) {
7952 state
= IOSTATE_badbit
;
7958 if(state
== IOSTATE_goodbit
) {
7959 if(basic_streambuf_wchar_sputn(base
->strbuf
, MSVCP_basic_string_wchar_c_str(str
), len
) != len
)
7960 state
= IOSTATE_badbit
;
7963 if(state
== IOSTATE_goodbit
) {
7964 for(; pad
!=0; pad
--) {
7965 if(basic_streambuf_wchar_sputc(base
->strbuf
, base
->fillch
) == WEOF
) {
7966 state
= IOSTATE_badbit
;
7972 base
->base
.wide
= 0;
7974 state
= IOSTATE_badbit
;
7976 basic_ostream_wchar_sentry_destroy(ostr
);
7978 basic_ios_wchar_setstate(base
, state
);
7982 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@_W@Z */
7983 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@_W@Z */
7984 /* ??$?6GU?$char_traits@G@std@@@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@G@Z */
7985 /* ??$?6GU?$char_traits@G@std@@@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@G@Z */
7986 basic_ostream_wchar
* __cdecl
basic_ostream_wchar_print_ch(basic_ostream_wchar
*ostr
, wchar_t ch
)
7988 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(ostr
);
7989 IOSB_iostate state
= IOSTATE_goodbit
;
7991 TRACE("(%p %d)\n", ostr
, ch
);
7993 if(basic_ostream_wchar_sentry_create(ostr
)) {
7994 streamsize pad
= (base
->base
.wide
>1 ? base
->base
.wide
-1 : 0);
7996 if((base
->base
.fmtfl
& FMTFLAG_adjustfield
) != FMTFLAG_left
) {
7997 for(; pad
!=0; pad
--) {
7998 if(basic_streambuf_wchar_sputc(base
->strbuf
, base
->fillch
) == WEOF
) {
7999 state
= IOSTATE_badbit
;
8005 if(state
== IOSTATE_goodbit
) {
8006 if(basic_streambuf_wchar_sputc(base
->strbuf
, ch
) == WEOF
)
8007 state
= IOSTATE_badbit
;
8010 if(state
== IOSTATE_goodbit
) {
8011 for(; pad
!=0; pad
--) {
8012 if(basic_streambuf_wchar_sputc(base
->strbuf
, base
->fillch
) == WEOF
) {
8013 state
= IOSTATE_badbit
;
8019 base
->base
.wide
= 0;
8021 state
= IOSTATE_badbit
;
8023 basic_ostream_wchar_sentry_destroy(ostr
);
8025 basic_ios_wchar_setstate(base
, state
);
8029 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@PB_W@Z */
8030 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@PEB_W@Z */
8031 /* ??$?6GU?$char_traits@G@std@@@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@PBG@Z */
8032 /* ??$?6GU?$char_traits@G@std@@@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@PEBG@Z */
8033 basic_ostream_wchar
* __cdecl
basic_ostream_wchar_print_str(basic_ostream_wchar
*ostr
, const wchar_t *str
)
8035 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(ostr
);
8036 IOSB_iostate state
= IOSTATE_goodbit
;
8038 TRACE("(%p %s)\n", ostr
, debugstr_w(str
));
8040 if(basic_ostream_wchar_sentry_create(ostr
)) {
8041 size_t len
= wcslen(str
);
8042 streamsize pad
= (base
->base
.wide
>len
? base
->base
.wide
-len
: 0);
8044 if((base
->base
.fmtfl
& FMTFLAG_adjustfield
) != FMTFLAG_left
) {
8045 for(; pad
!=0; pad
--) {
8046 if(basic_streambuf_wchar_sputc(base
->strbuf
, base
->fillch
) == WEOF
) {
8047 state
= IOSTATE_badbit
;
8053 if(state
== IOSTATE_goodbit
) {
8054 if(basic_streambuf_wchar_sputn(base
->strbuf
, str
, len
) != len
)
8055 state
= IOSTATE_badbit
;
8058 if(state
== IOSTATE_goodbit
) {
8059 for(; pad
!=0; pad
--) {
8060 if(basic_streambuf_wchar_sputc(base
->strbuf
, base
->fillch
) == WEOF
) {
8061 state
= IOSTATE_badbit
;
8067 base
->base
.wide
= 0;
8069 state
= IOSTATE_badbit
;
8071 basic_ostream_wchar_sentry_destroy(ostr
);
8073 basic_ios_wchar_setstate(base
, state
);
8077 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
8078 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
8079 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
8080 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
8081 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func
, 8)
8082 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_func(basic_ostream_wchar
*this,
8083 basic_ostream_wchar
* (__cdecl
*pfunc
)(basic_ostream_wchar
*))
8085 TRACE("(%p %p)\n", this, pfunc
);
8090 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AAV21@@Z@Z */
8091 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z */
8092 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@GU?$char_traits@G@std@@@1@AAV21@@Z@Z */
8093 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z */
8094 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func_basic_ios
, 8)
8095 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_func_basic_ios(basic_ostream_wchar
*this,
8096 basic_ios_wchar
* (__cdecl
*pfunc
)(basic_ios_wchar
*))
8098 TRACE("(%p %p)\n", this, pfunc
);
8099 pfunc(basic_ostream_wchar_get_basic_ios(this));
8103 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
8104 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
8105 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
8106 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
8107 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func_ios_base
, 8)
8108 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_func_ios_base(
8109 basic_ostream_wchar
*this, ios_base
* (__cdecl
*pfunc
)(ios_base
*))
8111 TRACE("(%p %p)\n", this, pfunc
);
8112 pfunc(&basic_ostream_wchar_get_basic_ios(this)->base
);
8116 /* ?swap@?$basic_ostream@GU?$char_traits@G@std@@@std@@IAEXAAV12@@Z */
8117 /* ?swap@?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z */
8118 /* ?swap@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IAEXAAV12@@Z */
8119 /* ?swap@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z */
8120 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_swap
, 8)
8121 void __thiscall
basic_ostream_wchar_swap(basic_ostream_wchar
*this, basic_ostream_wchar
*r
)
8123 TRACE("(%p %p)\n", this, r
);
8128 basic_ios_wchar_swap(basic_ostream_wchar_get_basic_ios(this),
8129 basic_ostream_wchar_get_basic_ios(r
));
8132 /* Caution: basic_istream uses virtual inheritance. */
8133 static inline basic_ios_char
* basic_istream_char_get_basic_ios(basic_istream_char
*this)
8135 return (basic_ios_char
*)((char*)this+this->vbtable
[1]);
8138 static inline basic_ios_char
* basic_istream_char_to_basic_ios(basic_istream_char
*ptr
)
8140 return (basic_ios_char
*)((char*)ptr
+basic_istream_char_vbtable
[1]);
8143 static inline basic_istream_char
* basic_istream_char_from_basic_ios(basic_ios_char
*ptr
)
8145 return (basic_istream_char
*)((char*)ptr
-basic_istream_char_vbtable
[1]);
8148 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
8149 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
8150 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor_init
, 20)
8151 basic_istream_char
* __thiscall
basic_istream_char_ctor_init(basic_istream_char
*this,
8152 basic_streambuf_char
*strbuf
, bool isstd
, bool noinit
, bool virt_init
)
8154 basic_ios_char
*base
;
8156 TRACE("(%p %p %d %d %d)\n", this, strbuf
, isstd
, noinit
, virt_init
);
8159 this->vbtable
= basic_istream_char_vbtable
;
8160 base
= basic_istream_char_get_basic_ios(this);
8161 INIT_BASIC_IOS_VTORDISP(base
);
8162 basic_ios_char_ctor(base
);
8164 base
= basic_istream_char_get_basic_ios(this);
8167 base
->base
.vtable
= &basic_istream_char_vtable
;
8170 basic_ios_char_init(base
, strbuf
, isstd
);
8174 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
8175 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
8176 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor
, 16)
8177 basic_istream_char
* __thiscall
basic_istream_char_ctor(basic_istream_char
*this,
8178 basic_streambuf_char
*strbuf
, bool isstd
, bool virt_init
)
8180 return basic_istream_char_ctor_init(this, strbuf
, isstd
, FALSE
, virt_init
);
8183 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
8184 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
8185 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor_uninitialized
, 12)
8186 basic_istream_char
* __thiscall
basic_istream_char_ctor_uninitialized(basic_istream_char
*this,
8187 int uninitialized
, bool virt_init
)
8189 basic_ios_char
*base
;
8191 TRACE("(%p %d %d)\n", this, uninitialized
, virt_init
);
8194 this->vbtable
= basic_istream_char_vbtable
;
8195 base
= basic_istream_char_get_basic_ios(this);
8196 INIT_BASIC_IOS_VTORDISP(base
);
8197 basic_ios_char_ctor(base
);
8199 base
= basic_istream_char_get_basic_ios(this);
8202 base
->base
.vtable
= &basic_istream_char_vtable
;
8203 ios_base_Addstd(&base
->base
);
8207 /* ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ */
8208 /* ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
8209 DEFINE_THISCALL_WRAPPER(basic_istream_char_dtor
, 4)
8210 void __thiscall
basic_istream_char_dtor(basic_ios_char
*base
)
8212 basic_istream_char
*this = basic_istream_char_from_basic_ios(base
);
8214 /* don't destroy virtual base here */
8215 TRACE("(%p)\n", this);
8218 /* ??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ */
8219 /* ??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
8220 DEFINE_THISCALL_WRAPPER(basic_istream_char_vbase_dtor
, 4)
8221 void __thiscall
basic_istream_char_vbase_dtor(basic_istream_char
*this)
8223 basic_ios_char
*base
= basic_istream_char_to_basic_ios(this);
8225 TRACE("(%p)\n", this);
8227 basic_istream_char_dtor(base
);
8228 basic_ios_char_dtor(base
);
8231 DEFINE_THISCALL_WRAPPER(basic_istream_char_vector_dtor
, 8)
8232 basic_istream_char
* __thiscall
basic_istream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
8234 basic_istream_char
*this = basic_istream_char_from_basic_ios(base
);
8236 TRACE("(%p %x)\n", this, flags
);
8239 /* we have an array, with the number of elements stored before the first object */
8240 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
8242 for(i
=*ptr
-1; i
>=0; i
--)
8243 basic_istream_char_vbase_dtor(this+i
);
8244 operator_delete(ptr
);
8246 basic_istream_char_vbase_dtor(this);
8248 operator_delete(this);
8254 /* ?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z */
8255 /* ?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z */
8256 DEFINE_THISCALL_WRAPPER(basic_istream_char__Ipfx
, 8)
8257 bool __thiscall
basic_istream_char__Ipfx(basic_istream_char
*this, bool noskip
)
8259 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8261 TRACE("(%p %d)\n", this, noskip
);
8263 if(ios_base_good(&base
->base
)) {
8264 if(basic_ios_char_tie_get(base
))
8265 basic_ostream_char_flush(basic_ios_char_tie_get(base
));
8267 if(!noskip
&& (ios_base_flags_get(&base
->base
) & FMTFLAG_skipws
)) {
8268 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8269 const ctype_char
*ctype
= ctype_char_use_facet(IOS_LOCALE(base
->strbuf
));
8272 for(ch
= basic_streambuf_char_sgetc(strbuf
); ;
8273 ch
= basic_streambuf_char_snextc(strbuf
)) {
8275 basic_ios_char_setstate(base
, IOSTATE_eofbit
);
8279 if(!ctype_char_is_ch(ctype
, _SPACE
|_BLANK
, ch
))
8285 if(!ios_base_good(&base
->base
)) {
8286 basic_ios_char_setstate(base
, IOSTATE_failbit
);
8293 /* ?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z */
8294 /* ?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z */
8295 DEFINE_THISCALL_WRAPPER(basic_istream_char_ipfx
, 8)
8296 bool __thiscall
basic_istream_char_ipfx(basic_istream_char
*this, bool noskip
)
8298 return basic_istream_char__Ipfx(this, noskip
);
8301 /* ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ */
8302 /* ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
8303 DEFINE_THISCALL_WRAPPER(basic_istream_char_isfx
, 4)
8304 void __thiscall
basic_istream_char_isfx(basic_istream_char
*this)
8306 TRACE("(%p)\n", this);
8309 static BOOL
basic_istream_char_sentry_create(basic_istream_char
*istr
, bool noskip
)
8311 basic_ios_char
*base
= basic_istream_char_get_basic_ios(istr
);
8313 if(basic_ios_char_rdbuf_get(base
))
8314 call_basic_streambuf_char__Lock(base
->strbuf
);
8316 return basic_istream_char_ipfx(istr
, noskip
);
8319 static void basic_istream_char_sentry_destroy(basic_istream_char
*istr
)
8321 basic_ios_char
*base
= basic_istream_char_get_basic_ios(istr
);
8323 if(basic_ios_char_rdbuf_get(base
))
8324 call_basic_streambuf_char__Unlock(base
->strbuf
);
8327 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QBEHXZ */
8328 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QEBA_JXZ */
8329 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QBA_JXZ */
8330 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QBE_JXZ */
8331 DEFINE_THISCALL_WRAPPER(basic_istream_char_gcount
, 4)
8332 streamsize __thiscall
basic_istream_char_gcount(const basic_istream_char
*this)
8334 TRACE("(%p)\n", this);
8338 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
8339 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
8340 DEFINE_THISCALL_WRAPPER(basic_istream_char_get
, 4)
8341 int __thiscall
basic_istream_char_get(basic_istream_char
*this)
8343 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8346 TRACE("(%p)\n", this);
8350 if(!basic_istream_char_sentry_create(this, TRUE
)) {
8351 basic_istream_char_sentry_destroy(this);
8355 ret
= basic_streambuf_char_sbumpc(basic_ios_char_rdbuf_get(base
));
8356 basic_istream_char_sentry_destroy(this);
8358 basic_ios_char_setstate(base
, IOSTATE_eofbit
|IOSTATE_failbit
);
8365 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAD@Z */
8366 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAD@Z */
8367 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_ch
, 8)
8368 basic_istream_char
* __thiscall
basic_istream_char_get_ch(basic_istream_char
*this, char *ch
)
8372 TRACE("(%p %p)\n", this, ch
);
8374 ret
= basic_istream_char_get(this);
8380 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADHD@Z */
8381 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z */
8382 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
8383 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_str_delim
, 20)
8385 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_str_delim
, 16)
8387 basic_istream_char
* __thiscall
basic_istream_char_get_str_delim(basic_istream_char
*this, char *str
, streamsize count
, char delim
)
8389 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8392 TRACE("(%p %p %s %s)\n", this, str
, wine_dbgstr_longlong(count
), debugstr_an(&delim
, 1));
8396 if(basic_istream_char_sentry_create(this, TRUE
)) {
8397 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8399 for(ch
= basic_streambuf_char_sgetc(strbuf
); count
>1;
8400 ch
= basic_streambuf_char_snextc(strbuf
)) {
8401 if(ch
==EOF
|| ch
==delim
)
8409 basic_istream_char_sentry_destroy(this);
8411 basic_ios_char_setstate(base
, (!this->count
? IOSTATE_failbit
: IOSTATE_goodbit
) |
8412 (ch
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
8418 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
8419 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
8420 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
8421 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_str
, 16)
8423 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_str
, 12)
8425 basic_istream_char
* __thiscall
basic_istream_char_get_str(basic_istream_char
*this, char *str
, streamsize count
)
8427 return basic_istream_char_get_str_delim(this, str
, count
, '\n');
8430 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z */
8431 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z */
8432 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_streambuf_delim
, 12)
8433 basic_istream_char
* __thiscall
basic_istream_char_get_streambuf_delim(basic_istream_char
*this, basic_streambuf_char
*strbuf
, char delim
)
8435 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8438 TRACE("(%p %p %s)\n", this, strbuf
, debugstr_an(&delim
, 1));
8442 if(basic_istream_char_sentry_create(this, TRUE
)) {
8443 basic_streambuf_char
*strbuf_read
= basic_ios_char_rdbuf_get(base
);
8445 for(ch
= basic_streambuf_char_sgetc(strbuf_read
); ;
8446 ch
= basic_streambuf_char_snextc(strbuf_read
)) {
8447 if(ch
==EOF
|| ch
==delim
)
8450 if(basic_streambuf_char_sputc(strbuf
, ch
) == EOF
)
8455 basic_istream_char_sentry_destroy(this);
8457 basic_ios_char_setstate(base
, (!this->count
? IOSTATE_failbit
: IOSTATE_goodbit
) |
8458 (ch
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
8462 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z */
8463 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z */
8464 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_streambuf
, 8)
8465 basic_istream_char
* __thiscall
basic_istream_char_get_streambuf(basic_istream_char
*this, basic_streambuf_char
*strbuf
)
8467 return basic_istream_char_get_streambuf_delim(this, strbuf
, '\n');
8470 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADHD@Z */
8471 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z */
8472 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
8473 DEFINE_THISCALL_WRAPPER(basic_istream_char_getline_delim
, 20)
8475 DEFINE_THISCALL_WRAPPER(basic_istream_char_getline_delim
, 16)
8477 basic_istream_char
* __thiscall
basic_istream_char_getline_delim(basic_istream_char
*this, char *str
, streamsize count
, char delim
)
8479 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8480 int ch
= (unsigned char)delim
;
8482 TRACE("(%p %p %s %s)\n", this, str
, wine_dbgstr_longlong(count
), debugstr_an(&delim
, 1));
8486 if(basic_istream_char_sentry_create(this, TRUE
) && count
>0) {
8487 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8490 ch
= basic_streambuf_char_sbumpc(strbuf
);
8492 if(ch
==EOF
|| ch
==(unsigned char)delim
)
8500 if(ch
== (unsigned char)delim
)
8502 else if(ch
!= EOF
) {
8503 ch
= basic_streambuf_char_sgetc(strbuf
);
8505 if(ch
== (unsigned char)delim
) {
8506 basic_streambuf_char__Gninc(strbuf
);
8511 basic_istream_char_sentry_destroy(this);
8513 basic_ios_char_setstate(base
, (ch
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
) |
8514 (!this->count
|| (ch
!=(unsigned char)delim
&& ch
!=EOF
) ? IOSTATE_failbit
: IOSTATE_goodbit
));
8520 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
8521 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
8522 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
8523 DEFINE_THISCALL_WRAPPER(basic_istream_char_getline
, 16)
8525 DEFINE_THISCALL_WRAPPER(basic_istream_char_getline
, 12)
8527 basic_istream_char
* __thiscall
basic_istream_char_getline(basic_istream_char
*this, char *str
, streamsize count
)
8529 return basic_istream_char_getline_delim(this, str
, count
, '\n');
8532 /* ?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@HH@Z */
8533 /* ?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
8534 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
8535 DEFINE_THISCALL_WRAPPER(basic_istream_char_ignore
, 16)
8537 DEFINE_THISCALL_WRAPPER(basic_istream_char_ignore
, 12)
8539 basic_istream_char
* __thiscall
basic_istream_char_ignore(basic_istream_char
*this, streamsize count
, int delim
)
8541 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8542 int ch
= (unsigned char)delim
;
8545 TRACE("(%p %s %d)\n", this, wine_dbgstr_longlong(count
), delim
);
8549 if(basic_istream_char_sentry_create(this, TRUE
)) {
8550 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8551 state
= IOSTATE_goodbit
;
8554 ch
= basic_streambuf_char_sbumpc(strbuf
);
8557 state
= IOSTATE_eofbit
;
8565 if(count
!= INT_MAX
)
8569 state
= IOSTATE_failbit
;
8570 basic_istream_char_sentry_destroy(this);
8572 basic_ios_char_setstate(base
, state
);
8576 /* ?ws@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@1@AAV21@@Z */
8577 /* ?ws@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
8578 basic_istream_char
* __cdecl
ws_basic_istream_char(basic_istream_char
*istream
)
8580 basic_ios_char
*base
= basic_istream_char_get_basic_ios(istream
);
8583 TRACE("(%p)\n", istream
);
8585 if(basic_istream_char_sentry_create(istream
, TRUE
)) {
8586 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8587 const ctype_char
*ctype
= ctype_char_use_facet(IOS_LOCALE(strbuf
));
8589 for(ch
= basic_streambuf_char_sgetc(strbuf
); ctype_char_is_ch(ctype
, _SPACE
, ch
);
8590 ch
= basic_streambuf_char_snextc(strbuf
)) {
8595 basic_istream_char_sentry_destroy(istream
);
8598 basic_ios_char_setstate(base
, IOSTATE_eofbit
);
8602 /* ?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
8603 /* ?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
8604 DEFINE_THISCALL_WRAPPER(basic_istream_char_peek
, 4)
8605 int __thiscall
basic_istream_char_peek(basic_istream_char
*this)
8607 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8610 TRACE("(%p)\n", this);
8614 if(basic_istream_char_sentry_create(this, TRUE
))
8615 ret
= basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base
));
8616 basic_istream_char_sentry_destroy(this);
8619 basic_ios_char_setstate(base
, IOSTATE_eofbit
);
8624 /* ?_Read_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADIH@Z */
8625 /* ?_Read_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_K_J@Z */
8626 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
8627 DEFINE_THISCALL_WRAPPER(basic_istream_char__Read_s
, 20)
8629 DEFINE_THISCALL_WRAPPER(basic_istream_char__Read_s
, 16)
8631 basic_istream_char
* __thiscall
basic_istream_char__Read_s(basic_istream_char
*this, char *str
, size_t size
, streamsize count
)
8633 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8634 IOSB_iostate state
= IOSTATE_goodbit
;
8636 TRACE("(%p %p %Iu %s)\n", this, str
, size
, wine_dbgstr_longlong(count
));
8638 if(basic_istream_char_sentry_create(this, TRUE
)) {
8639 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8641 this->count
= basic_streambuf_char__Sgetn_s(strbuf
, str
, size
, count
);
8642 if(this->count
!= count
)
8643 state
|= IOSTATE_failbit
| IOSTATE_eofbit
;
8647 basic_istream_char_sentry_destroy(this);
8649 basic_ios_char_setstate(base
, state
);
8653 /* ?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
8654 /* ?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
8655 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
8656 DEFINE_THISCALL_WRAPPER(basic_istream_char_read
, 16)
8658 DEFINE_THISCALL_WRAPPER(basic_istream_char_read
, 12)
8660 basic_istream_char
* __thiscall
basic_istream_char_read(basic_istream_char
*this, char *str
, streamsize count
)
8662 return basic_istream_char__Read_s(this, str
, -1, count
);
8665 /* ?_Readsome_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHPADIH@Z */
8666 /* ?_Readsome_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_K_J@Z */
8667 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
8668 DEFINE_THISCALL_WRAPPER(basic_istream_char__Readsome_s
, 20)
8670 DEFINE_THISCALL_WRAPPER(basic_istream_char__Readsome_s
, 16)
8672 streamsize __thiscall
basic_istream_char__Readsome_s(basic_istream_char
*this, char *str
, size_t size
, streamsize count
)
8674 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8675 IOSB_iostate state
= IOSTATE_goodbit
;
8677 TRACE("(%p %p %Iu %s)\n", this, str
, size
, wine_dbgstr_longlong(count
));
8681 if(basic_istream_char_sentry_create(this, TRUE
)) {
8682 streamsize avail
= basic_streambuf_char_in_avail(basic_ios_char_rdbuf_get(base
));
8687 state
|= IOSTATE_eofbit
;
8689 basic_istream_char__Read_s(this, str
, size
, avail
);
8691 state
|= IOSTATE_failbit
;
8693 basic_istream_char_sentry_destroy(this);
8695 basic_ios_char_setstate(base
, state
);
8699 /* ?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHPADH@Z */
8700 /* ?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z */
8701 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
8702 DEFINE_THISCALL_WRAPPER(basic_istream_char_readsome
, 16)
8704 DEFINE_THISCALL_WRAPPER(basic_istream_char_readsome
, 12)
8706 streamsize __thiscall
basic_istream_char_readsome(basic_istream_char
*this, char *str
, streamsize count
)
8708 return basic_istream_char__Readsome_s(this, str
, count
, count
);
8711 /* ?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z */
8712 /* ?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z */
8713 DEFINE_THISCALL_WRAPPER(basic_istream_char_putback
, 8)
8714 basic_istream_char
* __thiscall
basic_istream_char_putback(basic_istream_char
*this, char ch
)
8716 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8717 IOSB_iostate state
= IOSTATE_goodbit
;
8719 TRACE("(%p %c)\n", this, ch
);
8723 if(basic_istream_char_sentry_create(this, TRUE
)) {
8724 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8726 if(!ios_base_good(&base
->base
))
8727 state
|= IOSTATE_failbit
;
8728 else if(!strbuf
|| basic_streambuf_char_sputbackc(strbuf
, ch
)==EOF
)
8729 state
|= IOSTATE_badbit
;
8731 basic_istream_char_sentry_destroy(this);
8733 basic_ios_char_setstate(base
, state
);
8737 /* ?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ */
8738 /* ?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ */
8739 DEFINE_THISCALL_WRAPPER(basic_istream_char_unget
, 4)
8740 basic_istream_char
* __thiscall
basic_istream_char_unget(basic_istream_char
*this)
8742 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8743 IOSB_iostate state
= IOSTATE_goodbit
;
8745 TRACE("(%p)\n", this);
8749 if(basic_istream_char_sentry_create(this, TRUE
)) {
8750 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8752 if(!ios_base_good(&base
->base
))
8753 state
|= IOSTATE_failbit
;
8754 else if(!strbuf
|| basic_streambuf_char_sungetc(strbuf
)==EOF
)
8755 state
|= IOSTATE_badbit
;
8757 basic_istream_char_sentry_destroy(this);
8759 basic_ios_char_setstate(base
, state
);
8763 /* ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
8764 /* ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
8765 DEFINE_THISCALL_WRAPPER(basic_istream_char_sync
, 4)
8766 int __thiscall
basic_istream_char_sync(basic_istream_char
*this)
8768 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8769 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8771 TRACE("(%p)\n", this);
8776 if(basic_istream_char_sentry_create(this, TRUE
)) {
8777 if(basic_streambuf_char_pubsync(strbuf
) != -1) {
8778 basic_istream_char_sentry_destroy(this);
8782 basic_istream_char_sentry_destroy(this);
8784 basic_ios_char_setstate(base
, IOSTATE_badbit
);
8788 /* ?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
8789 /* ?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
8790 DEFINE_THISCALL_WRAPPER(basic_istream_char_tellg
, 8)
8791 fpos_mbstatet
* __thiscall
basic_istream_char_tellg(basic_istream_char
*this, fpos_mbstatet
*ret
)
8793 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8795 TRACE("(%p %p)\n", this, ret
);
8797 #if _MSVCP_VER >= 110
8798 if(basic_istream_char_sentry_create(this, TRUE
)) {
8799 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base
),
8800 ret
, 0, SEEKDIR_cur
, OPENMODE_in
);
8804 memset(&ret
->state
, 0, sizeof(ret
->state
));
8806 basic_istream_char_sentry_destroy(this);
8808 if(ios_base_fail(&base
->base
)) {
8811 memset(&ret
->state
, 0, sizeof(ret
->state
));
8815 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base
),
8816 ret
, 0, SEEKDIR_cur
, OPENMODE_in
);
8822 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@JW4seekdir@ios_base@2@@Z */
8823 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JW4seekdir@ios_base@2@@Z */
8824 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@JH@Z */
8825 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
8826 #if STREAMOFF_BITS == 64
8827 DEFINE_THISCALL_WRAPPER(basic_istream_char_seekg
, 16)
8829 DEFINE_THISCALL_WRAPPER(basic_istream_char_seekg
, 12)
8831 basic_istream_char
* __thiscall
basic_istream_char_seekg(basic_istream_char
*this, streamoff off
, int dir
)
8833 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8834 #if _MSVCP_VER >= 110
8837 TRACE("(%p %s %d)\n", this, wine_dbgstr_longlong(off
), dir
);
8839 state
= ios_base_rdstate(&base
->base
);
8840 ios_base_clear(&base
->base
, state
& ~IOSTATE_eofbit
);
8842 if(basic_istream_char_sentry_create(this, TRUE
)) {
8843 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8846 basic_streambuf_char_pubseekoff(strbuf
, &ret
, off
, dir
, OPENMODE_in
);
8848 if(ret
.off
==-1 && ret
.pos
==0 && MBSTATET_TO_INT(&ret
.state
)==0)
8849 basic_ios_char_setstate(base
, IOSTATE_failbit
);
8851 basic_istream_char_sentry_destroy(this);
8853 TRACE("(%p %s %d)\n", this, wine_dbgstr_longlong(off
), dir
);
8855 if(!ios_base_fail(&base
->base
)) {
8856 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8859 basic_streambuf_char_pubseekoff(strbuf
, &ret
, off
, dir
, OPENMODE_in
);
8861 if(ret
.off
==-1 && ret
.pos
==0 && MBSTATET_TO_INT(&ret
.state
)==0)
8862 basic_ios_char_setstate(base
, IOSTATE_failbit
);
8864 basic_ios_char_clear(base
, IOSTATE_goodbit
);
8867 basic_ios_char_clear(base
, IOSTATE_goodbit
);
8872 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
8873 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
8874 DEFINE_THISCALL_WRAPPER(basic_istream_char_seekg_fpos
, 28)
8875 basic_istream_char
* __thiscall
basic_istream_char_seekg_fpos(basic_istream_char
*this, fpos_mbstatet pos
)
8877 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8878 #if _MSVCP_VER >= 110
8881 TRACE("(%p %s)\n", this, debugstr_fpos_mbstatet(&pos
));
8883 state
= ios_base_rdstate(&base
->base
);
8884 ios_base_clear(&base
->base
, state
& ~IOSTATE_eofbit
);
8886 if(basic_istream_char_sentry_create(this, TRUE
)) {
8887 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8890 basic_streambuf_char_pubseekpos(strbuf
, &ret
, pos
, OPENMODE_in
);
8892 if(ret
.off
==-1 && ret
.pos
==0 && MBSTATET_TO_INT(&ret
.state
)==0)
8893 basic_ios_char_setstate(base
, IOSTATE_failbit
);
8895 basic_istream_char_sentry_destroy(this);
8897 TRACE("(%p %s)\n", this, debugstr_fpos_mbstatet(&pos
));
8899 if(!ios_base_fail(&base
->base
)) {
8900 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8903 basic_streambuf_char_pubseekpos(strbuf
, &ret
, pos
, OPENMODE_in
);
8905 if(ret
.off
==-1 && ret
.pos
==0 && MBSTATET_TO_INT(&ret
.state
)==0)
8906 basic_ios_char_setstate(base
, IOSTATE_failbit
);
8908 basic_ios_char_clear(base
, IOSTATE_goodbit
);
8911 basic_ios_char_clear(base
, IOSTATE_goodbit
);
8916 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAF@Z */
8917 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAF@Z */
8918 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_short
, 8)
8919 basic_istream_char
* __thiscall
basic_istream_char_read_short(basic_istream_char
*this, short *v
)
8921 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8922 int state
= IOSTATE_goodbit
;
8924 TRACE("(%p %p)\n", this, v
);
8926 if(basic_istream_char_sentry_create(this, FALSE
)) {
8927 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8928 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
8929 istreambuf_iterator_char first
={0}, last
={0};
8932 first
.strbuf
= strbuf
;
8933 num_get_char_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, &tmp
);
8935 if(!(state
&IOSTATE_failbit
) && tmp
==(LONG
)((short)tmp
))
8938 state
|= IOSTATE_failbit
;
8940 basic_istream_char_sentry_destroy(this);
8942 basic_ios_char_setstate(base
, state
);
8946 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAG@Z */
8947 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAG@Z */
8948 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ushort
, 8)
8949 basic_istream_char
* __thiscall
basic_istream_char_read_ushort(basic_istream_char
*this, unsigned short *v
)
8951 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8952 int state
= IOSTATE_goodbit
;
8954 TRACE("(%p %p)\n", this, v
);
8956 if(basic_istream_char_sentry_create(this, FALSE
)) {
8957 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8958 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
8959 istreambuf_iterator_char first
={0}, last
={0};
8961 first
.strbuf
= strbuf
;
8962 num_get_char_get_ushort(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
8964 basic_istream_char_sentry_destroy(this);
8966 basic_ios_char_setstate(base
, state
);
8970 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z */
8971 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAH@Z */
8972 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_int
, 8)
8973 basic_istream_char
* __thiscall
basic_istream_char_read_int(basic_istream_char
*this, int *v
)
8975 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8976 int state
= IOSTATE_goodbit
;
8978 TRACE("(%p %p)\n", this, v
);
8980 if(basic_istream_char_sentry_create(this, FALSE
)) {
8981 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8982 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
8983 istreambuf_iterator_char first
={0}, last
={0};
8985 first
.strbuf
= strbuf
;
8986 num_get_char_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, (LONG
*)v
);
8988 basic_istream_char_sentry_destroy(this);
8990 basic_ios_char_setstate(base
, state
);
8994 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAI@Z */
8995 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAI@Z */
8996 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_uint
, 8)
8997 basic_istream_char
* __thiscall
basic_istream_char_read_uint(basic_istream_char
*this, unsigned int *v
)
8999 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
9000 int state
= IOSTATE_goodbit
;
9002 TRACE("(%p %p)\n", this, v
);
9004 if(basic_istream_char_sentry_create(this, FALSE
)) {
9005 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
9006 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
9007 istreambuf_iterator_char first
={0}, last
={0};
9009 first
.strbuf
= strbuf
;
9010 num_get_char_get_uint(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9012 basic_istream_char_sentry_destroy(this);
9014 basic_ios_char_setstate(base
, state
);
9018 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAJ@Z */
9019 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAJ@Z */
9020 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_long
, 8)
9021 basic_istream_char
* __thiscall
basic_istream_char_read_long(basic_istream_char
*this, LONG
*v
)
9023 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
9024 int state
= IOSTATE_goodbit
;
9026 TRACE("(%p %p)\n", this, v
);
9028 if(basic_istream_char_sentry_create(this, FALSE
)) {
9029 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
9030 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
9031 istreambuf_iterator_char first
={0}, last
={0};
9033 first
.strbuf
= strbuf
;
9034 num_get_char_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9036 basic_istream_char_sentry_destroy(this);
9038 basic_ios_char_setstate(base
, state
);
9042 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAK@Z */
9043 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAK@Z */
9044 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ulong
, 8)
9045 basic_istream_char
* __thiscall
basic_istream_char_read_ulong(basic_istream_char
*this, ULONG
*v
)
9047 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
9048 int state
= IOSTATE_goodbit
;
9050 TRACE("(%p %p)\n", this, v
);
9052 if(basic_istream_char_sentry_create(this, FALSE
)) {
9053 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
9054 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
9055 istreambuf_iterator_char first
={0}, last
={0};
9057 first
.strbuf
= strbuf
;
9058 num_get_char_get_ulong(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9060 basic_istream_char_sentry_destroy(this);
9062 basic_ios_char_setstate(base
, state
);
9066 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAM@Z */
9067 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAM@Z */
9068 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_float
, 8)
9069 basic_istream_char
* __thiscall
basic_istream_char_read_float(basic_istream_char
*this, float *v
)
9071 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
9072 int state
= IOSTATE_goodbit
;
9074 TRACE("(%p %p)\n", this, v
);
9076 if(basic_istream_char_sentry_create(this, FALSE
)) {
9077 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
9078 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
9079 istreambuf_iterator_char first
={0}, last
={0};
9081 first
.strbuf
= strbuf
;
9082 num_get_char_get_float(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9084 basic_istream_char_sentry_destroy(this);
9086 basic_ios_char_setstate(base
, state
);
9090 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAN@Z */
9091 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAN@Z */
9092 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_double
, 8)
9093 basic_istream_char
* __thiscall
basic_istream_char_read_double(basic_istream_char
*this, double *v
)
9095 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
9096 int state
= IOSTATE_goodbit
;
9098 TRACE("(%p %p)\n", this, v
);
9100 if(basic_istream_char_sentry_create(this, FALSE
)) {
9101 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
9102 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
9103 istreambuf_iterator_char first
={0}, last
={0};
9105 first
.strbuf
= strbuf
;
9106 num_get_char_get_double(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9108 basic_istream_char_sentry_destroy(this);
9110 basic_ios_char_setstate(base
, state
);
9114 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAO@Z */
9115 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAO@Z */
9116 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ldouble
, 8)
9117 basic_istream_char
* __thiscall
basic_istream_char_read_ldouble(basic_istream_char
*this, double *v
)
9119 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
9120 int state
= IOSTATE_goodbit
;
9122 TRACE("(%p %p)\n", this, v
);
9124 if(basic_istream_char_sentry_create(this, FALSE
)) {
9125 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
9126 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
9127 istreambuf_iterator_char first
={0}, last
={0};
9129 first
.strbuf
= strbuf
;
9130 num_get_char_get_ldouble(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9132 basic_istream_char_sentry_destroy(this);
9134 basic_ios_char_setstate(base
, state
);
9138 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAPAX@Z */
9139 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
9140 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ptr
, 8)
9141 basic_istream_char
* __thiscall
basic_istream_char_read_ptr(basic_istream_char
*this, void **v
)
9143 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
9144 int state
= IOSTATE_goodbit
;
9146 TRACE("(%p %p)\n", this, v
);
9148 if(basic_istream_char_sentry_create(this, FALSE
)) {
9149 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
9150 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
9151 istreambuf_iterator_char first
={0}, last
={0};
9153 first
.strbuf
= strbuf
;
9154 num_get_char_get_void(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9156 basic_istream_char_sentry_destroy(this);
9158 basic_ios_char_setstate(base
, state
);
9162 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_J@Z */
9163 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_J@Z */
9164 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_int64
, 8)
9165 basic_istream_char
* __thiscall
basic_istream_char_read_int64(basic_istream_char
*this, __int64
*v
)
9167 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
9168 int state
= IOSTATE_goodbit
;
9170 TRACE("(%p %p)\n", this, v
);
9172 if(basic_istream_char_sentry_create(this, FALSE
)) {
9173 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
9174 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
9175 istreambuf_iterator_char first
={0}, last
={0};
9177 first
.strbuf
= strbuf
;
9178 num_get_char_get_int64(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9180 basic_istream_char_sentry_destroy(this);
9182 basic_ios_char_setstate(base
, state
);
9186 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_K@Z */
9187 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_K@Z */
9188 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_uint64
, 8)
9189 basic_istream_char
* __thiscall
basic_istream_char_read_uint64(basic_istream_char
*this, unsigned __int64
*v
)
9191 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
9192 int state
= IOSTATE_goodbit
;
9194 TRACE("(%p %p)\n", this, v
);
9196 if(basic_istream_char_sentry_create(this, FALSE
)) {
9197 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
9198 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
9199 istreambuf_iterator_char first
={0}, last
={0};
9201 first
.strbuf
= strbuf
;
9202 num_get_char_get_uint64(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9204 basic_istream_char_sentry_destroy(this);
9206 basic_ios_char_setstate(base
, state
);
9210 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_N@Z */
9211 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_N@Z */
9212 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_bool
, 8)
9213 basic_istream_char
* __thiscall
basic_istream_char_read_bool(basic_istream_char
*this, bool *v
)
9215 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
9216 int state
= IOSTATE_goodbit
;
9218 TRACE("(%p %p)\n", this, v
);
9220 if(basic_istream_char_sentry_create(this, FALSE
)) {
9221 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
9222 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
9223 istreambuf_iterator_char first
={0}, last
={0};
9225 first
.strbuf
= strbuf
;
9226 num_get_char_get_bool(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9228 basic_istream_char_sentry_destroy(this);
9230 basic_ios_char_setstate(base
, state
);
9234 /* ??$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 */
9235 /* ??$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 */
9236 basic_istream_char
* __cdecl
basic_istream_char_getline_bstr_delim(
9237 basic_istream_char
*istream
, basic_string_char
*str
, char delim
)
9239 basic_ios_char
*base
= basic_istream_char_get_basic_ios(istream
);
9240 IOSB_iostate state
= IOSTATE_goodbit
;
9241 int c
= (unsigned char)delim
;
9243 TRACE("(%p %p %s)\n", istream
, str
, debugstr_an(&delim
, 1));
9245 if(basic_istream_char_sentry_create(istream
, TRUE
)) {
9246 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
9247 MSVCP_basic_string_char_clear(str
);
9249 c
= basic_streambuf_char_sgetc(strbuf
);
9250 for(; c
!=(unsigned char)delim
&& c
!=EOF
; c
= basic_streambuf_char_snextc(strbuf
))
9251 MSVCP_basic_string_char_append_ch(str
, c
);
9252 if(c
==EOF
) state
|= IOSTATE_eofbit
;
9253 else if(c
==(unsigned char)delim
) basic_streambuf_char_sbumpc(strbuf
);
9255 if(!MSVCP_basic_string_char_length(str
) && c
!=(unsigned char)delim
) state
|= IOSTATE_failbit
;
9257 basic_istream_char_sentry_destroy(istream
);
9259 basic_ios_char_setstate(basic_istream_char_get_basic_ios(istream
), state
);
9263 /* ??$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 */
9264 /* ??$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 */
9265 basic_istream_char
* __cdecl
basic_istream_char_getline_bstr(
9266 basic_istream_char
*istream
, basic_string_char
*str
)
9268 return basic_istream_char_getline_bstr_delim(istream
, str
, '\n');
9271 /* ??$?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 */
9272 /* ??$?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 */
9273 basic_istream_char
* __cdecl
basic_istream_char_read_bstr(
9274 basic_istream_char
*istream
, basic_string_char
*str
)
9276 basic_ios_char
*base
= basic_istream_char_get_basic_ios(istream
);
9277 IOSB_iostate state
= IOSTATE_failbit
;
9280 TRACE("(%p %p)\n", istream
, str
);
9282 if(basic_istream_char_sentry_create(istream
, FALSE
)) {
9283 const ctype_char
*ctype
= ctype_char_use_facet(IOS_LOCALE(base
->strbuf
));
9284 size_t count
= ios_base_width_get(&base
->base
);
9289 MSVCP_basic_string_char_clear(str
);
9291 for(c
= basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base
));
9292 c
!=EOF
&& !ctype_char_is_ch(ctype
, _SPACE
|_BLANK
, c
) && count
>0;
9293 c
= basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base
)), count
--) {
9294 state
= IOSTATE_goodbit
;
9295 MSVCP_basic_string_char_append_ch(str
, c
);
9298 basic_istream_char_sentry_destroy(istream
);
9300 ios_base_width_set(&base
->base
, 0);
9301 basic_ios_char_setstate(base
, state
| (c
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
9305 /* ??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z */
9306 /* ??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAD@Z */
9307 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAC@Z */
9308 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAC@Z */
9309 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAE@Z */
9310 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAE@Z */
9311 basic_istream_char
* __cdecl
basic_istream_char_read_str(basic_istream_char
*istream
, char *str
)
9313 basic_ios_char
*base
= basic_istream_char_get_basic_ios(istream
);
9314 IOSB_iostate state
= IOSTATE_failbit
;
9317 TRACE("(%p %p)\n", istream
, str
);
9319 if(basic_istream_char_sentry_create(istream
, FALSE
)) {
9320 const ctype_char
*ctype
= ctype_char_use_facet(IOS_LOCALE(base
->strbuf
));
9321 size_t count
= ios_base_width_get(&base
->base
)-1;
9323 for(c
= basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base
));
9324 c
!=EOF
&& !ctype_char_is_ch(ctype
, _SPACE
|_BLANK
, c
) && count
>0;
9325 c
= basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base
)), count
--) {
9326 state
= IOSTATE_goodbit
;
9330 basic_istream_char_sentry_destroy(istream
);
9333 ios_base_width_set(&base
->base
, 0);
9334 basic_ios_char_setstate(base
, state
| (c
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
9338 /* ??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAD@Z */
9339 /* ??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAD@Z */
9340 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAC@Z */
9341 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAC@Z */
9342 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAE@Z */
9343 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAE@Z */
9344 basic_istream_char
* __cdecl
basic_istream_char_read_ch(basic_istream_char
*istream
, char *ch
)
9346 IOSB_iostate state
= IOSTATE_failbit
;
9349 TRACE("(%p %p)\n", istream
, ch
);
9351 if(basic_istream_char_sentry_create(istream
, FALSE
)) {
9352 c
= basic_streambuf_char_sbumpc(basic_ios_char_rdbuf_get(
9353 basic_istream_char_get_basic_ios(istream
)));
9355 state
= IOSTATE_goodbit
;
9359 basic_istream_char_sentry_destroy(istream
);
9361 basic_ios_char_setstate(basic_istream_char_get_basic_ios(istream
),
9362 state
| (c
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
9366 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
9367 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
9368 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_streambuf
, 8)
9369 basic_istream_char
* __thiscall
basic_istream_char_read_streambuf(
9370 basic_istream_char
*this, basic_streambuf_char
*streambuf
)
9372 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
9373 IOSB_iostate state
= IOSTATE_failbit
;
9376 TRACE("(%p %p)\n", this, streambuf
);
9378 if(basic_istream_char_sentry_create(this, FALSE
)) {
9379 for(c
= basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base
)); c
!=EOF
;
9380 c
= basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base
))) {
9381 state
= IOSTATE_goodbit
;
9382 if(basic_streambuf_char_sputc(streambuf
, c
) == EOF
)
9386 basic_istream_char_sentry_destroy(this);
9388 basic_ios_char_setstate(base
, state
| (c
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
9392 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
9393 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
9394 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func
, 8)
9395 basic_istream_char
* __thiscall
basic_istream_char_read_func(basic_istream_char
*this,
9396 basic_istream_char
* (__cdecl
*pfunc
)(basic_istream_char
*))
9398 TRACE("(%p %p)\n", this, pfunc
);
9403 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@DU?$char_traits@D@std@@@1@AAV21@@Z@Z */
9404 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z */
9405 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func_basic_ios
, 8)
9406 basic_istream_char
* __thiscall
basic_istream_char_read_func_basic_ios(basic_istream_char
*this,
9407 basic_ios_char
* (__cdecl
*pfunc
)(basic_ios_char
*))
9409 TRACE("(%p %p)\n", this, pfunc
);
9410 pfunc(basic_istream_char_get_basic_ios(this));
9414 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
9415 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
9416 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func_ios_base
, 8)
9417 basic_istream_char
* __thiscall
basic_istream_char_read_func_ios_base(basic_istream_char
*this,
9418 ios_base
* (__cdecl
*pfunc
)(ios_base
*))
9420 TRACE("(%p %p)\n", this, pfunc
);
9421 pfunc(&basic_istream_char_get_basic_ios(this)->base
);
9425 /* ??$?5MDU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@M@0@@Z */
9426 /* ??$?5MDU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@M@0@@Z */
9427 basic_istream_char
* __cdecl
basic_istream_char_read_complex_float(basic_istream_char
*this, complex_float
*v
)
9430 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
9432 TRACE("(%p %p)\n", this, v
);
9434 ws_basic_istream_char(this);
9435 if(basic_istream_char_peek(this) == '(') {
9437 basic_istream_char_get(this);
9438 basic_istream_char_read_float(this, &r
);
9440 if(ios_base_fail(&base
->base
))
9443 ws_basic_istream_char(this);
9444 c
= basic_istream_char_peek(this);
9447 basic_istream_char_get(this);
9448 basic_istream_char_read_float(this, &i
);
9450 if(ios_base_fail(&base
->base
))
9453 ws_basic_istream_char(this);
9454 c
= basic_istream_char_peek(this);
9455 if(c
== ')') { /* supported format: (real, imag) */
9456 basic_istream_char_get(this);
9460 basic_ios_char_setstate(base
, IOSTATE_failbit
);
9463 }else if(c
== ')') { /* supported format: (real) */
9464 basic_istream_char_get(this);
9468 basic_ios_char_setstate(base
, IOSTATE_failbit
);
9471 }else { /* supported format: real */
9472 basic_istream_char_read_float(this, &r
);
9474 if(ios_base_fail(&base
->base
))
9484 /* ??$?5NDU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@N@0@@Z */
9485 /* ??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@N@0@@Z */
9486 basic_istream_char
* __cdecl
basic_istream_char_read_complex_double(basic_istream_char
*this, complex_double
*v
)
9489 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
9491 TRACE("(%p %p)\n", this, v
);
9493 ws_basic_istream_char(this);
9494 if(basic_istream_char_peek(this) == '(') {
9496 basic_istream_char_get(this);
9497 basic_istream_char_read_double(this, &r
);
9499 if(ios_base_fail(&base
->base
))
9502 ws_basic_istream_char(this);
9503 c
= basic_istream_char_peek(this);
9506 basic_istream_char_get(this);
9507 basic_istream_char_read_double(this, &i
);
9509 if(ios_base_fail(&base
->base
))
9512 ws_basic_istream_char(this);
9513 c
= basic_istream_char_peek(this);
9514 if(c
== ')') { /* supported format: (real, imag) */
9515 basic_istream_char_get(this);
9519 basic_ios_char_setstate(base
, IOSTATE_failbit
);
9522 }else if(c
== ')') { /* supported format: (real) */
9523 basic_istream_char_get(this);
9527 basic_ios_char_setstate(base
, IOSTATE_failbit
);
9530 }else { /* supported format: real */
9531 basic_istream_char_read_double(this, &r
);
9533 if(ios_base_fail(&base
->base
))
9543 /* ??$?5ODU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@O@0@@Z */
9544 /* ??$?5ODU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@O@0@@Z */
9545 basic_istream_char
* __cdecl
basic_istream_char_read_complex_ldouble(basic_istream_char
*this, complex_double
*v
)
9548 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
9550 TRACE("(%p %p)\n", this, v
);
9552 ws_basic_istream_char(this);
9553 if(basic_istream_char_peek(this) == '(') {
9555 basic_istream_char_get(this);
9556 basic_istream_char_read_ldouble(this, &r
);
9558 if(ios_base_fail(&base
->base
))
9561 ws_basic_istream_char(this);
9562 c
= basic_istream_char_peek(this);
9565 basic_istream_char_get(this);
9566 basic_istream_char_read_ldouble(this, &i
);
9568 if(ios_base_fail(&base
->base
))
9571 ws_basic_istream_char(this);
9572 c
= basic_istream_char_peek(this);
9573 if(c
== ')') { /* supported format: (real, imag) */
9574 basic_istream_char_get(this);
9578 basic_ios_char_setstate(base
, IOSTATE_failbit
);
9581 }else if(c
== ')') { /* supported format: (real) */
9582 basic_istream_char_get(this);
9586 basic_ios_char_setstate(base
, IOSTATE_failbit
);
9589 }else { /* supported format: real */
9590 basic_istream_char_read_ldouble(this, &r
);
9592 if(ios_base_fail(&base
->base
))
9602 /* ?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXAAV12@@Z */
9603 /* ?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z */
9604 DEFINE_THISCALL_WRAPPER(basic_istream_char_swap
, 8)
9605 void __thiscall
basic_istream_char_swap(basic_istream_char
*this, basic_istream_char
*r
)
9607 TRACE("(%p %p)\n", this, r
);
9612 basic_ios_char_swap(basic_istream_char_get_basic_ios(this),
9613 basic_istream_char_get_basic_ios(r
));
9614 this->count
^= r
->count
;
9615 r
->count
^= this->count
;
9616 this->count
^= r
->count
;
9619 /* Caution: basic_istream uses virtual inheritance. */
9620 static inline basic_ios_wchar
* basic_istream_wchar_get_basic_ios(basic_istream_wchar
*this)
9622 return (basic_ios_wchar
*)((char*)this+this->vbtable
[1]);
9625 static inline basic_ios_wchar
* basic_istream_wchar_to_basic_ios(basic_istream_wchar
*ptr
)
9627 return (basic_ios_wchar
*)((char*)ptr
+basic_istream_wchar_vbtable
[1]);
9630 static inline basic_istream_wchar
* basic_istream_wchar_from_basic_ios(basic_ios_wchar
*ptr
)
9632 return (basic_istream_wchar
*)((char*)ptr
-basic_istream_wchar_vbtable
[1]);
9635 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z */
9636 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z */
9637 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ctor_init
, 20)
9638 basic_istream_wchar
* __thiscall
basic_istream_wchar_ctor_init(basic_istream_wchar
*this,
9639 basic_streambuf_wchar
*strbuf
, bool isstd
, bool noinit
, bool virt_init
)
9641 basic_ios_wchar
*base
;
9643 TRACE("(%p %p %d %d %d)\n", this, strbuf
, isstd
, noinit
, virt_init
);
9646 this->vbtable
= basic_istream_wchar_vbtable
;
9647 base
= basic_istream_wchar_get_basic_ios(this);
9648 INIT_BASIC_IOS_VTORDISP(base
);
9649 basic_ios_wchar_ctor(base
);
9651 base
= basic_istream_wchar_get_basic_ios(this);
9654 base
->base
.vtable
= &basic_istream_wchar_vtable
;
9657 basic_ios_wchar_init(base
, strbuf
, isstd
);
9661 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z */
9662 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z */
9663 DEFINE_THISCALL_WRAPPER(basic_istream_short_ctor_init
, 20)
9664 basic_istream_wchar
* __thiscall
basic_istream_short_ctor_init(basic_istream_wchar
*this,
9665 basic_streambuf_wchar
*strbuf
, bool isstd
, bool noinit
, bool virt_init
)
9667 basic_istream_wchar_ctor_init(this, strbuf
, isstd
, noinit
, virt_init
);
9668 basic_istream_wchar_get_basic_ios(this)->base
.vtable
= &basic_istream_short_vtable
;
9672 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
9673 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
9674 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ctor
, 16)
9675 basic_istream_wchar
* __thiscall
basic_istream_wchar_ctor(basic_istream_wchar
*this,
9676 basic_streambuf_wchar
*strbuf
, bool isstd
, bool virt_init
)
9678 return basic_istream_wchar_ctor_init(this, strbuf
, isstd
, FALSE
, virt_init
);
9681 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
9682 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
9683 DEFINE_THISCALL_WRAPPER(basic_istream_short_ctor
, 16)
9684 basic_istream_wchar
* __thiscall
basic_istream_short_ctor(basic_istream_wchar
*this,
9685 basic_streambuf_wchar
*strbuf
, bool isstd
, bool virt_init
)
9687 return basic_istream_short_ctor_init(this, strbuf
, isstd
, FALSE
, virt_init
);
9690 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@@Z */
9691 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
9692 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ctor_uninitialized
, 12)
9693 basic_istream_wchar
* __thiscall
basic_istream_wchar_ctor_uninitialized(
9694 basic_istream_wchar
*this, int uninitialized
, bool virt_init
)
9696 basic_ios_wchar
*base
;
9698 TRACE("(%p %d %d)\n", this, uninitialized
, virt_init
);
9701 this->vbtable
= basic_istream_wchar_vbtable
;
9702 base
= basic_istream_wchar_get_basic_ios(this);
9703 INIT_BASIC_IOS_VTORDISP(base
);
9704 basic_ios_wchar_ctor(base
);
9706 base
= basic_istream_wchar_get_basic_ios(this);
9709 base
->base
.vtable
= &basic_istream_wchar_vtable
;
9710 ios_base_Addstd(&base
->base
);
9714 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */
9715 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
9716 DEFINE_THISCALL_WRAPPER(basic_istream_short_ctor_uninitialized
, 12)
9717 basic_istream_wchar
* __thiscall
basic_istream_short_ctor_uninitialized(
9718 basic_istream_wchar
*this, int uninitialized
, bool virt_init
)
9720 basic_istream_wchar_ctor_uninitialized(this, uninitialized
, virt_init
);
9721 basic_istream_wchar_get_basic_ios(this)->base
.vtable
= &basic_istream_short_vtable
;
9725 /* ??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
9726 /* ??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
9727 /* ??1?$basic_istream@GU?$char_traits@G@std@@@std@@UAE@XZ */
9728 /* ??1?$basic_istream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
9729 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_dtor
, 4)
9730 void __thiscall
basic_istream_wchar_dtor(basic_ios_wchar
*base
)
9732 basic_istream_wchar
*this = basic_istream_wchar_from_basic_ios(base
);
9734 /* don't destroy virtual base here */
9735 TRACE("(%p)\n", this);
9738 /* ??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
9739 /* ??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
9740 /* ??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXXZ */
9741 /* ??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
9742 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_vbase_dtor
, 4)
9743 void __thiscall
basic_istream_wchar_vbase_dtor(basic_istream_wchar
*this)
9745 basic_ios_wchar
*base
= basic_istream_wchar_to_basic_ios(this);
9747 TRACE("(%p)\n", this);
9749 basic_istream_wchar_dtor(base
);
9750 basic_ios_wchar_dtor(base
);
9753 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_vector_dtor
, 8)
9754 basic_istream_wchar
* __thiscall
basic_istream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
9756 basic_istream_wchar
*this = basic_istream_wchar_from_basic_ios(base
);
9758 TRACE("(%p %x)\n", this, flags
);
9761 /* we have an array, with the number of elements stored before the first object */
9762 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
9764 for(i
=*ptr
-1; i
>=0; i
--)
9765 basic_istream_wchar_vbase_dtor(this+i
);
9766 operator_delete(ptr
);
9768 basic_istream_wchar_vbase_dtor(this);
9770 operator_delete(this);
9776 /* ?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE_N_N@Z */
9777 /* ?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z */
9778 /* ?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE_N_N@Z */
9779 /* ?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z */
9780 DEFINE_THISCALL_WRAPPER(basic_istream_wchar__Ipfx
, 8)
9781 bool __thiscall
basic_istream_wchar__Ipfx(basic_istream_wchar
*this, bool noskip
)
9783 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9785 TRACE("(%p %d)\n", this, noskip
);
9787 if(ios_base_good(&base
->base
)) {
9788 if(basic_ios_wchar_tie_get(base
))
9789 basic_ostream_wchar_flush(basic_ios_wchar_tie_get(base
));
9791 if(!noskip
&& (ios_base_flags_get(&base
->base
) & FMTFLAG_skipws
)) {
9792 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
9793 const ctype_wchar
*ctype
= ctype_wchar_use_facet(IOS_LOCALE(base
->strbuf
));
9796 for(ch
= basic_streambuf_wchar_sgetc(strbuf
); ;
9797 ch
= basic_streambuf_wchar_snextc(strbuf
)) {
9799 basic_ios_wchar_setstate(base
, IOSTATE_eofbit
);
9803 if(!ctype_wchar_is_ch(ctype
, _SPACE
|_BLANK
, ch
))
9809 if(!ios_base_good(&base
->base
)) {
9810 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
9816 /* ?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE_N_N@Z */
9817 /* ?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z */
9818 /* ?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE_N_N@Z */
9819 /* ?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z */
9820 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ipfx
, 8)
9821 bool __thiscall
basic_istream_wchar_ipfx(basic_istream_wchar
*this, bool noskip
)
9823 return basic_istream_wchar__Ipfx(this, noskip
);
9826 /* ?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
9827 /* ?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
9828 /* ?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXXZ */
9829 /* ?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
9830 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_isfx
, 4)
9831 void __thiscall
basic_istream_wchar_isfx(basic_istream_wchar
*this)
9833 TRACE("(%p)\n", this);
9836 static BOOL
basic_istream_wchar_sentry_create(basic_istream_wchar
*istr
, bool noskip
)
9838 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(istr
);
9840 if(basic_ios_wchar_rdbuf_get(base
))
9841 basic_streambuf_wchar__Lock(base
->strbuf
);
9843 return basic_istream_wchar_ipfx(istr
, noskip
);
9846 static void basic_istream_wchar_sentry_destroy(basic_istream_wchar
*istr
)
9848 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(istr
);
9850 if(basic_ios_wchar_rdbuf_get(base
))
9851 basic_streambuf_wchar__Unlock(base
->strbuf
);
9854 /* ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QBEHXZ */
9855 /* ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEBA_JXZ */
9856 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QBEHXZ */
9857 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QEBA_JXZ */
9858 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QBA_JXZ */
9859 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QBE_JXZ */
9860 /* ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QBA_JXZ */
9861 /* ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QBE_JXZ */
9862 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_gcount
, 4)
9863 streamsize __thiscall
basic_istream_wchar_gcount(const basic_istream_wchar
*this)
9865 TRACE("(%p)\n", this);
9869 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
9870 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
9871 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEGXZ */
9872 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ */
9873 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get
, 4)
9874 unsigned short __thiscall
basic_istream_wchar_get(basic_istream_wchar
*this)
9876 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9879 TRACE("(%p)\n", this);
9883 if(!basic_istream_wchar_sentry_create(this, TRUE
)) {
9884 basic_istream_wchar_sentry_destroy(this);
9888 ret
= basic_streambuf_wchar_sbumpc(basic_ios_wchar_rdbuf_get(base
));
9889 basic_istream_wchar_sentry_destroy(this);
9891 basic_ios_wchar_setstate(base
, IOSTATE_eofbit
|IOSTATE_failbit
);
9898 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AA_W@Z */
9899 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEA_W@Z */
9900 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAG@Z */
9901 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAG@Z */
9902 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_ch
, 8)
9903 basic_istream_wchar
* __thiscall
basic_istream_wchar_get_ch(basic_istream_wchar
*this, wchar_t *ch
)
9907 TRACE("(%p %p)\n", this, ch
);
9909 ret
= basic_istream_wchar_get(this);
9915 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH_W@Z */
9916 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z */
9917 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGHG@Z */
9918 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z */
9919 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
9920 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_str_delim
, 20)
9922 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_str_delim
, 16)
9924 basic_istream_wchar
* __thiscall
basic_istream_wchar_get_str_delim(basic_istream_wchar
*this, wchar_t *str
, streamsize count
, wchar_t delim
)
9926 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9927 unsigned short ch
= delim
;
9929 TRACE("(%p %p %s %s)\n", this, str
, wine_dbgstr_longlong(count
), debugstr_wn(&delim
, 1));
9933 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
9934 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
9936 for(ch
= basic_streambuf_wchar_sgetc(strbuf
); count
>1;
9937 ch
= basic_streambuf_wchar_snextc(strbuf
)) {
9938 if(ch
==WEOF
|| ch
==delim
)
9946 basic_istream_wchar_sentry_destroy(this);
9948 basic_ios_wchar_setstate(base
, (!this->count
? IOSTATE_failbit
: IOSTATE_goodbit
) |
9949 (ch
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
9955 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
9956 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
9957 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
9958 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
9959 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
9960 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_str
, 16)
9962 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_str
, 12)
9964 basic_istream_wchar
* __thiscall
basic_istream_wchar_get_str(basic_istream_wchar
*this, wchar_t *str
, streamsize count
)
9966 return basic_istream_wchar_get_str_delim(this, str
, count
, '\n');
9969 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z */
9970 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z */
9971 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAV?$basic_streambuf@GU?$char_traits@G@std@@@2@G@Z */
9972 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@G@Z */
9973 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_streambuf_delim
, 12)
9974 basic_istream_wchar
* __thiscall
basic_istream_wchar_get_streambuf_delim(basic_istream_wchar
*this, basic_streambuf_wchar
*strbuf
, wchar_t delim
)
9976 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9977 unsigned short ch
= delim
;
9979 TRACE("(%p %p %s)\n", this, strbuf
, debugstr_wn(&delim
, 1));
9983 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
9984 basic_streambuf_wchar
*strbuf_read
= basic_ios_wchar_rdbuf_get(base
);
9986 for(ch
= basic_streambuf_wchar_sgetc(strbuf_read
); ;
9987 ch
= basic_streambuf_wchar_snextc(strbuf_read
)) {
9988 if(ch
==WEOF
|| ch
==delim
)
9991 if(basic_streambuf_wchar_sputc(strbuf
, ch
) == WEOF
)
9996 basic_istream_wchar_sentry_destroy(this);
9998 basic_ios_wchar_setstate(base
, (!this->count
? IOSTATE_failbit
: IOSTATE_goodbit
) |
9999 (ch
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
10003 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z */
10004 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z */
10005 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z */
10006 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z */
10007 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_streambuf
, 8)
10008 basic_istream_wchar
* __thiscall
basic_istream_wchar_get_streambuf(basic_istream_wchar
*this, basic_streambuf_wchar
*strbuf
)
10010 return basic_istream_wchar_get_streambuf_delim(this, strbuf
, '\n');
10013 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH_W@Z */
10014 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z */
10015 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGHG@Z */
10016 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z */
10017 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
10018 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_getline_delim
, 20)
10020 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_getline_delim
, 16)
10022 basic_istream_wchar
* __thiscall
basic_istream_wchar_getline_delim(basic_istream_wchar
*this, wchar_t *str
, streamsize count
, wchar_t delim
)
10024 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10025 unsigned short ch
= delim
;
10027 TRACE("(%p %p %s %s)\n", this, str
, wine_dbgstr_longlong(count
), debugstr_wn(&delim
, 1));
10031 if(basic_istream_wchar_sentry_create(this, TRUE
) && count
>0) {
10032 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10035 ch
= basic_streambuf_wchar_sbumpc(strbuf
);
10037 if(ch
==WEOF
|| ch
==delim
)
10047 else if(ch
!= WEOF
) {
10048 ch
= basic_streambuf_wchar_sgetc(strbuf
);
10051 basic_streambuf_wchar__Gninc(strbuf
);
10056 basic_istream_wchar_sentry_destroy(this);
10058 basic_ios_wchar_setstate(base
, (ch
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
) |
10059 (!this->count
|| (ch
!=delim
&& ch
!=WEOF
) ? IOSTATE_failbit
: IOSTATE_goodbit
));
10065 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
10066 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
10067 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
10068 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
10069 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
10070 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_getline
, 16)
10072 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_getline
, 12)
10074 basic_istream_wchar
* __thiscall
basic_istream_wchar_getline(basic_istream_wchar
*this, wchar_t *str
, streamsize count
)
10076 return basic_istream_wchar_getline_delim(this, str
, count
, '\n');
10079 /* ?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@HG@Z */
10080 /* ?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JG@Z */
10081 /* ?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@HG@Z */
10082 /* ?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JG@Z */
10083 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
10084 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ignore
, 16)
10086 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ignore
, 12)
10088 basic_istream_wchar
* __thiscall
basic_istream_wchar_ignore(basic_istream_wchar
*this, streamsize count
, unsigned short delim
)
10090 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10091 unsigned short ch
= delim
;
10092 unsigned int state
;
10094 TRACE("(%p %s %d)\n", this, wine_dbgstr_longlong(count
), delim
);
10098 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
10099 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10100 state
= IOSTATE_goodbit
;
10103 ch
= basic_streambuf_wchar_sbumpc(strbuf
);
10106 state
= IOSTATE_eofbit
;
10114 if(count
!= INT_MAX
)
10118 state
= IOSTATE_failbit
;
10119 basic_istream_wchar_sentry_destroy(this);
10121 basic_ios_wchar_setstate(base
, state
);
10125 /* ?ws@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
10126 /* ?ws@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
10127 /* ?ws@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@1@AAV21@@Z */
10128 /* ?ws@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
10129 basic_istream_wchar
* __cdecl
ws_basic_istream_wchar(basic_istream_wchar
*istream
)
10131 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(istream
);
10132 unsigned short ch
= '\n';
10134 TRACE("(%p)\n", istream
);
10136 if(basic_istream_wchar_sentry_create(istream
, TRUE
)) {
10137 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10138 const ctype_wchar
*ctype
= ctype_wchar_use_facet(IOS_LOCALE(strbuf
));
10140 for(ch
= basic_streambuf_wchar_sgetc(strbuf
); ctype_wchar_is_ch(ctype
, _SPACE
, ch
);
10141 ch
= basic_streambuf_wchar_snextc(strbuf
)) {
10146 basic_istream_wchar_sentry_destroy(istream
);
10149 basic_ios_wchar_setstate(base
, IOSTATE_eofbit
);
10153 /* ?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
10154 /* ?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
10155 /* ?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEGXZ */
10156 /* ?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ */
10157 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_peek
, 4)
10158 unsigned short __thiscall
basic_istream_wchar_peek(basic_istream_wchar
*this)
10160 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10161 unsigned short ret
= WEOF
;
10163 TRACE("(%p)\n", this);
10167 if(basic_istream_wchar_sentry_create(this, TRUE
))
10168 ret
= basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base
));
10169 basic_istream_wchar_sentry_destroy(this);
10172 basic_ios_wchar_setstate(base
, IOSTATE_eofbit
);
10177 /* ?_Read_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WIH@Z */
10178 /* ?_Read_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_K_J@Z */
10179 /* ?_Read_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGIH@Z */
10180 /* ?_Read_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_K_J@Z */
10181 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
10182 DEFINE_THISCALL_WRAPPER(basic_istream_wchar__Read_s
, 20)
10184 DEFINE_THISCALL_WRAPPER(basic_istream_wchar__Read_s
, 16)
10186 basic_istream_wchar
* __thiscall
basic_istream_wchar__Read_s(basic_istream_wchar
*this, wchar_t *str
, size_t size
, streamsize count
)
10188 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10189 IOSB_iostate state
= IOSTATE_goodbit
;
10191 TRACE("(%p %p %Iu %s)\n", this, str
, size
, wine_dbgstr_longlong(count
));
10193 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
10194 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10196 this->count
= basic_streambuf_wchar__Sgetn_s(strbuf
, str
, size
, count
);
10197 if(this->count
!= count
)
10198 state
|= IOSTATE_failbit
| IOSTATE_eofbit
;
10202 basic_istream_wchar_sentry_destroy(this);
10204 basic_ios_wchar_setstate(base
, state
);
10208 /* ?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
10209 /* ?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
10210 /* ?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
10211 /* ?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
10212 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
10213 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read
, 16)
10215 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read
, 12)
10217 basic_istream_wchar
* __thiscall
basic_istream_wchar_read(basic_istream_wchar
*this, wchar_t *str
, streamsize count
)
10219 return basic_istream_wchar__Read_s(this, str
, -1, count
);
10222 /* ?_Readsome_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHPA_WIH@Z */
10223 /* ?_Readsome_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_K_J@Z */
10224 /* ?_Readsome_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHPAGIH@Z */
10225 /* ?_Readsome_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_K_J@Z */
10226 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
10227 DEFINE_THISCALL_WRAPPER(basic_istream_wchar__Readsome_s
, 20)
10229 DEFINE_THISCALL_WRAPPER(basic_istream_wchar__Readsome_s
, 16)
10231 streamsize __thiscall
basic_istream_wchar__Readsome_s(basic_istream_wchar
*this, wchar_t *str
, size_t size
, streamsize count
)
10233 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10234 IOSB_iostate state
= IOSTATE_goodbit
;
10236 TRACE("(%p %p %Iu %s)\n", this, str
, size
, wine_dbgstr_longlong(count
));
10240 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
10241 streamsize avail
= basic_streambuf_wchar_in_avail(basic_ios_wchar_rdbuf_get(base
));
10246 state
|= IOSTATE_eofbit
;
10248 basic_istream_wchar__Read_s(this, str
, size
, avail
);
10250 state
|= IOSTATE_failbit
;
10252 basic_istream_wchar_sentry_destroy(this);
10254 basic_ios_wchar_setstate(base
, state
);
10255 return this->count
;
10258 /* ?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHPA_WH@Z */
10259 /* ?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z */
10260 /* ?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHPAGH@Z */
10261 /* ?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z */
10262 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
10263 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_readsome
, 16)
10265 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_readsome
, 12)
10267 streamsize __thiscall
basic_istream_wchar_readsome(basic_istream_wchar
*this, wchar_t *str
, streamsize count
)
10269 return basic_istream_wchar__Readsome_s(this, str
, count
, count
);
10272 /* ?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@_W@Z */
10273 /* ?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z */
10274 /* ?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@G@Z */
10275 /* ?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z */
10276 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_putback
, 8)
10277 basic_istream_wchar
* __thiscall
basic_istream_wchar_putback(basic_istream_wchar
*this, wchar_t ch
)
10279 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10280 IOSB_iostate state
= IOSTATE_goodbit
;
10282 TRACE("(%p %c)\n", this, ch
);
10286 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
10287 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10289 if(!ios_base_good(&base
->base
))
10290 state
|= IOSTATE_failbit
;
10291 else if(!strbuf
|| basic_streambuf_wchar_sputbackc(strbuf
, ch
)==WEOF
)
10292 state
|= IOSTATE_badbit
;
10294 basic_istream_wchar_sentry_destroy(this);
10296 basic_ios_wchar_setstate(base
, state
);
10300 /* ?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ */
10301 /* ?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ */
10302 /* ?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@XZ */
10303 /* ?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ */
10304 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_unget
, 4)
10305 basic_istream_wchar
* __thiscall
basic_istream_wchar_unget(basic_istream_wchar
*this)
10307 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10308 IOSB_iostate state
= IOSTATE_goodbit
;
10310 TRACE("(%p)\n", this);
10314 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
10315 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10317 if(!ios_base_good(&base
->base
))
10318 state
|= IOSTATE_failbit
;
10319 else if(!strbuf
|| basic_streambuf_wchar_sungetc(strbuf
)==WEOF
)
10320 state
|= IOSTATE_badbit
;
10322 basic_istream_wchar_sentry_destroy(this);
10324 basic_ios_wchar_setstate(base
, state
);
10328 /* ?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
10329 /* ?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAHXZ */
10330 /* ?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHXZ */
10331 /* ?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAHXZ */
10332 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_sync
, 4)
10333 int __thiscall
basic_istream_wchar_sync(basic_istream_wchar
*this)
10335 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10336 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10338 TRACE("(%p)\n", this);
10343 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
10344 if(basic_streambuf_wchar_pubsync(strbuf
) != -1) {
10345 basic_istream_wchar_sentry_destroy(this);
10349 basic_istream_wchar_sentry_destroy(this);
10351 basic_ios_wchar_setstate(base
, IOSTATE_badbit
);
10355 /* ?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@XZ */
10356 /* ?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
10357 /* ?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@XZ */
10358 /* ?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
10359 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_tellg
, 8)
10360 fpos_mbstatet
* __thiscall
basic_istream_wchar_tellg(basic_istream_wchar
*this, fpos_mbstatet
*ret
)
10362 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10364 TRACE("(%p %p)\n", this, ret
);
10366 #if _MSVCP_VER >= 110
10367 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
10368 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base
),
10369 ret
, 0, SEEKDIR_cur
, OPENMODE_in
);
10373 memset(&ret
->state
, 0, sizeof(ret
->state
));
10375 basic_istream_wchar_sentry_destroy(this);
10377 if(ios_base_fail(&base
->base
)) {
10380 memset(&ret
->state
, 0, sizeof(ret
->state
));
10384 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base
),
10385 ret
, 0, SEEKDIR_cur
, OPENMODE_in
);
10390 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@JW4seekdir@ios_base@2@@Z */
10391 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JW4seekdir@ios_base@2@@Z */
10392 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@JH@Z */
10393 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z */
10394 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@JH@Z */
10395 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z */
10396 #if STREAMOFF_BITS == 64
10397 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_seekg
, 16)
10399 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_seekg
, 12)
10401 basic_istream_wchar
* __thiscall
basic_istream_wchar_seekg(basic_istream_wchar
*this, streamoff off
, int dir
)
10403 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10404 #if _MSVCP_VER >= 110
10405 IOSB_iostate state
;
10407 TRACE("(%p %s %d)\n", this, wine_dbgstr_longlong(off
), dir
);
10409 state
= ios_base_rdstate(&base
->base
);
10410 ios_base_clear(&base
->base
, state
& ~IOSTATE_eofbit
);
10412 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
10413 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10416 basic_streambuf_wchar_pubseekoff(strbuf
, &ret
, off
, dir
, OPENMODE_in
);
10418 if(ret
.off
==-1 && ret
.pos
==0 && MBSTATET_TO_INT(&ret
.state
)==0)
10419 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
10421 basic_istream_wchar_sentry_destroy(this);
10423 TRACE("(%p %s %d)\n", this, wine_dbgstr_longlong(off
), dir
);
10425 if(!ios_base_fail(&base
->base
)) {
10426 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10429 basic_streambuf_wchar_pubseekoff(strbuf
, &ret
, off
, dir
, OPENMODE_in
);
10431 if(ret
.off
==-1 && ret
.pos
==0 && MBSTATET_TO_INT(&ret
.state
)==0)
10432 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
10434 basic_ios_wchar_clear(base
, IOSTATE_goodbit
);
10437 basic_ios_wchar_clear(base
, IOSTATE_goodbit
);
10442 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
10443 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
10444 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
10445 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
10446 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_seekg_fpos
, 28)
10447 basic_istream_wchar
* __thiscall
basic_istream_wchar_seekg_fpos(basic_istream_wchar
*this, fpos_mbstatet pos
)
10449 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10450 #if _MSVCP_VER >= 110
10451 IOSB_iostate state
;
10453 TRACE("(%p %s)\n", this, debugstr_fpos_mbstatet(&pos
));
10455 state
= ios_base_rdstate(&base
->base
);
10456 ios_base_clear(&base
->base
, state
& ~IOSTATE_eofbit
);
10458 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
10459 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10462 basic_streambuf_wchar_pubseekpos(strbuf
, &ret
, pos
, OPENMODE_in
);
10464 if(ret
.off
==-1 && ret
.pos
==0 && MBSTATET_TO_INT(&ret
.state
)==0)
10465 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
10467 basic_istream_wchar_sentry_destroy(this);
10469 TRACE("(%p %s)\n", this, debugstr_fpos_mbstatet(&pos
));
10471 if(!ios_base_fail(&base
->base
)) {
10472 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10475 basic_streambuf_wchar_pubseekpos(strbuf
, &ret
, pos
, OPENMODE_in
);
10477 if(ret
.off
==-1 && ret
.pos
==0 && MBSTATET_TO_INT(&ret
.state
)==0)
10478 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
10480 basic_ios_wchar_clear(base
, IOSTATE_goodbit
);
10483 basic_ios_wchar_clear(base
, IOSTATE_goodbit
);
10488 static basic_istream_wchar
* basic_istream_read_short(basic_istream_wchar
*this, short *v
, const num_get
*numget
)
10490 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10491 int state
= IOSTATE_goodbit
;
10493 TRACE("(%p %p)\n", this, v
);
10495 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
10496 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10497 istreambuf_iterator_wchar first
={0}, last
={0};
10500 first
.strbuf
= strbuf
;
10501 num_get_wchar_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, &tmp
);
10503 if(!(state
&IOSTATE_failbit
) && tmp
==(LONG
)((short)tmp
))
10506 state
|= IOSTATE_failbit
;
10508 basic_istream_wchar_sentry_destroy(this);
10510 basic_ios_wchar_setstate(base
, state
);
10514 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAF@Z */
10515 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAF@Z */
10516 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_short
, 8)
10517 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_short(basic_istream_wchar
*this, short *v
)
10519 return basic_istream_read_short(this, v
, num_get_wchar_use_facet(
10520 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10523 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAF@Z */
10524 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAF@Z */
10525 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_short
, 8)
10526 basic_istream_wchar
* __thiscall
basic_istream_short_read_short(basic_istream_wchar
*this, short *v
)
10528 return basic_istream_read_short(this, v
, num_get_short_use_facet(
10529 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10532 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAG@Z */
10533 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAG@Z */
10534 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ushort
, 8)
10535 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_ushort(basic_istream_wchar
*this, unsigned short *v
)
10537 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10538 int state
= IOSTATE_goodbit
;
10540 TRACE("(%p %p)\n", this, v
);
10542 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
10543 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10544 const num_get
*numget
= num_get_wchar_use_facet(IOS_LOCALE(strbuf
));
10545 istreambuf_iterator_wchar first
={0}, last
={0};
10547 first
.strbuf
= strbuf
;
10548 num_get_wchar_get_ushort(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
10550 basic_istream_wchar_sentry_destroy(this);
10552 basic_ios_wchar_setstate(base
, state
);
10556 static basic_istream_wchar
* basic_istream_read_int(basic_istream_wchar
*this, int *v
, const num_get
*numget
)
10558 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10559 int state
= IOSTATE_goodbit
;
10561 TRACE("(%p %p)\n", this, v
);
10563 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
10564 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10565 istreambuf_iterator_wchar first
={0}, last
={0};
10567 first
.strbuf
= strbuf
;
10568 num_get_wchar_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, (LONG
*)v
);
10570 basic_istream_wchar_sentry_destroy(this);
10572 basic_ios_wchar_setstate(base
, state
);
10576 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAH@Z */
10577 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAH@Z */
10578 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_int
, 8)
10579 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_int(basic_istream_wchar
*this, int *v
)
10581 return basic_istream_read_int(this, v
, num_get_wchar_use_facet(
10582 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10585 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAH@Z */
10586 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAH@Z */
10587 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_int
, 8)
10588 basic_istream_wchar
* __thiscall
basic_istream_short_read_int(basic_istream_wchar
*this, int *v
)
10590 return basic_istream_read_int(this, v
, num_get_short_use_facet(
10591 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10594 static basic_istream_wchar
* basic_istream_read_uint(basic_istream_wchar
*this, unsigned int *v
, const num_get
*numget
)
10596 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10597 int state
= IOSTATE_goodbit
;
10599 TRACE("(%p %p)\n", this, v
);
10601 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
10602 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10603 istreambuf_iterator_wchar first
={0}, last
={0};
10605 first
.strbuf
= strbuf
;
10606 num_get_wchar_get_uint(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
10608 basic_istream_wchar_sentry_destroy(this);
10610 basic_ios_wchar_setstate(base
, state
);
10614 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAI@Z */
10615 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAI@Z */
10616 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_uint
, 8)
10617 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_uint(basic_istream_wchar
*this, unsigned int *v
)
10619 return basic_istream_read_uint(this, v
, num_get_wchar_use_facet(
10620 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10623 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAI@Z */
10624 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAI@Z */
10625 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_uint
, 8)
10626 basic_istream_wchar
* __thiscall
basic_istream_short_read_uint(basic_istream_wchar
*this, unsigned int *v
)
10628 return basic_istream_read_uint(this, v
, num_get_short_use_facet(
10629 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10632 static basic_istream_wchar
* basic_istream_read_long(basic_istream_wchar
*this, LONG
*v
, const num_get
*numget
)
10634 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10635 int state
= IOSTATE_goodbit
;
10637 TRACE("(%p %p)\n", this, v
);
10639 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
10640 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10641 istreambuf_iterator_wchar first
={0}, last
={0};
10643 first
.strbuf
= strbuf
;
10644 num_get_wchar_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
10646 basic_istream_wchar_sentry_destroy(this);
10648 basic_ios_wchar_setstate(base
, state
);
10652 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAJ@Z */
10653 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAJ@Z */
10654 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_long
, 8)
10655 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_long(basic_istream_wchar
*this, LONG
*v
)
10657 return basic_istream_read_long(this, v
, num_get_wchar_use_facet(
10658 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10661 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAJ@Z */
10662 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAJ@Z */
10663 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_long
, 8)
10664 basic_istream_wchar
* __thiscall
basic_istream_short_read_long(basic_istream_wchar
*this, LONG
*v
)
10666 return basic_istream_read_long(this, v
, num_get_short_use_facet(
10667 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10670 static basic_istream_wchar
* basic_istream_read_ulong(basic_istream_wchar
*this, ULONG
*v
, const num_get
*numget
)
10672 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10673 int state
= IOSTATE_goodbit
;
10675 TRACE("(%p %p)\n", this, v
);
10677 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
10678 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10679 istreambuf_iterator_wchar first
={0}, last
={0};
10681 first
.strbuf
= strbuf
;
10682 num_get_wchar_get_ulong(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
10684 basic_istream_wchar_sentry_destroy(this);
10686 basic_ios_wchar_setstate(base
, state
);
10690 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAK@Z */
10691 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAK@Z */
10692 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ulong
, 8)
10693 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_ulong(basic_istream_wchar
*this, ULONG
*v
)
10695 return basic_istream_read_ulong(this, v
, num_get_wchar_use_facet(
10696 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10699 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAK@Z */
10700 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAK@Z */
10701 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ulong
, 8)
10702 basic_istream_wchar
* __thiscall
basic_istream_short_read_ulong(basic_istream_wchar
*this, ULONG
*v
)
10704 return basic_istream_read_ulong(this, v
, num_get_short_use_facet(
10705 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10708 static basic_istream_wchar
* basic_istream_read_float(basic_istream_wchar
*this, float *v
, const num_get
*numget
)
10710 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10711 int state
= IOSTATE_goodbit
;
10713 TRACE("(%p %p)\n", this, v
);
10715 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
10716 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10717 istreambuf_iterator_wchar first
={0}, last
={0};
10719 first
.strbuf
= strbuf
;
10720 num_get_wchar_get_float(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
10722 basic_istream_wchar_sentry_destroy(this);
10724 basic_ios_wchar_setstate(base
, state
);
10728 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAM@Z */
10729 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAM@Z */
10730 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_float
, 8)
10731 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_float(basic_istream_wchar
*this, float *v
)
10733 return basic_istream_read_float(this, v
, num_get_wchar_use_facet(
10734 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10737 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAM@Z */
10738 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAM@Z */
10739 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_float
, 8)
10740 basic_istream_wchar
* __thiscall
basic_istream_short_read_float(basic_istream_wchar
*this, float *v
)
10742 return basic_istream_read_float(this, v
, num_get_short_use_facet(
10743 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10746 static basic_istream_wchar
* basic_istream_read_double(basic_istream_wchar
*this, double *v
, const num_get
*numget
)
10748 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10749 int state
= IOSTATE_goodbit
;
10751 TRACE("(%p %p)\n", this, v
);
10753 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
10754 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10755 istreambuf_iterator_wchar first
={0}, last
={0};
10757 first
.strbuf
= strbuf
;
10758 num_get_wchar_get_double(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
10760 basic_istream_wchar_sentry_destroy(this);
10762 basic_ios_wchar_setstate(base
, state
);
10766 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAN@Z */
10767 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAN@Z */
10768 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_double
, 8)
10769 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_double(basic_istream_wchar
*this, double *v
)
10771 return basic_istream_read_double(this, v
, num_get_wchar_use_facet(
10772 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10775 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAN@Z */
10776 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAN@Z */
10777 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_double
, 8)
10778 basic_istream_wchar
* __thiscall
basic_istream_short_read_double(basic_istream_wchar
*this, double *v
)
10780 return basic_istream_read_double(this, v
, num_get_short_use_facet(
10781 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10784 static basic_istream_wchar
* basic_istream_read_ldouble(basic_istream_wchar
*this, double *v
, const num_get
*numget
)
10786 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10787 int state
= IOSTATE_goodbit
;
10789 TRACE("(%p %p)\n", this, v
);
10791 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
10792 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10793 istreambuf_iterator_wchar first
={0}, last
={0};
10795 first
.strbuf
= strbuf
;
10796 num_get_wchar_get_ldouble(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
10798 basic_istream_wchar_sentry_destroy(this);
10800 basic_ios_wchar_setstate(base
, state
);
10804 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAO@Z */
10805 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAO@Z */
10806 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ldouble
, 8)
10807 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_ldouble(basic_istream_wchar
*this, double *v
)
10809 return basic_istream_read_ldouble(this, v
, num_get_wchar_use_facet(
10810 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10813 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAO@Z */
10814 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAO@Z */
10815 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ldouble
, 8)
10816 basic_istream_wchar
* __thiscall
basic_istream_short_read_ldouble(basic_istream_wchar
*this, double *v
)
10818 return basic_istream_read_ldouble(this, v
, num_get_short_use_facet(
10819 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10822 static basic_istream_wchar
* basic_istream_read_ptr(basic_istream_wchar
*this, void **v
, const num_get
*numget
)
10824 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10825 int state
= IOSTATE_goodbit
;
10827 TRACE("(%p %p)\n", this, v
);
10829 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
10830 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10831 istreambuf_iterator_wchar first
={0}, last
={0};
10833 first
.strbuf
= strbuf
;
10834 num_get_wchar_get_void(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
10836 basic_istream_wchar_sentry_destroy(this);
10838 basic_ios_wchar_setstate(base
, state
);
10842 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAPAX@Z */
10843 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
10844 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ptr
, 8)
10845 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_ptr(basic_istream_wchar
*this, void **v
)
10847 return basic_istream_read_ptr(this, v
, num_get_wchar_use_facet(
10848 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10851 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAPAX@Z */
10852 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
10853 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ptr
, 8)
10854 basic_istream_wchar
* __thiscall
basic_istream_short_read_ptr(basic_istream_wchar
*this, void **v
)
10856 return basic_istream_read_ptr(this, v
, num_get_short_use_facet(
10857 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10860 static basic_istream_wchar
* basic_istream_read_int64(basic_istream_wchar
*this, __int64
*v
, const num_get
*numget
)
10862 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10863 int state
= IOSTATE_goodbit
;
10865 TRACE("(%p %p)\n", this, v
);
10867 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
10868 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10869 istreambuf_iterator_wchar first
={0}, last
={0};
10871 first
.strbuf
= strbuf
;
10872 num_get_wchar_get_int64(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
10874 basic_istream_wchar_sentry_destroy(this);
10876 basic_ios_wchar_setstate(base
, state
);
10880 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_J@Z */
10881 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_J@Z */
10882 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_int64
, 8)
10883 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_int64(basic_istream_wchar
*this, __int64
*v
)
10885 return basic_istream_read_int64(this, v
, num_get_wchar_use_facet(
10886 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10889 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_J@Z */
10890 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_J@Z */
10891 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_int64
, 8)
10892 basic_istream_wchar
* __thiscall
basic_istream_short_read_int64(basic_istream_wchar
*this, __int64
*v
)
10894 return basic_istream_read_int64(this, v
, num_get_short_use_facet(
10895 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10898 static basic_istream_wchar
* basic_istream_read_uint64(basic_istream_wchar
*this, unsigned __int64
*v
, const num_get
*numget
)
10900 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10901 int state
= IOSTATE_goodbit
;
10903 TRACE("(%p %p)\n", this, v
);
10905 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
10906 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10907 istreambuf_iterator_wchar first
={0}, last
={0};
10909 first
.strbuf
= strbuf
;
10910 num_get_wchar_get_uint64(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
10912 basic_istream_wchar_sentry_destroy(this);
10914 basic_ios_wchar_setstate(base
, state
);
10918 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_K@Z */
10919 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_K@Z */
10920 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_uint64
, 8)
10921 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_uint64(basic_istream_wchar
*this, unsigned __int64
*v
)
10923 return basic_istream_read_uint64(this, v
, num_get_wchar_use_facet(
10924 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10927 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_K@Z */
10928 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_K@Z */
10929 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_uint64
, 8)
10930 basic_istream_wchar
* __thiscall
basic_istream_short_read_uint64(basic_istream_wchar
*this, unsigned __int64
*v
)
10932 return basic_istream_read_uint64(this, v
, num_get_short_use_facet(
10933 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10936 static basic_istream_wchar
* basic_istream_read_bool(basic_istream_wchar
*this, bool *v
, const num_get
*numget
)
10938 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
10939 int state
= IOSTATE_goodbit
;
10941 TRACE("(%p %p)\n", this, v
);
10943 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
10944 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10945 istreambuf_iterator_wchar first
={0}, last
={0};
10947 first
.strbuf
= strbuf
;
10948 num_get_wchar_get_bool(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
10950 basic_istream_wchar_sentry_destroy(this);
10952 basic_ios_wchar_setstate(base
, state
);
10956 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_N@Z */
10957 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_N@Z */
10958 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_bool
, 8)
10959 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_bool(basic_istream_wchar
*this, bool *v
)
10961 return basic_istream_read_bool(this, v
, num_get_wchar_use_facet(
10962 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10965 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_N@Z */
10966 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_N@Z */
10967 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_bool
, 8)
10968 basic_istream_wchar
* __thiscall
basic_istream_short_read_bool(basic_istream_wchar
*this, bool *v
)
10970 return basic_istream_read_bool(this, v
, num_get_short_use_facet(
10971 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf
)));
10974 /* ??$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 */
10975 /* ??$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 */
10976 /* ??$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 */
10977 /* ??$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 */
10978 basic_istream_wchar
* __cdecl
basic_istream_wchar_getline_bstr_delim(
10979 basic_istream_wchar
*istream
, basic_string_wchar
*str
, wchar_t delim
)
10981 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(istream
);
10982 IOSB_iostate state
= IOSTATE_goodbit
;
10985 TRACE("(%p %p %s)\n", istream
, str
, debugstr_wn(&delim
, 1));
10987 if(basic_istream_wchar_sentry_create(istream
, TRUE
)) {
10988 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
10989 MSVCP_basic_string_wchar_clear(str
);
10991 c
= basic_streambuf_wchar_sgetc(strbuf
);
10992 for(; c
!=delim
&& c
!=WEOF
; c
= basic_streambuf_wchar_snextc(strbuf
))
10993 MSVCP_basic_string_wchar_append_ch(str
, c
);
10994 if(c
==delim
) basic_streambuf_wchar_sbumpc(strbuf
);
10995 else if(c
==WEOF
) state
|= IOSTATE_eofbit
;
10997 if(!MSVCP_basic_string_wchar_length(str
) && c
!=delim
) state
|= IOSTATE_failbit
;
10999 basic_istream_wchar_sentry_destroy(istream
);
11001 basic_ios_wchar_setstate(basic_istream_wchar_get_basic_ios(istream
), state
);
11005 /* ??$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 */
11006 /* ??$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 */
11007 /* ??$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 */
11008 /* ??$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 */
11009 basic_istream_wchar
* __cdecl
basic_istream_wchar_getline_bstr(
11010 basic_istream_wchar
*istream
, basic_string_wchar
*str
)
11012 return basic_istream_wchar_getline_bstr_delim(istream
, str
, '\n');
11015 static basic_istream_wchar
* basic_istream_read_bstr(basic_istream_wchar
*istream
,
11016 basic_string_wchar
*str
, const ctype_wchar
*ctype
)
11018 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(istream
);
11019 IOSB_iostate state
= IOSTATE_failbit
;
11022 TRACE("(%p %p)\n", istream
, str
);
11024 if(basic_istream_wchar_sentry_create(istream
, FALSE
)) {
11025 size_t count
= ios_base_width_get(&base
->base
);
11030 MSVCP_basic_string_wchar_clear(str
);
11032 for(c
= basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base
));
11033 c
!=WEOF
&& !ctype_wchar_is_ch(ctype
, _SPACE
|_BLANK
, c
) && count
>0;
11034 c
= basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base
)), count
--) {
11035 state
= IOSTATE_goodbit
;
11036 MSVCP_basic_string_wchar_append_ch(str
, c
);
11039 basic_istream_wchar_sentry_destroy(istream
);
11041 ios_base_width_set(&base
->base
, 0);
11042 basic_ios_wchar_setstate(base
, state
| (c
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
11046 /* ??$?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 */
11047 /* ??$?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 */
11048 basic_istream_wchar
* __cdecl
basic_istream_wchar_read_bstr(
11049 basic_istream_wchar
*istream
, basic_string_wchar
*str
)
11051 return basic_istream_read_bstr(istream
, str
, ctype_wchar_use_facet(
11052 IOS_LOCALE(basic_istream_wchar_get_basic_ios(istream
)->strbuf
)));
11055 /* ??$?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 */
11056 /* ??$?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 */
11057 basic_istream_wchar
* __cdecl
basic_istream_short_read_bstr(
11058 basic_istream_wchar
*istream
, basic_string_wchar
*str
)
11060 return basic_istream_read_bstr(istream
, str
, ctype_short_use_facet(
11061 IOS_LOCALE(basic_istream_wchar_get_basic_ios(istream
)->strbuf
)));
11064 static basic_istream_wchar
* basic_istream_read_str(basic_istream_wchar
*istream
, wchar_t *str
, const ctype_wchar
*ctype
)
11066 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(istream
);
11067 IOSB_iostate state
= IOSTATE_failbit
;
11068 unsigned short c
= '\n';
11070 TRACE("(%p %p)\n", istream
, str
);
11072 if(basic_istream_wchar_sentry_create(istream
, FALSE
)) {
11073 size_t count
= ios_base_width_get(&base
->base
)-1;
11075 for(c
= basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base
));
11076 c
!=WEOF
&& !ctype_wchar_is_ch(ctype
, _SPACE
|_BLANK
, c
) && count
>0;
11077 c
= basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base
)), count
--) {
11078 state
= IOSTATE_goodbit
;
11082 basic_istream_wchar_sentry_destroy(istream
);
11085 ios_base_width_set(&base
->base
, 0);
11086 basic_ios_wchar_setstate(base
, state
| (c
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
11090 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@PA_W@Z */
11091 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@PEA_W@Z */
11092 basic_istream_wchar
* __cdecl
basic_istream_wchar_read_str(basic_istream_wchar
*istream
, wchar_t *str
)
11094 return basic_istream_read_str(istream
, str
, ctype_wchar_use_facet(
11095 IOS_LOCALE(basic_istream_wchar_get_basic_ios(istream
)->strbuf
)));
11098 /* ??$?5GU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@PAG@Z */
11099 /* ??$?5GU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@PEAG@Z */
11100 basic_istream_wchar
* __cdecl
basic_istream_short_read_str(basic_istream_wchar
*istream
, wchar_t *str
)
11102 return basic_istream_read_str(istream
, str
, ctype_short_use_facet(
11103 IOS_LOCALE(basic_istream_wchar_get_basic_ios(istream
)->strbuf
)));
11106 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AA_W@Z */
11107 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEA_W@Z */
11108 /* ??$?5GU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAG@Z */
11109 /* ??$?5GU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAG@Z */
11110 basic_istream_wchar
* __cdecl
basic_istream_wchar_read_ch(basic_istream_wchar
*istream
, wchar_t *ch
)
11112 IOSB_iostate state
= IOSTATE_failbit
;
11113 unsigned short c
= 0;
11115 TRACE("(%p %p)\n", istream
, ch
);
11117 if(basic_istream_wchar_sentry_create(istream
, FALSE
)) {
11118 c
= basic_streambuf_wchar_sbumpc(basic_ios_wchar_rdbuf_get(
11119 basic_istream_wchar_get_basic_ios(istream
)));
11121 state
= IOSTATE_goodbit
;
11125 basic_istream_wchar_sentry_destroy(istream
);
11127 basic_ios_wchar_setstate(basic_istream_wchar_get_basic_ios(istream
),
11128 state
| (c
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
11132 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
11133 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
11134 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
11135 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
11136 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_streambuf
, 8)
11137 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_streambuf(
11138 basic_istream_wchar
*this, basic_streambuf_wchar
*streambuf
)
11140 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
11141 IOSB_iostate state
= IOSTATE_failbit
;
11142 unsigned short c
= '\n';
11144 TRACE("(%p %p)\n", this, streambuf
);
11146 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
11147 for(c
= basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base
)); c
!=WEOF
;
11148 c
= basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base
))) {
11149 state
= IOSTATE_goodbit
;
11150 if(basic_streambuf_wchar_sputc(streambuf
, c
) == WEOF
)
11154 basic_istream_wchar_sentry_destroy(this);
11156 basic_ios_wchar_setstate(base
, state
| (c
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
11160 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
11161 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
11162 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
11163 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
11164 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func
, 8)
11165 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_func(basic_istream_wchar
*this,
11166 basic_istream_wchar
* (__cdecl
*pfunc
)(basic_istream_wchar
*))
11168 TRACE("(%p %p)\n", this, pfunc
);
11173 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AAV21@@Z@Z */
11174 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z */
11175 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@GU?$char_traits@G@std@@@1@AAV21@@Z@Z */
11176 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z */
11177 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func_basic_ios
, 8)
11178 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_func_basic_ios(basic_istream_wchar
*this,
11179 basic_ios_wchar
* (__cdecl
*pfunc
)(basic_ios_wchar
*))
11181 TRACE("(%p %p)\n", this, pfunc
);
11182 pfunc(basic_istream_wchar_get_basic_ios(this));
11186 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
11187 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
11188 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
11189 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
11190 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func_ios_base
, 8)
11191 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_func_ios_base(
11192 basic_istream_wchar
*this, ios_base
* (__cdecl
*pfunc
)(ios_base
*))
11194 TRACE("(%p %p)\n", this, pfunc
);
11195 pfunc(&basic_istream_wchar_get_basic_ios(this)->base
);
11199 /* ?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXAAV12@@Z */
11200 /* ?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z */
11201 /* ?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXAAV12@@Z */
11202 /* ?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z */
11203 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_swap
, 8)
11204 void __thiscall
basic_istream_wchar_swap(basic_istream_wchar
*this, basic_istream_wchar
*r
)
11206 TRACE("(%p %p)\n", this, r
);
11211 basic_ios_wchar_swap(basic_istream_wchar_get_basic_ios(this),
11212 basic_istream_wchar_get_basic_ios(r
));
11213 this->count
^= r
->count
;
11214 r
->count
^= this->count
;
11215 this->count
^= r
->count
;
11218 static inline basic_ios_char
* basic_iostream_char_to_basic_ios(basic_iostream_char
*ptr
)
11220 return (basic_ios_char
*)((char*)ptr
+basic_iostream_char_vbtable1
[1]);
11223 static inline basic_iostream_char
* basic_iostream_char_from_basic_ios(basic_ios_char
*ptr
)
11225 return (basic_iostream_char
*)((char*)ptr
-basic_iostream_char_vbtable1
[1]);
11228 /* ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
11229 /* ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
11230 DEFINE_THISCALL_WRAPPER(basic_iostream_char_ctor
, 12)
11231 basic_iostream_char
* __thiscall
basic_iostream_char_ctor(basic_iostream_char
*this, basic_streambuf_char
*strbuf
, bool virt_init
)
11233 basic_ios_char
*basic_ios
;
11235 TRACE("(%p %p %d)\n", this, strbuf
, virt_init
);
11238 this->base1
.vbtable
= basic_iostream_char_vbtable1
;
11239 this->base2
.vbtable
= basic_iostream_char_vbtable2
;
11240 basic_ios
= basic_istream_char_get_basic_ios(&this->base1
);
11241 INIT_BASIC_IOS_VTORDISP(basic_ios
);
11242 basic_ios_char_ctor(basic_ios
);
11244 basic_ios
= basic_istream_char_get_basic_ios(&this->base1
);
11247 basic_istream_char_ctor(&this->base1
, strbuf
, FALSE
, FALSE
);
11248 basic_ostream_char_ctor_uninitialized(&this->base2
, 0, FALSE
, FALSE
);
11249 basic_ios
->base
.vtable
= &basic_iostream_char_vtable
;
11253 /* ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
11254 /* ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
11255 DEFINE_THISCALL_WRAPPER(basic_iostream_char_dtor
, 4)
11256 void __thiscall
basic_iostream_char_dtor(basic_ios_char
*base
)
11258 basic_iostream_char
*this = basic_iostream_char_from_basic_ios(base
);
11260 TRACE("(%p)\n", this);
11261 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base2
));
11262 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base1
));
11265 /* ??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
11266 /* ??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
11267 DEFINE_THISCALL_WRAPPER(basic_iostream_char_vbase_dtor
, 4)
11268 void __thiscall
basic_iostream_char_vbase_dtor(basic_iostream_char
*this)
11270 basic_ios_char
*base
= basic_iostream_char_to_basic_ios(this);
11272 TRACE("(%p)\n", this);
11274 basic_iostream_char_dtor(base
);
11275 basic_ios_char_dtor(base
);
11278 DEFINE_THISCALL_WRAPPER(basic_iostream_char_vector_dtor
, 8)
11279 basic_iostream_char
* __thiscall
basic_iostream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
11281 basic_iostream_char
*this = basic_iostream_char_from_basic_ios(base
);
11283 TRACE("(%p %x)\n", this, flags
);
11286 /* we have an array, with the number of elements stored before the first object */
11287 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
11289 for(i
=*ptr
-1; i
>=0; i
--)
11290 basic_iostream_char_vbase_dtor(this+i
);
11291 operator_delete(ptr
);
11293 basic_iostream_char_vbase_dtor(this);
11295 operator_delete(this);
11301 /* ?swap@?$basic_iostream@DU?$char_traits@D@std@@@std@@QAEXAAV12@@Z */
11302 /* ?swap@?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z */
11303 DEFINE_THISCALL_WRAPPER(basic_iostream_char_swap
, 8)
11304 void __thiscall
basic_iostream_char_swap(basic_iostream_char
*this, basic_iostream_char
*r
)
11306 TRACE("(%p %p)\n", this, r
);
11311 basic_ios_char_swap(basic_istream_char_get_basic_ios(&this->base1
),
11312 basic_istream_char_get_basic_ios(&r
->base1
));
11315 static inline basic_ios_wchar
* basic_iostream_wchar_to_basic_ios(basic_iostream_wchar
*ptr
)
11317 return (basic_ios_wchar
*)((char*)ptr
+basic_iostream_wchar_vbtable1
[1]);
11320 static inline basic_iostream_wchar
* basic_iostream_wchar_from_basic_ios(basic_ios_wchar
*ptr
)
11322 return (basic_iostream_wchar
*)((char*)ptr
-basic_iostream_wchar_vbtable1
[1]);
11325 /* ??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
11326 /* ??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
11327 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_ctor
, 12)
11328 basic_iostream_wchar
* __thiscall
basic_iostream_wchar_ctor(basic_iostream_wchar
*this,
11329 basic_streambuf_wchar
*strbuf
, bool virt_init
)
11331 basic_ios_wchar
*basic_ios
;
11333 TRACE("(%p %p %d)\n", this, strbuf
, virt_init
);
11336 this->base1
.vbtable
= basic_iostream_wchar_vbtable1
;
11337 this->base2
.vbtable
= basic_iostream_wchar_vbtable2
;
11338 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base1
);
11339 INIT_BASIC_IOS_VTORDISP(basic_ios
);
11340 basic_ios_wchar_ctor(basic_ios
);
11342 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base1
);
11345 basic_istream_wchar_ctor(&this->base1
, strbuf
, FALSE
, FALSE
);
11346 basic_ostream_wchar_ctor_uninitialized(&this->base2
, 0, FALSE
, FALSE
);
11348 basic_ios
->base
.vtable
= &basic_iostream_wchar_vtable
;
11352 /* ??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
11353 /* ??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
11354 DEFINE_THISCALL_WRAPPER(basic_iostream_short_ctor
, 12)
11355 basic_iostream_wchar
* __thiscall
basic_iostream_short_ctor(basic_iostream_wchar
*this,
11356 basic_streambuf_wchar
*strbuf
, bool virt_init
)
11358 basic_iostream_wchar_ctor(this, strbuf
, virt_init
);
11359 basic_istream_wchar_get_basic_ios(&this->base1
)->base
.vtable
= &basic_iostream_short_vtable
;
11363 /* ??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
11364 /* ??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
11365 /* ??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UAE@XZ */
11366 /* ??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
11367 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_dtor
, 4)
11368 void __thiscall
basic_iostream_wchar_dtor(basic_ios_wchar
*base
)
11370 basic_iostream_wchar
*this = basic_iostream_wchar_from_basic_ios(base
);
11372 TRACE("(%p)\n", this);
11373 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base2
));
11374 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base1
));
11377 /* ??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
11378 /* ??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
11379 /* ??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
11380 /* ??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
11381 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_vbase_dtor
, 4)
11382 void __thiscall
basic_iostream_wchar_vbase_dtor(basic_iostream_wchar
*this)
11384 basic_ios_wchar
*base
= basic_iostream_wchar_to_basic_ios(this);
11386 TRACE("(%p)\n", this);
11388 basic_iostream_wchar_dtor(base
);
11389 basic_ios_wchar_dtor(base
);
11392 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_vector_dtor
, 8)
11393 basic_iostream_wchar
* __thiscall
basic_iostream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
11395 basic_iostream_wchar
*this = basic_iostream_wchar_from_basic_ios(base
);
11397 TRACE("(%p %x)\n", this, flags
);
11400 /* we have an array, with the number of elements stored before the first object */
11401 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
11403 for(i
=*ptr
-1; i
>=0; i
--)
11404 basic_iostream_wchar_vbase_dtor(this+i
);
11405 operator_delete(ptr
);
11407 basic_iostream_wchar_vbase_dtor(this);
11409 operator_delete(this);
11415 /* ?swap@?$basic_iostream@GU?$char_traits@G@std@@@std@@QAEXAAV12@@Z */
11416 /* ?swap@?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z */
11417 /* ?swap@?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAEXAAV12@@Z */
11418 /* ?swap@?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z */
11419 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_swap
, 8)
11420 void __thiscall
basic_iostream_wchar_swap(basic_iostream_wchar
*this, basic_iostream_wchar
*r
)
11422 TRACE("(%p %p)\n", this, r
);
11427 basic_ios_wchar_swap(basic_istream_wchar_get_basic_ios(&this->base1
),
11428 basic_istream_wchar_get_basic_ios(&r
->base1
));
11431 static inline basic_ios_char
* basic_ofstream_char_to_basic_ios(basic_ofstream_char
*ptr
)
11433 return (basic_ios_char
*)((char*)ptr
+basic_ofstream_char_vbtable
[1]);
11436 static inline basic_ofstream_char
* basic_ofstream_char_from_basic_ios(basic_ios_char
*ptr
)
11438 return (basic_ofstream_char
*)((char*)ptr
-basic_ofstream_char_vbtable
[1]);
11441 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
11442 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
11443 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor
, 8)
11444 basic_ofstream_char
* __thiscall
basic_ofstream_char_ctor(basic_ofstream_char
*this, bool virt_init
)
11446 basic_ios_char
*basic_ios
;
11448 TRACE("(%p %d)\n", this, virt_init
);
11451 this->base
.vbtable
= basic_ofstream_char_vbtable
;
11452 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
11453 INIT_BASIC_IOS_VTORDISP(basic_ios
);
11454 basic_ios_char_ctor(basic_ios
);
11456 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
11459 basic_filebuf_char_ctor(&this->filebuf
);
11460 basic_ostream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
11461 basic_ios
->base
.vtable
= &basic_ofstream_char_vtable
;
11465 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
11466 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
11467 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_file
, 12)
11468 basic_ofstream_char
* __thiscall
basic_ofstream_char_ctor_file(
11469 basic_ofstream_char
*this, FILE *file
, bool virt_init
)
11471 basic_ios_char
*basic_ios
;
11473 TRACE("(%p %p %d)\n", this, file
, virt_init
);
11476 this->base
.vbtable
= basic_ofstream_char_vbtable
;
11477 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
11478 INIT_BASIC_IOS_VTORDISP(basic_ios
);
11479 basic_ios_char_ctor(basic_ios
);
11481 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
11484 basic_filebuf_char_ctor_file(&this->filebuf
, file
);
11485 basic_ostream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
11486 basic_ios
->base
.vtable
= &basic_ofstream_char_vtable
;
11490 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
11491 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
11492 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_name
, 20)
11493 basic_ofstream_char
* __thiscall
basic_ofstream_char_ctor_name(basic_ofstream_char
*this,
11494 const char *name
, int mode
, int prot
, bool virt_init
)
11496 TRACE("(%p %s %d %d %d)\n", this, name
, mode
, prot
, virt_init
);
11498 basic_ofstream_char_ctor(this, virt_init
);
11500 if(!basic_filebuf_char_open(&this->filebuf
, name
, mode
|OPENMODE_out
, prot
)) {
11501 basic_ios_char
*basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
11502 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
11507 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PBGHH@Z */
11508 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEBGHH@Z */
11509 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PB_WHH@Z */
11510 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEB_WHH@Z */
11511 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_name_wchar
, 20)
11512 basic_ofstream_char
* __thiscall
basic_ofstream_char_ctor_name_wchar(basic_ofstream_char
*this,
11513 const wchar_t *name
, int mode
, int prot
, bool virt_init
)
11515 TRACE("(%p %s %d %d %d)\n", this, debugstr_w(name
), mode
, prot
, virt_init
);
11517 basic_ofstream_char_ctor(this, virt_init
);
11519 if(!basic_filebuf_char_open_wchar(&this->filebuf
, name
, mode
|OPENMODE_out
, prot
)) {
11520 basic_ios_char
*basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
11521 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
11526 /* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
11527 /* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
11528 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_dtor
, 4)
11529 void __thiscall
basic_ofstream_char_dtor(basic_ios_char
*base
)
11531 basic_ofstream_char
*this = basic_ofstream_char_from_basic_ios(base
);
11533 TRACE("(%p)\n", this);
11535 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base
));
11536 basic_filebuf_char_dtor(&this->filebuf
);
11539 /* ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
11540 /* ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
11541 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_vbase_dtor
, 4)
11542 void __thiscall
basic_ofstream_char_vbase_dtor(basic_ofstream_char
*this)
11544 basic_ios_char
*base
= basic_ofstream_char_to_basic_ios(this);
11546 TRACE("(%p)\n", this);
11548 basic_ofstream_char_dtor(base
);
11549 basic_ios_char_dtor(base
);
11552 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_vector_dtor
, 8)
11553 basic_ofstream_char
* __thiscall
basic_ofstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
11555 basic_ofstream_char
*this = basic_ofstream_char_from_basic_ios(base
);
11557 TRACE("(%p %x)\n", this, flags
);
11560 /* we have an array, with the number of elements stored before the first object */
11561 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
11563 for(i
=*ptr
-1; i
>=0; i
--)
11564 basic_ofstream_char_vbase_dtor(this+i
);
11565 operator_delete(ptr
);
11567 basic_ofstream_char_vbase_dtor(this);
11569 operator_delete(this);
11575 /* ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
11576 /* ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
11577 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_close
, 4)
11578 void __thiscall
basic_ofstream_char_close(basic_ofstream_char
*this)
11580 TRACE("(%p)\n", this);
11582 if(!basic_filebuf_char_close(&this->filebuf
)) {
11583 basic_ios_char
*basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
11584 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
11588 /* ?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
11589 /* ?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
11590 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_is_open
, 4)
11591 bool __thiscall
basic_ofstream_char_is_open(const basic_ofstream_char
*this)
11593 TRACE("(%p)\n", this);
11594 return basic_filebuf_char_is_open(&this->filebuf
);
11597 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
11598 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
11599 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open
, 16)
11600 void __thiscall
basic_ofstream_char_open(basic_ofstream_char
*this,
11601 const char *name
, int mode
, int prot
)
11603 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
11605 if(!basic_filebuf_char_open(&this->filebuf
, name
, mode
|OPENMODE_out
, prot
)) {
11606 basic_ios_char
*basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
11607 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
11611 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
11612 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
11613 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open_old
, 12)
11614 void __thiscall
basic_ofstream_char_open_old(basic_ofstream_char
*this,
11615 const char *name
, unsigned int mode
)
11617 basic_ofstream_char_open(this, name
, mode
, _SH_DENYNO
);
11620 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBGHH@Z */
11621 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBGHH@Z */
11622 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPB_WHH@Z */
11623 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEB_WHH@Z */
11624 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open_wchar
, 16)
11625 void __thiscall
basic_ofstream_char_open_wchar(basic_ofstream_char
*this,
11626 const wchar_t *name
, int mode
, int prot
)
11628 TRACE("(%p %s %d %d)\n", this, debugstr_w(name
), mode
, prot
);
11630 if(!basic_filebuf_char_open_wchar(&this->filebuf
, name
, mode
|OPENMODE_out
, prot
)) {
11631 basic_ios_char
*basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
11632 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
11636 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBGI@Z */
11637 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBGI@Z */
11638 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPB_WI@Z */
11639 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEB_WI@Z */
11640 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open_wchar_old
, 12)
11641 void __thiscall
basic_ofstream_char_open_wchar_old(basic_ofstream_char
*this,
11642 const wchar_t *name
, unsigned int mode
)
11644 basic_ofstream_char_open_wchar(this, name
, mode
, _SH_DENYNO
);
11647 /* ?rdbuf@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
11648 /* ?rdbuf@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
11649 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_rdbuf
, 4)
11650 basic_filebuf_char
* __thiscall
basic_ofstream_char_rdbuf(const basic_ofstream_char
*this)
11652 TRACE("(%p)\n", this);
11653 return (basic_filebuf_char
*)&this->filebuf
;
11656 static inline basic_ios_wchar
* basic_ofstream_wchar_to_basic_ios(basic_ofstream_wchar
*ptr
)
11658 return (basic_ios_wchar
*)((char*)ptr
+basic_ofstream_wchar_vbtable
[1]);
11661 static inline basic_ofstream_wchar
* basic_ofstream_wchar_from_basic_ios(basic_ios_wchar
*ptr
)
11663 return (basic_ofstream_wchar
*)((char*)ptr
-basic_ofstream_wchar_vbtable
[1]);
11666 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
11667 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
11668 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor
, 8)
11669 basic_ofstream_wchar
* __thiscall
basic_ofstream_wchar_ctor(basic_ofstream_wchar
*this, bool virt_init
)
11671 basic_ios_wchar
*basic_ios
;
11673 TRACE("(%p %d)\n", this, virt_init
);
11676 this->base
.vbtable
= basic_ofstream_wchar_vbtable
;
11677 basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
11678 INIT_BASIC_IOS_VTORDISP(basic_ios
);
11679 basic_ios_wchar_ctor(basic_ios
);
11681 basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
11684 basic_filebuf_wchar_ctor(&this->filebuf
);
11685 basic_ostream_wchar_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
11686 basic_ios
->base
.vtable
= &basic_ofstream_wchar_vtable
;
11690 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
11691 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
11692 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor
, 8)
11693 basic_ofstream_wchar
* __thiscall
basic_ofstream_short_ctor(basic_ofstream_wchar
*this, bool virt_init
)
11695 basic_ofstream_wchar_ctor(this, virt_init
);
11696 basic_ostream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &basic_ofstream_short_vtable
;
11700 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
11701 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
11702 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor_file
, 12)
11703 basic_ofstream_wchar
* __thiscall
basic_ofstream_wchar_ctor_file(
11704 basic_ofstream_wchar
*this, FILE *file
, bool virt_init
)
11706 basic_ios_wchar
*basic_ios
;
11708 TRACE("(%p %p %d)\n", this, file
, virt_init
);
11711 this->base
.vbtable
= basic_ofstream_wchar_vbtable
;
11712 basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
11713 INIT_BASIC_IOS_VTORDISP(basic_ios
);
11714 basic_ios_wchar_ctor(basic_ios
);
11716 basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
11719 basic_filebuf_wchar_ctor_file(&this->filebuf
, file
);
11720 basic_ostream_wchar_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
11721 basic_ios
->base
.vtable
= &basic_ofstream_wchar_vtable
;
11725 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
11726 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
11727 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor_file
, 12)
11728 basic_ofstream_wchar
* __thiscall
basic_ofstream_short_ctor_file(
11729 basic_ofstream_wchar
*this, FILE *file
, bool virt_init
)
11731 basic_ofstream_wchar_ctor_file(this, file
, virt_init
);
11732 basic_ostream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &basic_ofstream_short_vtable
;
11736 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@PBDHH@Z */
11737 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBDHH@Z */
11738 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor_name
, 20)
11739 basic_ofstream_wchar
* __thiscall
basic_ofstream_wchar_ctor_name(basic_ofstream_wchar
*this,
11740 const char *name
, int mode
, int prot
, bool virt_init
)
11742 TRACE("(%p %s %d %d %d)\n", this, name
, mode
, prot
, virt_init
);
11744 basic_ofstream_wchar_ctor(this, virt_init
);
11746 if(!basic_filebuf_wchar_open(&this->filebuf
, name
, mode
|OPENMODE_out
, prot
)) {
11747 basic_ios_wchar
*basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
11748 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
11753 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PBDHH@Z */
11754 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDHH@Z */
11755 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor_name
, 20)
11756 basic_ofstream_wchar
* __thiscall
basic_ofstream_short_ctor_name(basic_ofstream_wchar
*this,
11757 const char *name
, int mode
, int prot
, bool virt_init
)
11759 basic_ofstream_wchar_ctor_name(this, name
, mode
, prot
, virt_init
);
11760 basic_ostream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &basic_ofstream_short_vtable
;
11764 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@PBGHH@Z */
11765 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBGHH@Z */
11766 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@PB_WHH@Z */
11767 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEB_WHH@Z */
11768 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor_name_wchar
, 20)
11769 basic_ofstream_wchar
* __thiscall
basic_ofstream_wchar_ctor_name_wchar(basic_ofstream_wchar
*this,
11770 const wchar_t *name
, int mode
, int prot
, bool virt_init
)
11772 TRACE("(%p %s %d %d %d)\n", this, debugstr_w(name
), mode
, prot
, virt_init
);
11774 basic_ofstream_wchar_ctor(this, virt_init
);
11776 if(!basic_filebuf_wchar_open_wchar(&this->filebuf
, name
, mode
|OPENMODE_out
, prot
)) {
11777 basic_ios_wchar
*basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
11778 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
11783 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PBGHH@Z */
11784 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEBGHH@Z */
11785 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PB_WHH@Z */
11786 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEB_WHH@Z */
11787 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor_name_wchar
, 20)
11788 basic_ofstream_wchar
* __thiscall
basic_ofstream_short_ctor_name_wchar(basic_ofstream_wchar
*this,
11789 const wchar_t *name
, int mode
, int prot
, bool virt_init
)
11791 basic_ofstream_wchar_ctor_name_wchar(this, name
, mode
, prot
, virt_init
);
11792 basic_ostream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &basic_ofstream_short_vtable
;
11796 /* ??1?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
11797 /* ??1?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
11798 /* ??1?$basic_ofstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
11799 /* ??1?$basic_ofstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
11800 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_dtor
, 4)
11801 void __thiscall
basic_ofstream_wchar_dtor(basic_ios_wchar
*base
)
11803 basic_ofstream_wchar
*this = basic_ofstream_wchar_from_basic_ios(base
);
11805 TRACE("(%p)\n", this);
11807 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base
));
11808 basic_filebuf_wchar_dtor(&this->filebuf
);
11811 /* ??_D?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
11812 /* ??_D?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
11813 /* ??_D?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
11814 /* ??_D?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
11815 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_vbase_dtor
, 4)
11816 void __thiscall
basic_ofstream_wchar_vbase_dtor(basic_ofstream_wchar
*this)
11818 basic_ios_wchar
*base
= basic_ofstream_wchar_to_basic_ios(this);
11820 TRACE("(%p)\n", this);
11822 basic_ofstream_wchar_dtor(base
);
11823 basic_ios_wchar_dtor(base
);
11826 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_vector_dtor
, 8)
11827 basic_ofstream_wchar
* __thiscall
basic_ofstream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
11829 basic_ofstream_wchar
*this = basic_ofstream_wchar_from_basic_ios(base
);
11831 TRACE("(%p %x)\n", this, flags
);
11834 /* we have an array, with the number of elements stored before the first object */
11835 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
11837 for(i
=*ptr
-1; i
>=0; i
--)
11838 basic_ofstream_wchar_vbase_dtor(this+i
);
11839 operator_delete(ptr
);
11841 basic_ofstream_wchar_vbase_dtor(this);
11843 operator_delete(this);
11849 /* ?close@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
11850 /* ?close@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
11851 /* ?close@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
11852 /* ?close@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
11853 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_close
, 4)
11854 void __thiscall
basic_ofstream_wchar_close(basic_ofstream_wchar
*this)
11856 TRACE("(%p)\n", this);
11858 if(!basic_filebuf_wchar_close(&this->filebuf
)) {
11859 basic_ios_wchar
*basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
11860 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
11864 /* ?is_open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
11865 /* ?is_open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
11866 /* ?is_open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
11867 /* ?is_open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
11868 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_is_open
, 4)
11869 bool __thiscall
basic_ofstream_wchar_is_open(const basic_ofstream_wchar
*this)
11871 TRACE("(%p)\n", this);
11872 return basic_filebuf_wchar_is_open(&this->filebuf
);
11875 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDHH@Z */
11876 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDHH@Z */
11877 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBDHH@Z */
11878 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDHH@Z */
11879 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_open
, 16)
11880 void __thiscall
basic_ofstream_wchar_open(basic_ofstream_wchar
*this,
11881 const char *name
, int mode
, int prot
)
11883 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
11885 if(!basic_filebuf_wchar_open(&this->filebuf
, name
, mode
|OPENMODE_out
, prot
)) {
11886 basic_ios_wchar
*basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
11887 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
11891 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDI@Z */
11892 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDI@Z */
11893 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBDI@Z */
11894 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDI@Z */
11895 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_open_old
, 12)
11896 void __thiscall
basic_ofstream_wchar_open_old(basic_ofstream_wchar
*this,
11897 const char *name
, unsigned int mode
)
11899 basic_ofstream_wchar_open(this, name
, mode
, _SH_DENYNO
);
11902 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXPBGHH@Z */
11903 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBGHH@Z */
11904 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXPB_WHH@Z */
11905 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEB_WHH@Z */
11906 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBGHH@Z */
11907 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBGHH@Z */
11908 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPB_WHH@Z */
11909 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEB_WHH@Z */
11910 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_open_wchar
, 16)
11911 void __thiscall
basic_ofstream_wchar_open_wchar(basic_ofstream_wchar
*this,
11912 const wchar_t *name
, int mode
, int prot
)
11914 TRACE("(%p %s %d %d)\n", this, debugstr_w(name
), mode
, prot
);
11916 if(!basic_filebuf_wchar_open_wchar(&this->filebuf
, name
, mode
|OPENMODE_out
, prot
)) {
11917 basic_ios_wchar
*basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
11918 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
11922 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXPBGI@Z */
11923 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBGI@Z */
11924 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXPB_WI@Z */
11925 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEB_WI@Z */
11926 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBGI@Z */
11927 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBGI@Z */
11928 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPB_WI@Z */
11929 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEB_WI@Z */
11930 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_open_wchar_old
, 12)
11931 void __thiscall
basic_ofstream_wchar_open_wchar_old(basic_ofstream_wchar
*this,
11932 const wchar_t *name
, unsigned int mode
)
11934 basic_ofstream_wchar_open_wchar(this, name
, mode
, _SH_DENYNO
);
11937 /* ?rdbuf@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
11938 /* ?rdbuf@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
11939 /* ?rdbuf@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
11940 /* ?rdbuf@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
11941 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_rdbuf
, 4)
11942 basic_filebuf_wchar
* __thiscall
basic_ofstream_wchar_rdbuf(const basic_ofstream_wchar
*this)
11944 TRACE("(%p)\n", this);
11945 return (basic_filebuf_wchar
*)&this->filebuf
;
11948 static inline basic_ios_char
* basic_ifstream_char_to_basic_ios(basic_ifstream_char
*ptr
)
11950 return (basic_ios_char
*)((char*)ptr
+basic_ifstream_char_vbtable
[1]);
11953 static inline basic_ifstream_char
* basic_ifstream_char_from_basic_ios(basic_ios_char
*ptr
)
11955 return (basic_ifstream_char
*)((char*)ptr
-basic_ifstream_char_vbtable
[1]);
11958 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
11959 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
11960 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor
, 8)
11961 basic_ifstream_char
* __thiscall
basic_ifstream_char_ctor(basic_ifstream_char
*this, bool virt_init
)
11963 basic_ios_char
*basic_ios
;
11965 TRACE("(%p %d)\n", this, virt_init
);
11968 this->base
.vbtable
= basic_ifstream_char_vbtable
;
11969 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
11970 INIT_BASIC_IOS_VTORDISP(basic_ios
);
11971 basic_ios_char_ctor(basic_ios
);
11973 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
11976 basic_filebuf_char_ctor(&this->filebuf
);
11977 basic_istream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
11978 basic_ios
->base
.vtable
= &basic_ifstream_char_vtable
;
11982 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
11983 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
11984 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_file
, 12)
11985 basic_ifstream_char
* __thiscall
basic_ifstream_char_ctor_file(
11986 basic_ifstream_char
*this, FILE *file
, bool virt_init
)
11988 basic_ios_char
*basic_ios
;
11990 TRACE("(%p %p %d)\n", this, file
, virt_init
);
11993 this->base
.vbtable
= basic_ifstream_char_vbtable
;
11994 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
11995 INIT_BASIC_IOS_VTORDISP(basic_ios
);
11996 basic_ios_char_ctor(basic_ios
);
11998 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
12001 basic_filebuf_char_ctor_file(&this->filebuf
, file
);
12002 basic_istream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
12003 basic_ios
->base
.vtable
= &basic_ifstream_char_vtable
;
12007 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
12008 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
12009 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_name
, 20)
12010 basic_ifstream_char
* __thiscall
basic_ifstream_char_ctor_name(basic_ifstream_char
*this,
12011 const char *name
, int mode
, int prot
, bool virt_init
)
12013 TRACE("(%p %s %d %d %d)\n", this, name
, mode
, prot
, virt_init
);
12015 basic_ifstream_char_ctor(this, virt_init
);
12017 if(!basic_filebuf_char_open(&this->filebuf
, name
, mode
|OPENMODE_in
, prot
)) {
12018 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
12019 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
12024 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z */
12025 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDH@Z */
12026 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_name_old
, 16)
12027 basic_ifstream_char
* __thiscall
basic_ifstream_char_ctor_name_old(basic_ifstream_char
*this,
12028 const char *name
, int mode
, bool virt_init
)
12030 return basic_ifstream_char_ctor_name(this, name
, mode
, _SH_DENYNO
, virt_init
);
12033 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBGHH@Z */
12034 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEBGHH@Z */
12035 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PB_WHH@Z */
12036 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEB_WHH@Z */
12037 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_name_wchar
, 20)
12038 basic_ifstream_char
* __thiscall
basic_ifstream_char_ctor_name_wchar(basic_ifstream_char
*this,
12039 const wchar_t *name
, int mode
, int prot
, bool virt_init
)
12041 TRACE("(%p %s %d %d %d)\n", this, debugstr_w(name
), mode
, prot
, virt_init
);
12043 basic_ifstream_char_ctor(this, virt_init
);
12045 if(!basic_filebuf_char_open_wchar(&this->filebuf
, name
, mode
|OPENMODE_in
, prot
)) {
12046 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
12047 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
12052 /* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
12053 /* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
12054 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_dtor
, 4)
12055 void __thiscall
basic_ifstream_char_dtor(basic_ios_char
*base
)
12057 basic_ifstream_char
*this = basic_ifstream_char_from_basic_ios(base
);
12059 TRACE("(%p)\n", this);
12061 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base
));
12062 basic_filebuf_char_dtor(&this->filebuf
);
12065 /* ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
12066 /* ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
12067 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_vbase_dtor
, 4)
12068 void __thiscall
basic_ifstream_char_vbase_dtor(basic_ifstream_char
*this)
12070 basic_ios_char
*base
= basic_ifstream_char_to_basic_ios(this);
12072 TRACE("(%p)\n", this);
12074 basic_ifstream_char_dtor(base
);
12075 basic_ios_char_dtor(base
);
12078 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_vector_dtor
, 8)
12079 basic_ifstream_char
* __thiscall
basic_ifstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
12081 basic_ifstream_char
*this = basic_ifstream_char_from_basic_ios(base
);
12083 TRACE("(%p %x)\n", this, flags
);
12086 /* we have an array, with the number of elements stored before the first object */
12087 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
12089 for(i
=*ptr
-1; i
>=0; i
--)
12090 basic_ifstream_char_vbase_dtor(this+i
);
12091 operator_delete(ptr
);
12093 basic_ifstream_char_vbase_dtor(this);
12095 operator_delete(this);
12101 /* ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
12102 /* ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
12103 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_close
, 4)
12104 void __thiscall
basic_ifstream_char_close(basic_ifstream_char
*this)
12106 TRACE("(%p)\n", this);
12108 if(!basic_filebuf_char_close(&this->filebuf
)) {
12109 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
12110 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
12114 /* ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
12115 /* ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
12116 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_is_open
, 4)
12117 bool __thiscall
basic_ifstream_char_is_open(const basic_ifstream_char
*this)
12119 TRACE("(%p)\n", this);
12120 return basic_filebuf_char_is_open(&this->filebuf
);
12123 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
12124 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
12125 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open
, 16)
12126 void __thiscall
basic_ifstream_char_open(basic_ifstream_char
*this,
12127 const char *name
, int mode
, int prot
)
12129 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
12131 if(!basic_filebuf_char_open(&this->filebuf
, name
, mode
|OPENMODE_in
, prot
)) {
12132 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
12133 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
12137 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
12138 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
12139 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open_old
, 12)
12140 void __thiscall
basic_ifstream_char_open_old(basic_ifstream_char
*this,
12141 const char *name
, unsigned int mode
)
12143 basic_ifstream_char_open(this, name
, mode
, _SH_DENYNO
);
12146 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBGHH@Z */
12147 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBGHH@Z */
12148 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPB_WHH@Z */
12149 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEB_WHH@Z */
12150 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open_wchar
, 16)
12151 void __thiscall
basic_ifstream_char_open_wchar(basic_ifstream_char
*this,
12152 const wchar_t *name
, int mode
, int prot
)
12154 TRACE("(%p %s %d %d)\n", this, debugstr_w(name
), mode
, prot
);
12156 if(!basic_filebuf_char_open_wchar(&this->filebuf
, name
, mode
|OPENMODE_in
, prot
)) {
12157 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
12158 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
12162 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBGI@Z */
12163 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBGI@Z */
12164 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPB_WI@Z */
12165 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEB_WI@Z */
12166 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open_wchar_old
, 12)
12167 void __thiscall
basic_ifstream_char_open_wchar_old(basic_ifstream_char
*this,
12168 const wchar_t *name
, unsigned int mode
)
12170 basic_ifstream_char_open_wchar(this, name
, mode
, _SH_DENYNO
);
12173 /* ?rdbuf@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
12174 /* ?rdbuf@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
12175 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_rdbuf
, 4)
12176 basic_filebuf_char
* __thiscall
basic_ifstream_char_rdbuf(const basic_ifstream_char
*this)
12178 TRACE("(%p)\n", this);
12179 return (basic_filebuf_char
*)&this->filebuf
;
12182 static inline basic_ios_wchar
* basic_ifstream_wchar_to_basic_ios(basic_ifstream_wchar
*ptr
)
12184 return (basic_ios_wchar
*)((char*)ptr
+basic_ifstream_wchar_vbtable
[1]);
12187 static inline basic_ifstream_wchar
* basic_ifstream_wchar_from_basic_ios(basic_ios_wchar
*ptr
)
12189 return (basic_ifstream_wchar
*)((char*)ptr
-basic_ifstream_wchar_vbtable
[1]);
12192 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
12193 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
12194 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor
, 8)
12195 basic_ifstream_wchar
* __thiscall
basic_ifstream_wchar_ctor(basic_ifstream_wchar
*this, bool virt_init
)
12197 basic_ios_wchar
*basic_ios
;
12199 TRACE("(%p %d)\n", this, virt_init
);
12202 this->base
.vbtable
= basic_ifstream_wchar_vbtable
;
12203 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
12204 INIT_BASIC_IOS_VTORDISP(basic_ios
);
12205 basic_ios_wchar_ctor(basic_ios
);
12207 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
12210 basic_filebuf_wchar_ctor(&this->filebuf
);
12211 basic_istream_wchar_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
12212 basic_ios
->base
.vtable
= &basic_ifstream_wchar_vtable
;
12216 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
12217 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
12218 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor
, 8)
12219 basic_ifstream_wchar
* __thiscall
basic_ifstream_short_ctor(basic_ifstream_wchar
*this, bool virt_init
)
12221 basic_ifstream_wchar_ctor(this, virt_init
);
12222 basic_istream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &basic_ifstream_short_vtable
;
12226 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
12227 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
12228 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor_file
, 12)
12229 basic_ifstream_wchar
* __thiscall
basic_ifstream_wchar_ctor_file(
12230 basic_ifstream_wchar
*this, FILE *file
, bool virt_init
)
12232 basic_ios_wchar
*basic_ios
;
12234 TRACE("(%p %p %d)\n", this, file
, virt_init
);
12237 this->base
.vbtable
= basic_ifstream_wchar_vbtable
;
12238 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
12239 INIT_BASIC_IOS_VTORDISP(basic_ios
);
12240 basic_ios_wchar_ctor(basic_ios
);
12242 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
12245 basic_filebuf_wchar_ctor_file(&this->filebuf
, file
);
12246 basic_istream_wchar_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
12247 basic_ios
->base
.vtable
= &basic_ifstream_wchar_vtable
;
12251 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
12252 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
12253 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor_file
, 12)
12254 basic_ifstream_wchar
* __thiscall
basic_ifstream_short_ctor_file(
12255 basic_ifstream_wchar
*this, FILE *file
, bool virt_init
)
12257 basic_ifstream_wchar_ctor_file(this, file
, virt_init
);
12258 basic_istream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &basic_ifstream_short_vtable
;
12262 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@PBDHH@Z */
12263 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBDHH@Z */
12264 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor_name
, 20)
12265 basic_ifstream_wchar
* __thiscall
basic_ifstream_wchar_ctor_name(basic_ifstream_wchar
*this,
12266 const char *name
, int mode
, int prot
, bool virt_init
)
12268 TRACE("(%p %s %d %d %d)\n", this, name
, mode
, prot
, virt_init
);
12270 basic_ifstream_wchar_ctor(this, virt_init
);
12272 if(!basic_filebuf_wchar_open(&this->filebuf
, name
, mode
|OPENMODE_in
, prot
)) {
12273 basic_ios_wchar
*basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
12274 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
12279 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PBDHH@Z */
12280 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDHH@Z */
12281 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor_name
, 20)
12282 basic_ifstream_wchar
* __thiscall
basic_ifstream_short_ctor_name(basic_ifstream_wchar
*this,
12283 const char *name
, int mode
, int prot
, bool virt_init
)
12285 basic_ifstream_wchar_ctor_name(this, name
, mode
, prot
, virt_init
);
12286 basic_istream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &basic_ifstream_short_vtable
;
12290 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@PBDH@Z */
12291 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBDH@Z */
12292 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor_name_old
, 16)
12293 basic_ifstream_wchar
* __thiscall
basic_ifstream_wchar_ctor_name_old(basic_ifstream_wchar
*this,
12294 const char *name
, int mode
, bool virt_init
)
12296 return basic_ifstream_wchar_ctor_name(this, name
, mode
, _SH_DENYNO
, virt_init
);
12299 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PBDH@Z */
12300 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDH@Z */
12301 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor_name_old
, 16)
12302 basic_ifstream_wchar
* __thiscall
basic_ifstream_short_ctor_name_old(basic_ifstream_wchar
*this,
12303 const char *name
, int mode
, bool virt_init
)
12305 return basic_ifstream_short_ctor_name(this, name
, mode
, _SH_DENYNO
, virt_init
);
12308 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@PBGHH@Z */
12309 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBGHH@Z */
12310 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@PB_WHH@Z */
12311 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEB_WHH@Z */
12312 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor_name_wchar
, 20)
12313 basic_ifstream_wchar
* __thiscall
basic_ifstream_wchar_ctor_name_wchar(basic_ifstream_wchar
*this,
12314 const wchar_t *name
, int mode
, int prot
, bool virt_init
)
12316 TRACE("(%p %s %d %d %d)\n", this, debugstr_w(name
), mode
, prot
, virt_init
);
12318 basic_ifstream_wchar_ctor(this, virt_init
);
12320 if(!basic_filebuf_wchar_open_wchar(&this->filebuf
, name
, mode
|OPENMODE_in
, prot
)) {
12321 basic_ios_wchar
*basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
12322 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
12327 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PBGHH@Z */
12328 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEBGHH@Z */
12329 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PB_WHH@Z */
12330 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEB_WHH@Z */
12331 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor_name_wchar
, 20)
12332 basic_ifstream_wchar
* __thiscall
basic_ifstream_short_ctor_name_wchar(basic_ifstream_wchar
*this,
12333 const wchar_t *name
, int mode
, int prot
, bool virt_init
)
12335 basic_ifstream_wchar_ctor_name_wchar(this, name
, mode
, prot
, virt_init
);
12336 basic_istream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &basic_ifstream_short_vtable
;
12340 /* ??1?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
12341 /* ??1?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
12342 /* ??1?$basic_ifstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
12343 /* ??1?$basic_ifstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
12344 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_dtor
, 4)
12345 void __thiscall
basic_ifstream_wchar_dtor(basic_ios_wchar
*base
)
12347 basic_ifstream_wchar
*this = basic_ifstream_wchar_from_basic_ios(base
);
12349 TRACE("(%p)\n", this);
12351 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base
));
12352 basic_filebuf_wchar_dtor(&this->filebuf
);
12355 /* ??_D?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
12356 /* ??_D?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
12357 /* ??_D?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
12358 /* ??_D?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
12359 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_vbase_dtor
, 4)
12360 void __thiscall
basic_ifstream_wchar_vbase_dtor(basic_ifstream_wchar
*this)
12362 basic_ios_wchar
*base
= basic_ifstream_wchar_to_basic_ios(this);
12364 TRACE("(%p)\n", this);
12366 basic_ifstream_wchar_dtor(base
);
12367 basic_ios_wchar_dtor(base
);
12370 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_vector_dtor
, 8)
12371 basic_ifstream_wchar
* __thiscall
basic_ifstream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
12373 basic_ifstream_wchar
*this = basic_ifstream_wchar_from_basic_ios(base
);
12375 TRACE("(%p %x)\n", this, flags
);
12378 /* we have an array, with the number of elements stored before the first object */
12379 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
12381 for(i
=*ptr
-1; i
>=0; i
--)
12382 basic_ifstream_wchar_vbase_dtor(this+i
);
12383 operator_delete(ptr
);
12385 basic_ifstream_wchar_vbase_dtor(this);
12387 operator_delete(this);
12393 /* ?close@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
12394 /* ?close@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
12395 /* ?close@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
12396 /* ?close@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
12397 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_close
, 4)
12398 void __thiscall
basic_ifstream_wchar_close(basic_ifstream_wchar
*this)
12400 TRACE("(%p)\n", this);
12402 if(!basic_filebuf_wchar_close(&this->filebuf
)) {
12403 basic_ios_wchar
*basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
12404 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
12408 /* ?is_open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
12409 /* ?is_open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
12410 /* ?is_open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
12411 /* ?is_open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
12412 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_is_open
, 4)
12413 bool __thiscall
basic_ifstream_wchar_is_open(const basic_ifstream_wchar
*this)
12415 TRACE("(%p)\n", this);
12416 return basic_filebuf_wchar_is_open(&this->filebuf
);
12419 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDHH@Z */
12420 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDHH@Z */
12421 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBDHH@Z */
12422 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDHH@Z */
12423 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_open
, 16)
12424 void __thiscall
basic_ifstream_wchar_open(basic_ifstream_wchar
*this,
12425 const char *name
, int mode
, int prot
)
12427 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
12429 if(!basic_filebuf_wchar_open(&this->filebuf
, name
, mode
|OPENMODE_in
, prot
)) {
12430 basic_ios_wchar
*basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
12431 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
12435 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDI@Z */
12436 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDI@Z */
12437 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBDI@Z */
12438 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDI@Z */
12439 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_open_old
, 12)
12440 void __thiscall
basic_ifstream_wchar_open_old(basic_ifstream_wchar
*this,
12441 const char *name
, unsigned int mode
)
12443 basic_ifstream_wchar_open(this, name
, mode
, _SH_DENYNO
);
12446 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXPBGHH@Z */
12447 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBGHH@Z */
12448 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXPB_WHH@Z */
12449 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEB_WHH@Z */
12450 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBGHH@Z */
12451 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBGHH@Z */
12452 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPB_WHH@Z */
12453 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEB_WHH@Z */
12454 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_open_wchar
, 16)
12455 void __thiscall
basic_ifstream_wchar_open_wchar(basic_ifstream_wchar
*this,
12456 const wchar_t *name
, int mode
, int prot
)
12458 TRACE("(%p %s %d %d)\n", this, debugstr_w(name
), mode
, prot
);
12460 if(!basic_filebuf_wchar_open_wchar(&this->filebuf
, name
, mode
|OPENMODE_in
, prot
)) {
12461 basic_ios_wchar
*basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
12462 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
12466 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXPBGI@Z */
12467 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBGI@Z */
12468 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXPB_WI@Z */
12469 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEB_WI@Z */
12470 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBGI@Z */
12471 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBGI@Z */
12472 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPB_WI@Z */
12473 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEB_WI@Z */
12474 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_open_wchar_old
, 12)
12475 void __thiscall
basic_ifstream_wchar_open_wchar_old(basic_ifstream_wchar
*this,
12476 const wchar_t *name
, unsigned int mode
)
12478 basic_ifstream_wchar_open_wchar(this, name
, mode
, _SH_DENYNO
);
12481 /* ?rdbuf@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
12482 /* ?rdbuf@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
12483 /* ?rdbuf@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
12484 /* ?rdbuf@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
12485 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_rdbuf
, 4)
12486 basic_filebuf_wchar
* __thiscall
basic_ifstream_wchar_rdbuf(const basic_ifstream_wchar
*this)
12488 TRACE("(%p)\n", this);
12489 return (basic_filebuf_wchar
*)&this->filebuf
;
12492 static inline basic_ios_char
* basic_fstream_char_to_basic_ios(basic_fstream_char
*ptr
)
12494 return (basic_ios_char
*)((char*)ptr
+basic_fstream_char_vbtable1
[1]);
12497 static inline basic_fstream_char
* basic_fstream_char_from_basic_ios(basic_ios_char
*ptr
)
12499 return (basic_fstream_char
*)((char*)ptr
-basic_fstream_char_vbtable1
[1]);
12502 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
12503 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
12504 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor
, 8)
12505 basic_fstream_char
* __thiscall
basic_fstream_char_ctor(basic_fstream_char
*this, bool virt_init
)
12507 basic_ios_char
*basic_ios
;
12509 TRACE("(%p %d)\n", this, virt_init
);
12512 this->base
.base1
.vbtable
= basic_fstream_char_vbtable1
;
12513 this->base
.base2
.vbtable
= basic_fstream_char_vbtable2
;
12514 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
12515 INIT_BASIC_IOS_VTORDISP(basic_ios
);
12516 basic_ios_char_ctor(basic_ios
);
12518 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
12521 basic_filebuf_char_ctor(&this->filebuf
);
12522 basic_iostream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
);
12523 basic_ios
->base
.vtable
= &basic_fstream_char_vtable
;
12527 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
12528 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
12529 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_file
, 12)
12530 basic_fstream_char
* __thiscall
basic_fstream_char_ctor_file(basic_fstream_char
*this,
12531 FILE *file
, bool virt_init
)
12533 basic_ios_char
*basic_ios
;
12535 TRACE("(%p %p %d)\n", this, file
, virt_init
);
12538 this->base
.base1
.vbtable
= basic_fstream_char_vbtable1
;
12539 this->base
.base2
.vbtable
= basic_fstream_char_vbtable2
;
12540 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
12541 INIT_BASIC_IOS_VTORDISP(basic_ios
);
12542 basic_ios_char_ctor(basic_ios
);
12544 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
12547 basic_filebuf_char_ctor_file(&this->filebuf
, file
);
12548 basic_iostream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
);
12549 basic_ios
->base
.vtable
= &basic_fstream_char_vtable
;
12553 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
12554 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
12555 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_name
, 20)
12556 basic_fstream_char
* __thiscall
basic_fstream_char_ctor_name(basic_fstream_char
*this,
12557 const char *name
, int mode
, int prot
, bool virt_init
)
12559 TRACE("(%p %s %d %d %d)\n", this, name
, mode
, prot
, virt_init
);
12561 basic_fstream_char_ctor(this, virt_init
);
12563 if(!basic_filebuf_char_open(&this->filebuf
, name
, mode
, prot
)) {
12564 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
12565 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
12570 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z */
12571 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDH@Z */
12572 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_name_noprot
, 16)
12573 basic_fstream_char
* __thiscall
basic_fstream_char_ctor_name_noprot(basic_fstream_char
*this,
12574 const char *name
, int mode
, bool virt_init
)
12576 return basic_fstream_char_ctor_name(this, name
, mode
, _SH_DENYNO
, virt_init
);
12579 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBGHH@Z */
12580 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEBGHH@Z */
12581 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PB_WHH@Z */
12582 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEB_WHH@Z */
12583 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_name_wchar
, 20)
12584 basic_fstream_char
* __thiscall
basic_fstream_char_ctor_name_wchar(basic_fstream_char
*this,
12585 const wchar_t *name
, int mode
, int prot
, bool virt_init
)
12587 TRACE("(%p %s %d %d %d)\n", this, debugstr_w(name
), mode
, prot
, virt_init
);
12589 basic_fstream_char_ctor(this, virt_init
);
12591 if(!basic_filebuf_char_open_wchar(&this->filebuf
, name
, mode
, prot
)) {
12592 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
12593 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
12598 /* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
12599 /* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
12600 DEFINE_THISCALL_WRAPPER(basic_fstream_char_dtor
, 4)
12601 void __thiscall
basic_fstream_char_dtor(basic_ios_char
*base
)
12603 basic_fstream_char
*this = basic_fstream_char_from_basic_ios(base
);
12605 TRACE("(%p)\n", this);
12607 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base
));
12608 basic_filebuf_char_dtor(&this->filebuf
);
12611 /* ??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
12612 /* ??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
12613 DEFINE_THISCALL_WRAPPER(basic_fstream_char_vbase_dtor
, 4)
12614 void __thiscall
basic_fstream_char_vbase_dtor(basic_fstream_char
*this)
12616 basic_ios_char
*base
= basic_fstream_char_to_basic_ios(this);
12618 TRACE("(%p)\n", this);
12620 basic_fstream_char_dtor(base
);
12621 basic_ios_char_dtor(base
);
12624 DEFINE_THISCALL_WRAPPER(basic_fstream_char_vector_dtor
, 8)
12625 basic_fstream_char
* __thiscall
basic_fstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
12627 basic_fstream_char
*this = basic_fstream_char_from_basic_ios(base
);
12629 TRACE("(%p %x)\n", this, flags
);
12632 /* we have an array, with the number of elements stored before the first object */
12633 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
12635 for(i
=*ptr
-1; i
>=0; i
--)
12636 basic_fstream_char_vbase_dtor(this+i
);
12637 operator_delete(ptr
);
12639 basic_fstream_char_vbase_dtor(this);
12641 operator_delete(this);
12647 /* ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
12648 /* ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
12649 DEFINE_THISCALL_WRAPPER(basic_fstream_char_close
, 4)
12650 void __thiscall
basic_fstream_char_close(basic_fstream_char
*this)
12652 TRACE("(%p)\n", this);
12654 if(!basic_filebuf_char_close(&this->filebuf
)) {
12655 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
12656 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
12660 /* ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
12661 /* ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
12662 DEFINE_THISCALL_WRAPPER(basic_fstream_char_is_open
, 4)
12663 bool __thiscall
basic_fstream_char_is_open(const basic_fstream_char
*this)
12665 TRACE("(%p)\n", this);
12666 return basic_filebuf_char_is_open(&this->filebuf
);
12669 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
12670 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
12671 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open
, 16)
12672 void __thiscall
basic_fstream_char_open(basic_fstream_char
*this,
12673 const char *name
, int mode
, int prot
)
12675 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
12677 if(!basic_filebuf_char_open(&this->filebuf
, name
, mode
, prot
)) {
12678 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
12679 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
12683 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
12684 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
12685 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open_old
, 12)
12686 void __thiscall
basic_fstream_char_open_old(basic_fstream_char
*this,
12687 const char *name
, unsigned int mode
)
12689 basic_fstream_char_open(this, name
, mode
, _SH_DENYNO
);
12692 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBGHH@Z */
12693 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBGHH@Z */
12694 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPB_WHH@Z */
12695 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEB_WHH@Z */
12696 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open_wchar
, 16)
12697 void __thiscall
basic_fstream_char_open_wchar(basic_fstream_char
*this,
12698 const wchar_t *name
, int mode
, int prot
)
12700 TRACE("(%p %s %d %d)\n", this, debugstr_w(name
), mode
, prot
);
12702 if(!basic_filebuf_char_open_wchar(&this->filebuf
, name
, mode
, prot
)) {
12703 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
12704 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
12708 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBGI@Z */
12709 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBGI@Z */
12710 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPB_WI@Z */
12711 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEB_WI@Z */
12712 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open_wchar_old
, 12)
12713 void __thiscall
basic_fstream_char_open_wchar_old(basic_fstream_char
*this,
12714 const wchar_t *name
, unsigned int mode
)
12716 basic_fstream_char_open_wchar(this, name
, mode
, _SH_DENYNO
);
12719 /* ?rdbuf@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
12720 /* ?rdbuf@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
12721 DEFINE_THISCALL_WRAPPER(basic_fstream_char_rdbuf
, 4)
12722 basic_filebuf_char
* __thiscall
basic_fstream_char_rdbuf(const basic_fstream_char
*this)
12724 TRACE("(%p)\n", this);
12725 return (basic_filebuf_char
*)&this->filebuf
;
12728 static inline basic_ios_wchar
* basic_fstream_wchar_to_basic_ios(basic_fstream_wchar
*ptr
)
12730 return (basic_ios_wchar
*)((char*)ptr
+basic_fstream_wchar_vbtable1
[1]);
12733 static inline basic_fstream_wchar
* basic_fstream_wchar_from_basic_ios(basic_ios_wchar
*ptr
)
12735 return (basic_fstream_wchar
*)((char*)ptr
-basic_fstream_wchar_vbtable1
[1]);
12738 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
12739 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
12740 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor
, 8)
12741 basic_fstream_wchar
* __thiscall
basic_fstream_wchar_ctor(basic_fstream_wchar
*this, bool virt_init
)
12743 basic_ios_wchar
*basic_ios
;
12745 TRACE("(%p %d)\n", this, virt_init
);
12748 this->base
.base1
.vbtable
= basic_fstream_wchar_vbtable1
;
12749 this->base
.base2
.vbtable
= basic_fstream_wchar_vbtable2
;
12750 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
12751 INIT_BASIC_IOS_VTORDISP(basic_ios
);
12752 basic_ios_wchar_ctor(basic_ios
);
12754 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
12757 basic_filebuf_wchar_ctor(&this->filebuf
);
12758 basic_iostream_wchar_ctor(&this->base
, &this->filebuf
.base
, FALSE
);
12759 basic_ios
->base
.vtable
= &basic_fstream_wchar_vtable
;
12763 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
12764 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
12765 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor
, 8)
12766 basic_fstream_wchar
* __thiscall
basic_fstream_short_ctor(basic_fstream_wchar
*this, bool virt_init
)
12768 basic_fstream_wchar_ctor(this, virt_init
);
12769 basic_istream_wchar_get_basic_ios(&this->base
.base1
)->base
.vtable
= &basic_fstream_short_vtable
;
12773 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
12774 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
12775 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor_file
, 12)
12776 basic_fstream_wchar
* __thiscall
basic_fstream_wchar_ctor_file(basic_fstream_wchar
*this,
12777 FILE *file
, bool virt_init
)
12779 basic_ios_wchar
*basic_ios
;
12781 TRACE("(%p %p %d)\n", this, file
, virt_init
);
12784 this->base
.base1
.vbtable
= basic_fstream_wchar_vbtable1
;
12785 this->base
.base2
.vbtable
= basic_fstream_wchar_vbtable2
;
12786 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
12787 INIT_BASIC_IOS_VTORDISP(basic_ios
);
12788 basic_ios_wchar_ctor(basic_ios
);
12790 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
12793 basic_filebuf_wchar_ctor_file(&this->filebuf
, file
);
12794 basic_iostream_wchar_ctor(&this->base
, &this->filebuf
.base
, FALSE
);
12795 basic_ios
->base
.vtable
= &basic_fstream_wchar_vtable
;
12799 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
12800 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
12801 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor_file
, 12)
12802 basic_fstream_wchar
* __thiscall
basic_fstream_short_ctor_file(basic_fstream_wchar
*this,
12803 FILE *file
, bool virt_init
)
12805 basic_fstream_wchar_ctor_file(this, file
, virt_init
);
12806 basic_istream_wchar_get_basic_ios(&this->base
.base1
)->base
.vtable
= &basic_fstream_short_vtable
;
12810 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PB_WHH@Z */
12811 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEB_WHH@Z */
12812 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor_name
, 20)
12813 basic_fstream_wchar
* __thiscall
basic_fstream_wchar_ctor_name(basic_fstream_wchar
*this,
12814 const char *name
, int mode
, int prot
, bool virt_init
)
12816 TRACE("(%p %s %d %d %d)\n", this, name
, mode
, prot
, virt_init
);
12818 basic_fstream_wchar_ctor(this, virt_init
);
12820 if(!basic_filebuf_wchar_open(&this->filebuf
, name
, mode
, prot
)) {
12821 basic_ios_wchar
*basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
12822 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
12827 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PBGHH@Z */
12828 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEBGHH@Z */
12829 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor_name
, 20)
12830 basic_fstream_wchar
* __thiscall
basic_fstream_short_ctor_name(basic_fstream_wchar
*this,
12831 const char *name
, int mode
, int prot
, bool virt_init
)
12833 basic_fstream_wchar_ctor_name(this, name
, mode
, prot
, virt_init
);
12834 basic_istream_wchar_get_basic_ios(&this->base
.base1
)->base
.vtable
= &basic_fstream_short_vtable
;
12838 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PBDH@Z */
12839 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor_name_noprot
, 16)
12840 basic_fstream_wchar
* __thiscall
basic_fstream_wchar_ctor_name_noprot(basic_fstream_wchar
*this,
12841 const char *name
, int mode
, bool virt_init
)
12843 return basic_fstream_wchar_ctor_name(this, name
, mode
, _SH_DENYNO
, virt_init
);
12846 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PBDH@Z */
12847 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDH@Z */
12848 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor_name_noprot
, 16)
12849 basic_fstream_wchar
* __thiscall
basic_fstream_short_ctor_name_noprot(basic_fstream_wchar
*this,
12850 const char *name
, int mode
, bool virt_init
)
12852 return basic_fstream_short_ctor_name(this, name
, mode
, _SH_DENYNO
, virt_init
);
12855 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PBGHH@Z */
12856 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBGHH@Z */
12857 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PB_WHH@Z */
12858 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEB_WHH@Z */
12859 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor_name_wchar
, 20)
12860 basic_fstream_wchar
* __thiscall
basic_fstream_wchar_ctor_name_wchar(basic_fstream_wchar
*this,
12861 const wchar_t *name
, int mode
, int prot
, bool virt_init
)
12863 TRACE("(%p %s %d %d %d)\n", this, debugstr_w(name
), mode
, prot
, virt_init
);
12865 basic_fstream_wchar_ctor(this, virt_init
);
12867 if(!basic_filebuf_wchar_open_wchar(&this->filebuf
, name
, mode
, prot
)) {
12868 basic_ios_wchar
*basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
12869 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
12874 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PBGHH@Z */
12875 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEBGHH@Z */
12876 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PB_WHH@Z */
12877 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEB_WHH@Z */
12878 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor_name_wchar
, 20)
12879 basic_fstream_wchar
* __thiscall
basic_fstream_short_ctor_name_wchar(basic_fstream_wchar
*this,
12880 const wchar_t *name
, int mode
, int prot
, bool virt_init
)
12882 basic_fstream_wchar_ctor_name_wchar(this, name
, mode
, prot
, virt_init
);
12883 basic_istream_wchar_get_basic_ios(&this->base
.base1
)->base
.vtable
= &basic_fstream_short_vtable
;
12887 /* ??1?$basic_fstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
12888 /* ??1?$basic_fstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
12889 /* ??1?$basic_fstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
12890 /* ??1?$basic_fstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
12891 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_dtor
, 4)
12892 void __thiscall
basic_fstream_wchar_dtor(basic_ios_wchar
*base
)
12894 basic_fstream_wchar
*this = basic_fstream_wchar_from_basic_ios(base
);
12896 TRACE("(%p)\n", this);
12898 basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(&this->base
));
12899 basic_filebuf_wchar_dtor(&this->filebuf
);
12902 /* ??_D?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
12903 /* ??_D?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
12904 /* ??_D?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
12905 /* ??_D?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
12906 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_vbase_dtor
, 4)
12907 void __thiscall
basic_fstream_wchar_vbase_dtor(basic_fstream_wchar
*this)
12909 basic_ios_wchar
*base
= basic_fstream_wchar_to_basic_ios(this);
12911 TRACE("(%p)\n", this);
12913 basic_fstream_wchar_dtor(base
);
12914 basic_ios_wchar_dtor(base
);
12917 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_vector_dtor
, 8)
12918 basic_fstream_wchar
* __thiscall
basic_fstream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
12920 basic_fstream_wchar
*this = basic_fstream_wchar_from_basic_ios(base
);
12922 TRACE("(%p %x)\n", this, flags
);
12925 /* we have an array, with the number of elements stored before the first object */
12926 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
12928 for(i
=*ptr
-1; i
>=0; i
--)
12929 basic_fstream_wchar_vbase_dtor(this+i
);
12930 operator_delete(ptr
);
12932 basic_fstream_wchar_vbase_dtor(this);
12934 operator_delete(this);
12940 /* ?close@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
12941 /* ?close@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
12942 /* ?close@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
12943 /* ?close@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
12944 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_close
, 4)
12945 void __thiscall
basic_fstream_wchar_close(basic_fstream_wchar
*this)
12947 TRACE("(%p)\n", this);
12949 if(!basic_filebuf_wchar_close(&this->filebuf
)) {
12950 basic_ios_wchar
*basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
12951 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
12955 /* ?is_open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
12956 /* ?is_open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
12957 /* ?is_open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
12958 /* ?is_open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
12959 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_is_open
, 4)
12960 bool __thiscall
basic_fstream_wchar_is_open(const basic_fstream_wchar
*this)
12962 TRACE("(%p)\n", this);
12963 return basic_filebuf_wchar_is_open(&this->filebuf
);
12966 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDHH@Z */
12967 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDHH@Z */
12968 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPBDHH@Z */
12969 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDHH@Z */
12970 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_open
, 16)
12971 void __thiscall
basic_fstream_wchar_open(basic_fstream_wchar
*this,
12972 const char *name
, int mode
, int prot
)
12974 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
12976 if(!basic_filebuf_wchar_open(&this->filebuf
, name
, mode
, prot
)) {
12977 basic_ios_wchar
*basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
12978 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
12982 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDI@Z */
12983 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDI@Z */
12984 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPBDI@Z */
12985 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDI@Z */
12986 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_open_old
, 12)
12987 void __thiscall
basic_fstream_wchar_open_old(basic_fstream_wchar
*this,
12988 const char *name
, unsigned int mode
)
12990 basic_fstream_wchar_open(this, name
, mode
, _SH_DENYNO
);
12993 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXPBGHH@Z */
12994 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBGHH@Z */
12995 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXPB_WHH@Z */
12996 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEB_WHH@Z */
12997 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPBGHH@Z */
12998 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEBGHH@Z */
12999 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPB_WHH@Z */
13000 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEB_WHH@Z */
13001 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_open_wchar
, 16)
13002 void __thiscall
basic_fstream_wchar_open_wchar(basic_fstream_wchar
*this,
13003 const wchar_t *name
, int mode
, int prot
)
13005 TRACE("(%p %s %d %d)\n", this, debugstr_w(name
), mode
, prot
);
13007 if(!basic_filebuf_wchar_open_wchar(&this->filebuf
, name
, mode
, prot
)) {
13008 basic_ios_wchar
*basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
13009 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
13013 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXPBGI@Z */
13014 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBGI@Z */
13015 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXPB_WI@Z */
13016 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEB_WI@Z */
13017 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPBGI@Z */
13018 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEBGI@Z */
13019 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPB_WI@Z */
13020 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEB_WI@Z */
13021 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_open_wchar_old
, 12)
13022 void __thiscall
basic_fstream_wchar_open_wchar_old(basic_fstream_wchar
*this,
13023 const wchar_t *name
, unsigned int mode
)
13025 basic_fstream_wchar_open_wchar(this, name
, mode
, _SH_DENYNO
);
13028 /* ?rdbuf@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
13029 /* ?rdbuf@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
13030 /* ?rdbuf@?$basic_fstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
13031 /* ?rdbuf@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
13032 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_rdbuf
, 4)
13033 basic_filebuf_wchar
* __thiscall
basic_fstream_wchar_rdbuf(const basic_fstream_wchar
*this)
13035 TRACE("(%p)\n", this);
13036 return (basic_filebuf_wchar
*)&this->filebuf
;
13039 static inline basic_ios_char
* basic_ostringstream_char_to_basic_ios(basic_ostringstream_char
*ptr
)
13041 return (basic_ios_char
*)((char*)ptr
+basic_ostringstream_char_vbtable
[1]);
13044 static inline basic_ostringstream_char
* basic_ostringstream_char_from_basic_ios(basic_ios_char
*ptr
)
13046 return (basic_ostringstream_char
*)((char*)ptr
-basic_ostringstream_char_vbtable
[1]);
13049 /* ??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 */
13050 /* ??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 */
13051 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_str
, 16)
13052 basic_ostringstream_char
* __thiscall
basic_ostringstream_char_ctor_str(basic_ostringstream_char
*this,
13053 const basic_string_char
*str
, int mode
, bool virt_init
)
13055 basic_ios_char
*basic_ios
;
13057 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
13060 this->base
.vbtable
= basic_ostringstream_char_vbtable
;
13061 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
13062 INIT_BASIC_IOS_VTORDISP(basic_ios
);
13063 basic_ios_char_ctor(basic_ios
);
13065 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
13068 basic_stringbuf_char_ctor_str(&this->strbuf
, str
, mode
|OPENMODE_out
);
13069 basic_ostream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
13070 basic_ios
->base
.vtable
= &basic_ostringstream_char_vtable
;
13074 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
13075 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
13076 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_mode
, 12)
13077 basic_ostringstream_char
* __thiscall
basic_ostringstream_char_ctor_mode(
13078 basic_ostringstream_char
*this, int mode
, bool virt_init
)
13080 basic_ios_char
*basic_ios
;
13082 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
13085 this->base
.vbtable
= basic_ostringstream_char_vbtable
;
13086 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
13087 INIT_BASIC_IOS_VTORDISP(basic_ios
);
13088 basic_ios_char_ctor(basic_ios
);
13090 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
13093 basic_stringbuf_char_ctor_mode(&this->strbuf
, mode
|OPENMODE_out
);
13094 basic_ostream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
13095 basic_ios
->base
.vtable
= &basic_ostringstream_char_vtable
;
13099 /* ??_F?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
13100 /* ??_F?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
13101 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor
, 4)
13102 basic_ostringstream_char
* __thiscall
basic_ostringstream_char_ctor(
13103 basic_ostringstream_char
*this)
13105 return basic_ostringstream_char_ctor_mode(this, 0, TRUE
);
13108 /* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
13109 /* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
13110 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_dtor
, 4)
13111 void __thiscall
basic_ostringstream_char_dtor(basic_ios_char
*base
)
13113 basic_ostringstream_char
*this = basic_ostringstream_char_from_basic_ios(base
);
13115 TRACE("(%p)\n", this);
13117 basic_stringbuf_char_dtor(&this->strbuf
);
13118 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base
));
13121 /* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
13122 /* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
13123 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_vbase_dtor
, 4)
13124 void __thiscall
basic_ostringstream_char_vbase_dtor(basic_ostringstream_char
*this)
13126 basic_ios_char
*base
= basic_ostringstream_char_to_basic_ios(this);
13128 TRACE("(%p)\n", this);
13130 basic_ostringstream_char_dtor(base
);
13131 basic_ios_char_dtor(base
);
13134 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_vector_dtor
, 8)
13135 basic_ostringstream_char
* __thiscall
basic_ostringstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
13137 basic_ostringstream_char
*this = basic_ostringstream_char_from_basic_ios(base
);
13139 TRACE("(%p %x)\n", this, flags
);
13142 /* we have an array, with the number of elements stored before the first object */
13143 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
13145 for(i
=*ptr
-1; i
>=0; i
--)
13146 basic_ostringstream_char_vbase_dtor(this+i
);
13147 operator_delete(ptr
);
13149 basic_ostringstream_char_vbase_dtor(this);
13151 operator_delete(this);
13157 /* ?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 */
13158 /* ?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 */
13159 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_rdbuf
, 4)
13160 basic_stringbuf_char
* __thiscall
basic_ostringstream_char_rdbuf(const basic_ostringstream_char
*this)
13162 TRACE("(%p)\n", this);
13163 return (basic_stringbuf_char
*)&this->strbuf
;
13166 /* ?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 */
13167 /* ?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 */
13168 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_str_set
, 8)
13169 void __thiscall
basic_ostringstream_char_str_set(basic_ostringstream_char
*this, const basic_string_char
*str
)
13171 TRACE("(%p %p)\n", this, str
);
13172 basic_stringbuf_char_str_set(&this->strbuf
, str
);
13175 /* ?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 */
13176 /* ?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 */
13177 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_str_get
, 8)
13178 basic_string_char
* __thiscall
basic_ostringstream_char_str_get(const basic_ostringstream_char
*this, basic_string_char
*ret
)
13180 TRACE("(%p %p)\n", this, ret
);
13181 return basic_stringbuf_char_str_get(&this->strbuf
, ret
);
13184 static inline basic_ios_wchar
* basic_ostringstream_wchar_to_basic_ios(basic_ostringstream_wchar
*ptr
)
13186 return (basic_ios_wchar
*)((char*)ptr
+basic_ostringstream_wchar_vbtable
[1]);
13189 static inline basic_ostringstream_wchar
* basic_ostringstream_wchar_from_basic_ios(basic_ios_wchar
*ptr
)
13191 return (basic_ostringstream_wchar
*)((char*)ptr
-basic_ostringstream_wchar_vbtable
[1]);
13194 /* ??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 */
13195 /* ??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 */
13196 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor_str
, 16)
13197 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_wchar_ctor_str(basic_ostringstream_wchar
*this,
13198 const basic_string_wchar
*str
, int mode
, bool virt_init
)
13200 basic_ios_wchar
*basic_ios
;
13202 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
13205 this->base
.vbtable
= basic_ostringstream_wchar_vbtable
;
13206 basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
13207 INIT_BASIC_IOS_VTORDISP(basic_ios
);
13208 basic_ios_wchar_ctor(basic_ios
);
13210 basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
13213 basic_stringbuf_wchar_ctor_str(&this->strbuf
, str
, mode
|OPENMODE_out
);
13214 basic_ostream_wchar_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
13215 basic_ios
->base
.vtable
= &basic_ostringstream_wchar_vtable
;
13219 /* ??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 */
13220 /* ??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 */
13221 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor_str
, 16)
13222 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_short_ctor_str(basic_ostringstream_wchar
*this,
13223 const basic_string_wchar
*str
, int mode
, bool virt_init
)
13225 basic_ostringstream_wchar_ctor_str(this, str
, mode
, virt_init
);
13226 basic_ostream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &basic_ostringstream_short_vtable
;
13230 /* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
13231 /* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
13232 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor_mode
, 12)
13233 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_wchar_ctor_mode(
13234 basic_ostringstream_wchar
*this, int mode
, bool virt_init
)
13236 basic_ios_wchar
*basic_ios
;
13238 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
13241 this->base
.vbtable
= basic_ostringstream_wchar_vbtable
;
13242 basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
13243 INIT_BASIC_IOS_VTORDISP(basic_ios
);
13244 basic_ios_wchar_ctor(basic_ios
);
13246 basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
13249 basic_stringbuf_wchar_ctor_mode(&this->strbuf
, mode
|OPENMODE_out
);
13250 basic_ostream_wchar_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
13251 basic_ios
->base
.vtable
= &basic_ostringstream_wchar_vtable
;
13255 /* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
13256 /* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
13257 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor_mode
, 12)
13258 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_short_ctor_mode(
13259 basic_ostringstream_wchar
*this, int mode
, bool virt_init
)
13261 basic_ostringstream_wchar_ctor_mode(this, mode
, virt_init
);
13262 basic_ostream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &basic_ostringstream_short_vtable
;
13266 /* ??_F?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
13267 /* ??_F?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
13268 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor
, 4)
13269 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_wchar_ctor(
13270 basic_ostringstream_wchar
*this)
13272 return basic_ostringstream_wchar_ctor_mode(this, 0, TRUE
);
13275 /* ??_F?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
13276 /* ??_F?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
13277 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor
, 4)
13278 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_short_ctor(
13279 basic_ostringstream_wchar
*this)
13281 return basic_ostringstream_short_ctor_mode(this, 0, TRUE
);
13284 /* ??1?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
13285 /* ??1?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
13286 /* ??1?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
13287 /* ??1?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
13288 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_dtor
, 4)
13289 void __thiscall
basic_ostringstream_wchar_dtor(basic_ios_wchar
*base
)
13291 basic_ostringstream_wchar
*this = basic_ostringstream_wchar_from_basic_ios(base
);
13293 TRACE("(%p)\n", this);
13295 basic_stringbuf_wchar_dtor(&this->strbuf
);
13296 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base
));
13299 /* ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
13300 /* ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
13301 /* ??_D?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
13302 /* ??_D?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
13303 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_vbase_dtor
, 4)
13304 void __thiscall
basic_ostringstream_wchar_vbase_dtor(basic_ostringstream_wchar
*this)
13306 basic_ios_wchar
*base
= basic_ostringstream_wchar_to_basic_ios(this);
13308 TRACE("(%p)\n", this);
13310 basic_ostringstream_wchar_dtor(base
);
13311 basic_ios_wchar_dtor(base
);
13314 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_vector_dtor
, 8)
13315 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
13317 basic_ostringstream_wchar
*this = basic_ostringstream_wchar_from_basic_ios(base
);
13319 TRACE("(%p %x)\n", this, flags
);
13322 /* we have an array, with the number of elements stored before the first object */
13323 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
13325 for(i
=*ptr
-1; i
>=0; i
--)
13326 basic_ostringstream_wchar_vbase_dtor(this+i
);
13327 operator_delete(ptr
);
13329 basic_ostringstream_wchar_vbase_dtor(this);
13331 operator_delete(this);
13337 /* ?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 */
13338 /* ?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 */
13339 /* ?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 */
13340 /* ?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 */
13341 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_rdbuf
, 4)
13342 basic_stringbuf_wchar
* __thiscall
basic_ostringstream_wchar_rdbuf(const basic_ostringstream_wchar
*this)
13344 TRACE("(%p)\n", this);
13345 return (basic_stringbuf_wchar
*)&this->strbuf
;
13348 /* ?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 */
13349 /* ?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 */
13350 /* ?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 */
13351 /* ?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 */
13352 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_str_set
, 8)
13353 void __thiscall
basic_ostringstream_wchar_str_set(basic_ostringstream_wchar
*this, const basic_string_wchar
*str
)
13355 TRACE("(%p %p)\n", this, str
);
13356 basic_stringbuf_wchar_str_set(&this->strbuf
, str
);
13359 /* ?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 */
13360 /* ?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 */
13361 /* ?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 */
13362 /* ?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 */
13363 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_str_get
, 8)
13364 basic_string_wchar
* __thiscall
basic_ostringstream_wchar_str_get(const basic_ostringstream_wchar
*this, basic_string_wchar
*ret
)
13366 TRACE("(%p %p)\n", this, ret
);
13367 return basic_stringbuf_wchar_str_get(&this->strbuf
, ret
);
13370 static inline basic_ios_char
* basic_istringstream_char_to_basic_ios(basic_istringstream_char
*ptr
)
13372 return (basic_ios_char
*)((char*)ptr
+basic_istringstream_char_vbtable
[1]);
13375 static inline basic_istringstream_char
* basic_istringstream_char_from_basic_ios(basic_ios_char
*ptr
)
13377 return (basic_istringstream_char
*)((char*)ptr
-basic_istringstream_char_vbtable
[1]);
13380 /* ??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 */
13381 /* ??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 */
13382 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_str
, 16)
13383 basic_istringstream_char
* __thiscall
basic_istringstream_char_ctor_str(basic_istringstream_char
*this,
13384 const basic_string_char
*str
, int mode
, bool virt_init
)
13386 basic_ios_char
*basic_ios
;
13388 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
13391 this->base
.vbtable
= basic_istringstream_char_vbtable
;
13392 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
13393 INIT_BASIC_IOS_VTORDISP(basic_ios
);
13394 basic_ios_char_ctor(basic_ios
);
13396 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
13399 basic_stringbuf_char_ctor_str(&this->strbuf
, str
, mode
|OPENMODE_in
);
13400 basic_istream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
13401 basic_ios
->base
.vtable
= &basic_istringstream_char_vtable
;
13405 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
13406 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
13407 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_mode
, 12)
13408 basic_istringstream_char
* __thiscall
basic_istringstream_char_ctor_mode(
13409 basic_istringstream_char
*this, int mode
, bool virt_init
)
13411 basic_ios_char
*basic_ios
;
13413 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
13416 this->base
.vbtable
= basic_istringstream_char_vbtable
;
13417 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
13418 INIT_BASIC_IOS_VTORDISP(basic_ios
);
13419 basic_ios_char_ctor(basic_ios
);
13421 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
13424 basic_stringbuf_char_ctor_mode(&this->strbuf
, mode
|OPENMODE_in
);
13425 basic_istream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
13426 basic_ios
->base
.vtable
= &basic_istringstream_char_vtable
;
13430 /* ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
13431 /* ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
13432 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor
, 4)
13433 basic_istringstream_char
* __thiscall
basic_istringstream_char_ctor(
13434 basic_istringstream_char
*this)
13436 return basic_istringstream_char_ctor_mode(this, 0, TRUE
);
13439 /* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
13440 /* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
13441 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_dtor
, 4)
13442 void __thiscall
basic_istringstream_char_dtor(basic_ios_char
*base
)
13444 basic_istringstream_char
*this = basic_istringstream_char_from_basic_ios(base
);
13446 TRACE("(%p)\n", this);
13448 basic_stringbuf_char_dtor(&this->strbuf
);
13449 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base
));
13452 /* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
13453 /* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
13454 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_vbase_dtor
, 4)
13455 void __thiscall
basic_istringstream_char_vbase_dtor(basic_istringstream_char
*this)
13457 basic_ios_char
*base
= basic_istringstream_char_to_basic_ios(this);
13459 TRACE("(%p)\n", this);
13461 basic_istringstream_char_dtor(base
);
13462 basic_ios_char_dtor(base
);
13465 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_vector_dtor
, 8)
13466 basic_istringstream_char
* __thiscall
basic_istringstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
13468 basic_istringstream_char
*this = basic_istringstream_char_from_basic_ios(base
);
13470 TRACE("(%p %x)\n", this, flags
);
13473 /* we have an array, with the number of elements stored before the first object */
13474 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
13476 for(i
=*ptr
-1; i
>=0; i
--)
13477 basic_istringstream_char_vbase_dtor(this+i
);
13478 operator_delete(ptr
);
13480 basic_istringstream_char_vbase_dtor(this);
13482 operator_delete(this);
13488 /* ?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 */
13489 /* ?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 */
13490 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_rdbuf
, 4)
13491 basic_stringbuf_char
* __thiscall
basic_istringstream_char_rdbuf(const basic_istringstream_char
*this)
13493 TRACE("(%p)\n", this);
13494 return (basic_stringbuf_char
*)&this->strbuf
;
13497 /* ?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 */
13498 /* ?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 */
13499 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_str_set
, 8)
13500 void __thiscall
basic_istringstream_char_str_set(basic_istringstream_char
*this, const basic_string_char
*str
)
13502 TRACE("(%p %p)\n", this, str
);
13503 basic_stringbuf_char_str_set(&this->strbuf
, str
);
13506 /* ?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 */
13507 /* ?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 */
13508 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_str_get
, 8)
13509 basic_string_char
* __thiscall
basic_istringstream_char_str_get(const basic_istringstream_char
*this, basic_string_char
*ret
)
13511 TRACE("(%p %p)\n", this, ret
);
13512 return basic_stringbuf_char_str_get(&this->strbuf
, ret
);
13515 static inline basic_ios_wchar
* basic_istringstream_wchar_to_basic_ios(basic_istringstream_wchar
*ptr
)
13517 return (basic_ios_wchar
*)((char*)ptr
+basic_istringstream_wchar_vbtable
[1]);
13520 static inline basic_istringstream_wchar
* basic_istringstream_wchar_from_basic_ios(basic_ios_wchar
*ptr
)
13522 return (basic_istringstream_wchar
*)((char*)ptr
-basic_istringstream_wchar_vbtable
[1]);
13525 /* ??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 */
13526 /* ??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 */
13527 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor_str
, 16)
13528 basic_istringstream_wchar
* __thiscall
basic_istringstream_wchar_ctor_str(basic_istringstream_wchar
*this,
13529 const basic_string_wchar
*str
, int mode
, bool virt_init
)
13531 basic_ios_wchar
*basic_ios
;
13533 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
13536 this->base
.vbtable
= basic_istringstream_wchar_vbtable
;
13537 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
13538 INIT_BASIC_IOS_VTORDISP(basic_ios
);
13539 basic_ios_wchar_ctor(basic_ios
);
13541 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
13544 basic_stringbuf_wchar_ctor_str(&this->strbuf
, str
, mode
|OPENMODE_in
);
13545 basic_istream_wchar_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
13546 basic_ios
->base
.vtable
= &basic_istringstream_wchar_vtable
;
13550 /* ??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 */
13551 /* ??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 */
13552 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor_str
, 16)
13553 basic_istringstream_wchar
* __thiscall
basic_istringstream_short_ctor_str(basic_istringstream_wchar
*this,
13554 const basic_string_wchar
*str
, int mode
, bool virt_init
)
13556 basic_istringstream_wchar_ctor_str(this, str
, mode
, virt_init
);
13557 basic_istream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &basic_istringstream_short_vtable
;
13561 /* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
13562 /* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
13563 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor_mode
, 12)
13564 basic_istringstream_wchar
* __thiscall
basic_istringstream_wchar_ctor_mode(
13565 basic_istringstream_wchar
*this, int mode
, bool virt_init
)
13567 basic_ios_wchar
*basic_ios
;
13569 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
13572 this->base
.vbtable
= basic_istringstream_wchar_vbtable
;
13573 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
13574 INIT_BASIC_IOS_VTORDISP(basic_ios
);
13575 basic_ios_wchar_ctor(basic_ios
);
13577 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
13580 basic_stringbuf_wchar_ctor_mode(&this->strbuf
, mode
|OPENMODE_in
);
13581 basic_istream_wchar_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
13582 basic_ios
->base
.vtable
= &basic_istringstream_wchar_vtable
;
13586 /* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
13587 /* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
13588 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor_mode
, 12)
13589 basic_istringstream_wchar
* __thiscall
basic_istringstream_short_ctor_mode(
13590 basic_istringstream_wchar
*this, int mode
, bool virt_init
)
13592 basic_istringstream_wchar_ctor_mode(this, mode
, virt_init
);
13593 basic_istream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &basic_istringstream_short_vtable
;
13597 /* ??_F?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
13598 /* ??_F?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
13599 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor
, 4)
13600 basic_istringstream_wchar
* __thiscall
basic_istringstream_wchar_ctor(
13601 basic_istringstream_wchar
*this)
13603 return basic_istringstream_wchar_ctor_mode(this, 0, TRUE
);
13606 /* ??_F?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
13607 /* ??_F?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
13608 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor
, 4)
13609 basic_istringstream_wchar
* __thiscall
basic_istringstream_short_ctor(
13610 basic_istringstream_wchar
*this)
13612 return basic_istringstream_short_ctor_mode(this, 0, TRUE
);
13615 /* ??1?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
13616 /* ??1?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
13617 /* ??1?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
13618 /* ??1?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
13619 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_dtor
, 4)
13620 void __thiscall
basic_istringstream_wchar_dtor(basic_ios_wchar
*base
)
13622 basic_istringstream_wchar
*this = basic_istringstream_wchar_from_basic_ios(base
);
13624 TRACE("(%p)\n", this);
13626 basic_stringbuf_wchar_dtor(&this->strbuf
);
13627 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base
));
13630 /* ??_D?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
13631 /* ??_D?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
13632 /* ??_D?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
13633 /* ??_D?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
13634 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_vbase_dtor
, 4)
13635 void __thiscall
basic_istringstream_wchar_vbase_dtor(basic_istringstream_wchar
*this)
13637 basic_ios_wchar
*base
= basic_istringstream_wchar_to_basic_ios(this);
13639 TRACE("(%p)\n", this);
13641 basic_istringstream_wchar_dtor(base
);
13642 basic_ios_wchar_dtor(base
);
13645 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_vector_dtor
, 8)
13646 basic_istringstream_wchar
* __thiscall
basic_istringstream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
13648 basic_istringstream_wchar
*this = basic_istringstream_wchar_from_basic_ios(base
);
13650 TRACE("(%p %x)\n", this, flags
);
13653 /* we have an array, with the number of elements stored before the first object */
13654 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
13656 for(i
=*ptr
-1; i
>=0; i
--)
13657 basic_istringstream_wchar_vbase_dtor(this+i
);
13658 operator_delete(ptr
);
13660 basic_istringstream_wchar_vbase_dtor(this);
13662 operator_delete(this);
13668 /* ?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 */
13669 /* ?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 */
13670 /* ?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 */
13671 /* ?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 */
13672 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_rdbuf
, 4)
13673 basic_stringbuf_wchar
* __thiscall
basic_istringstream_wchar_rdbuf(const basic_istringstream_wchar
*this)
13675 TRACE("(%p)\n", this);
13676 return (basic_stringbuf_wchar
*)&this->strbuf
;
13679 /* ?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 */
13680 /* ?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 */
13681 /* ?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 */
13682 /* ?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 */
13683 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_str_set
, 8)
13684 void __thiscall
basic_istringstream_wchar_str_set(basic_istringstream_wchar
*this, const basic_string_wchar
*str
)
13686 TRACE("(%p %p)\n", this, str
);
13687 basic_stringbuf_wchar_str_set(&this->strbuf
, str
);
13690 /* ?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 */
13691 /* ?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 */
13692 /* ?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 */
13693 /* ?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 */
13694 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_str_get
, 8)
13695 basic_string_wchar
* __thiscall
basic_istringstream_wchar_str_get(const basic_istringstream_wchar
*this, basic_string_wchar
*ret
)
13697 TRACE("(%p %p)\n", this, ret
);
13698 return basic_stringbuf_wchar_str_get(&this->strbuf
, ret
);
13701 static inline basic_ios_char
* basic_stringstream_char_to_basic_ios(basic_stringstream_char
*ptr
)
13703 return (basic_ios_char
*)((char*)ptr
+basic_stringstream_char_vbtable1
[1]);
13706 static inline basic_stringstream_char
* basic_stringstream_char_from_basic_ios(basic_ios_char
*ptr
)
13708 return (basic_stringstream_char
*)((char*)ptr
-basic_stringstream_char_vbtable1
[1]);
13711 /* ??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 */
13712 /* ??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 */
13713 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_str
, 16)
13714 basic_stringstream_char
* __thiscall
basic_stringstream_char_ctor_str(basic_stringstream_char
*this,
13715 const basic_string_char
*str
, int mode
, bool virt_init
)
13717 basic_ios_char
*basic_ios
;
13719 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
13722 this->base
.base1
.vbtable
= basic_stringstream_char_vbtable1
;
13723 this->base
.base2
.vbtable
= basic_stringstream_char_vbtable2
;
13724 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
13725 INIT_BASIC_IOS_VTORDISP(basic_ios
);
13726 basic_ios_char_ctor(basic_ios
);
13728 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
13731 basic_stringbuf_char_ctor_str(&this->strbuf
, str
, mode
);
13732 basic_iostream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
);
13733 basic_ios
->base
.vtable
= &basic_stringstream_char_vtable
;
13737 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
13738 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
13739 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_mode
, 12)
13740 basic_stringstream_char
* __thiscall
basic_stringstream_char_ctor_mode(
13741 basic_stringstream_char
*this, int mode
, bool virt_init
)
13743 basic_ios_char
*basic_ios
;
13745 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
13748 this->base
.base1
.vbtable
= basic_stringstream_char_vbtable1
;
13749 this->base
.base2
.vbtable
= basic_stringstream_char_vbtable2
;
13750 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
13751 INIT_BASIC_IOS_VTORDISP(basic_ios
);
13752 basic_ios_char_ctor(basic_ios
);
13754 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
13757 basic_stringbuf_char_ctor_mode(&this->strbuf
, mode
);
13758 basic_iostream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
);
13759 basic_ios
->base
.vtable
= &basic_stringstream_char_vtable
;
13763 /* ??_F?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
13764 /* ??_F?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
13765 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor
, 4)
13766 basic_stringstream_char
* __thiscall
basic_stringstream_char_ctor(
13767 basic_stringstream_char
*this)
13769 return basic_stringstream_char_ctor_mode(
13770 this, OPENMODE_out
|OPENMODE_in
, TRUE
);
13773 /* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
13774 /* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
13775 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_dtor
, 4)
13776 void __thiscall
basic_stringstream_char_dtor(basic_ios_char
*base
)
13778 basic_stringstream_char
*this = basic_stringstream_char_from_basic_ios(base
);
13780 TRACE("(%p)\n", this);
13782 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base
));
13783 basic_stringbuf_char_dtor(&this->strbuf
);
13786 /* ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
13787 /* ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
13788 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_vbase_dtor
, 4)
13789 void __thiscall
basic_stringstream_char_vbase_dtor(basic_stringstream_char
*this)
13791 basic_ios_char
*base
= basic_stringstream_char_to_basic_ios(this);
13793 TRACE("(%p)\n", this);
13795 basic_stringstream_char_dtor(base
);
13796 basic_ios_char_dtor(base
);
13799 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_vector_dtor
, 8)
13800 basic_stringstream_char
* __thiscall
basic_stringstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
13802 basic_stringstream_char
*this = basic_stringstream_char_from_basic_ios(base
);
13804 TRACE("(%p %x)\n", this, flags
);
13807 /* we have an array, with the number of elements stored before the first object */
13808 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
13810 for(i
=*ptr
-1; i
>=0; i
--)
13811 basic_stringstream_char_vbase_dtor(this+i
);
13812 operator_delete(ptr
);
13814 basic_stringstream_char_vbase_dtor(this);
13816 operator_delete(this);
13822 /* ?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 */
13823 /* ?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 */
13824 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_rdbuf
, 4)
13825 basic_stringbuf_char
* __thiscall
basic_stringstream_char_rdbuf(const basic_stringstream_char
*this)
13827 TRACE("(%p)\n", this);
13828 return (basic_stringbuf_char
*)&this->strbuf
;
13831 /* ?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 */
13832 /* ?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 */
13833 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_str_set
, 8)
13834 void __thiscall
basic_stringstream_char_str_set(basic_stringstream_char
*this, const basic_string_char
*str
)
13836 TRACE("(%p %p)\n", this, str
);
13837 basic_stringbuf_char_str_set(&this->strbuf
, str
);
13840 /* ?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 */
13841 /* ?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 */
13842 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_str_get
, 8)
13843 basic_string_char
* __thiscall
basic_stringstream_char_str_get(const basic_stringstream_char
*this, basic_string_char
*ret
)
13845 TRACE("(%p %p)\n", this, ret
);
13846 return basic_stringbuf_char_str_get(&this->strbuf
, ret
);
13849 static inline basic_ios_wchar
* basic_stringstream_wchar_to_basic_ios(basic_stringstream_wchar
*ptr
)
13851 return (basic_ios_wchar
*)((char*)ptr
+basic_stringstream_wchar_vbtable1
[1]);
13854 static inline basic_stringstream_wchar
* basic_stringstream_wchar_from_basic_ios(basic_ios_wchar
*ptr
)
13856 return (basic_stringstream_wchar
*)((char*)ptr
-basic_stringstream_wchar_vbtable1
[1]);
13859 /* ??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 */
13860 /* ??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 */
13861 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor_str
, 16)
13862 basic_stringstream_wchar
* __thiscall
basic_stringstream_wchar_ctor_str(basic_stringstream_wchar
*this,
13863 const basic_string_wchar
*str
, int mode
, bool virt_init
)
13865 basic_ios_wchar
*basic_ios
;
13867 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
13870 this->base
.base1
.vbtable
= basic_stringstream_wchar_vbtable1
;
13871 this->base
.base2
.vbtable
= basic_stringstream_wchar_vbtable2
;
13872 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
13873 INIT_BASIC_IOS_VTORDISP(basic_ios
);
13874 basic_ios_wchar_ctor(basic_ios
);
13876 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
13879 basic_stringbuf_wchar_ctor_str(&this->strbuf
, str
, mode
);
13880 basic_iostream_wchar_ctor(&this->base
, &this->strbuf
.base
, FALSE
);
13881 basic_ios
->base
.vtable
= &basic_stringstream_wchar_vtable
;
13885 /* ??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 */
13886 /* ??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 */
13887 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor_str
, 16)
13888 basic_stringstream_wchar
* __thiscall
basic_stringstream_short_ctor_str(basic_stringstream_wchar
*this,
13889 const basic_string_wchar
*str
, int mode
, bool virt_init
)
13891 basic_stringstream_wchar_ctor_str(this, str
, mode
, virt_init
);
13892 basic_istream_wchar_get_basic_ios(&this->base
.base1
)->base
.vtable
= &basic_stringstream_short_vtable
;
13896 /* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
13897 /* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
13898 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor_mode
, 12)
13899 basic_stringstream_wchar
* __thiscall
basic_stringstream_wchar_ctor_mode(
13900 basic_stringstream_wchar
*this, int mode
, bool virt_init
)
13902 basic_ios_wchar
*basic_ios
;
13904 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
13907 this->base
.base1
.vbtable
= basic_stringstream_wchar_vbtable1
;
13908 this->base
.base2
.vbtable
= basic_stringstream_wchar_vbtable2
;
13909 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
13910 INIT_BASIC_IOS_VTORDISP(basic_ios
);
13911 basic_ios_wchar_ctor(basic_ios
);
13913 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
13916 basic_stringbuf_wchar_ctor_mode(&this->strbuf
, mode
);
13917 basic_iostream_wchar_ctor(&this->base
, &this->strbuf
.base
, FALSE
);
13918 basic_ios
->base
.vtable
= &basic_stringstream_wchar_vtable
;
13922 /* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
13923 /* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
13924 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor_mode
, 12)
13925 basic_stringstream_wchar
* __thiscall
basic_stringstream_short_ctor_mode(
13926 basic_stringstream_wchar
*this, int mode
, bool virt_init
)
13928 basic_stringstream_wchar_ctor_mode(this, mode
, virt_init
);
13929 basic_istream_wchar_get_basic_ios(&this->base
.base1
)->base
.vtable
= &basic_stringstream_short_vtable
;
13933 /* ??_F?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
13934 /* ??_F?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
13935 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor
, 4)
13936 basic_stringstream_wchar
* __thiscall
basic_stringstream_wchar_ctor(
13937 basic_stringstream_wchar
*this)
13939 return basic_stringstream_wchar_ctor_mode(
13940 this, OPENMODE_out
|OPENMODE_in
, TRUE
);
13943 /* ??_F?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
13944 /* ??_F?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
13945 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor
, 4)
13946 basic_stringstream_wchar
* __thiscall
basic_stringstream_short_ctor(
13947 basic_stringstream_wchar
*this)
13949 return basic_stringstream_short_ctor_mode(
13950 this, OPENMODE_out
|OPENMODE_in
, TRUE
);
13953 /* ??1?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
13954 /* ??1?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
13955 /* ??1?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
13956 /* ??1?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
13957 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_dtor
, 4)
13958 void __thiscall
basic_stringstream_wchar_dtor(basic_ios_wchar
*base
)
13960 basic_stringstream_wchar
*this = basic_stringstream_wchar_from_basic_ios(base
);
13962 TRACE("(%p)\n", this);
13964 basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(&this->base
));
13965 basic_stringbuf_wchar_dtor(&this->strbuf
);
13968 /* ??_D?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
13969 /* ??_D?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
13970 /* ??_D?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
13971 /* ??_D?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
13972 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_vbase_dtor
, 4)
13973 void __thiscall
basic_stringstream_wchar_vbase_dtor(basic_stringstream_wchar
*this)
13975 basic_ios_wchar
*base
= basic_stringstream_wchar_to_basic_ios(this);
13977 TRACE("(%p)\n", this);
13979 basic_stringstream_wchar_dtor(base
);
13980 basic_ios_wchar_dtor(base
);
13983 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_vector_dtor
, 8)
13984 basic_stringstream_wchar
* __thiscall
basic_stringstream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
13986 basic_stringstream_wchar
*this = basic_stringstream_wchar_from_basic_ios(base
);
13988 TRACE("(%p %x)\n", this, flags
);
13991 /* we have an array, with the number of elements stored before the first object */
13992 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
13994 for(i
=*ptr
-1; i
>=0; i
--)
13995 basic_stringstream_wchar_vbase_dtor(this+i
);
13996 operator_delete(ptr
);
13998 basic_stringstream_wchar_vbase_dtor(this);
14000 operator_delete(this);
14006 /* ?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 */
14007 /* ?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 */
14008 /* ?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 */
14009 /* ?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 */
14010 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_rdbuf
, 4)
14011 basic_stringbuf_wchar
* __thiscall
basic_stringstream_wchar_rdbuf(const basic_stringstream_wchar
*this)
14013 TRACE("(%p)\n", this);
14014 return (basic_stringbuf_wchar
*)&this->strbuf
;
14017 /* ?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 */
14018 /* ?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 */
14019 /* ?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 */
14020 /* ?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 */
14021 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_str_set
, 8)
14022 void __thiscall
basic_stringstream_wchar_str_set(basic_stringstream_wchar
*this, const basic_string_wchar
*str
)
14024 TRACE("(%p %p)\n", this, str
);
14025 basic_stringbuf_wchar_str_set(&this->strbuf
, str
);
14028 /* ?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 */
14029 /* ?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 */
14030 /* ?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 */
14031 /* ?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 */
14032 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_str_get
, 8)
14033 basic_string_wchar
* __thiscall
basic_stringstream_wchar_str_get(const basic_stringstream_wchar
*this, basic_string_wchar
*ret
)
14035 TRACE("(%p %p)\n", this, ret
);
14036 return basic_stringbuf_wchar_str_get(&this->strbuf
, ret
);
14039 /* ?_Init@strstreambuf@std@@IAEXHPAD0H@Z */
14040 /* ?_Init@strstreambuf@std@@IEAAX_JPEAD1H@Z */
14041 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
14042 DEFINE_THISCALL_WRAPPER(strstreambuf__Init
, 24)
14044 DEFINE_THISCALL_WRAPPER(strstreambuf__Init
, 20)
14046 void __thiscall
strstreambuf__Init(strstreambuf
*this, streamsize len
, char *g
, char *p
, int mode
)
14048 TRACE("(%p %s %p %p %d)\n", this, wine_dbgstr_longlong(len
), g
, p
, mode
);
14050 this->minsize
= 32;
14051 this->endsave
= NULL
;
14052 this->strmode
= mode
;
14053 this->palloc
= NULL
;
14054 this->pfree
= NULL
;
14057 this->strmode
|= STRSTATE_Dynamic
;
14058 if(len
> this->minsize
)
14059 this->minsize
= len
;
14060 this->seekhigh
= NULL
;
14069 this->seekhigh
= g
+len
;
14070 basic_streambuf_char_setg(&this->base
, g
, g
, p
? p
: this->seekhigh
);
14072 basic_streambuf_char_setp(&this->base
, p
, this->seekhigh
);
14075 /* ??0strstreambuf@std@@QAE@PACH0@Z */
14076 /* ??0strstreambuf@std@@QEAA@PEAC_J0@Z */
14077 /* ??0strstreambuf@std@@QAE@PADH0@Z */
14078 /* ??0strstreambuf@std@@QEAA@PEAD_J0@Z */
14079 /* ??0strstreambuf@std@@QAE@PAEH0@Z */
14080 /* ??0strstreambuf@std@@QEAA@PEAE_J0@Z */
14081 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
14082 DEFINE_THISCALL_WRAPPER(strstreambuf_ctor_get_put
, 20)
14084 DEFINE_THISCALL_WRAPPER(strstreambuf_ctor_get_put
, 16)
14086 strstreambuf
* __thiscall
strstreambuf_ctor_get_put(strstreambuf
*this, char *g
, streamsize len
, char *p
)
14088 TRACE("(%p %p %s %p)\n", this, g
, wine_dbgstr_longlong(len
), p
);
14090 basic_streambuf_char_ctor(&this->base
);
14091 this->base
.vtable
= &strstreambuf_vtable
;
14093 strstreambuf__Init(this, len
, g
, p
, 0);
14097 /* ??0strstreambuf@std@@QAE@H@Z */
14098 /* ??0strstreambuf@std@@QEAA@_J@Z */
14099 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
14100 DEFINE_THISCALL_WRAPPER(strstreambuf_ctor_len
, 12)
14102 DEFINE_THISCALL_WRAPPER(strstreambuf_ctor_len
, 8)
14104 strstreambuf
* __thiscall
strstreambuf_ctor_len(strstreambuf
*this, streamsize len
)
14106 return strstreambuf_ctor_get_put(this, NULL
, len
, NULL
);
14109 /* ??0strstreambuf@std@@QAE@P6APAXI@ZP6AXPAX@Z@Z */
14110 /* ??0strstreambuf@std@@QEAA@P6APEAX_K@ZP6AXPEAX@Z@Z */
14111 DEFINE_THISCALL_WRAPPER(strstreambuf_ctor_alloc
, 12)
14112 strstreambuf
* __thiscall
strstreambuf_ctor_alloc(strstreambuf
*this,
14113 void* (__cdecl
*palloc
)(size_t), void (__cdecl
*pfree
)(void*))
14115 TRACE("(%p %p %p)\n", this, palloc
, pfree
);
14117 strstreambuf_ctor_get_put(this, NULL
, 0, NULL
);
14118 this->palloc
= palloc
;
14119 this->pfree
= pfree
;
14123 /* ??0strstreambuf@std@@QAE@PBCH@Z */
14124 /* ??0strstreambuf@std@@QEAA@PEBC_J@Z */
14125 /* ??0strstreambuf@std@@QAE@PBDH@Z */
14126 /* ??0strstreambuf@std@@QEAA@PEBD_J@Z */
14127 /* ??0strstreambuf@std@@QAE@PBEH@Z */
14128 /* ??0strstreambuf@std@@QEAA@PEBE_J@Z */
14129 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
14130 DEFINE_THISCALL_WRAPPER(strstreambuf_ctor_get
, 16)
14132 DEFINE_THISCALL_WRAPPER(strstreambuf_ctor_get
, 12)
14134 strstreambuf
* __thiscall
strstreambuf_ctor_get(strstreambuf
*this, const char *g
, streamsize len
)
14136 TRACE("(%p %p %s)\n", this, g
, wine_dbgstr_longlong(len
));
14138 strstreambuf_ctor_get_put(this, (char*)g
, len
, NULL
);
14139 this->strmode
|= STRSTATE_Constant
;
14143 /* ??_Fstrstreambuf@std@@QAEXXZ */
14144 /* ??_Fstrstreambuf@std@@QEAAXXZ */
14145 DEFINE_THISCALL_WRAPPER(strstreambuf_ctor
, 4)
14146 strstreambuf
* __thiscall
strstreambuf_ctor(strstreambuf
*this)
14148 return strstreambuf_ctor_get_put(this, NULL
, 0, NULL
);
14151 /* ?_Tidy@strstreambuf@std@@IAEXXZ */
14152 /* ?_Tidy@strstreambuf@std@@IEAAXXZ */
14153 DEFINE_THISCALL_WRAPPER(strstreambuf__Tidy
, 4)
14154 void __thiscall
strstreambuf__Tidy(strstreambuf
*this)
14156 TRACE("(%p)\n", this);
14158 if((this->strmode
& STRSTATE_Allocated
) && !(this->strmode
& STRSTATE_Frozen
)) {
14160 this->pfree(basic_streambuf_char_eback(&this->base
));
14162 operator_delete(basic_streambuf_char_eback(&this->base
));
14165 this->endsave
= NULL
;
14166 this->seekhigh
= NULL
;
14167 this->strmode
&= ~(STRSTATE_Allocated
| STRSTATE_Frozen
);
14168 basic_streambuf_char_setg(&this->base
, NULL
, NULL
, NULL
);
14169 basic_streambuf_char_setp(&this->base
, NULL
, NULL
);
14172 /* ??1strstreambuf@std@@UAE@XZ */
14173 /* ??1strstreambuf@std@@UEAA@XZ */
14174 DEFINE_THISCALL_WRAPPER(strstreambuf_dtor
, 4)
14175 void __thiscall
strstreambuf_dtor(strstreambuf
*this)
14177 TRACE("(%p)\n", this);
14179 strstreambuf__Tidy(this);
14180 basic_streambuf_char_dtor(&this->base
);
14183 DEFINE_THISCALL_WRAPPER(strstreambuf_vector_dtor
, 8)
14184 strstreambuf
* __thiscall
strstreambuf_vector_dtor(strstreambuf
*this, unsigned int flags
)
14186 TRACE("(%p %x)\n", this, flags
);
14188 /* we have an array, with the number of elements stored before the first object */
14189 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
14191 for(i
=*ptr
-1; i
>=0; i
--)
14192 strstreambuf_dtor(this+i
);
14193 operator_delete(ptr
);
14195 strstreambuf_dtor(this);
14197 operator_delete(this);
14203 /* ?freeze@strstreambuf@std@@QAEX_N@Z */
14204 /* ?freeze@strstreambuf@std@@QEAAX_N@Z */
14205 DEFINE_THISCALL_WRAPPER(strstreambuf_freeze
, 8)
14206 void __thiscall
strstreambuf_freeze(strstreambuf
*this, bool freeze
)
14208 TRACE("(%p %d)\n", this, freeze
);
14210 if(!freeze
== !(this->strmode
& STRSTATE_Frozen
))
14214 this->strmode
|= STRSTATE_Frozen
;
14215 this->endsave
= basic_streambuf_char_epptr(&this->base
);
14216 basic_streambuf_char_setp_next(&this->base
, basic_streambuf_char_pbase(&this->base
),
14217 basic_streambuf_char_pptr(&this->base
), basic_streambuf_char_eback(&this->base
));
14219 this->strmode
&= ~STRSTATE_Frozen
;
14220 basic_streambuf_char_setp_next(&this->base
, basic_streambuf_char_pbase(&this->base
),
14221 basic_streambuf_char_pptr(&this->base
), this->endsave
);
14225 /* ?str@strstreambuf@std@@QAEPADXZ */
14226 /* ?str@strstreambuf@std@@QEAAPEADXZ */
14227 DEFINE_THISCALL_WRAPPER(strstreambuf_str
, 4)
14228 char* __thiscall
strstreambuf_str(strstreambuf
*this)
14230 TRACE("(%p)\n", this);
14232 strstreambuf_freeze(this, TRUE
);
14233 return basic_streambuf_char_gptr(&this->base
);
14236 /* ?pcount@strstreambuf@std@@QBEHXZ */
14237 /* ?pcount@strstreambuf@std@@QEBA_JXZ */
14238 DEFINE_THISCALL_WRAPPER(strstreambuf_pcount
, 4)
14239 streamsize __thiscall
strstreambuf_pcount(const strstreambuf
*this)
14241 char *ppos
= basic_streambuf_char_pptr(&this->base
);
14243 TRACE("(%p)\n", this);
14245 return ppos
? ppos
-basic_streambuf_char_pbase(&this->base
) : 0;
14248 /* ?overflow@strstreambuf@std@@MAEHH@Z */
14249 /* ?overflow@strstreambuf@std@@MEAAHH@Z */
14250 DEFINE_THISCALL_WRAPPER(strstreambuf_overflow
, 8)
14251 int __thiscall
strstreambuf_overflow(strstreambuf
*this, int c
)
14253 size_t old_size
, size
;
14256 TRACE("(%p %d)\n", this, c
);
14261 if(this->strmode
& STRSTATE_Frozen
)
14264 ptr
= basic_streambuf_char_pptr(&this->base
);
14265 if(ptr
&& ptr
<basic_streambuf_char_epptr(&this->base
))
14266 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base
) = c
);
14268 if(!(this->strmode
& STRSTATE_Dynamic
) || (this->strmode
& STRSTATE_Constant
))
14271 ptr
= basic_streambuf_char_eback(&this->base
);
14272 old_size
= ptr
? basic_streambuf_char_epptr(&this->base
) - ptr
: 0;
14274 size
= old_size
+ old_size
/2;
14275 if(size
< this->minsize
)
14276 size
= this->minsize
;
14279 buf
= this->palloc(size
);
14281 buf
= operator_new(size
);
14285 memcpy(buf
, ptr
, old_size
);
14286 if(this->strmode
& STRSTATE_Allocated
) {
14290 operator_delete(ptr
);
14293 this->strmode
|= STRSTATE_Allocated
;
14295 this->seekhigh
= buf
;
14296 basic_streambuf_char_setp(&this->base
, buf
, buf
+size
);
14297 basic_streambuf_char_setg(&this->base
, buf
, buf
, buf
);
14299 this->seekhigh
= this->seekhigh
-ptr
+buf
;
14300 basic_streambuf_char_setp_next(&this->base
, basic_streambuf_char_pbase(&this->base
)-ptr
+buf
,
14301 basic_streambuf_char_pptr(&this->base
)-ptr
+buf
, buf
+size
);
14302 basic_streambuf_char_setg(&this->base
, buf
, basic_streambuf_char_gptr(&this->base
)-ptr
+buf
,
14303 basic_streambuf_char_pptr(&this->base
));
14306 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base
) = c
);
14309 /* ?pbackfail@strstreambuf@std@@MAEHH@Z */
14310 /* ?pbackfail@strstreambuf@std@@MEAAHH@Z */
14311 DEFINE_THISCALL_WRAPPER(strstreambuf_pbackfail
, 8)
14312 int __thiscall
strstreambuf_pbackfail(strstreambuf
*this, int c
)
14314 char *ptr
= basic_streambuf_char_gptr(&this->base
);
14316 TRACE("(%p %d)\n", this, c
);
14318 if(ptr
<=basic_streambuf_char_eback(&this->base
)
14319 || ((this->strmode
& STRSTATE_Constant
) && c
!=ptr
[-1]))
14322 basic_streambuf_char_gbump(&this->base
, -1);
14325 if(this->strmode
& STRSTATE_Constant
)
14326 return (unsigned char)c
;
14328 return (unsigned char)(ptr
[0] = c
);
14331 /* ?seekoff@strstreambuf@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
14332 /* ?seekoff@strstreambuf@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
14333 /* ?seekoff@strstreambuf@std@@MAE?AV?$fpos@H@2@JHH@Z */
14334 /* ?seekoff@strstreambuf@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
14335 #if STREAMOFF_BITS == 64
14336 DEFINE_THISCALL_WRAPPER(strstreambuf_seekoff
, 24)
14338 DEFINE_THISCALL_WRAPPER(strstreambuf_seekoff
, 20)
14340 fpos_mbstatet
* __thiscall
strstreambuf_seekoff(strstreambuf
*this, fpos_mbstatet
*ret
, streamoff off
, int way
, int mode
)
14342 char *eback
= basic_streambuf_char_eback(&this->base
);
14343 char *pptr
= basic_streambuf_char_pptr(&this->base
);
14344 char *gptr
= basic_streambuf_char_gptr(&this->base
);
14346 TRACE("(%p %p %s %d %d)\n", this, ret
, wine_dbgstr_longlong(off
), way
, mode
);
14349 memset(&ret
->state
, 0, sizeof(ret
->state
));
14351 if(pptr
> this->seekhigh
)
14352 this->seekhigh
= pptr
;
14354 if((mode
& OPENMODE_in
) && gptr
) {
14355 if(way
==SEEKDIR_cur
&& !(mode
& OPENMODE_out
))
14357 else if(way
== SEEKDIR_end
)
14358 off
+= this->seekhigh
-eback
;
14359 else if(way
!= SEEKDIR_beg
)
14362 if(off
<0 || off
>this->seekhigh
-eback
) {
14365 basic_streambuf_char_gbump(&this->base
, eback
-gptr
+off
);
14366 if((mode
& OPENMODE_out
) && pptr
) {
14367 basic_streambuf_char_setp_next(&this->base
, eback
,
14368 gptr
, basic_streambuf_char_epptr(&this->base
));
14371 }else if((mode
& OPENMODE_out
) && pptr
) {
14372 if(way
== SEEKDIR_cur
)
14374 else if(way
== SEEKDIR_end
)
14375 off
+= this->seekhigh
-eback
;
14376 else if(way
!= SEEKDIR_beg
)
14379 if(off
<0 || off
>this->seekhigh
-eback
)
14382 basic_streambuf_char_pbump(&this->base
, eback
-pptr
+off
);
14391 /* ?seekpos@strstreambuf@std@@MAE?AV?$fpos@H@2@V32@H@Z */
14392 /* ?seekpos@strstreambuf@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
14393 DEFINE_THISCALL_WRAPPER(strstreambuf_seekpos
, 36)
14394 fpos_mbstatet
* __thiscall
strstreambuf_seekpos(strstreambuf
*this, fpos_mbstatet
*ret
, fpos_mbstatet pos
, int mode
)
14396 TRACE("(%p %p %s %d)\n", this, ret
, debugstr_fpos_mbstatet(&pos
), mode
);
14398 if(pos
.off
==-1 && pos
.pos
==0 && MBSTATET_TO_INT(&pos
.state
)==0) {
14403 return strstreambuf_seekoff(this, ret
, pos
.pos
+pos
.off
, SEEKDIR_beg
, mode
);
14406 /* ?underflow@strstreambuf@std@@MAEHXZ */
14407 /* ?underflow@strstreambuf@std@@MEAAHXZ */
14408 DEFINE_THISCALL_WRAPPER(strstreambuf_underflow
, 4)
14409 int __thiscall
strstreambuf_underflow(strstreambuf
*this)
14411 char *gptr
= basic_streambuf_char_gptr(&this->base
);
14414 TRACE("(%p)\n", this);
14419 if(gptr
< basic_streambuf_char_egptr(&this->base
))
14420 return (unsigned char)(*gptr
);
14422 pptr
= basic_streambuf_char_gptr(&this->base
);
14423 if(pptr
> this->seekhigh
)
14424 this->seekhigh
= pptr
;
14426 if(this->seekhigh
<= gptr
)
14429 basic_streambuf_char_setg(&this->base
, basic_streambuf_char_eback(&this->base
),
14430 gptr
, this->seekhigh
);
14431 return (unsigned char)(*gptr
);
14434 static inline basic_ios_char
* ostrstream_to_basic_ios(ostrstream
*ptr
)
14436 return (basic_ios_char
*)((char*)ptr
+ostrstream_vbtable
[1]);
14439 static inline ostrstream
* ostrstream_from_basic_ios(basic_ios_char
*ptr
)
14441 return (ostrstream
*)((char*)ptr
-ostrstream_vbtable
[1]);
14444 /* ??0ostrstream@std@@QAE@PADHH@Z */
14445 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
14446 DEFINE_THISCALL_WRAPPER(ostrstream_ctor
, 24)
14448 DEFINE_THISCALL_WRAPPER(ostrstream_ctor
, 20)
14450 ostrstream
* __thiscall
ostrstream_ctor(ostrstream
*this, char *buf
, streamsize size
, int mode
, bool virt_init
)
14452 basic_ios_char
*basic_ios
;
14454 TRACE("(%p %p %s %d %d)\n", this, buf
, wine_dbgstr_longlong(size
), mode
, virt_init
);
14457 this->base
.vbtable
= ostrstream_vbtable
;
14458 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
14459 INIT_BASIC_IOS_VTORDISP(basic_ios
);
14460 basic_ios_char_ctor(basic_ios
);
14462 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
14465 strstreambuf_ctor_get_put(&this->buf
, buf
, size
,
14466 buf
&& (mode
& OPENMODE_app
) ? buf
+strlen(buf
) : buf
);
14467 basic_ostream_char_ctor(&this->base
, &this->buf
.base
, FALSE
, FALSE
);
14468 basic_ios
->base
.vtable
= &ostrstream_vtable
;
14472 /* ??1ostrstream@std@@UAE@XZ */
14473 /* ??1ostrstream@std@@UEAA@XZ */
14474 DEFINE_THISCALL_WRAPPER(ostrstream_dtor
, 4)
14475 void __thiscall
ostrstream_dtor(basic_ios_char
*base
)
14477 ostrstream
*this = ostrstream_from_basic_ios(base
);
14479 TRACE("(%p)\n", this);
14481 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base
));
14482 strstreambuf_dtor(&this->buf
);
14485 static void ostrstream_vbase_dtor(ostrstream
*this)
14487 basic_ios_char
*base
= ostrstream_to_basic_ios(this);
14489 TRACE("(%p)\n", this);
14491 ostrstream_dtor(base
);
14492 basic_ios_char_dtor(base
);
14495 DEFINE_THISCALL_WRAPPER(ostrstream_vector_dtor
, 8)
14496 ostrstream
* __thiscall
ostrstream_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
14498 ostrstream
*this = ostrstream_from_basic_ios(base
);
14500 TRACE("(%p %x)\n", this, flags
);
14503 /* we have an array, with the number of elements stored before the first object */
14504 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
14506 for(i
=*ptr
-1; i
>=0; i
--)
14507 ostrstream_vbase_dtor(this+i
);
14508 operator_delete(ptr
);
14510 ostrstream_vbase_dtor(this);
14512 operator_delete(this);
14518 static inline istrstream
* istrstream_from_basic_ios(basic_ios_char
*ptr
)
14520 return (istrstream
*)((char*)ptr
-istrstream_vbtable
[1]);
14523 /* ??1istrstream@std@@UAE@XZ */
14524 /* ??1istrstream@std@@UEAA@XZ */
14525 DEFINE_THISCALL_WRAPPER(istrstream_dtor
, 4)
14526 void __thiscall
istrstream_dtor(basic_ios_char
*base
)
14528 istrstream
*this = istrstream_from_basic_ios(base
);
14530 TRACE("(%p)\n", this);
14532 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base
));
14533 strstreambuf_dtor(&this->buf
);
14536 static inline basic_ios_char
* strstream_to_basic_ios(strstream
*ptr
)
14538 return (basic_ios_char
*)((char*)ptr
+strstream_vbtable1
[1]);
14541 static inline strstream
* strstream_from_basic_ios(basic_ios_char
*ptr
)
14543 return (strstream
*)((char*)ptr
-strstream_vbtable1
[1]);
14546 /* ??$?6MDU?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$complex@M@0@@Z */
14547 /* ??$?6MDU?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBV?$complex@M@0@@Z */
14548 basic_ostream_char
* __cdecl
basic_ostream_char_print_complex_float(basic_ostream_char
*ostr
, const complex_float
*val
)
14551 basic_ostringstream_char obj
;
14552 basic_ios_char vbase
;
14554 ios_base
*ostringstream_ios_base
, *ostream_ios_base
;
14556 basic_string_char str
;
14557 basic_ostringstream_char_ctor(&oss
.obj
);
14558 ostringstream_ios_base
= &oss
.vbase
.base
;
14559 ostream_ios_base
= &basic_ostream_char_get_basic_ios(ostr
)->base
;
14560 TRACE("(%p %p)\n", ostr
, val
);
14562 ios_base_imbue(ostringstream_ios_base
, &loc
, IOS_LOCALE(ostream_ios_base
));
14564 ios_base_precision_set(ostringstream_ios_base
, ios_base_precision_get(ostream_ios_base
));
14565 ios_base_flags_set(ostringstream_ios_base
, ios_base_flags_get(ostream_ios_base
));
14567 basic_ostream_char_print_ch(&oss
.obj
.base
, '(');
14568 basic_ostream_char_print_float(&oss
.obj
.base
, val
->real
);
14569 basic_ostream_char_print_ch(&oss
.obj
.base
, ',');
14570 basic_ostream_char_print_float(&oss
.obj
.base
, val
->imag
);
14571 basic_ostream_char_print_ch(&oss
.obj
.base
, ')');
14573 basic_ostringstream_char_str_get(&oss
.obj
, &str
);
14574 basic_ostringstream_char_dtor(&oss
.vbase
);
14575 basic_ostream_char_print_bstr(ostr
, &str
);
14576 MSVCP_basic_string_char_dtor(&str
);
14580 /* ??$?6NDU?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$complex@N@0@@Z */
14581 /* ??$?6NDU?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBV?$complex@N@0@@Z */
14582 basic_ostream_char
* __cdecl
basic_ostream_char_print_complex_double(basic_ostream_char
*ostr
, const complex_double
*val
)
14585 basic_ostringstream_char obj
;
14586 basic_ios_char vbase
;
14588 ios_base
*ostringstream_ios_base
, *ostream_ios_base
;
14590 basic_string_char str
;
14591 basic_ostringstream_char_ctor(&oss
.obj
);
14592 ostringstream_ios_base
= &oss
.vbase
.base
;
14593 ostream_ios_base
= &basic_ostream_char_get_basic_ios(ostr
)->base
;
14594 TRACE("(%p %p)\n", ostr
, val
);
14596 ios_base_imbue(ostringstream_ios_base
, &loc
, IOS_LOCALE(ostream_ios_base
));
14598 ios_base_precision_set(ostringstream_ios_base
, ios_base_precision_get(ostream_ios_base
));
14599 ios_base_flags_set(ostringstream_ios_base
, ios_base_flags_get(ostream_ios_base
));
14601 basic_ostream_char_print_ch(&oss
.obj
.base
, '(');
14602 basic_ostream_char_print_double(&oss
.obj
.base
, val
->real
);
14603 basic_ostream_char_print_ch(&oss
.obj
.base
, ',');
14604 basic_ostream_char_print_double(&oss
.obj
.base
, val
->imag
);
14605 basic_ostream_char_print_ch(&oss
.obj
.base
, ')');
14607 basic_ostringstream_char_str_get(&oss
.obj
, &str
);
14608 basic_ostringstream_char_dtor(&oss
.vbase
);
14609 basic_ostream_char_print_bstr(ostr
, &str
);
14610 MSVCP_basic_string_char_dtor(&str
);
14614 /* ??$?6odu?$char_traits@d@std@@@std@@yaaav?$basic_ostream@du?$char_traits@d@std@@@0@aav10@abv?$complex@o@0@@Z */
14615 /* ??$?6ODU?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBV?$complex@O@0@@Z */
14616 basic_ostream_char
* __cdecl
basic_ostream_char_print_complex_ldouble(basic_ostream_char
*ostr
, const complex_double
*val
)
14619 basic_ostringstream_char obj
;
14620 basic_ios_char vbase
;
14622 ios_base
*ostringstream_ios_base
, *ostream_ios_base
;
14624 basic_string_char str
;
14625 basic_ostringstream_char_ctor(&oss
.obj
);
14626 ostringstream_ios_base
= &oss
.vbase
.base
;
14627 ostream_ios_base
= &basic_ostream_char_get_basic_ios(ostr
)->base
;
14628 TRACE("(%p %p)\n", ostr
, val
);
14630 ios_base_imbue(ostringstream_ios_base
, &loc
, IOS_LOCALE(ostream_ios_base
));
14632 ios_base_precision_set(ostringstream_ios_base
, ios_base_precision_get(ostream_ios_base
));
14633 ios_base_flags_set(ostringstream_ios_base
, ios_base_flags_get(ostream_ios_base
));
14635 basic_ostream_char_print_ch(&oss
.obj
.base
, '(');
14636 basic_ostream_char_print_ldouble(&oss
.obj
.base
, val
->real
);
14637 basic_ostream_char_print_ch(&oss
.obj
.base
, ',');
14638 basic_ostream_char_print_ldouble(&oss
.obj
.base
, val
->imag
);
14639 basic_ostream_char_print_ch(&oss
.obj
.base
, ')');
14641 basic_ostringstream_char_str_get(&oss
.obj
, &str
);
14642 basic_ostringstream_char_dtor(&oss
.vbase
);
14643 basic_ostream_char_print_bstr(ostr
, &str
);
14644 MSVCP_basic_string_char_dtor(&str
);
14648 /* ?_File_size@sys@tr2@std@@YA_KPBD@Z */
14649 /* ?_File_size@sys@tr2@std@@YA_KPEBD@Z */
14650 ULONGLONG __cdecl
tr2_sys__File_size(char const* path
)
14652 WIN32_FILE_ATTRIBUTE_DATA fad
;
14654 TRACE("(%s)\n", debugstr_a(path
));
14655 if(!GetFileAttributesExA(path
, GetFileExInfoStandard
, &fad
))
14658 return ((ULONGLONG
)(fad
.nFileSizeHigh
) << 32) + fad
.nFileSizeLow
;
14661 static int equivalent_handles(HANDLE h1
, HANDLE h2
)
14664 BY_HANDLE_FILE_INFORMATION info1
, info2
;
14666 if(h1
== INVALID_HANDLE_VALUE
)
14667 return h2
== INVALID_HANDLE_VALUE
? -1 : 0;
14668 else if(h2
== INVALID_HANDLE_VALUE
)
14671 ret
= GetFileInformationByHandle(h1
, &info1
) && GetFileInformationByHandle(h2
, &info2
);
14674 return (info1
.dwVolumeSerialNumber
== info2
.dwVolumeSerialNumber
14675 && info1
.nFileIndexHigh
== info2
.nFileIndexHigh
14676 && info1
.nFileIndexLow
== info2
.nFileIndexLow
14680 /* ?_Equivalent@sys@tr2@std@@YAHPBD0@Z */
14681 /* ?_Equivalent@sys@tr2@std@@YAHPEBD0@Z */
14682 int __cdecl
tr2_sys__Equivalent(char const* path1
, char const* path2
)
14687 TRACE("(%s %s)\n", debugstr_a(path1
), debugstr_a(path2
));
14689 h1
= CreateFileA(path1
, 0, FILE_SHARE_DELETE
| FILE_SHARE_READ
| FILE_SHARE_WRITE
,
14690 NULL
, OPEN_EXISTING
, 0, 0);
14691 h2
= CreateFileA(path2
, 0, FILE_SHARE_DELETE
| FILE_SHARE_READ
| FILE_SHARE_WRITE
,
14692 NULL
, OPEN_EXISTING
, 0, 0);
14693 ret
= equivalent_handles(h1
, h2
);
14699 /* ?_Current_get@sys@tr2@std@@YAPADAAY0BAE@D@Z */
14700 /* ?_Current_get@sys@tr2@std@@YAPEADAEAY0BAE@D@Z */
14701 char* __cdecl
tr2_sys__Current_get(char *current_path
)
14703 TRACE("(%s)\n", debugstr_a(current_path
));
14705 if(!GetCurrentDirectoryA(MAX_PATH
, current_path
))
14707 return current_path
;
14710 /* ?_Current_set@sys@tr2@std@@YA_NPBD@Z */
14711 /* ?_Current_set@sys@tr2@std@@YA_NPEBD@Z */
14712 bool __cdecl
tr2_sys__Current_set(char const* path
)
14714 TRACE("(%s)\n", debugstr_a(path
));
14715 return SetCurrentDirectoryA(path
) != 0;
14718 /* ?_Make_dir@sys@tr2@std@@YAHPBD@Z */
14719 /* ?_Make_dir@sys@tr2@std@@YAHPEBD@Z */
14720 int __cdecl
tr2_sys__Make_dir(char const* path
)
14722 TRACE("(%s)\n", debugstr_a(path
));
14724 if(!CreateDirectoryA(path
, NULL
)) {
14725 if(GetLastError() == ERROR_ALREADY_EXISTS
)
14734 /* ?_Remove_dir@sys@tr2@std@@YA_NPBD@Z */
14735 /* ?_Remove_dir@sys@tr2@std@@YA_NPEBD@Z */
14736 bool __cdecl
tr2_sys__Remove_dir(char const* path
)
14738 TRACE("(%s)\n", debugstr_a(path
));
14739 return RemoveDirectoryA(path
) != 0;
14742 /* ?_Copy_file@sys@tr2@std@@YAHPBD0_N@Z */
14743 /* ?_Copy_file@sys@tr2@std@@YAHPEBD0_N@Z */
14744 int __cdecl
tr2_sys__Copy_file(char const* source
, char const* dest
, bool fail_if_exists
)
14746 TRACE("(%s %s %x)\n", debugstr_a(source
), debugstr_a(dest
), fail_if_exists
);
14748 if(!source
|| !dest
)
14749 return ERROR_INVALID_PARAMETER
;
14751 if(CopyFileA(source
, dest
, fail_if_exists
))
14752 return ERROR_SUCCESS
;
14753 return GetLastError();
14756 /* ?_Rename@sys@tr2@std@@YAHPBD0@Z */
14757 /* ?_Rename@sys@tr2@std@@YAHPEBD0@Z */
14758 int __cdecl
tr2_sys__Rename(char const* old_path
, char const* new_path
)
14760 TRACE("(%s %s)\n", debugstr_a(old_path
), debugstr_a(new_path
));
14762 if(!old_path
|| !new_path
)
14763 return ERROR_INVALID_PARAMETER
;
14765 if(MoveFileExA(old_path
, new_path
, MOVEFILE_COPY_ALLOWED
))
14766 return ERROR_SUCCESS
;
14767 return GetLastError();
14770 /* ?_Statvfs@sys@tr2@std@@YA?AUspace_info@123@PBD@Z */
14771 /* ?_Statvfs@sys@tr2@std@@YA?AUspace_info@123@PEBD@Z */
14772 struct space_info
* __cdecl
tr2_sys__Statvfs(struct space_info
*ret
, const char* path
)
14774 ULARGE_INTEGER available
, total
, free
;
14776 TRACE("(%s)\n", debugstr_a(path
));
14778 if(!path
|| !GetDiskFreeSpaceExA(path
, &available
, &total
, &free
)) {
14779 ret
->capacity
= ret
->free
= ret
->available
= 0;
14781 ret
->capacity
= total
.QuadPart
;
14782 ret
->free
= free
.QuadPart
;
14783 ret
->available
= available
.QuadPart
;
14788 /* ?_Stat@sys@tr2@std@@YA?AW4file_type@123@PBDAAH@Z */
14789 /* ?_Stat@sys@tr2@std@@YA?AW4file_type@123@PEBDAEAH@Z */
14790 enum file_type __cdecl
tr2_sys__Stat(char const* path
, int* err_code
)
14793 TRACE("(%s %p)\n", debugstr_a(path
), err_code
);
14795 *err_code
= ERROR_INVALID_PARAMETER
;
14796 return status_unknown
;
14799 attr
=GetFileAttributesA(path
);
14800 if(attr
== INVALID_FILE_ATTRIBUTES
) {
14801 enum file_type ret
;
14802 switch(GetLastError()) {
14803 case ERROR_FILE_NOT_FOUND
:
14804 case ERROR_BAD_NETPATH
:
14805 case ERROR_INVALID_NAME
:
14806 case ERROR_BAD_PATHNAME
:
14807 case ERROR_PATH_NOT_FOUND
:
14808 ret
= file_not_found
;
14809 *err_code
= ERROR_SUCCESS
;
14812 ret
= status_unknown
;
14813 *err_code
= GetLastError();
14818 *err_code
= ERROR_SUCCESS
;
14819 return (attr
& FILE_ATTRIBUTE_DIRECTORY
)?directory_file
:regular_file
;
14822 /* ?_Lstat@sys@tr2@std@@YA?AW4file_type@123@PBDAAH@Z */
14823 /* ?_Lstat@sys@tr2@std@@YA?AW4file_type@123@PEBDAEAH@Z */
14824 enum file_type __cdecl
tr2_sys__Lstat(char const* path
, int* err_code
)
14826 return tr2_sys__Stat(path
, err_code
);
14829 static __int64
get_last_write_time(HANDLE h
)
14834 if(!GetFileTime(h
, 0, 0, &wt
))
14837 ret
= (((__int64
)wt
.dwHighDateTime
)<< 32) + wt
.dwLowDateTime
;
14838 ret
-= TICKS_1601_TO_1970
;
14842 /* ?_Last_write_time@sys@tr2@std@@YA_JPBD@Z */
14843 /* ?_Last_write_time@sys@tr2@std@@YA_JPEBD@Z */
14844 __int64 __cdecl
tr2_sys__Last_write_time(char const* path
)
14849 TRACE("(%s)\n", debugstr_a(path
));
14851 handle
= CreateFileA(path
, 0, FILE_SHARE_DELETE
| FILE_SHARE_READ
| FILE_SHARE_WRITE
,
14852 NULL
, OPEN_EXISTING
, FILE_FLAG_BACKUP_SEMANTICS
, 0);
14853 if(handle
== INVALID_HANDLE_VALUE
)
14856 ret
= get_last_write_time(handle
);
14857 CloseHandle(handle
);
14858 return ret
/ TICKSPERSEC
;
14861 /* _Last_write_time */
14862 __int64 __cdecl
_Last_write_time(const wchar_t *path
)
14867 TRACE("(%s)\n", debugstr_w(path
));
14869 handle
= CreateFileW(path
, 0, FILE_SHARE_DELETE
| FILE_SHARE_READ
| FILE_SHARE_WRITE
,
14870 NULL
, OPEN_EXISTING
, FILE_FLAG_BACKUP_SEMANTICS
, 0);
14871 if(handle
== INVALID_HANDLE_VALUE
)
14874 ret
= get_last_write_time(handle
);
14875 CloseHandle(handle
);
14879 /* ?_Last_write_time@sys@tr2@std@@YA_JPB_W@Z */
14880 /* ?_Last_write_time@sys@tr2@std@@YA_JPEB_W@Z */
14881 __int64 __cdecl
tr2_sys__Last_write_time_wchar(const wchar_t *path
)
14883 TRACE("(%s)\n", debugstr_w(path
));
14884 return _Last_write_time(path
) / TICKSPERSEC
;
14887 static int set_last_write_time(HANDLE h
, __int64 time
)
14891 time
+= TICKS_1601_TO_1970
;
14892 wt
.dwLowDateTime
= (DWORD
)time
;
14893 wt
.dwHighDateTime
= (DWORD
)(time
>> 32);
14894 return SetFileTime(h
, 0, 0, &wt
);
14897 /* ?_Last_write_time@sys@tr2@std@@YAXPBD_J@Z */
14898 /* ?_Last_write_time@sys@tr2@std@@YAXPEBD_J@Z */
14899 void __cdecl
tr2_sys__Last_write_time_set(char const* path
, __int64 newtime
)
14903 TRACE("(%s)\n", debugstr_a(path
));
14905 handle
= CreateFileA(path
, FILE_WRITE_ATTRIBUTES
,
14906 FILE_SHARE_DELETE
| FILE_SHARE_READ
| FILE_SHARE_WRITE
,
14907 NULL
, OPEN_EXISTING
, FILE_FLAG_BACKUP_SEMANTICS
, 0);
14908 if(handle
== INVALID_HANDLE_VALUE
)
14911 /* This is the implementation based on the test of msvcp110.
14912 * According to the test of msvcp120,
14913 * msvcp120's implementation does nothing. Obviously, this is a bug of windows.
14915 set_last_write_time(handle
, newtime
* TICKSPERSEC
);
14916 CloseHandle(handle
);
14919 /* _Set_last_write_time */
14920 int __cdecl
_Set_last_write_time(const wchar_t *path
, __int64 time
)
14925 TRACE("(%s)\n", debugstr_w(path
));
14927 handle
= CreateFileW(path
, FILE_WRITE_ATTRIBUTES
,
14928 FILE_SHARE_DELETE
| FILE_SHARE_READ
| FILE_SHARE_WRITE
,
14929 NULL
, OPEN_EXISTING
, FILE_FLAG_BACKUP_SEMANTICS
, 0);
14930 if(handle
== INVALID_HANDLE_VALUE
)
14933 ret
= set_last_write_time(handle
, time
);
14934 CloseHandle(handle
);
14938 /* ?_Last_write_time@sys@tr2@std@@YAXPB_W_J@Z */
14939 /* ?_Last_write_time@sys@tr2@std@@YAXPEB_W_J@Z */
14940 void __cdecl
tr2_sys__Last_write_time_set_wchar(const wchar_t *path
, __int64 time
)
14942 TRACE("(%s)\n", debugstr_w(path
));
14943 _Set_last_write_time(path
, time
* TICKSPERSEC
);
14946 /* ??_Open_dir@sys@tr2@std@@YAPAXPA_WPB_WAAHAAW4file_type@123@@Z */
14947 /* ??_Open_dir@sys@tr2@std@@YAPEAXPEA_WPEB_WAEAHAEAW4file_type@123@@Z */
14948 void* __cdecl
tr2_sys__Open_dir_wchar(wchar_t* target
, wchar_t const* dest
, int* err_code
, enum file_type
* type
)
14951 WIN32_FIND_DATAW data
;
14952 wchar_t temppath
[MAX_PATH
];
14954 TRACE("(%p %s %p %p)\n", target
, debugstr_w(dest
), err_code
, type
);
14955 if(wcslen(dest
) > MAX_PATH
- 3) {
14956 *err_code
= ERROR_BAD_PATHNAME
;
14960 wcscpy(temppath
, dest
);
14961 wcscat(temppath
, L
"\\*");
14963 handle
= FindFirstFileW(temppath
, &data
);
14964 if(handle
== INVALID_HANDLE_VALUE
) {
14965 *err_code
= ERROR_BAD_PATHNAME
;
14969 while(!wcscmp(data
.cFileName
, L
".") || !wcscmp(data
.cFileName
, L
"..")) {
14970 if(!FindNextFileW(handle
, &data
)) {
14971 *err_code
= ERROR_SUCCESS
;
14972 *type
= status_unknown
;
14979 wcscpy(target
, data
.cFileName
);
14980 *err_code
= ERROR_SUCCESS
;
14981 if(data
.dwFileAttributes
& FILE_ATTRIBUTE_DIRECTORY
)
14982 *type
= directory_file
;
14984 *type
= regular_file
;
14988 /* ?_Open_dir@sys@tr2@std@@YAPAXAAY0BAE@DPBDAAHAAW4file_type@123@@Z */
14989 /* ?_Open_dir@sys@tr2@std@@YAPEAXAEAY0BAE@DPEBDAEAHAEAW4file_type@123@@Z */
14990 void* __cdecl
tr2_sys__Open_dir(char* target
, char const* dest
, int* err_code
, enum file_type
* type
)
14993 wchar_t target_w
[MAX_PATH
];
14994 wchar_t dest_w
[MAX_PATH
];
14996 TRACE("(%p %s %p %p)\n", target
, debugstr_a(dest
), err_code
, type
);
14998 if (dest
&& !MultiByteToWideChar(CP_ACP
, 0, dest
, -1, dest_w
, MAX_PATH
))
15000 WARN("Failed to convert input string.\n");
15001 *err_code
= ERROR_BAD_PATHNAME
;
15005 handle
= tr2_sys__Open_dir_wchar(target_w
, dest
? dest_w
: NULL
, err_code
, type
);
15007 WideCharToMultiByte(CP_ACP
, 0, target_w
, -1, target
, MAX_PATH
, NULL
, NULL
);
15012 /* ??_Read_dir@sys@tr2@std@@YAPA_WPA_WPAXAAW4file_type@123@@Z */
15013 /* ??_Read_dir@sys@tr2@std@@YAPEA_WPEA_WPEAXAEAW4file_type@123@@Z */
15014 wchar_t* __cdecl
tr2_sys__Read_dir_wchar(wchar_t* target
, void* handle
, enum file_type
* type
)
15016 WIN32_FIND_DATAW data
;
15018 TRACE("(%p %p %p)\n", target
, handle
, type
);
15021 if(!FindNextFileW(handle
, &data
)) {
15022 *type
= status_unknown
;
15026 } while(!wcscmp(data
.cFileName
, L
".") || !wcscmp(data
.cFileName
, L
".."));
15028 wcscpy(target
, data
.cFileName
);
15029 if(data
.dwFileAttributes
& FILE_ATTRIBUTE_DIRECTORY
)
15030 *type
= directory_file
;
15032 *type
= regular_file
;
15036 /* ?_Read_dir@sys@tr2@std@@YAPADAAY0BAE@DPAXAAW4file_type@123@@Z */
15037 /* ?_Read_dir@sys@tr2@std@@YAPEADAEAY0BAE@DPEAXAEAW4file_type@123@@Z */
15038 char* __cdecl
tr2_sys__Read_dir(char* target
, void* handle
, enum file_type
* type
)
15040 wchar_t target_w
[MAX_PATH
];
15042 tr2_sys__Read_dir_wchar(target_w
, handle
, type
);
15043 WideCharToMultiByte(CP_ACP
, 0, target_w
, -1, target
, MAX_PATH
, NULL
, NULL
);
15048 /* ?_Close_dir@sys@tr2@std@@YAXPAX@Z */
15049 /* ?_Close_dir@sys@tr2@std@@YAXPEAX@Z */
15050 void __cdecl
tr2_sys__Close_dir(void* handle
)
15052 TRACE("(%p)\n", handle
);
15057 /* ?_Link@sys@tr2@std@@YAHPBD0@Z */
15058 /* ?_Link@sys@tr2@std@@YAHPEBD0@Z */
15059 int __cdecl
tr2_sys__Link(char const* existing_path
, char const* new_path
)
15061 TRACE("(%s %s)\n", debugstr_a(existing_path
), debugstr_a(new_path
));
15062 if(!existing_path
|| !new_path
)
15063 return ERROR_INVALID_PARAMETER
;
15065 if(CreateHardLinkA(new_path
, existing_path
, NULL
))
15066 return ERROR_SUCCESS
;
15067 return GetLastError();
15070 /* ?_Link@sys@tr2@std@@YAHPB_W0@Z */
15071 /* ?_Link@sys@tr2@std@@YAHPEB_W0@Z */
15073 int __cdecl
tr2_sys__Link_wchar(WCHAR
const* existing_path
, WCHAR
const* new_path
)
15075 TRACE("(%s %s)\n", debugstr_w(existing_path
), debugstr_w(new_path
));
15076 if(!existing_path
|| !new_path
)
15077 return ERROR_INVALID_PARAMETER
;
15079 if(CreateHardLinkW(new_path
, existing_path
, NULL
))
15080 return ERROR_SUCCESS
;
15081 return GetLastError();
15084 /* ?_Symlink@sys@tr2@std@@YAHPBD0@Z */
15085 /* ?_Symlink@sys@tr2@std@@YAHPEBD0@Z */
15086 int __cdecl
tr2_sys__Symlink(char const* existing_file_name
, char const* file_name
)
15088 TRACE("(%s %s)\n", debugstr_a(existing_file_name
), debugstr_a(file_name
));
15089 if(!existing_file_name
|| !file_name
)
15090 return ERROR_INVALID_PARAMETER
;
15092 if(CreateSymbolicLinkA(file_name
, existing_file_name
, 0))
15093 return ERROR_SUCCESS
;
15094 return GetLastError();
15097 /* ?_Symlink@sys@tr2@std@@YAHPB_W0@Z */
15098 /* ?_Symlink@sys@tr2@std@@YAHPEB_W0@Z */
15100 int __cdecl
tr2_sys__Symlink_wchar(WCHAR
const* existing_file_name
, WCHAR
const* file_name
)
15102 TRACE("(%s %s)\n", debugstr_w(existing_file_name
), debugstr_w(file_name
));
15103 if(!existing_file_name
|| !file_name
)
15104 return ERROR_INVALID_PARAMETER
;
15106 if(CreateSymbolicLinkW(file_name
, existing_file_name
, 0))
15107 return ERROR_SUCCESS
;
15108 return GetLastError();
15111 /* ?_Unlink@sys@tr2@std@@YAHPBD@Z */
15112 /* ?_Unlink@sys@tr2@std@@YAHPEBD@Z */
15113 int __cdecl
tr2_sys__Unlink(char const* path
)
15115 TRACE("(%s)\n", debugstr_a(path
));
15117 if(DeleteFileA(path
))
15118 return ERROR_SUCCESS
;
15119 return GetLastError();
15122 /* ?_Unlink@sys@tr2@std@@YAHPB_W@Z */
15123 /* ?_Unlink@sys@tr2@std@@YAHPEB_W@Z */
15125 int __cdecl
tr2_sys__Unlink_wchar(WCHAR
const* path
)
15127 TRACE("(%s)\n", debugstr_w(path
));
15129 if(DeleteFileW(path
))
15130 return ERROR_SUCCESS
;
15131 return GetLastError();
15134 /* ??0strstream@std@@QAE@PADHH@Z */
15135 /* ??0strstream@std@@QEAA@PEAD_JH@Z */
15136 #if _MSVCP_VER >= 100 /* sizeof(streamsize) == 8 */
15137 DEFINE_THISCALL_WRAPPER(strstream_ctor
, 24)
15139 DEFINE_THISCALL_WRAPPER(strstream_ctor
, 20)
15141 strstream
* __thiscall
strstream_ctor(strstream
*this, char *buf
, streamsize size
, int mode
, bool virt_init
)
15143 basic_ios_char
*basic_ios
;
15145 TRACE("(%p %p %s %d %d)\n", this, buf
, wine_dbgstr_longlong(size
), mode
, virt_init
);
15148 this->base
.base1
.vbtable
= strstream_vbtable1
;
15149 this->base
.base2
.vbtable
= strstream_vbtable2
;
15150 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
15151 INIT_BASIC_IOS_VTORDISP(basic_ios
);
15152 basic_ios_char_ctor(basic_ios
);
15154 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
15157 strstreambuf_ctor_get_put(&this->buf
, buf
, size
,
15158 buf
&& (mode
& OPENMODE_app
) ? buf
+strlen(buf
) : buf
);
15159 basic_iostream_char_ctor(&this->base
, &this->buf
.base
, FALSE
);
15160 basic_ios
->base
.vtable
= &strstream_vtable
;
15164 /* ??1strstream@std@@UAE@XZ */
15165 /* ??1strstream@std@@UEAA@XZ */
15166 DEFINE_THISCALL_WRAPPER(strstream_dtor
, 4)
15167 void __thiscall
strstream_dtor(basic_ios_char
*base
)
15169 strstream
*this = strstream_from_basic_ios(base
);
15171 TRACE("(%p)\n", this);
15173 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base
));
15174 strstreambuf_dtor(&this->buf
);
15177 static void strstream_vbase_dtor(strstream
*this)
15179 basic_ios_char
*base
= strstream_to_basic_ios(this);
15181 TRACE("(%p)\n", this);
15183 strstream_dtor(base
);
15184 basic_ios_char_dtor(base
);
15187 DEFINE_THISCALL_WRAPPER(strstream_vector_dtor
, 8)
15188 strstream
* __thiscall
strstream_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
15190 strstream
*this = strstream_from_basic_ios(base
);
15192 TRACE("(%p %x)\n", this, flags
);
15195 /* we have an array, with the number of elements stored before the first object */
15196 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
15198 for(i
=*ptr
-1; i
>=0; i
--)
15199 strstream_vbase_dtor(this+i
);
15200 operator_delete(ptr
);
15202 strstream_vbase_dtor(this);
15204 operator_delete(this);
15210 static void __cdecl
setprecision_func(ios_base
*base
, streamsize prec
)
15212 ios_base_precision_set(base
, prec
);
15215 /* ?setprecision@std@@YA?AU?$_Smanip@H@1@H@Z */
15216 /* ?setprecision@std@@YA?AU?$_Smanip@_J@1@_J@Z */
15217 manip_streamsize
* __cdecl
setprecision(manip_streamsize
*ret
, streamsize prec
)
15219 TRACE("(%p %s)\n", ret
, wine_dbgstr_longlong(prec
));
15221 ret
->pfunc
= setprecision_func
;
15226 static void __cdecl
setw_func(ios_base
*base
, streamsize width
)
15228 ios_base_width_set(base
, width
);
15231 /* ?setw@std@@YA?AU?$_Smanip@H@1@H@Z */
15232 /* ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z */
15233 manip_streamsize
* __cdecl
setw(manip_streamsize
*ret
, streamsize width
)
15235 TRACE("(%p %s)\n", ret
, wine_dbgstr_longlong(width
));
15237 ret
->pfunc
= setw_func
;
15242 static void __cdecl
resetioflags_func(ios_base
*base
, int mask
)
15244 ios_base_setf_mask(base
, 0, mask
);
15247 /* ?resetiosflags@std@@YA?AU?$_Smanip@H@1@H@Z */
15248 manip_int
* __cdecl
resetiosflags(manip_int
*ret
, int mask
)
15250 TRACE("(%p %d)\n", ret
, mask
);
15252 ret
->pfunc
= resetioflags_func
;
15257 static void __cdecl
setiosflags_func(ios_base
*base
, int mask
)
15259 ios_base_setf_mask(base
, FMTFLAG_mask
, mask
);
15262 /* ?setiosflags@std@@YA?AU?$_Smanip@H@1@H@Z */
15263 manip_int
* __cdecl
setiosflags(manip_int
*ret
, int mask
)
15265 TRACE("(%p %d)\n", ret
, mask
);
15267 ret
->pfunc
= setiosflags_func
;
15272 static void __cdecl
setbase_func(ios_base
*base
, int set_base
)
15275 set_base
= FMTFLAG_dec
;
15276 else if(set_base
== 8)
15277 set_base
= FMTFLAG_oct
;
15278 else if(set_base
== 16)
15279 set_base
= FMTFLAG_hex
;
15283 ios_base_setf_mask(base
, set_base
, FMTFLAG_basefield
);
15286 /* ?setbase@std@@YA?AU?$_Smanip@H@1@H@Z */
15287 manip_int
* __cdecl
setbase(manip_int
*ret
, int base
)
15289 TRACE("(%p %d)\n", ret
, base
);
15291 ret
->pfunc
= setbase_func
;
15296 static basic_filebuf_char filebuf_char_stdin
;
15297 /* ?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A */
15299 basic_istream_char obj
;
15300 #if _MSVCP_VER >= 110
15303 basic_ios_char vbase
;
15305 C_ASSERT(sizeof(cin
) == VBTABLE_BASIC_IOS_ENTRY(basic_istream_char
, 0)+sizeof(basic_ios_char
));
15306 /* ?_Ptr_cin@std@@3PAV?$basic_istream@DU?$char_traits@D@std@@@1@A */
15307 /* ?_Ptr_cin@std@@3PEAV?$basic_istream@DU?$char_traits@D@std@@@1@EA */
15308 basic_istream_char
*_Ptr_cin
= &cin
.obj
;
15310 static basic_filebuf_wchar filebuf_short_stdin
;
15311 /* ?wcin@std@@3V?$basic_istream@GU?$char_traits@G@std@@@1@A */
15313 basic_istream_wchar obj
;
15314 #if _MSVCP_VER >= 110
15317 basic_ios_wchar vbase
;
15318 } ucin
= { { 0 } };
15319 C_ASSERT(sizeof(ucin
) == VBTABLE_BASIC_IOS_ENTRY(basic_istream_wchar
, 0)+sizeof(basic_ios_wchar
));
15320 /* ?_Ptr_wcin@std@@3PAV?$basic_istream@GU?$char_traits@G@std@@@1@A */
15321 /* ?_Ptr_wcin@std@@3PEAV?$basic_istream@GU?$char_traits@G@std@@@1@EA */
15322 basic_istream_wchar
*_Ptr_ucin
= &ucin
.obj
;
15324 static basic_filebuf_wchar filebuf_wchar_stdin
;
15325 /* ?wcin@std@@3V?$basic_istream@_WU?$char_traits@_W@std@@@1@A */
15327 basic_istream_wchar obj
;
15328 #if _MSVCP_VER >= 110
15331 basic_ios_wchar vbase
;
15332 } wcin
= { { 0 } };
15333 C_ASSERT(sizeof(wcin
) == VBTABLE_BASIC_IOS_ENTRY(basic_istream_wchar
, 0)+sizeof(basic_ios_wchar
));
15334 /* ?_Ptr_wcin@std@@3PAV?$basic_istream@_WU?$char_traits@_W@std@@@1@A */
15335 /* ?_Ptr_wcin@std@@3PEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@EA */
15336 basic_istream_wchar
*_Ptr_wcin
= &wcin
.obj
;
15338 static basic_filebuf_char filebuf_char_stdout
;
15339 /* ?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
15341 basic_ostream_char obj
;
15342 #if _MSVCP_VER >= 110
15345 basic_ios_char vbase
;
15346 } cout
= { { 0 } };
15347 C_ASSERT(sizeof(cout
) == VBTABLE_BASIC_IOS_ENTRY(basic_ostream_char
, 0)+sizeof(basic_ios_char
));
15348 /* ?_Ptr_cout@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
15349 /* ?_Ptr_cout@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
15350 basic_ostream_char
*_Ptr_cout
= &cout
.obj
;
15352 static basic_filebuf_wchar filebuf_short_stdout
;
15353 /* ?wcout@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
15355 basic_ostream_wchar obj
;
15356 #if _MSVCP_VER >= 110
15359 basic_ios_wchar vbase
;
15360 } ucout
= { { 0 } };
15361 C_ASSERT(sizeof(ucout
) == VBTABLE_BASIC_IOS_ENTRY(basic_ostream_wchar
, 0)+sizeof(basic_ios_wchar
));
15362 /* ?_Ptr_wcout@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
15363 /* ?_Ptr_wcout@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
15364 basic_ostream_wchar
*_Ptr_ucout
= &ucout
.obj
;
15366 static basic_filebuf_wchar filebuf_wchar_stdout
;
15367 /* ?wcout@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
15369 basic_ostream_wchar obj
;
15370 #if _MSVCP_VER >= 110
15373 basic_ios_wchar vbase
;
15374 } wcout
= { { 0 } };
15375 C_ASSERT(sizeof(wcout
) == VBTABLE_BASIC_IOS_ENTRY(basic_ostream_wchar
, 0)+sizeof(basic_ios_wchar
));
15376 /* ?_Ptr_wcout@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
15377 /* ?_Ptr_wcout@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
15378 basic_ostream_wchar
*_Ptr_wcout
= &wcout
.obj
;
15380 static basic_filebuf_char filebuf_char_stderr
;
15381 /* ?cerr@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
15383 basic_ostream_char obj
;
15384 #if _MSVCP_VER >= 110
15387 basic_ios_char vbase
;
15388 } cerr
= { { 0 } };
15389 C_ASSERT(sizeof(cerr
) == VBTABLE_BASIC_IOS_ENTRY(basic_ostream_char
, 0)+sizeof(basic_ios_char
));
15390 /* ?_Ptr_cerr@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
15391 /* ?_Ptr_cerr@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
15392 basic_ostream_char
*_Ptr_cerr
= &cerr
.obj
;
15394 static basic_filebuf_wchar filebuf_short_stderr
;
15395 /* ?wcerr@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
15397 basic_ostream_wchar obj
;
15398 #if _MSVCP_VER >= 110
15401 basic_ios_wchar vbase
;
15402 } ucerr
= { { 0 } };
15403 C_ASSERT(sizeof(ucerr
) == VBTABLE_BASIC_IOS_ENTRY(basic_ostream_wchar
, 0)+sizeof(basic_ios_wchar
));
15404 /* ?_Ptr_wcerr@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
15405 /* ?_Ptr_wcerr@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
15406 basic_ostream_wchar
*_Ptr_ucerr
= &ucerr
.obj
;
15408 static basic_filebuf_wchar filebuf_wchar_stderr
;
15409 /* ?wcerr@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
15411 basic_ostream_wchar obj
;
15412 #if _MSVCP_VER >= 110
15415 basic_ios_wchar vbase
;
15416 } wcerr
= { { 0 } };
15417 C_ASSERT(sizeof(wcerr
) == VBTABLE_BASIC_IOS_ENTRY(basic_ostream_wchar
, 0)+sizeof(basic_ios_wchar
));
15418 /* ?_Ptr_wcerr@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
15419 /* ?_Ptr_wcerr@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
15420 basic_ostream_wchar
*_Ptr_wcerr
= &wcerr
.obj
;
15422 static basic_filebuf_char filebuf_char_log
;
15423 /* ?clog@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
15425 basic_ostream_char obj
;
15426 #if _MSVCP_VER >= 110
15429 basic_ios_char vbase
;
15430 } MSVCP_clog
= { { 0 } };
15431 C_ASSERT(sizeof(MSVCP_clog
) == VBTABLE_BASIC_IOS_ENTRY(basic_ostream_char
, 0)+sizeof(basic_ios_char
));
15432 /* ?_Ptr_clog@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
15433 /* ?_Ptr_clog@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
15434 basic_ostream_char
*_Ptr_clog
= &MSVCP_clog
.obj
;
15436 static basic_filebuf_wchar filebuf_short_log
;
15437 /* ?wclog@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
15439 basic_ostream_wchar obj
;
15440 #if _MSVCP_VER >= 110
15443 basic_ios_wchar vbase
;
15444 } uclog
= { { 0 } };
15445 C_ASSERT(sizeof(uclog
) == VBTABLE_BASIC_IOS_ENTRY(basic_ostream_wchar
, 0)+sizeof(basic_ios_wchar
));
15446 /* ?_Ptr_wclog@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
15447 /* ?_Ptr_wclog@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
15448 basic_ostream_wchar
*_Ptr_uclog
= &uclog
.obj
;
15450 static basic_filebuf_wchar filebuf_wchar_log
;
15451 /* ?wclog@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
15453 basic_ostream_wchar obj
;
15454 #if _MSVCP_VER >= 110
15457 basic_ios_wchar vbase
;
15458 } wclog
= { { 0 } };
15459 C_ASSERT(sizeof(wclog
) == VBTABLE_BASIC_IOS_ENTRY(basic_ostream_wchar
, 0)+sizeof(basic_ios_wchar
));
15460 /* ?_Ptr_wclog@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
15461 /* ?_Ptr_wclog@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
15462 basic_ostream_wchar
*_Ptr_wclog
= &wclog
.obj
;
15464 /* ?_Init_cnt@Init@ios_base@std@@0HA */
15465 int ios_base_Init__Init_cnt
= -1;
15467 /* ?_Init_cnt_func@Init@ios_base@std@@CAAAHXZ */
15468 /* ?_Init_cnt_func@Init@ios_base@std@@CAAEAHXZ */
15469 int* __cdecl
ios_base_Init__Init_cnt_func(void)
15471 return &ios_base_Init__Init_cnt
;
15474 /* ?_Init_ctor@Init@ios_base@std@@CAXPAV123@@Z */
15475 /* ?_Init_ctor@Init@ios_base@std@@CAXPEAV123@@Z */
15476 void __cdecl
ios_base_Init__Init_ctor(void *this)
15478 TRACE("(%p)\n", this);
15480 if(ios_base_Init__Init_cnt
< 0)
15481 ios_base_Init__Init_cnt
= 1;
15483 ios_base_Init__Init_cnt
++;
15486 /* ??0Init@ios_base@std@@QAE@XZ */
15487 /* ??0Init@ios_base@std@@QEAA@XZ */
15488 DEFINE_THISCALL_WRAPPER(ios_base_Init_ctor
, 4)
15489 void* __thiscall
ios_base_Init_ctor(void *this)
15491 ios_base_Init__Init_ctor(this);
15495 /* ?_Init_dtor@Init@ios_base@std@@CAXPAV123@@Z */
15496 /* ?_Init_dtor@Init@ios_base@std@@CAXPEAV123@@Z */
15497 void __cdecl
ios_base_Init__Init_dtor(void *this)
15499 TRACE("(%p)\n", this);
15501 ios_base_Init__Init_cnt
--;
15502 if(!ios_base_Init__Init_cnt
) {
15503 basic_ostream_char_flush(&cout
.obj
);
15504 basic_ostream_char_flush(&cerr
.obj
);
15505 basic_ostream_char_flush(&MSVCP_clog
.obj
);
15509 /* ??1Init@ios_base@std@@QAE@XZ */
15510 /* ??1Init@ios_base@std@@QEAA@XZ */
15511 DEFINE_THISCALL_WRAPPER(ios_base_Init_dtor
, 4)
15512 void __thiscall
ios_base_Init_dtor(void *this)
15514 ios_base_Init__Init_dtor(this);
15517 /* ??4Init@ios_base@std@@QAEAAV012@ABV012@@Z */
15518 /* ??4Init@ios_base@std@@QEAAAEAV012@AEBV012@@Z */
15519 DEFINE_THISCALL_WRAPPER(ios_base_Init_op_assign
, 8)
15520 void* __thiscall
ios_base_Init_op_assign(void *this, void *rhs
)
15522 TRACE("(%p %p)\n", this, rhs
);
15526 /* ?_Init_cnt@_Winit@std@@0HA */
15527 int _Winit__Init_cnt
= -1;
15529 /* ??0_Winit@std@@QAE@XZ */
15530 /* ??0_Winit@std@@QEAA@XZ */
15531 DEFINE_THISCALL_WRAPPER(_Winit_ctor
, 4)
15532 void* __thiscall
_Winit_ctor(void *this)
15534 TRACE("(%p)\n", this);
15536 if(_Winit__Init_cnt
< 0)
15537 _Winit__Init_cnt
= 1;
15539 _Winit__Init_cnt
++;
15544 /* ?_File_size@sys@tr2@std@@YA_KPB_W@Z */
15545 /* ?_File_size@sys@tr2@std@@YA_KPEB_W@Z */
15546 ULONGLONG __cdecl
tr2_sys__File_size_wchar(WCHAR
const* path
)
15548 WIN32_FILE_ATTRIBUTE_DATA fad
;
15550 TRACE("(%s)\n", debugstr_w(path
));
15551 if(!GetFileAttributesExW(path
, GetFileExInfoStandard
, &fad
))
15554 return ((ULONGLONG
)(fad
.nFileSizeHigh
) << 32) + fad
.nFileSizeLow
;
15557 /* _File_size, msvcp140 version. Different error handling. */
15558 ULONGLONG __cdecl
_File_size(WCHAR
const* path
)
15560 WIN32_FILE_ATTRIBUTE_DATA fad
;
15562 TRACE("(%s)\n", debugstr_w(path
));
15563 if(!GetFileAttributesExW(path
, GetFileExInfoStandard
, &fad
))
15564 return ~(ULONGLONG
)0;
15566 return ((ULONGLONG
)(fad
.nFileSizeHigh
) << 32) + fad
.nFileSizeLow
;
15569 int __cdecl
_Resize(const WCHAR
*path
, UINT64 size
)
15571 LARGE_INTEGER offset
;
15575 TRACE("(%s %s)\n", debugstr_w(path
), wine_dbgstr_longlong(size
));
15577 file
= CreateFileW(path
, FILE_GENERIC_WRITE
, FILE_SHARE_DELETE
| FILE_SHARE_READ
| FILE_SHARE_WRITE
,
15578 NULL
, OPEN_EXISTING
, 0, 0);
15579 if(file
== INVALID_HANDLE_VALUE
)
15580 return GetLastError();
15582 offset
.QuadPart
= size
;
15583 if((ret
= SetFilePointerEx(file
, offset
, NULL
, FILE_BEGIN
)))
15584 ret
= SetEndOfFile(file
);
15586 return ret
? 0 : GetLastError();
15589 /* ?_Equivalent@sys@tr2@std@@YAHPB_W0@Z */
15590 /* ?_Equivalent@sys@tr2@std@@YAHPEB_W0@Z */
15591 int __cdecl
tr2_sys__Equivalent_wchar(WCHAR
const* path1
, WCHAR
const* path2
)
15596 TRACE("(%s %s)\n", debugstr_w(path1
), debugstr_w(path2
));
15598 h1
= CreateFileW(path1
, 0, FILE_SHARE_DELETE
| FILE_SHARE_READ
| FILE_SHARE_WRITE
,
15599 NULL
, OPEN_EXISTING
, 0, 0);
15600 h2
= CreateFileW(path2
, 0, FILE_SHARE_DELETE
| FILE_SHARE_READ
| FILE_SHARE_WRITE
,
15601 NULL
, OPEN_EXISTING
, 0, 0);
15602 ret
= equivalent_handles(h1
, h2
);
15608 /* _Equivalent, msvcp140 version */
15609 int __cdecl
_Equivalent(WCHAR
const* path1
, WCHAR
const* path2
)
15614 TRACE("(%s %s)\n", debugstr_w(path1
), debugstr_w(path2
));
15616 h1
= CreateFileW(path1
, 0, FILE_SHARE_DELETE
| FILE_SHARE_READ
| FILE_SHARE_WRITE
,
15617 NULL
, OPEN_EXISTING
, FILE_FLAG_BACKUP_SEMANTICS
, 0);
15618 h2
= CreateFileW(path2
, 0, FILE_SHARE_DELETE
| FILE_SHARE_READ
| FILE_SHARE_WRITE
,
15619 NULL
, OPEN_EXISTING
, FILE_FLAG_BACKUP_SEMANTICS
, 0);
15620 ret
= equivalent_handles(h1
, h2
);
15626 /* ?_Current_get@sys@tr2@std@@YAPA_WAAY0BAE@_W@Z */
15627 /* ?_Current_get@sys@tr2@std@@YAPEA_WAEAY0BAE@_W@Z */
15628 WCHAR
* __cdecl
tr2_sys__Current_get_wchar(WCHAR
*current_path
)
15630 TRACE("(%s)\n", debugstr_w(current_path
));
15632 if(!GetCurrentDirectoryW(MAX_PATH
, current_path
))
15634 return current_path
;
15637 /* _Current_get, msvcp140 version */
15638 BOOL __cdecl
_Current_get(WCHAR
*current_path
)
15640 TRACE("(%s)\n", debugstr_w(current_path
));
15642 if(!GetCurrentDirectoryW(MAX_PATH
, current_path
))
15647 /* ?_Current_set@sys@tr2@std@@YA_NPB_W@Z */
15648 /* ?_Current_set@sys@tr2@std@@YA_NPEB_W@Z */
15649 bool __cdecl
tr2_sys__Current_set_wchar(WCHAR
const* path
)
15651 TRACE("(%s)\n", debugstr_w(path
));
15652 return SetCurrentDirectoryW(path
) != 0;
15655 /* ?_Make_dir@sys@tr2@std@@YAHPB_W@Z */
15656 /* ?_Make_dir@sys@tr2@std@@YAHPEB_W@Z */
15657 int __cdecl
tr2_sys__Make_dir_wchar(WCHAR
const* path
)
15659 TRACE("(%s)\n", debugstr_w(path
));
15661 if(!CreateDirectoryW(path
, NULL
)) {
15662 if(GetLastError() == ERROR_ALREADY_EXISTS
)
15671 /* ?_Remove_dir@sys@tr2@std@@YA_NPB_W@Z */
15672 /* ?_Remove_dir@sys@tr2@std@@YA_NPEB_W@Z */
15673 bool __cdecl
tr2_sys__Remove_dir_wchar(WCHAR
const* path
)
15675 TRACE("(%s)\n", debugstr_w(path
));
15676 return RemoveDirectoryW(path
) != 0;
15679 /* ?_Copy_file@sys@tr2@std@@YAHPB_W0_N@Z */
15680 /* ?_Copy_file@sys@tr2@std@@YAHPEB_W0_N@Z */
15681 int __cdecl
tr2_sys__Copy_file_wchar(WCHAR
const* source
, WCHAR
const* dest
, bool fail_if_exists
)
15683 TRACE("(%s %s %x)\n", debugstr_w(source
), debugstr_w(dest
), fail_if_exists
);
15685 if(CopyFileW(source
, dest
, fail_if_exists
))
15686 return ERROR_SUCCESS
;
15687 return GetLastError();
15690 /* ?_Rename@sys@tr2@std@@YAHPB_W0@Z */
15691 /* ?_Rename@sys@tr2@std@@YAHPEB_W0@Z */
15692 int __cdecl
tr2_sys__Rename_wchar(WCHAR
const* old_path
, WCHAR
const* new_path
)
15694 TRACE("(%s %s)\n", debugstr_w(old_path
), debugstr_w(new_path
));
15696 if(MoveFileExW(old_path
, new_path
, MOVEFILE_COPY_ALLOWED
))
15697 return ERROR_SUCCESS
;
15698 return GetLastError();
15701 /* ?_Statvfs@sys@tr2@std@@YA?AUspace_info@123@PB_W@Z */
15702 /* ?_Statvfs@sys@tr2@std@@YA?AUspace_info@123@PEB_W@Z */
15703 struct space_info
* __cdecl
tr2_sys__Statvfs_wchar(struct space_info
*ret
, const WCHAR
* path
)
15705 ULARGE_INTEGER available
, total
, free
;
15707 TRACE("(%s)\n", debugstr_w(path
));
15709 if(!path
|| !GetDiskFreeSpaceExW(path
, &available
, &total
, &free
)) {
15710 ret
->capacity
= ret
->free
= ret
->available
= 0;
15712 ret
->capacity
= total
.QuadPart
;
15713 ret
->free
= free
.QuadPart
;
15714 ret
->available
= available
.QuadPart
;
15719 /* ?_Stat@sys@tr2@std@@YA?AW4file_type@123@PB_WAAH@Z */
15720 /* ?_Stat@sys@tr2@std@@YA?AW4file_type@123@PEB_WAEAH@Z */
15721 enum file_type __cdecl
tr2_sys__Stat_wchar(WCHAR
const* path
, int* err_code
)
15724 TRACE("(%s %p)\n", debugstr_w(path
), err_code
);
15726 *err_code
= ERROR_INVALID_PARAMETER
;
15727 return status_unknown
;
15730 attr
=GetFileAttributesW(path
);
15731 if(attr
== INVALID_FILE_ATTRIBUTES
) {
15732 enum file_type ret
;
15733 switch(GetLastError()) {
15734 case ERROR_FILE_NOT_FOUND
:
15735 case ERROR_BAD_NETPATH
:
15736 case ERROR_INVALID_NAME
:
15737 case ERROR_BAD_PATHNAME
:
15738 case ERROR_PATH_NOT_FOUND
:
15739 ret
= file_not_found
;
15740 *err_code
= ERROR_SUCCESS
;
15743 ret
= status_unknown
;
15744 *err_code
= GetLastError();
15749 *err_code
= ERROR_SUCCESS
;
15750 return (attr
& FILE_ATTRIBUTE_DIRECTORY
)?directory_file
:regular_file
;
15753 /* _Stat, msvcp140 version */
15754 enum file_type __cdecl
_Stat(WCHAR
const* path
, int* permissions
)
15757 TRACE("(%s %p)\n", debugstr_w(path
), permissions
);
15759 return file_not_found
;
15762 attr
=GetFileAttributesW(path
);
15763 if(attr
== INVALID_FILE_ATTRIBUTES
) {
15764 enum file_type ret
;
15765 switch(GetLastError()) {
15766 case ERROR_FILE_NOT_FOUND
:
15767 case ERROR_BAD_NETPATH
:
15768 case ERROR_INVALID_NAME
:
15769 case ERROR_BAD_PATHNAME
:
15770 case ERROR_PATH_NOT_FOUND
:
15771 ret
= file_not_found
;
15774 ret
= status_unknown
;
15780 *permissions
= (attr
& FILE_ATTRIBUTE_READONLY
) ? 0555 : 0777;
15781 return (attr
& FILE_ATTRIBUTE_DIRECTORY
) ? directory_file
: regular_file
;
15784 /* _Copy_file, msvcp140 version */
15785 DWORD __cdecl
_Copy_file(WCHAR
const* src
, WCHAR
const* dst
)
15787 TRACE("src %s, dst %s.\n", debugstr_w(src
), debugstr_w(dst
));
15789 if (CopyFileW(src
, dst
, FALSE
))
15790 return ERROR_SUCCESS
;
15792 return GetLastError();
15795 /* ?_Lstat@sys@tr2@std@@YA?AW4file_type@123@PB_WAAH@Z */
15796 /* ?_Lstat@sys@tr2@std@@YA?AW4file_type@123@PEB_WAEAH@Z */
15797 enum file_type __cdecl
tr2_sys__Lstat_wchar(WCHAR
const* path
, int* err_code
)
15799 return tr2_sys__Stat_wchar(path
, err_code
);
15802 /* _Lstat, msvcp140 version */
15803 enum file_type __cdecl
_Lstat(WCHAR
const* path
, int* permissions
)
15805 return _Stat(path
, permissions
);
15808 WCHAR
* __cdecl
_Temp_get(WCHAR
*dst
)
15810 GetTempPathW(MAX_PATH
, dst
);
15814 /* ??1_Winit@std@@QAE@XZ */
15815 /* ??1_Winit@std@@QAE@XZ */
15816 DEFINE_THISCALL_WRAPPER(_Winit_dtor
, 4)
15817 void __thiscall
_Winit_dtor(void *this)
15819 TRACE("(%p)\n", this);
15821 _Winit__Init_cnt
--;
15822 if(!_Winit__Init_cnt
) {
15823 basic_ostream_wchar_flush(&wcout
.obj
);
15824 basic_ostream_wchar_flush(&wcerr
.obj
);
15825 basic_ostream_wchar_flush(&wclog
.obj
);
15829 /* ??4_Winit@std@@QAEAAV01@ABV01@@Z */
15830 /* ??4_Winit@std@@QEAAAEAV01@AEBV01@@Z */
15831 DEFINE_THISCALL_WRAPPER(_Winit_op_assign
, 8)
15832 void* __thiscall
_Winit_op_assign(void *this, void *rhs
)
15834 TRACE("(%p %p)\n", this, rhs
);
15838 void init_io(void *base
)
15841 init_iosb_rtti(base
);
15842 init_ios_base_rtti(base
);
15843 init_basic_ios_char_rtti(base
);
15844 init_basic_ios_wchar_rtti(base
);
15845 init_basic_ios_short_rtti(base
);
15846 init_basic_streambuf_char_rtti(base
);
15847 init_basic_streambuf_wchar_rtti(base
);
15848 init_basic_streambuf_short_rtti(base
);
15849 init_basic_filebuf_char_rtti(base
);
15850 init_basic_filebuf_wchar_rtti(base
);
15851 init_basic_filebuf_short_rtti(base
);
15852 init_basic_stringbuf_char_rtti(base
);
15853 init_basic_stringbuf_wchar_rtti(base
);
15854 init_basic_stringbuf_short_rtti(base
);
15855 init_basic_ostream_char_rtti(base
);
15856 init_basic_ostream_wchar_rtti(base
);
15857 init_basic_ostream_short_rtti(base
);
15858 init_basic_istream_char_rtti(base
);
15859 init_basic_istream_wchar_rtti(base
);
15860 init_basic_istream_short_rtti(base
);
15861 init_basic_iostream_char_rtti(base
);
15862 init_basic_iostream_wchar_rtti(base
);
15863 init_basic_iostream_short_rtti(base
);
15864 init_basic_ofstream_char_rtti(base
);
15865 init_basic_ofstream_wchar_rtti(base
);
15866 init_basic_ofstream_short_rtti(base
);
15867 init_basic_ifstream_char_rtti(base
);
15868 init_basic_ifstream_wchar_rtti(base
);
15869 init_basic_ifstream_short_rtti(base
);
15870 init_basic_fstream_char_rtti(base
);
15871 init_basic_fstream_wchar_rtti(base
);
15872 init_basic_fstream_short_rtti(base
);
15873 init_basic_ostringstream_char_rtti(base
);
15874 init_basic_ostringstream_wchar_rtti(base
);
15875 init_basic_ostringstream_short_rtti(base
);
15876 init_basic_istringstream_char_rtti(base
);
15877 init_basic_istringstream_wchar_rtti(base
);
15878 init_basic_istringstream_short_rtti(base
);
15879 init_basic_stringstream_char_rtti(base
);
15880 init_basic_stringstream_wchar_rtti(base
);
15881 init_basic_stringstream_short_rtti(base
);
15882 init_strstreambuf_rtti(base
);
15883 init_strstream_rtti(base
);
15884 init_ostrstream_rtti(base
);
15887 basic_filebuf_char_ctor_file(&filebuf_char_stdin
, stdin
);
15888 basic_istream_char_ctor(&cin
.obj
, &filebuf_char_stdin
.base
, FALSE
/*FIXME*/, TRUE
);
15890 basic_filebuf_short_ctor_file(&filebuf_short_stdin
, stdin
);
15891 basic_istream_short_ctor(&ucin
.obj
, &filebuf_short_stdin
.base
, FALSE
/*FIXME*/, TRUE
);
15893 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stdin
, stdin
);
15894 basic_istream_wchar_ctor(&wcin
.obj
, &filebuf_wchar_stdin
.base
, FALSE
/*FIXME*/, TRUE
);
15896 basic_filebuf_char_ctor_file(&filebuf_char_stdout
, stdout
);
15897 basic_ostream_char_ctor(&cout
.obj
, &filebuf_char_stdout
.base
, FALSE
/*FIXME*/, TRUE
);
15899 basic_filebuf_short_ctor_file(&filebuf_short_stdout
, stdout
);
15900 basic_ostream_short_ctor(&ucout
.obj
, &filebuf_short_stdout
.base
, FALSE
/*FIXME*/, TRUE
);
15902 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stdout
, stdout
);
15903 basic_ostream_wchar_ctor(&wcout
.obj
, &filebuf_wchar_stdout
.base
, FALSE
/*FIXME*/, TRUE
);
15905 basic_filebuf_char_ctor_file(&filebuf_char_stderr
, stderr
);
15906 basic_ostream_char_ctor(&cerr
.obj
, &filebuf_char_stderr
.base
, FALSE
/*FIXME*/, TRUE
);
15908 basic_filebuf_short_ctor_file(&filebuf_short_stderr
, stderr
);
15909 basic_ostream_short_ctor(&ucerr
.obj
, &filebuf_short_stderr
.base
, FALSE
/*FIXME*/, TRUE
);
15911 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stderr
, stderr
);
15912 basic_ostream_wchar_ctor(&wcerr
.obj
, &filebuf_wchar_stderr
.base
, FALSE
/*FIXME*/, TRUE
);
15914 basic_filebuf_char_ctor_file(&filebuf_char_log
, stderr
);
15915 basic_ostream_char_ctor(&MSVCP_clog
.obj
, &filebuf_char_log
.base
, FALSE
/*FIXME*/, TRUE
);
15917 basic_filebuf_short_ctor_file(&filebuf_short_log
, stderr
);
15918 basic_ostream_short_ctor(&uclog
.obj
, &filebuf_short_log
.base
, FALSE
/*FIXME*/, TRUE
);
15920 basic_filebuf_wchar_ctor_file(&filebuf_wchar_log
, stderr
);
15921 basic_ostream_wchar_ctor(&wclog
.obj
, &filebuf_wchar_log
.base
, FALSE
/*FIXME*/, TRUE
);
15926 basic_istream_char_vbase_dtor(&cin
.obj
);
15927 basic_filebuf_char_dtor(&filebuf_char_stdin
);
15929 basic_istream_wchar_vbase_dtor(&ucin
.obj
);
15930 basic_filebuf_wchar_dtor(&filebuf_short_stdin
);
15932 basic_istream_wchar_vbase_dtor(&wcin
.obj
);
15933 basic_filebuf_wchar_dtor(&filebuf_wchar_stdin
);
15935 basic_ostream_char_vbase_dtor(&cout
.obj
);
15936 basic_filebuf_char_dtor(&filebuf_char_stdout
);
15938 basic_ostream_wchar_vbase_dtor(&ucout
.obj
);
15939 basic_filebuf_wchar_dtor(&filebuf_short_stdout
);
15941 basic_ostream_wchar_vbase_dtor(&wcout
.obj
);
15942 basic_filebuf_wchar_dtor(&filebuf_wchar_stdout
);
15944 basic_ostream_char_vbase_dtor(&cerr
.obj
);
15945 basic_filebuf_char_dtor(&filebuf_char_stderr
);
15947 basic_ostream_wchar_vbase_dtor(&ucerr
.obj
);
15948 basic_filebuf_wchar_dtor(&filebuf_short_stderr
);
15950 basic_ostream_wchar_vbase_dtor(&wcerr
.obj
);
15951 basic_filebuf_wchar_dtor(&filebuf_wchar_stderr
);
15953 basic_ostream_char_vbase_dtor(&MSVCP_clog
.obj
);
15954 basic_filebuf_char_dtor(&filebuf_char_log
);
15956 basic_ostream_wchar_vbase_dtor(&uclog
.obj
);
15957 basic_filebuf_wchar_dtor(&filebuf_short_log
);
15959 basic_ostream_wchar_vbase_dtor(&wclog
.obj
);
15960 basic_filebuf_wchar_dtor(&filebuf_wchar_log
);
15963 /* ?_Cin_func@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@1@XZ */
15964 /* ?_Cin_func@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@1@XZ */
15965 basic_istream_char
* __cdecl
_Cin_func(void)
15970 /* ?_Wcin_func@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@1@XZ */
15971 /* ?_Wcin_func@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@1@XZ */
15972 basic_istream_wchar
* __cdecl
_Wcin_func_short(void)
15977 /* ?_Wcin_func@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@1@XZ */
15978 /* ?_Wcin_func@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@XZ */
15979 basic_istream_wchar
* __cdecl
_Wcin_func(void)
15984 /* ?_Cout_func@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@XZ */
15985 /* ?_Cout_func@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@XZ */
15986 basic_ostream_char
* __cdecl
_Cout_func(void)
15991 /* ?_Wcout_func@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@XZ */
15992 /* ?_Wcout_func@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@XZ */
15993 basic_ostream_wchar
* __cdecl
_Wcout_func_short(void)
15999 /* ?_Wcout_func@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@XZ */
16000 /* ?_Wcout_func@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@XZ */
16001 basic_ostream_wchar
* __cdecl
_Wcout_func(void)
16006 /* ?_Clog_func@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@XZ */
16007 /* ?_Clog_func@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@XZ */
16008 basic_ostream_char
* __cdecl
_Clog_func(void)
16010 return &MSVCP_clog
.obj
;
16013 /* ?_Wclog_func@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@XZ */
16014 /* ?_Wclog_func@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@XZ */
16015 basic_ostream_wchar
* __cdecl
_Wclog_func_short(void)
16020 /* ?_Wclog_func@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@XZ */
16021 /* ?_Wclog_func@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@XZ */
16022 basic_ostream_wchar
* __cdecl
_Wclog_func(void)
16027 /* ?_Cerr_func@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@XZ */
16028 /* ?_Cerr_func@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@XZ */
16029 basic_ostream_char
* __cdecl
_Cerr_func(void)
16034 /* ?_Wcerr_func@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@XZ */
16035 /* ?_Wcerr_func@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@XZ */
16036 basic_ostream_wchar
* __cdecl
_Wcerr_func_short(void)
16041 /* ?_Wcerr_func@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@XZ */
16042 /* ?_Wcerr_func@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@XZ */
16043 basic_ostream_wchar
* __cdecl
_Wcerr_func(void)