2 * Copyright 2011 Piotr Caban for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
29 #include "wine/debug.h"
30 WINE_DEFAULT_DEBUG_CHANNEL(msvcp
);
32 /* ?_Index@ios_base@std@@0HA */
33 int ios_base_Index
= 0;
34 /* ?_Sync@ios_base@std@@0_NA */
35 MSVCP_bool ios_base_Sync
= FALSE
;
39 __int64
DECLSPEC_ALIGN(8) pos
;
43 static inline const char* debugstr_fpos_int(fpos_int
*fpos
)
45 return wine_dbg_sprintf("fpos(%ld %s %d)", fpos
->off
, wine_dbgstr_longlong(fpos
->pos
), fpos
->state
);
49 void (__cdecl
*pfunc
)(ios_base
*, streamsize
);
54 void (__cdecl
*pfunc
)(ios_base
*, int);
62 } basic_filebuf__Initfl
;
65 basic_streambuf_char base
;
69 basic_string_char
*conv
;
77 basic_streambuf_wchar base
;
81 basic_string_char
*conv
;
86 } basic_filebuf_wchar
;
89 STRINGBUF_allocated
= 1,
90 STRINGBUF_no_write
= 2,
91 STRINGBUF_no_read
= 4,
94 } basic_stringbuf_state
;
97 basic_streambuf_char base
;
100 char allocator
; /* empty struct */
101 } basic_stringbuf_char
;
104 basic_streambuf_wchar base
;
107 char allocator
; /* empty struct */
108 } basic_stringbuf_wchar
;
112 basic_streambuf_char
*strbuf
;
113 struct _basic_ostream_char
*stream
;
119 basic_streambuf_wchar
*strbuf
;
120 struct _basic_ostream_wchar
*stream
;
124 typedef struct _basic_ostream_char
{
126 /* virtual inheritance
127 * basic_ios_char basic_ios;
129 } basic_ostream_char
;
131 typedef struct _basic_ostream_wchar
{
133 /* virtual inheritance
134 * basic_ios_wchar basic_ios;
136 } basic_ostream_wchar
;
141 /* virtual inheritance
142 * basic_ios_char basic_ios;
144 } basic_istream_char
;
149 /* virtual inheritance
150 * basic_ios_wchar basic_ios;
152 } basic_istream_wchar
;
155 basic_istream_char base1
;
156 basic_ostream_char base2
;
157 /* virtual inheritance
158 * basic_ios_char basic_ios;
160 } basic_iostream_char
;
163 basic_istream_wchar base1
;
164 basic_ostream_wchar base2
;
165 /* virtual inheritance
166 * basic_ios_wchar basic_ios;
168 } basic_iostream_wchar
;
171 basic_ostream_char base
;
172 basic_filebuf_char filebuf
;
173 /* virtual inheritance
174 * basic_ios_char basic_ios;
176 } basic_ofstream_char
;
179 basic_ostream_wchar base
;
180 basic_filebuf_wchar filebuf
;
181 /* virtual inheritance
182 * basic_ios_wchar basic_ios;
184 } basic_ofstream_wchar
;
187 basic_istream_char base
;
188 basic_filebuf_char filebuf
;
189 /* virtual inheritance
190 * basic_ios_char basic_ios;
192 } basic_ifstream_char
;
195 basic_istream_wchar base
;
196 basic_filebuf_wchar filebuf
;
197 /* virtual inheritance
198 * basic_ios_wchar basic_ios;
200 } basic_ifstream_wchar
;
203 basic_iostream_char base
;
204 basic_filebuf_char filebuf
;
205 /* virtual inheritance
206 * basic_ios_char basic_ios;
208 } basic_fstream_char
;
211 basic_iostream_wchar base
;
212 basic_filebuf_wchar filebuf
;
213 /* virtual inheritance
214 * basic_ios_char basic_ios;
216 } basic_fstream_wchar
;
219 basic_ostream_char base
;
220 basic_stringbuf_char strbuf
;
221 /* virtual inheritance
222 * basic_ios_char basic_ios;
224 } basic_ostringstream_char
;
227 basic_ostream_wchar base
;
228 basic_stringbuf_wchar strbuf
;
229 /* virtual inheritance
230 * basic_ios_wchar basic_ios;
232 } basic_ostringstream_wchar
;
235 basic_istream_char base
;
236 basic_stringbuf_char strbuf
;
237 /* virtual inheritance
238 * basic_ios_char basic_ios;
240 } basic_istringstream_char
;
243 basic_istream_wchar base
;
244 basic_stringbuf_wchar strbuf
;
245 /* virtual inheritance
246 * basic_ios_wchar basic_ios;
248 } basic_istringstream_wchar
;
251 basic_iostream_char base
;
252 basic_stringbuf_char strbuf
;
253 /* virtual inheritance
254 * basic_ios_char basic_ios;
256 } basic_stringstream_char
;
259 basic_iostream_wchar base
;
260 basic_stringbuf_wchar strbuf
;
261 /* virtual inheritance
262 * basic_ios_wchar basic_ios;
264 } basic_stringstream_wchar
;
267 STRSTATE_Allocated
= 1,
268 STRSTATE_Constant
= 2,
269 STRSTATE_Dynamic
= 4,
271 } strstreambuf__Strstate
;
274 basic_streambuf_char base
;
279 void* (__cdecl
*palloc
)(MSVCP_size_t
);
280 void (__cdecl
*pfree
)(void*);
284 basic_ostream_char base
;
286 /* virtual inheritance
287 * basic_ios_char basic_ios;
292 basic_istream_char base
;
294 /* virtual inheritance
295 * basic_ios_char basic_ios;
300 basic_iostream_char base
;
302 /* virtual inheritance
303 * basic_ios_char basic_ios;
307 extern const vtable_ptr MSVCP_iosb_vtable
;
309 /* ??_7ios_base@std@@6B@ */
310 extern const vtable_ptr MSVCP_ios_base_vtable
;
312 /* ??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@ */
313 extern const vtable_ptr MSVCP_basic_ios_char_vtable
;
315 /* ??_7?$basic_ios@_WU?$char_traits@_W@std@@@std@@6B@ */
316 extern const vtable_ptr MSVCP_basic_ios_wchar_vtable
;
318 /* ??_7?$basic_ios@GU?$char_traits@G@std@@@std@@6B@ */
319 extern const vtable_ptr MSVCP_basic_ios_short_vtable
;
321 /* ??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@ */
322 extern const vtable_ptr MSVCP_basic_streambuf_char_vtable
;
324 /* ??_7?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@6B@ */
325 extern const vtable_ptr MSVCP_basic_streambuf_wchar_vtable
;
327 /* ??_7?$basic_streambuf@GU?$char_traits@G@std@@@std@@6B@ */
328 extern const vtable_ptr MSVCP_basic_streambuf_short_vtable
;
330 /* ??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ */
331 extern const vtable_ptr MSVCP_basic_filebuf_char_vtable
;
333 /* ??_7?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@6B@ */
334 extern const vtable_ptr MSVCP_basic_filebuf_wchar_vtable
;
336 /* ??_7?$basic_filebuf@GU?$char_traits@G@std@@@std@@6B@ */
337 extern const vtable_ptr MSVCP_basic_filebuf_short_vtable
;
339 /* ??_7?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
340 extern const vtable_ptr MSVCP_basic_stringbuf_char_vtable
;
342 /* ??_7?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
343 extern const vtable_ptr MSVCP_basic_stringbuf_wchar_vtable
;
345 /* ??_7?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
346 extern const vtable_ptr MSVCP_basic_stringbuf_short_vtable
;
348 /* ??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@ */
349 const int basic_ostream_char_vbtable
[] = {0, sizeof(basic_ostream_char
)};
350 /* ??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@ */
351 extern const vtable_ptr MSVCP_basic_ostream_char_vtable
;
353 /* ??_8?$basic_ostream@_WU?$char_traits@_W@std@@@std@@7B@ */
354 const int basic_ostream_wchar_vbtable
[] = {0, sizeof(basic_ostream_wchar
)};
355 /* ??_7?$basic_ostream@_WU?$char_traits@_W@std@@@std@@6B@ */
356 extern const vtable_ptr MSVCP_basic_ostream_wchar_vtable
;
358 /* ??_8?$basic_ostream@GU?$char_traits@G@std@@@std@@7B@ */
359 const int basic_ostream_short_vbtable
[] = {0, sizeof(basic_ostream_wchar
)};
360 /* ??_7?$basic_ostream@GU?$char_traits@G@std@@@std@@6B@ */
361 extern const vtable_ptr MSVCP_basic_ostream_short_vtable
;
363 /* ??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@ */
364 const int basic_istream_char_vbtable
[] = {0, sizeof(basic_istream_char
)};
365 /* ??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@ */
366 extern const vtable_ptr MSVCP_basic_istream_char_vtable
;
368 /* ??_8?$basic_istream@_WU?$char_traits@_W@std@@@std@@7B@ */
369 const int basic_istream_wchar_vbtable
[] = {0, sizeof(basic_istream_wchar
)};
370 /* ??_7?$basic_istream@_WU?$char_traits@_W@std@@@std@@6B@ */
371 extern const vtable_ptr MSVCP_basic_istream_wchar_vtable
;
373 /* ??_8?$basic_istream@GU?$char_traits@G@std@@@std@@7B@ */
374 const int basic_istream_short_vbtable
[] = {0, sizeof(basic_istream_wchar
)};
375 /* ??_7?$basic_istream@GU?$char_traits@G@std@@@std@@6B@ */
376 extern const vtable_ptr MSVCP_basic_istream_short_vtable
;
378 /* ??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
379 const int basic_iostream_char_vbtable1
[] = {0, sizeof(basic_iostream_char
)};
380 /* ??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
381 const int basic_iostream_char_vbtable2
[] = {0, sizeof(basic_iostream_char
)-FIELD_OFFSET(basic_iostream_char
, base2
)};
382 /* ??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@ */
383 extern const vtable_ptr MSVCP_basic_iostream_char_vtable
;
385 /* ??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
386 /* ??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
387 const int basic_iostream_wchar_vbtable1
[] = {0, sizeof(basic_iostream_wchar
)};
388 /* ??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
389 /* ??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
390 const int basic_iostream_wchar_vbtable2
[] = {0, sizeof(basic_iostream_wchar
)-FIELD_OFFSET(basic_iostream_wchar
, base2
)};
391 /* ??_7?$basic_iostream@_WU?$char_traits@_W@std@@@std@@6B@ */
392 extern const vtable_ptr MSVCP_basic_iostream_wchar_vtable
;
393 /* ??_7?$basic_iostream@GU?$char_traits@G@std@@@std@@6B@ */
394 extern const vtable_ptr MSVCP_basic_iostream_short_vtable
;
396 /* ??_8?$basic_ofstream@DU?$char_traits@D@std@@@std@@7B@ */
397 const int basic_ofstream_char_vbtable
[] = {0, sizeof(basic_ofstream_char
)};
398 /* ??_7?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ */
399 extern const vtable_ptr MSVCP_basic_ofstream_char_vtable
;
401 /* ??_8?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@7B@ */
402 const int basic_ofstream_wchar_vbtable
[] = {0, sizeof(basic_ofstream_wchar
)};
403 /* ??_7?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@6B@ */
404 extern const vtable_ptr MSVCP_basic_ofstream_wchar_vtable
;
406 /* ??_8?$basic_ofstream@GU?$char_traits@G@std@@@std@@7B@ */
407 const int basic_ofstream_short_vbtable
[] = {0, sizeof(basic_ofstream_wchar
)};
408 /* ??_7?$basic_ofstream@GU?$char_traits@G@std@@@std@@6B@ */
409 extern const vtable_ptr MSVCP_basic_ofstream_short_vtable
;
411 /* ??_8?$basic_ifstream@DU?$char_traits@D@std@@@std@@7B@ */
412 const int basic_ifstream_char_vbtable
[] = {0, sizeof(basic_ifstream_char
)};
413 /* ??_7?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@ */
414 extern const vtable_ptr MSVCP_basic_ifstream_char_vtable
;
416 /* ??_8?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@7B@ */
417 const int basic_ifstream_wchar_vbtable
[] = {0, sizeof(basic_ifstream_wchar
)};
418 /* ??_7?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@6B@ */
419 extern const vtable_ptr MSVCP_basic_ifstream_wchar_vtable
;
421 /* ??_8?$basic_ifstream@GU?$char_traits@G@std@@@std@@7B@ */
422 const int basic_ifstream_short_vbtable
[] = {0, sizeof(basic_ifstream_wchar
)};
423 /* ??_7?$basic_ifstream@GU?$char_traits@G@std@@@std@@6B@ */
424 extern const vtable_ptr MSVCP_basic_ifstream_short_vtable
;
426 /* ??_8?$basic_fstream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
427 const int basic_fstream_char_vbtable1
[] = {0, sizeof(basic_fstream_char
)};
428 /* ??_8?$basic_fstream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
429 const int basic_fstream_char_vbtable2
[] = {0, sizeof(basic_fstream_char
)-FIELD_OFFSET(basic_fstream_char
, base
.base2
)};
430 /* ??_7?$basic_fstream@DU?$char_traits@D@std@@@std@@6B@ */
431 extern const vtable_ptr MSVCP_basic_fstream_char_vtable
;
433 /* ??_8?$basic_fstream@_WU?$char_traits@_W@std@@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
434 /* ??_8?$basic_fstream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
435 const int basic_fstream_wchar_vbtable1
[] = {0, sizeof(basic_fstream_wchar
)};
436 /* ??_8?$basic_fstream@_WU?$char_traits@_W@std@@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
437 /* ??_8?$basic_fstream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
438 const int basic_fstream_wchar_vbtable2
[] = {0, sizeof(basic_fstream_wchar
)-FIELD_OFFSET(basic_fstream_wchar
, base
.base2
)};
439 /* ??_7?$basic_fstream@_WU?$char_traits@_W@std@@@std@@6B@ */
440 extern const vtable_ptr MSVCP_basic_fstream_wchar_vtable
;
441 /* ??_7?$basic_fstream@GU?$char_traits@G@std@@@std@@6B@ */
442 extern const vtable_ptr MSVCP_basic_fstream_short_vtable
;
444 /* ??_8?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B@ */
445 const int basic_ostringstream_char_vbtable
[] = {0, sizeof(basic_ostringstream_char
)};
446 /* ??_7?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
447 extern const vtable_ptr MSVCP_basic_ostringstream_char_vtable
;
449 /* ??_8?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B@ */
450 const int basic_ostringstream_wchar_vbtable
[] = {0, sizeof(basic_ostringstream_wchar
)};
451 /* ??_7?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
452 extern const vtable_ptr MSVCP_basic_ostringstream_wchar_vtable
;
454 /* ??_8?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B@ */
455 const int basic_ostringstream_short_vbtable
[] = {0, sizeof(basic_ostringstream_wchar
)};
456 /* ??_7?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
457 extern const vtable_ptr MSVCP_basic_ostringstream_short_vtable
;
459 /* ??_8?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B@ */
460 const int basic_istringstream_char_vbtable
[] = {0, sizeof(basic_istringstream_char
)};
461 /* ??_7?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
462 extern const vtable_ptr MSVCP_basic_istringstream_char_vtable
;
464 /* ??_8?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B@ */
465 const int basic_istringstream_wchar_vbtable
[] = {0, sizeof(basic_istringstream_wchar
)};
466 /* ??_7?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
467 extern const vtable_ptr MSVCP_basic_istringstream_wchar_vtable
;
469 /* ??_8?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B@ */
470 const int basic_istringstream_short_vbtable
[] = {0, sizeof(basic_istringstream_wchar
)};
471 /* ??_7?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
472 extern const vtable_ptr MSVCP_basic_istringstream_short_vtable
;
474 /* ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
475 const int basic_stringstream_char_vbtable1
[] = {0, sizeof(basic_stringstream_char
)};
476 /* ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
477 const int basic_stringstream_char_vbtable2
[] = {0, sizeof(basic_stringstream_char
)-FIELD_OFFSET(basic_stringstream_char
, base
.base2
)};
478 /* ??_7?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
479 extern const vtable_ptr MSVCP_basic_stringstream_char_vtable
;
481 /* ??_8?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
482 const int basic_stringstream_wchar_vbtable1
[] = {0, sizeof(basic_stringstream_wchar
)};
483 /* ??_8?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
484 const int basic_stringstream_wchar_vbtable2
[] = {0, sizeof(basic_stringstream_wchar
)-FIELD_OFFSET(basic_stringstream_wchar
, base
.base2
)};
485 /* ??_7?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
486 extern const vtable_ptr MSVCP_basic_stringstream_wchar_vtable
;
488 /* ??_8?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
489 const int basic_stringstream_short_vbtable1
[] = {0, sizeof(basic_stringstream_wchar
)};
490 /* ??_8?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
491 const int basic_stringstream_short_vbtable2
[] = {0, sizeof(basic_stringstream_wchar
)-FIELD_OFFSET(basic_stringstream_wchar
, base
.base2
)};
492 /* ??_7?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
493 extern const vtable_ptr MSVCP_basic_stringstream_short_vtable
;
495 /* ??_7strstreambuf@std@@6B */
496 extern const vtable_ptr MSVCP_strstreambuf_vtable
;
498 static const int ostrstream_vbtable
[] = {0, sizeof(ostrstream
)};
499 extern const vtable_ptr MSVCP_ostrstream_vtable
;
501 static const int istrstream_vbtable
[] = {0, sizeof(istrstream
)};
503 static const int strstream_vbtable1
[] = {0, sizeof(strstream
)};
504 static const int strstream_vbtable2
[] = {0, sizeof(strstream
)-FIELD_OFFSET(strstream
, base
.base2
)};
505 extern const vtable_ptr MSVCP_strstream_vtable
;
507 DEFINE_RTTI_DATA0(iosb
, 0, ".?AV?$_Iosb@H@std@@")
508 DEFINE_RTTI_DATA1(ios_base
, 0, &iosb_rtti_base_descriptor
, ".?AV?$_Iosb@H@std@@")
509 DEFINE_RTTI_DATA2(basic_ios_char
, 0, &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
510 ".?AV?$basic_ios@DU?$char_traits@D@std@@@std@@")
511 DEFINE_RTTI_DATA2(basic_ios_wchar
, 0, &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
512 ".?AV?$basic_ios@_WU?$char_traits@_W@std@@@std@@")
513 DEFINE_RTTI_DATA2(basic_ios_short
, 0, &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
514 ".?AV?$basic_ios@GU?$char_traits@G@std@@@std@@")
515 DEFINE_RTTI_DATA0(basic_streambuf_char
, 0,
516 ".?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@")
517 DEFINE_RTTI_DATA0(basic_streambuf_wchar
, 0,
518 ".?AV?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@")
519 DEFINE_RTTI_DATA0(basic_streambuf_short
, 0,
520 ".?AV?$basic_streambuf@GU?$char_traits@G@std@@@std@@")
521 DEFINE_RTTI_DATA1(basic_filebuf_char
, 0, &basic_streambuf_char_rtti_base_descriptor
,
522 ".?AV?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@")
523 DEFINE_RTTI_DATA1(basic_filebuf_wchar
, 0, &basic_streambuf_wchar_rtti_base_descriptor
,
524 ".?AV?$basic_filebuf@GU?$char_traits@G@std@@@std@@")
525 DEFINE_RTTI_DATA1(basic_filebuf_short
, 0, &basic_streambuf_short_rtti_base_descriptor
,
526 ".?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@")
527 DEFINE_RTTI_DATA1(basic_stringbuf_char
, 0, &basic_streambuf_char_rtti_base_descriptor
,
528 ".?AV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@")
529 DEFINE_RTTI_DATA1(basic_stringbuf_wchar
, 0, &basic_streambuf_wchar_rtti_base_descriptor
,
530 ".?AV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@")
531 DEFINE_RTTI_DATA1(basic_stringbuf_short
, 0, &basic_streambuf_short_rtti_base_descriptor
,
532 ".?AV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@")
533 DEFINE_RTTI_DATA3(basic_ostream_char
, sizeof(basic_ostream_char
), &basic_ios_char_rtti_base_descriptor
,
534 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
535 ".?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@")
536 DEFINE_RTTI_DATA3(basic_ostream_wchar
, sizeof(basic_ostream_wchar
), &basic_ios_wchar_rtti_base_descriptor
,
537 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
538 ".?AV?$basic_ostream@_WU?$char_traits@_W@std@@@std@@")
539 DEFINE_RTTI_DATA3(basic_ostream_short
, sizeof(basic_ostream_wchar
), &basic_ios_short_rtti_base_descriptor
,
540 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
541 ".?AV?$basic_ostream@GU?$char_traits@G@std@@@std@@")
542 DEFINE_RTTI_DATA3(basic_istream_char
, sizeof(basic_istream_char
), &basic_ios_char_rtti_base_descriptor
,
543 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
544 ".?AV?$basic_istream@DU?$char_traits@D@std@@@std@@")
545 DEFINE_RTTI_DATA3(basic_istream_wchar
, sizeof(basic_istream_wchar
), &basic_ios_wchar_rtti_base_descriptor
,
546 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
547 ".?AV?$basic_istream@_WU?$char_traits@_W@std@@@std@@")
548 DEFINE_RTTI_DATA3(basic_istream_short
, sizeof(basic_istream_wchar
), &basic_ios_short_rtti_base_descriptor
,
549 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
550 ".?AV?$basic_istream@GU?$char_traits@G@std@@@std@@")
551 DEFINE_RTTI_DATA8(basic_iostream_char
, sizeof(basic_iostream_char
),
552 &basic_istream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
553 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
554 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
555 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
556 ".?AV?$basic_iostream@DU?$char_traits@D@std@@@std@@")
557 DEFINE_RTTI_DATA8(basic_iostream_wchar
, sizeof(basic_iostream_wchar
),
558 &basic_istream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
559 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
560 &basic_ostream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
561 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
562 ".?AV?$basic_iostream@_WU?$char_traits@_W@std@@@std@@")
563 DEFINE_RTTI_DATA8(basic_iostream_short
, sizeof(basic_iostream_wchar
),
564 &basic_istream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
565 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
566 &basic_ostream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
567 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
568 ".?AV?$basic_iostream@GU?$char_traits@G@std@@@std@@")
569 DEFINE_RTTI_DATA4(basic_ofstream_char
, sizeof(basic_ofstream_char
),
570 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
571 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
572 ".?AV?$basic_ofstream@DU?$char_traits@D@std@@@std@@")
573 DEFINE_RTTI_DATA4(basic_ofstream_wchar
, sizeof(basic_ofstream_wchar
),
574 &basic_ostream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
575 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
576 ".?AV?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@")
577 DEFINE_RTTI_DATA4(basic_ofstream_short
, sizeof(basic_ofstream_wchar
),
578 &basic_ostream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
579 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
580 ".?AV?$basic_ofstream@GU?$char_traits@G@std@@@std@@")
581 DEFINE_RTTI_DATA4(basic_ifstream_char
, sizeof(basic_ifstream_char
),
582 &basic_istream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
583 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
584 ".?AV?$basic_ifstream@DU?$char_traits@D@std@@@std@@")
585 DEFINE_RTTI_DATA4(basic_ifstream_wchar
, sizeof(basic_ifstream_wchar
),
586 &basic_istream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
587 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
588 ".?AV?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@")
589 DEFINE_RTTI_DATA4(basic_ifstream_short
, sizeof(basic_ifstream_wchar
),
590 &basic_istream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
591 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
592 ".?AV?$basic_ifstream@GU?$char_traits@G@std@@@std@@")
593 DEFINE_RTTI_DATA8(basic_fstream_char
, sizeof(basic_fstream_char
),
594 &basic_istream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
595 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
596 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
597 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
598 ".?AV?$basic_fstream@DU?$char_traits@D@std@@@std@@")
599 DEFINE_RTTI_DATA8(basic_fstream_wchar
, sizeof(basic_fstream_wchar
),
600 &basic_istream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
601 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
602 &basic_ostream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
603 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
604 ".?AV?$basic_fstream@_WU?$char_traits@_W@std@@@std@@")
605 DEFINE_RTTI_DATA8(basic_fstream_short
, sizeof(basic_fstream_wchar
),
606 &basic_istream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
607 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
608 &basic_ostream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
609 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
610 ".?AV?$basic_fstream@GU?$char_traits@G@std@@@std@@")
611 DEFINE_RTTI_DATA4(basic_ostringstream_char
, sizeof(basic_ostringstream_char
),
612 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
613 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
614 ".?AV?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@")
615 DEFINE_RTTI_DATA4(basic_ostringstream_wchar
, sizeof(basic_ostringstream_wchar
),
616 &basic_ostream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
617 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
618 ".?AV?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@")
619 DEFINE_RTTI_DATA4(basic_ostringstream_short
, sizeof(basic_ostringstream_wchar
),
620 &basic_ostream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
621 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
622 ".?AV?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@")
623 DEFINE_RTTI_DATA4(basic_istringstream_char
, sizeof(basic_istringstream_char
),
624 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
625 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
626 ".?AV?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@")
627 DEFINE_RTTI_DATA4(basic_istringstream_wchar
, sizeof(basic_istringstream_wchar
),
628 &basic_ostream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
629 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
630 ".?AV?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@")
631 DEFINE_RTTI_DATA4(basic_istringstream_short
, sizeof(basic_istringstream_wchar
),
632 &basic_ostream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
633 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
634 ".?AV?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@")
635 DEFINE_RTTI_DATA8(basic_stringstream_char
, sizeof(basic_stringstream_char
),
636 &basic_istream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
637 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
638 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
639 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
640 ".?AV?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@")
641 DEFINE_RTTI_DATA8(basic_stringstream_wchar
, sizeof(basic_stringstream_wchar
),
642 &basic_istream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
643 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
644 &basic_ostream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
645 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
646 ".?AV?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@")
647 DEFINE_RTTI_DATA8(basic_stringstream_short
, sizeof(basic_stringstream_wchar
),
648 &basic_istream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
649 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
650 &basic_ostream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
651 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
652 ".?AV?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@")
653 DEFINE_RTTI_DATA1(strstreambuf
, sizeof(strstreambuf
),
654 &basic_streambuf_char_rtti_base_descriptor
, ".?AVstrstreambuf@std@@")
655 DEFINE_RTTI_DATA4(ostrstream
, sizeof(ostrstream
),
656 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
657 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
658 "?AVostrstream@std@@")
659 DEFINE_RTTI_DATA8(strstream
, sizeof(strstream
),
660 &basic_istream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
661 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
662 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
663 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
664 "?AVstrstream@std@@")
667 void __asm_dummy_vtables(void) {
670 VTABLE_ADD_FUNC(iosb_vector_dtor
));
671 __ASM_VTABLE(ios_base
,
672 VTABLE_ADD_FUNC(ios_base_vector_dtor
));
673 __ASM_VTABLE(basic_ios_char
,
674 VTABLE_ADD_FUNC(basic_ios_char_vector_dtor
));
675 __ASM_VTABLE(basic_ios_wchar
,
676 VTABLE_ADD_FUNC(basic_ios_wchar_vector_dtor
));
677 __ASM_VTABLE(basic_ios_short
,
678 VTABLE_ADD_FUNC(basic_ios_wchar_vector_dtor
));
679 __ASM_VTABLE(basic_streambuf_char
,
680 VTABLE_ADD_FUNC(basic_streambuf_char_vector_dtor
)
681 VTABLE_ADD_FUNC(basic_streambuf_char_overflow
)
682 VTABLE_ADD_FUNC(basic_streambuf_char_pbackfail
)
683 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc
)
684 VTABLE_ADD_FUNC(basic_streambuf_char_underflow
)
685 VTABLE_ADD_FUNC(basic_streambuf_char_uflow
)
686 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn
)
687 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn
)
688 VTABLE_ADD_FUNC(basic_streambuf_char_seekoff
)
689 VTABLE_ADD_FUNC(basic_streambuf_char_seekpos
)
690 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf
)
691 VTABLE_ADD_FUNC(basic_streambuf_char_sync
)
692 VTABLE_ADD_FUNC(basic_streambuf_char_imbue
));
693 __ASM_VTABLE(basic_streambuf_wchar
,
694 VTABLE_ADD_FUNC(basic_streambuf_wchar_vector_dtor
)
695 VTABLE_ADD_FUNC(basic_streambuf_wchar_overflow
)
696 VTABLE_ADD_FUNC(basic_streambuf_wchar_pbackfail
)
697 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc
)
698 VTABLE_ADD_FUNC(basic_streambuf_wchar_underflow
)
699 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow
)
700 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn
)
701 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn
)
702 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff
)
703 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos
)
704 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf
)
705 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync
)
706 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue
));
707 __ASM_VTABLE(basic_streambuf_short
,
708 VTABLE_ADD_FUNC(basic_streambuf_wchar_vector_dtor
)
709 VTABLE_ADD_FUNC(basic_streambuf_wchar_overflow
)
710 VTABLE_ADD_FUNC(basic_streambuf_wchar_pbackfail
)
711 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc
)
712 VTABLE_ADD_FUNC(basic_streambuf_wchar_underflow
)
713 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow
)
714 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn
)
715 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn
)
716 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff
)
717 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos
)
718 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf
)
719 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync
)
720 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue
));
721 __ASM_VTABLE(basic_filebuf_char
,
722 VTABLE_ADD_FUNC(basic_filebuf_char_vector_dtor
)
723 VTABLE_ADD_FUNC(basic_filebuf_char_overflow
)
724 VTABLE_ADD_FUNC(basic_filebuf_char_pbackfail
)
725 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc
)
726 VTABLE_ADD_FUNC(basic_filebuf_char_underflow
)
727 VTABLE_ADD_FUNC(basic_filebuf_char_uflow
)
728 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn
)
729 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn
)
730 VTABLE_ADD_FUNC(basic_filebuf_char_seekoff
)
731 VTABLE_ADD_FUNC(basic_filebuf_char_seekpos
)
732 VTABLE_ADD_FUNC(basic_filebuf_char_setbuf
)
733 VTABLE_ADD_FUNC(basic_filebuf_char_sync
)
734 VTABLE_ADD_FUNC(basic_filebuf_char_imbue
));
735 __ASM_VTABLE(basic_filebuf_wchar
,
736 VTABLE_ADD_FUNC(basic_filebuf_wchar_vector_dtor
)
737 VTABLE_ADD_FUNC(basic_filebuf_wchar_overflow
)
738 VTABLE_ADD_FUNC(basic_filebuf_wchar_pbackfail
)
739 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc
)
740 VTABLE_ADD_FUNC(basic_filebuf_wchar_underflow
)
741 VTABLE_ADD_FUNC(basic_filebuf_wchar_uflow
)
742 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn
)
743 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn
)
744 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekoff
)
745 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekpos
)
746 VTABLE_ADD_FUNC(basic_filebuf_wchar_setbuf
)
747 VTABLE_ADD_FUNC(basic_filebuf_wchar_sync
)
748 VTABLE_ADD_FUNC(basic_filebuf_wchar_imbue
));
749 __ASM_VTABLE(basic_filebuf_short
,
750 VTABLE_ADD_FUNC(basic_filebuf_wchar_vector_dtor
)
751 VTABLE_ADD_FUNC(basic_filebuf_wchar_overflow
)
752 VTABLE_ADD_FUNC(basic_filebuf_wchar_pbackfail
)
753 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc
)
754 VTABLE_ADD_FUNC(basic_filebuf_wchar_underflow
)
755 VTABLE_ADD_FUNC(basic_filebuf_wchar_uflow
)
756 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn
)
757 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn
)
758 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekoff
)
759 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekpos
)
760 VTABLE_ADD_FUNC(basic_filebuf_short_setbuf
)
761 VTABLE_ADD_FUNC(basic_filebuf_wchar_sync
)
762 VTABLE_ADD_FUNC(basic_filebuf_short_imbue
));
763 __ASM_VTABLE(basic_stringbuf_char
,
764 VTABLE_ADD_FUNC(basic_stringbuf_char_vector_dtor
)
765 VTABLE_ADD_FUNC(basic_stringbuf_char_overflow
)
766 VTABLE_ADD_FUNC(basic_stringbuf_char_pbackfail
)
767 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc
)
768 VTABLE_ADD_FUNC(basic_stringbuf_char_underflow
)
769 VTABLE_ADD_FUNC(basic_streambuf_char_uflow
)
770 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn
)
771 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn
)
772 VTABLE_ADD_FUNC(basic_stringbuf_char_seekoff
)
773 VTABLE_ADD_FUNC(basic_stringbuf_char_seekpos
)
774 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf
)
775 VTABLE_ADD_FUNC(basic_streambuf_char_sync
)
776 VTABLE_ADD_FUNC(basic_streambuf_char_imbue
));
777 __ASM_VTABLE(basic_stringbuf_wchar
,
778 VTABLE_ADD_FUNC(basic_stringbuf_wchar_vector_dtor
)
779 VTABLE_ADD_FUNC(basic_stringbuf_wchar_overflow
)
780 VTABLE_ADD_FUNC(basic_stringbuf_wchar_pbackfail
)
781 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc
)
782 VTABLE_ADD_FUNC(basic_stringbuf_wchar_underflow
)
783 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow
)
784 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn
)
785 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn
)
786 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekoff
)
787 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekpos
)
788 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf
)
789 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync
)
790 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue
));
791 __ASM_VTABLE(basic_stringbuf_short
,
792 VTABLE_ADD_FUNC(basic_stringbuf_wchar_vector_dtor
)
793 VTABLE_ADD_FUNC(basic_stringbuf_wchar_overflow
)
794 VTABLE_ADD_FUNC(basic_stringbuf_wchar_pbackfail
)
795 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc
)
796 VTABLE_ADD_FUNC(basic_stringbuf_wchar_underflow
)
797 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow
)
798 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn
)
799 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn
)
800 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekoff
)
801 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekpos
)
802 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf
)
803 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync
)
804 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue
));
805 __ASM_VTABLE(basic_ostream_char
,
806 VTABLE_ADD_FUNC(basic_ostream_char_vector_dtor
));
807 __ASM_VTABLE(basic_ostream_wchar
,
808 VTABLE_ADD_FUNC(basic_ostream_wchar_vector_dtor
));
809 __ASM_VTABLE(basic_ostream_short
,
810 VTABLE_ADD_FUNC(basic_ostream_wchar_vector_dtor
));
811 __ASM_VTABLE(basic_istream_char
,
812 VTABLE_ADD_FUNC(basic_istream_char_vector_dtor
));
813 __ASM_VTABLE(basic_istream_wchar
,
814 VTABLE_ADD_FUNC(basic_istream_wchar_vector_dtor
));
815 __ASM_VTABLE(basic_istream_short
,
816 VTABLE_ADD_FUNC(basic_istream_wchar_vector_dtor
));
817 __ASM_VTABLE(basic_iostream_char
,
818 VTABLE_ADD_FUNC(basic_iostream_char_vector_dtor
));
819 __ASM_VTABLE(basic_iostream_wchar
,
820 VTABLE_ADD_FUNC(basic_iostream_wchar_vector_dtor
));
821 __ASM_VTABLE(basic_iostream_short
,
822 VTABLE_ADD_FUNC(basic_iostream_wchar_vector_dtor
));
823 __ASM_VTABLE(basic_ofstream_char
,
824 VTABLE_ADD_FUNC(basic_ofstream_char_vector_dtor
));
825 __ASM_VTABLE(basic_ofstream_wchar
,
826 VTABLE_ADD_FUNC(basic_ofstream_wchar_vector_dtor
));
827 __ASM_VTABLE(basic_ofstream_short
,
828 VTABLE_ADD_FUNC(basic_ofstream_wchar_vector_dtor
));
829 __ASM_VTABLE(basic_ifstream_char
,
830 VTABLE_ADD_FUNC(basic_ifstream_char_vector_dtor
));
831 __ASM_VTABLE(basic_ifstream_wchar
,
832 VTABLE_ADD_FUNC(basic_ifstream_wchar_vector_dtor
));
833 __ASM_VTABLE(basic_ifstream_short
,
834 VTABLE_ADD_FUNC(basic_ifstream_wchar_vector_dtor
));
835 __ASM_VTABLE(basic_fstream_char
,
836 VTABLE_ADD_FUNC(basic_fstream_char_vector_dtor
));
837 __ASM_VTABLE(basic_fstream_wchar
,
838 VTABLE_ADD_FUNC(basic_fstream_wchar_vector_dtor
));
839 __ASM_VTABLE(basic_fstream_short
,
840 VTABLE_ADD_FUNC(basic_fstream_wchar_vector_dtor
));
841 __ASM_VTABLE(basic_ostringstream_char
,
842 VTABLE_ADD_FUNC(basic_ostringstream_char_vector_dtor
));
843 __ASM_VTABLE(basic_ostringstream_wchar
,
844 VTABLE_ADD_FUNC(basic_ostringstream_wchar_vector_dtor
));
845 __ASM_VTABLE(basic_ostringstream_short
,
846 VTABLE_ADD_FUNC(basic_ostringstream_wchar_vector_dtor
));
847 __ASM_VTABLE(basic_istringstream_char
,
848 VTABLE_ADD_FUNC(basic_istringstream_char_vector_dtor
));
849 __ASM_VTABLE(basic_istringstream_wchar
,
850 VTABLE_ADD_FUNC(basic_istringstream_wchar_vector_dtor
));
851 __ASM_VTABLE(basic_istringstream_short
,
852 VTABLE_ADD_FUNC(basic_istringstream_wchar_vector_dtor
));
853 __ASM_VTABLE(basic_stringstream_char
,
854 VTABLE_ADD_FUNC(basic_stringstream_char_vector_dtor
));
855 __ASM_VTABLE(basic_stringstream_wchar
,
856 VTABLE_ADD_FUNC(basic_stringstream_wchar_vector_dtor
));
857 __ASM_VTABLE(basic_stringstream_short
,
858 VTABLE_ADD_FUNC(basic_stringstream_wchar_vector_dtor
));
859 __ASM_VTABLE(strstreambuf
,
860 VTABLE_ADD_FUNC(strstreambuf_vector_dtor
)
861 VTABLE_ADD_FUNC(strstreambuf_overflow
)
862 VTABLE_ADD_FUNC(strstreambuf_pbackfail
)
863 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc
)
864 VTABLE_ADD_FUNC(strstreambuf_underflow
)
865 VTABLE_ADD_FUNC(basic_streambuf_char_uflow
)
866 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn
)
867 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn
)
868 VTABLE_ADD_FUNC(strstreambuf_seekoff
)
869 VTABLE_ADD_FUNC(strstreambuf_seekpos
)
870 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf
)
871 VTABLE_ADD_FUNC(basic_streambuf_char_sync
)
872 VTABLE_ADD_FUNC(basic_streambuf_char_imbue
));
873 __ASM_VTABLE(ostrstream
,
874 VTABLE_ADD_FUNC(ostrstream_vector_dtor
));
875 __ASM_VTABLE(strstream
,
876 VTABLE_ADD_FUNC(strstream_vector_dtor
));
881 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
882 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
883 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp_next
, 16)
884 void __thiscall
basic_streambuf_char_setp_next(basic_streambuf_char
*this, char *first
, char *next
, char *last
)
886 TRACE("(%p %p %p %p)\n", this, first
, next
, last
);
890 this->wsize
= last
-next
;
893 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z */
894 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z */
895 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp
, 12)
896 void __thiscall
basic_streambuf_char_setp(basic_streambuf_char
*this, char *first
, char *last
)
898 basic_streambuf_char_setp_next(this, first
, first
, last
);
901 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
902 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
903 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setg
, 16)
904 void __thiscall
basic_streambuf_char_setg(basic_streambuf_char
*this, char *first
, char *next
, char *last
)
906 TRACE("(%p %p %p %p)\n", this, first
, next
, last
);
910 this->rsize
= last
-next
;
913 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ */
914 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ */
915 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init_empty
, 4)
916 void __thiscall
basic_streambuf_char__Init_empty(basic_streambuf_char
*this)
918 TRACE("(%p)\n", this);
920 this->prbuf
= &this->rbuf
;
921 this->pwbuf
= &this->wbuf
;
922 this->prpos
= &this->rpos
;
923 this->pwpos
= &this->wpos
;
924 this->prsize
= &this->rsize
;
925 this->pwsize
= &this->wsize
;
927 basic_streambuf_char_setp(this, NULL
, NULL
);
928 basic_streambuf_char_setg(this, NULL
, NULL
, NULL
);
931 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@W4_Uninitialized@1@@Z */
932 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
933 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor_uninitialized
, 8)
934 basic_streambuf_char
* __thiscall
basic_streambuf_char_ctor_uninitialized(basic_streambuf_char
*this, int uninitialized
)
936 TRACE("(%p %d)\n", this, uninitialized
);
937 this->vtable
= &MSVCP_basic_streambuf_char_vtable
;
938 mutex_ctor(&this->lock
);
942 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ */
943 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ */
944 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor
, 4)
945 basic_streambuf_char
* __thiscall
basic_streambuf_char_ctor(basic_streambuf_char
*this)
947 TRACE("(%p)\n", this);
949 this->vtable
= &MSVCP_basic_streambuf_char_vtable
;
950 mutex_ctor(&this->lock
);
951 this->loc
= MSVCRT_operator_new(sizeof(locale
));
952 locale_ctor(this->loc
);
953 basic_streambuf_char__Init_empty(this);
958 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
959 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
960 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_dtor
, 4)
961 void __thiscall
basic_streambuf_char_dtor(basic_streambuf_char
*this)
963 TRACE("(%p)\n", this);
965 mutex_dtor(&this->lock
);
966 locale_dtor(this->loc
);
967 MSVCRT_operator_delete(this->loc
);
970 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_vector_dtor
, 8)
971 basic_streambuf_char
* __thiscall
basic_streambuf_char_vector_dtor(basic_streambuf_char
*this, unsigned int flags
)
973 TRACE("(%p %x)\n", this, flags
);
975 /* we have an array, with the number of elements stored before the first object */
976 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
978 for(i
=*ptr
-1; i
>=0; i
--)
979 basic_streambuf_char_dtor(this+i
);
980 MSVCRT_operator_delete(ptr
);
982 basic_streambuf_char_dtor(this);
984 MSVCRT_operator_delete(this);
990 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
991 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
992 static streamsize
basic_streambuf_char__Gnavail(const basic_streambuf_char
*this)
994 TRACE("(%p)\n", this);
995 return *this->prpos
? *this->prsize
: 0;
998 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
999 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
1000 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gndec
, 4)
1001 char* __thiscall
basic_streambuf_char__Gndec(basic_streambuf_char
*this)
1003 TRACE("(%p)\n", this);
1006 return *this->prpos
;
1009 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
1010 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
1011 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gninc
, 4)
1012 char* __thiscall
basic_streambuf_char__Gninc(basic_streambuf_char
*this)
1014 TRACE("(%p)\n", this);
1016 return (*this->prpos
)++;
1019 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
1020 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
1021 static char* basic_streambuf_char__Gnpreinc(basic_streambuf_char
*this)
1023 TRACE("(%p)\n", this);
1026 return *this->prpos
;
1029 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z */
1030 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAPEAD0PEAH001@Z */
1031 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init
, 28)
1032 void __thiscall
basic_streambuf_char__Init(basic_streambuf_char
*this, char **gf
, char **gn
, int *gc
, char **pf
, char **pn
, int *pc
)
1034 TRACE("(%p %p %p %p %p %p %p)\n", this, gf
, gn
, gc
, pf
, pn
, pc
);
1044 /* ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1045 /* ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1046 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Lock
, 4)
1047 void __thiscall
basic_streambuf_char__Lock(basic_streambuf_char
*this)
1049 TRACE("(%p)\n", this);
1050 mutex_lock(&this->lock
);
1053 /* ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
1054 /* ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
1055 static streamsize
basic_streambuf_char__Pnavail(const basic_streambuf_char
*this)
1057 TRACE("(%p)\n", this);
1058 return *this->pwpos
? *this->pwsize
: 0;
1061 /* ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
1062 /* ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
1063 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Pninc
, 4)
1064 char* __thiscall
basic_streambuf_char__Pninc(basic_streambuf_char
*this)
1066 TRACE("(%p)\n", this);
1068 return (*this->pwpos
)++;
1071 /* ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1072 /* ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1073 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_underflow
, 4)
1074 #define call_basic_streambuf_char_underflow(this) CALL_VTBL_FUNC(this, 16, \
1075 int, (basic_streambuf_char*), (this))
1076 int __thiscall
basic_streambuf_char_underflow(basic_streambuf_char
*this)
1078 TRACE("(%p)\n", this);
1082 /* ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1083 /* ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1084 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_uflow
, 4)
1085 #define call_basic_streambuf_char_uflow(this) CALL_VTBL_FUNC(this, 20, \
1086 int, (basic_streambuf_char*), (this))
1087 int __thiscall
basic_streambuf_char_uflow(basic_streambuf_char
*this)
1091 TRACE("(%p)\n", this);
1093 if(call_basic_streambuf_char_underflow(this)==EOF
)
1096 ret
= (unsigned char)**this->prpos
;
1102 /* ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADIH@Z */
1103 /* ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_K_J@Z */
1104 static streamsize
basic_streambuf_char__Xsgetn_s(basic_streambuf_char
*this, char *ptr
, MSVCP_size_t size
, streamsize count
)
1106 streamsize copied
, chunk
;
1109 TRACE("(%p %p %lu %ld)\n", this, ptr
, size
, count
);
1111 for(copied
=0; copied
<count
&& size
;) {
1112 chunk
= basic_streambuf_char__Gnavail(this);
1113 if(chunk
> count
-copied
)
1114 chunk
= count
-copied
;
1117 memcpy_s(ptr
+copied
, size
, *this->prpos
, chunk
);
1118 *this->prpos
+= chunk
;
1119 *this->prsize
-= chunk
;
1122 }else if((c
= call_basic_streambuf_char_uflow(this)) != EOF
) {
1134 /* ?_Sgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADIH@Z */
1135 /* ?_Sgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_K_J@Z */
1136 static streamsize
basic_streambuf_char__Sgetn_s(basic_streambuf_char
*this, char *ptr
, MSVCP_size_t size
, streamsize count
)
1138 TRACE("(%p %p %lu %ld)\n", this, ptr
, size
, count
);
1139 return basic_streambuf_char__Xsgetn_s(this, ptr
, size
, count
);
1142 /* ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1143 /* ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1144 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Unlock
, 4)
1145 void __thiscall
basic_streambuf_char__Unlock(basic_streambuf_char
*this)
1147 TRACE("(%p)\n", this);
1148 mutex_unlock(&this->lock
);
1151 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1152 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1153 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_eback
, 4)
1154 char* __thiscall
basic_streambuf_char_eback(const basic_streambuf_char
*this)
1156 TRACE("(%p)\n", this);
1157 return *this->prbuf
;
1160 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1161 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1162 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gptr
, 4)
1163 char* __thiscall
basic_streambuf_char_gptr(const basic_streambuf_char
*this)
1165 TRACE("(%p)\n", this);
1166 return *this->prpos
;
1169 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1170 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1171 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_egptr
, 4)
1172 char* __thiscall
basic_streambuf_char_egptr(const basic_streambuf_char
*this)
1174 TRACE("(%p)\n", this);
1175 return *this->prpos
+*this->prsize
;
1178 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1179 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1180 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_epptr
, 4)
1181 char* __thiscall
basic_streambuf_char_epptr(const basic_streambuf_char
*this)
1183 TRACE("(%p)\n", this);
1184 return *this->pwpos
+*this->pwsize
;
1187 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
1188 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
1189 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gbump
, 8)
1190 void __thiscall
basic_streambuf_char_gbump(basic_streambuf_char
*this, int off
)
1192 TRACE("(%p %d)\n", this, off
);
1193 *this->prpos
+= off
;
1194 *this->prsize
-= off
;
1197 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ */
1198 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?AVlocale@2@XZ */
1199 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_getloc
, 8)
1200 locale
* __thiscall
basic_streambuf_char_getloc(const basic_streambuf_char
*this, locale
*ret
)
1202 TRACE("(%p)\n", this);
1203 return locale_copy_ctor(ret
, this->loc
);
1206 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z */
1207 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z */
1208 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_imbue
, 8)
1209 #define call_basic_streambuf_char_imbue(this, loc) CALL_VTBL_FUNC(this, 48, \
1210 void, (basic_streambuf_char*, const locale*), (this, loc))
1211 void __thiscall
basic_streambuf_char_imbue(basic_streambuf_char
*this, const locale
*loc
)
1213 TRACE("(%p %p)\n", this, loc
);
1216 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
1217 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
1218 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_overflow
, 8)
1219 #define call_basic_streambuf_char_overflow(this, ch) CALL_VTBL_FUNC(this, 4, \
1220 int, (basic_streambuf_char*, int), (this, ch))
1221 int __thiscall
basic_streambuf_char_overflow(basic_streambuf_char
*this, int ch
)
1223 TRACE("(%p %d)\n", this, ch
);
1227 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
1228 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
1229 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbackfail
, 8)
1230 #define call_basic_streambuf_char_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, \
1231 int, (basic_streambuf_char*, int), (this, ch))
1232 int __thiscall
basic_streambuf_char_pbackfail(basic_streambuf_char
*this, int ch
)
1234 TRACE("(%p %d)\n", this, ch
);
1238 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1239 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1240 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbase
, 4)
1241 char* __thiscall
basic_streambuf_char_pbase(const basic_streambuf_char
*this)
1243 TRACE("(%p)\n", this);
1244 return *this->pwbuf
;
1247 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
1248 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
1249 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbump
, 8)
1250 void __thiscall
basic_streambuf_char_pbump(basic_streambuf_char
*this, int off
)
1252 TRACE("(%p %d)\n", this, off
);
1253 *this->pwpos
+= off
;
1254 *this->pwsize
-= off
;
1257 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1258 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1259 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pptr
, 4)
1260 char* __thiscall
basic_streambuf_char_pptr(const basic_streambuf_char
*this)
1262 TRACE("(%p)\n", this);
1263 return *this->pwpos
;
1266 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
1267 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
1268 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubimbue
, 12)
1269 locale
* __thiscall
basic_streambuf_char_pubimbue(basic_streambuf_char
*this, locale
*ret
, const locale
*loc
)
1271 TRACE("(%p %p)\n", this, loc
);
1272 memcpy(ret
, this->loc
, sizeof(locale
));
1273 call_basic_streambuf_char_imbue(this, loc
);
1274 locale_copy_ctor(this->loc
, loc
);
1278 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
1279 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
1280 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekoff
, 20)
1281 #define call_basic_streambuf_char_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 32, \
1282 fpos_int*, (basic_streambuf_char*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
1283 fpos_int
* __thiscall
basic_streambuf_char_seekoff(basic_streambuf_char
*this,
1284 fpos_int
*ret
, streamoff off
, int way
, int mode
)
1286 TRACE("(%p %ld %d %d)\n", this, off
, way
, mode
);
1293 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
1294 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
1295 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff
, 20)
1296 fpos_int
* __thiscall
basic_streambuf_char_pubseekoff(basic_streambuf_char
*this,
1297 fpos_int
*ret
, streamoff off
, int way
, int mode
)
1299 TRACE("(%p %ld %d %d)\n", this, off
, way
, mode
);
1300 return call_basic_streambuf_char_seekoff(this, ret
, off
, way
, mode
);
1303 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
1304 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
1305 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff_old
, 20)
1306 fpos_int
* __thiscall
basic_streambuf_char_pubseekoff_old(basic_streambuf_char
*this,
1307 fpos_int
*ret
, streamoff off
, unsigned int way
, unsigned int mode
)
1309 TRACE("(%p %ld %d %d)\n", this, off
, way
, mode
);
1310 return basic_streambuf_char_pubseekoff(this, ret
, off
, way
, mode
);
1313 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
1314 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
1315 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekpos
, 36)
1316 #define call_basic_streambuf_char_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 36, \
1317 fpos_int*, (basic_streambuf_char*, fpos_int*, fpos_int, int), (this, ret, pos, mode))
1318 fpos_int
* __thiscall
basic_streambuf_char_seekpos(basic_streambuf_char
*this,
1319 fpos_int
*ret
, fpos_int pos
, int mode
)
1321 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos
), mode
);
1328 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
1329 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
1330 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos
, 36)
1331 fpos_int
* __thiscall
basic_streambuf_char_pubseekpos(basic_streambuf_char
*this,
1332 fpos_int
*ret
, fpos_int pos
, int mode
)
1334 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos
), mode
);
1335 return call_basic_streambuf_char_seekpos(this, ret
, pos
, mode
);
1338 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
1339 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
1340 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos_old
, 36)
1341 fpos_int
* __thiscall
basic_streambuf_char_pubseekpos_old(basic_streambuf_char
*this,
1342 fpos_int
*ret
, fpos_int pos
, unsigned int mode
)
1344 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos
), mode
);
1345 return basic_streambuf_char_pubseekpos(this, ret
, pos
, mode
);
1348 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z */
1349 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@PEAD_J@Z */
1350 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setbuf
, 12)
1351 #define call_basic_streambuf_char_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 40, \
1352 basic_streambuf_char*, (basic_streambuf_char*, char*, streamsize), (this, buf, count))
1353 basic_streambuf_char
* __thiscall
basic_streambuf_char_setbuf(basic_streambuf_char
*this, char *buf
, streamsize count
)
1355 TRACE("(%p %p %ld)\n", this, buf
, count
);
1359 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PADH@Z */
1360 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEAD_J@Z */
1361 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsetbuf
, 12)
1362 basic_streambuf_char
* __thiscall
basic_streambuf_char_pubsetbuf(basic_streambuf_char
*this, char *buf
, streamsize count
)
1364 TRACE("(%p %p %ld)\n", this, buf
, count
);
1365 return call_basic_streambuf_char_setbuf(this, buf
, count
);
1368 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1369 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1370 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sync
, 4)
1371 #define call_basic_streambuf_char_sync(this) CALL_VTBL_FUNC(this, 44, \
1372 int, (basic_streambuf_char*), (this))
1373 int __thiscall
basic_streambuf_char_sync(basic_streambuf_char
*this)
1375 TRACE("(%p)\n", this);
1379 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1380 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1381 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsync
, 4)
1382 int __thiscall
basic_streambuf_char_pubsync(basic_streambuf_char
*this)
1384 TRACE("(%p)\n", this);
1385 return call_basic_streambuf_char_sync(this);
1388 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z */
1389 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z */
1390 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsgetn
, 12)
1391 #define call_basic_streambuf_char_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, \
1392 streamsize, (basic_streambuf_char*, char*, streamsize), (this, ptr, count))
1393 streamsize __thiscall
basic_streambuf_char_xsgetn(basic_streambuf_char
*this, char *ptr
, streamsize count
)
1395 TRACE("(%p %p %ld)\n", this, ptr
, count
);
1396 return basic_streambuf_char__Xsgetn_s(this, ptr
, -1, count
);
1399 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADH@Z */
1400 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z */
1401 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetn
, 12)
1402 streamsize __thiscall
basic_streambuf_char_sgetn(basic_streambuf_char
*this, char *ptr
, streamsize count
)
1404 TRACE("(%p %p %ld)\n", this, ptr
, count
);
1405 return call_basic_streambuf_char_xsgetn(this, ptr
, count
);
1408 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1409 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ */
1410 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_showmanyc
, 4)
1411 #define call_basic_streambuf_char_showmanyc(this) CALL_VTBL_FUNC(this, 12, \
1412 streamsize, (basic_streambuf_char*), (this))
1413 streamsize __thiscall
basic_streambuf_char_showmanyc(basic_streambuf_char
*this)
1415 TRACE("(%p)\n", this);
1419 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1420 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JXZ */
1421 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_in_avail
, 4)
1422 streamsize __thiscall
basic_streambuf_char_in_avail(basic_streambuf_char
*this)
1426 TRACE("(%p)\n", this);
1428 ret
= basic_streambuf_char__Gnavail(this);
1429 return ret
? ret
: call_basic_streambuf_char_showmanyc(this);
1432 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
1433 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
1434 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputbackc
, 8)
1435 int __thiscall
basic_streambuf_char_sputbackc(basic_streambuf_char
*this, char ch
)
1437 TRACE("(%p %d)\n", this, ch
);
1438 if(*this->prpos
&& *this->prpos
>*this->prbuf
&& (*this->prpos
)[-1]==ch
) {
1441 return (unsigned char)ch
;
1444 return call_basic_streambuf_char_pbackfail(this, (unsigned char)ch
);
1447 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
1448 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
1449 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputc
, 8)
1450 int __thiscall
basic_streambuf_char_sputc(basic_streambuf_char
*this, char ch
)
1452 TRACE("(%p %d)\n", this, ch
);
1453 return basic_streambuf_char__Pnavail(this) ?
1454 (*basic_streambuf_char__Pninc(this) = ch
) :
1455 call_basic_streambuf_char_overflow(this, (unsigned char)ch
);
1458 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1459 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1460 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sungetc
, 4)
1461 int __thiscall
basic_streambuf_char_sungetc(basic_streambuf_char
*this)
1463 TRACE("(%p)\n", this);
1464 if(*this->prpos
&& *this->prpos
>*this->prbuf
) {
1467 return (unsigned char)**this->prpos
;
1470 return call_basic_streambuf_char_pbackfail(this, EOF
);
1473 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1474 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1475 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_stossc
, 4)
1476 void __thiscall
basic_streambuf_char_stossc(basic_streambuf_char
*this)
1478 TRACE("(%p)\n", this);
1479 if(basic_streambuf_char__Gnavail(this))
1480 basic_streambuf_char__Gninc(this);
1482 call_basic_streambuf_char_uflow(this);
1485 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1486 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1487 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sbumpc
, 4)
1488 int __thiscall
basic_streambuf_char_sbumpc(basic_streambuf_char
*this)
1490 TRACE("(%p)\n", this);
1491 return basic_streambuf_char__Gnavail(this) ?
1492 (int)(unsigned char)*basic_streambuf_char__Gninc(this) : call_basic_streambuf_char_uflow(this);
1495 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1496 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1497 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetc
, 4)
1498 int __thiscall
basic_streambuf_char_sgetc(basic_streambuf_char
*this)
1500 TRACE("(%p)\n", this);
1501 return basic_streambuf_char__Gnavail(this) ?
1502 (int)(unsigned char)*basic_streambuf_char_gptr(this) : call_basic_streambuf_char_underflow(this);
1505 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1506 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1507 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_snextc
, 4)
1508 int __thiscall
basic_streambuf_char_snextc(basic_streambuf_char
*this)
1510 TRACE("(%p)\n", this);
1512 if(basic_streambuf_char__Gnavail(this) > 1)
1513 return (unsigned char)*basic_streambuf_char__Gnpreinc(this);
1514 return basic_streambuf_char_sbumpc(this)==EOF
?
1515 EOF
: basic_streambuf_char_sgetc(this);
1518 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z */
1519 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z */
1520 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsputn
, 12)
1521 #define call_basic_streambuf_char_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 28, \
1522 streamsize, (basic_streambuf_char*, const char*, streamsize), (this, ptr, count))
1523 streamsize __thiscall
basic_streambuf_char_xsputn(basic_streambuf_char
*this, const char *ptr
, streamsize count
)
1525 streamsize copied
, chunk
;
1527 TRACE("(%p %p %ld)\n", this, ptr
, count
);
1529 for(copied
=0; copied
<count
;) {
1530 chunk
= basic_streambuf_char__Pnavail(this);
1531 if(chunk
> count
-copied
)
1532 chunk
= count
-copied
;
1535 memcpy(*this->pwpos
, ptr
+copied
, chunk
);
1536 *this->pwpos
+= chunk
;
1537 *this->pwsize
-= chunk
;
1539 }else if(call_basic_streambuf_char_overflow(this, (unsigned char)ptr
[copied
]) != EOF
) {
1549 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z */
1550 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@Z */
1551 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputn
, 12)
1552 streamsize __thiscall
basic_streambuf_char_sputn(basic_streambuf_char
*this, const char *ptr
, streamsize count
)
1554 TRACE("(%p %p %ld)\n", this, ptr
, count
);
1555 return call_basic_streambuf_char_xsputn(this, ptr
, count
);
1558 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z */
1559 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z */
1560 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG00@Z */
1561 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z */
1562 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setp_next
, 16)
1563 void __thiscall
basic_streambuf_wchar_setp_next(basic_streambuf_wchar
*this, wchar_t *first
, wchar_t *next
, wchar_t *last
)
1565 TRACE("(%p %p %p %p)\n", this, first
, next
, last
);
1569 this->wsize
= last
-next
;
1572 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W0@Z */
1573 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W0@Z */
1574 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG0@Z */
1575 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG0@Z */
1576 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setp
, 12)
1577 void __thiscall
basic_streambuf_wchar_setp(basic_streambuf_wchar
*this, wchar_t *first
, wchar_t *last
)
1579 basic_streambuf_wchar_setp_next(this, first
, first
, last
);
1582 /* ?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z */
1583 /* ?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z */
1584 /* ?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG00@Z */
1585 /* ?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z */
1586 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setg
, 16)
1587 void __thiscall
basic_streambuf_wchar_setg(basic_streambuf_wchar
*this, wchar_t *first
, wchar_t *next
, wchar_t *last
)
1589 TRACE("(%p %p %p %p)\n", this, first
, next
, last
);
1593 this->rsize
= last
-next
;
1596 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXXZ */
1597 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXXZ */
1598 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXXZ */
1599 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXXZ */
1600 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init_empty
, 4)
1601 void __thiscall
basic_streambuf_wchar__Init_empty(basic_streambuf_wchar
*this)
1603 TRACE("(%p)\n", this);
1605 this->prbuf
= &this->rbuf
;
1606 this->pwbuf
= &this->wbuf
;
1607 this->prpos
= &this->rpos
;
1608 this->pwpos
= &this->wpos
;
1609 this->prsize
= &this->rsize
;
1610 this->pwsize
= &this->wsize
;
1612 basic_streambuf_wchar_setp(this, NULL
, NULL
);
1613 basic_streambuf_wchar_setg(this, NULL
, NULL
, NULL
);
1616 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAE@W4_Uninitialized@1@@Z */
1617 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
1618 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_ctor_uninitialized
, 8)
1619 basic_streambuf_wchar
* __thiscall
basic_streambuf_wchar_ctor_uninitialized(basic_streambuf_wchar
*this, int uninitialized
)
1621 TRACE("(%p %d)\n", this, uninitialized
);
1622 this->vtable
= &MSVCP_basic_streambuf_wchar_vtable
;
1623 mutex_ctor(&this->lock
);
1627 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@W4_Uninitialized@1@@Z */
1628 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
1629 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor_uninitialized
, 8)
1630 basic_streambuf_wchar
* __thiscall
basic_streambuf_short_ctor_uninitialized(basic_streambuf_wchar
*this, int uninitialized
)
1632 TRACE("(%p %d)\n", this, uninitialized
);
1633 basic_streambuf_wchar_ctor_uninitialized(this, uninitialized
);
1634 this->vtable
= &MSVCP_basic_streambuf_short_vtable
;
1638 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
1639 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
1640 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_ctor
, 4)
1641 basic_streambuf_wchar
* __thiscall
basic_streambuf_wchar_ctor(basic_streambuf_wchar
*this)
1643 TRACE("(%p)\n", this);
1645 this->vtable
= &MSVCP_basic_streambuf_wchar_vtable
;
1646 mutex_ctor(&this->lock
);
1647 this->loc
= MSVCRT_operator_new(sizeof(locale
));
1648 locale_ctor(this->loc
);
1649 basic_streambuf_wchar__Init_empty(this);
1654 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@XZ */
1655 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@XZ */
1656 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor
, 4)
1657 basic_streambuf_wchar
* __thiscall
basic_streambuf_short_ctor(basic_streambuf_wchar
*this)
1659 TRACE("(%p)\n", this);
1660 basic_streambuf_wchar_ctor(this);
1661 this->vtable
= &MSVCP_basic_streambuf_short_vtable
;
1665 /* ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
1666 /* ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
1667 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UAE@XZ */
1668 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */
1669 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_dtor
, 4)
1670 void __thiscall
basic_streambuf_wchar_dtor(basic_streambuf_wchar
*this)
1672 TRACE("(%p)\n", this);
1674 mutex_dtor(&this->lock
);
1675 locale_dtor(this->loc
);
1676 MSVCRT_operator_delete(this->loc
);
1679 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_vector_dtor
, 8)
1680 basic_streambuf_wchar
* __thiscall
basic_streambuf_wchar_vector_dtor(basic_streambuf_wchar
*this, unsigned int flags
)
1682 TRACE("(%p %x)\n", this, flags
);
1684 /* we have an array, with the number of elements stored before the first object */
1685 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
1687 for(i
=*ptr
-1; i
>=0; i
--)
1688 basic_streambuf_wchar_dtor(this+i
);
1689 MSVCRT_operator_delete(ptr
);
1691 basic_streambuf_wchar_dtor(this);
1693 MSVCRT_operator_delete(this);
1699 /* ?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEHXZ */
1700 /* ?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ */
1701 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
1702 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
1703 static streamsize
basic_streambuf_wchar__Gnavail(const basic_streambuf_wchar
*this)
1705 TRACE("(%p)\n", this);
1706 return *this->prpos
? *this->prsize
: 0;
1709 /* ?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1710 /* ?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1711 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1712 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1713 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gndec
, 4)
1714 wchar_t* __thiscall
basic_streambuf_wchar__Gndec(basic_streambuf_wchar
*this)
1716 TRACE("(%p)\n", this);
1719 return *this->prpos
;
1722 /* ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1723 /* ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1724 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1725 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1726 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gninc
, 4)
1727 wchar_t* __thiscall
basic_streambuf_wchar__Gninc(basic_streambuf_wchar
*this)
1729 TRACE("(%p)\n", this);
1731 return (*this->prpos
)++;
1734 /* ?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1735 /* ?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1736 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1737 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1738 static wchar_t* basic_streambuf_wchar__Gnpreinc(basic_streambuf_wchar
*this)
1740 TRACE("(%p)\n", this);
1743 return *this->prpos
;
1746 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPAPA_W0PAH001@Z */
1747 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAPEA_W0PEAH001@Z */
1748 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAPAG0PAH001@Z */
1749 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAPEAG0PEAH001@Z */
1750 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init
, 28)
1751 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
)
1753 TRACE("(%p %p %p %p %p %p %p)\n", this, gf
, gn
, gc
, pf
, pn
, pc
);
1763 /* ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1764 /* ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1765 /* ?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1766 /* ?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1767 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Lock
, 4)
1768 void __thiscall
basic_streambuf_wchar__Lock(basic_streambuf_wchar
*this)
1770 TRACE("(%p)\n", this);
1771 mutex_lock(&this->lock
);
1774 /* ?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEHXZ */
1775 /* ?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ */
1776 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
1777 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
1778 static streamsize
basic_streambuf_wchar__Pnavail(const basic_streambuf_wchar
*this)
1780 TRACE("(%p)\n", this);
1781 return *this->pwpos
? *this->pwsize
: 0;
1784 /* ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1785 /* ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1786 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1787 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1788 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Pninc
, 4)
1789 wchar_t* __thiscall
basic_streambuf_wchar__Pninc(basic_streambuf_wchar
*this)
1791 TRACE("(%p)\n", this);
1793 return (*this->pwpos
)++;
1796 /* ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
1797 /* ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
1798 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
1799 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
1800 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_underflow
, 4)
1801 #define call_basic_streambuf_wchar_underflow(this) CALL_VTBL_FUNC(this, 16, \
1802 unsigned short, (basic_streambuf_wchar*), (this))
1803 unsigned short __thiscall
basic_streambuf_wchar_underflow(basic_streambuf_wchar
*this)
1805 TRACE("(%p)\n", this);
1809 /* ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
1810 /* ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
1811 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
1812 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
1813 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_uflow
, 4)
1814 #define call_basic_streambuf_wchar_uflow(this) CALL_VTBL_FUNC(this, 20, \
1815 unsigned short, (basic_streambuf_wchar*), (this))
1816 unsigned short __thiscall
basic_streambuf_wchar_uflow(basic_streambuf_wchar
*this)
1820 TRACE("(%p)\n", this);
1822 if(call_basic_streambuf_wchar_underflow(this)==WEOF
)
1825 ret
= **this->prpos
;
1831 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WIH@Z */
1832 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_K_J@Z */
1833 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGIH@Z */
1834 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_K_J@Z */
1835 static streamsize
basic_streambuf_wchar__Xsgetn_s(basic_streambuf_wchar
*this, wchar_t *ptr
, MSVCP_size_t size
, streamsize count
)
1837 streamsize copied
, chunk
;
1840 TRACE("(%p %p %lu %ld)\n", this, ptr
, size
, count
);
1842 for(copied
=0; copied
<count
&& size
;) {
1843 chunk
= basic_streambuf_wchar__Gnavail(this);
1844 if(chunk
> count
-copied
)
1845 chunk
= count
-copied
;
1848 memcpy_s(ptr
+copied
, size
, *this->prpos
, chunk
*sizeof(wchar_t));
1849 *this->prpos
+= chunk
;
1850 *this->prsize
-= chunk
;
1852 size
-= chunk
*sizeof(wchar_t);
1853 }else if((c
= call_basic_streambuf_wchar_uflow(this)) != WEOF
) {
1865 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPA_WIH@Z */
1866 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_K_J@Z */
1867 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGIH@Z */
1868 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_K_J@Z */
1869 static streamsize
basic_streambuf_wchar__Sgetn_s(basic_streambuf_wchar
*this, wchar_t *ptr
, MSVCP_size_t size
, streamsize count
)
1871 TRACE("(%p %p %lu %ld)\n", this, ptr
, size
, count
);
1872 return basic_streambuf_wchar__Xsgetn_s(this, ptr
, size
, count
);
1875 /* ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1876 /* ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1877 /* ?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1878 /* ?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1879 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Unlock
, 4)
1880 void __thiscall
basic_streambuf_wchar__Unlock(basic_streambuf_wchar
*this)
1882 TRACE("(%p)\n", this);
1883 mutex_unlock(&this->lock
);
1886 /* ?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1887 /* ?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1888 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1889 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1890 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_eback
, 4)
1891 wchar_t* __thiscall
basic_streambuf_wchar_eback(const basic_streambuf_wchar
*this)
1893 TRACE("(%p)\n", this);
1894 return *this->prbuf
;
1897 /* ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1898 /* ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1899 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1900 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1901 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gptr
, 4)
1902 wchar_t* __thiscall
basic_streambuf_wchar_gptr(const basic_streambuf_wchar
*this)
1904 TRACE("(%p)\n", this);
1905 return *this->prpos
;
1908 /* ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1909 /* ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1910 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1911 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1912 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_egptr
, 4)
1913 wchar_t* __thiscall
basic_streambuf_wchar_egptr(const basic_streambuf_wchar
*this)
1915 TRACE("(%p)\n", this);
1916 return *this->prpos
+*this->prsize
;
1919 /* ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1920 /* ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1921 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1922 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1923 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_epptr
, 4)
1924 wchar_t* __thiscall
basic_streambuf_wchar_epptr(const basic_streambuf_wchar
*this)
1926 TRACE("(%p)\n", this);
1927 return *this->pwpos
+*this->pwsize
;
1930 /* ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z */
1931 /* ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z */
1932 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
1933 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
1934 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gbump
, 8)
1935 void __thiscall
basic_streambuf_wchar_gbump(basic_streambuf_wchar
*this, int off
)
1937 TRACE("(%p %d)\n", this, off
);
1938 *this->prpos
+= off
;
1939 *this->prsize
-= off
;
1942 /* ?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QBE?AVlocale@2@XZ */
1943 /* ?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEBA?AVlocale@2@XZ */
1944 /* ?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QBE?AVlocale@2@XZ */
1945 /* ?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEBA?AVlocale@2@XZ */
1946 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_getloc
, 8)
1947 locale
* __thiscall
basic_streambuf_wchar_getloc(const basic_streambuf_wchar
*this, locale
*ret
)
1949 TRACE("(%p)\n", this);
1950 return locale_copy_ctor(ret
, this->loc
);
1953 /* ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z */
1954 /* ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z */
1955 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEXABVlocale@2@@Z */
1956 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z */
1957 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_imbue
, 8)
1958 #define call_basic_streambuf_wchar_imbue(this, loc) CALL_VTBL_FUNC(this, 48, \
1959 void, (basic_streambuf_wchar*, const locale*), (this, loc))
1960 void __thiscall
basic_streambuf_wchar_imbue(basic_streambuf_wchar
*this, const locale
*loc
)
1962 TRACE("(%p %p)\n", this, loc
);
1965 /* ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
1966 /* ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
1967 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
1968 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
1969 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_overflow
, 8)
1970 #define call_basic_streambuf_wchar_overflow(this, ch) CALL_VTBL_FUNC(this, 4, \
1971 unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
1972 unsigned short __thiscall
basic_streambuf_wchar_overflow(basic_streambuf_wchar
*this, unsigned short ch
)
1974 TRACE("(%p %d)\n", this, ch
);
1978 /* ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
1979 /* ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
1980 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
1981 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
1982 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbackfail
, 8)
1983 #define call_basic_streambuf_wchar_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, \
1984 unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
1985 unsigned short __thiscall
basic_streambuf_wchar_pbackfail(basic_streambuf_wchar
*this, unsigned short ch
)
1987 TRACE("(%p %d)\n", this, ch
);
1991 /* ?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1992 /* ?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1993 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1994 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1995 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbase
, 4)
1996 wchar_t* __thiscall
basic_streambuf_wchar_pbase(const basic_streambuf_wchar
*this)
1998 TRACE("(%p)\n", this);
1999 return *this->pwbuf
;
2002 /* ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z */
2003 /* ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z */
2004 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
2005 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
2006 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbump
, 8)
2007 void __thiscall
basic_streambuf_wchar_pbump(basic_streambuf_wchar
*this, int off
)
2009 TRACE("(%p %d)\n", this, off
);
2010 *this->pwpos
+= off
;
2011 *this->pwsize
-= off
;
2014 /* ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
2015 /* ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
2016 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
2017 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
2018 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pptr
, 4)
2019 wchar_t* __thiscall
basic_streambuf_wchar_pptr(const basic_streambuf_wchar
*this)
2021 TRACE("(%p)\n", this);
2022 return *this->pwpos
;
2025 /* ?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
2026 /* ?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
2027 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
2028 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
2029 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubimbue
, 12)
2030 locale
* __thiscall
basic_streambuf_wchar_pubimbue(basic_streambuf_wchar
*this, locale
*ret
, const locale
*loc
)
2032 TRACE("(%p %p)\n", this, loc
);
2033 memcpy(ret
, this->loc
, sizeof(locale
));
2034 call_basic_streambuf_wchar_imbue(this, loc
);
2035 locale_copy_ctor(this->loc
, loc
);
2039 /* ?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
2040 /* ?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
2041 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
2042 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
2043 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekoff
, 20)
2044 #define call_basic_streambuf_wchar_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 32, \
2045 fpos_int*, (basic_streambuf_wchar*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
2046 fpos_int
* __thiscall
basic_streambuf_wchar_seekoff(basic_streambuf_wchar
*this,
2047 fpos_int
*ret
, streamoff off
, int way
, int mode
)
2049 TRACE("(%p %ld %d %d)\n", this, off
, way
, mode
);
2056 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
2057 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
2058 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
2059 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
2060 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff
, 20)
2061 fpos_int
* __thiscall
basic_streambuf_wchar_pubseekoff(basic_streambuf_wchar
*this,
2062 fpos_int
*ret
, streamoff off
, int way
, int mode
)
2064 TRACE("(%p %ld %d %d)\n", this, off
, way
, mode
);
2065 return call_basic_streambuf_wchar_seekoff(this, ret
, off
, way
, mode
);
2068 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
2069 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
2070 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
2071 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
2072 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff_old
, 20)
2073 fpos_int
* __thiscall
basic_streambuf_wchar_pubseekoff_old(basic_streambuf_wchar
*this,
2074 fpos_int
*ret
, streamoff off
, unsigned int way
, unsigned int mode
)
2076 TRACE("(%p %ld %d %d)\n", this, off
, way
, mode
);
2077 return basic_streambuf_wchar_pubseekoff(this, ret
, off
, way
, mode
);
2080 /* ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2081 /* ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2082 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2083 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2084 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekpos
, 36)
2085 #define call_basic_streambuf_wchar_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 36, \
2086 fpos_int*, (basic_streambuf_wchar*, fpos_int*, fpos_int, int), (this, ret, pos, mode))
2087 fpos_int
* __thiscall
basic_streambuf_wchar_seekpos(basic_streambuf_wchar
*this,
2088 fpos_int
*ret
, fpos_int pos
, int mode
)
2090 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos
), mode
);
2097 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
2098 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
2099 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
2100 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
2101 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekpos
, 36)
2102 fpos_int
* __thiscall
basic_streambuf_wchar_pubseekpos(basic_streambuf_wchar
*this,
2103 fpos_int
*ret
, fpos_int pos
, int mode
)
2105 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos
), mode
);
2106 return call_basic_streambuf_wchar_seekpos(this, ret
, pos
, mode
);
2109 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
2110 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
2111 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
2112 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
2113 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekpos_old
, 36)
2114 fpos_int
* __thiscall
basic_streambuf_wchar_pubseekpos_old(basic_streambuf_wchar
*this,
2115 fpos_int
*ret
, fpos_int pos
, unsigned int mode
)
2117 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos
), mode
);
2118 return basic_streambuf_wchar_pubseekpos(this, ret
, pos
, mode
);
2121 /* ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEPAV12@PA_WH@Z */
2122 /* ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV12@PEA_W_J@Z */
2123 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEPAV12@PAGH@Z */
2124 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAPEAV12@PEAG_J@Z */
2125 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setbuf
, 12)
2126 #define call_basic_streambuf_wchar_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 40, \
2127 basic_streambuf_wchar*, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, buf, count))
2128 basic_streambuf_wchar
* __thiscall
basic_streambuf_wchar_setbuf(basic_streambuf_wchar
*this, wchar_t *buf
, streamsize count
)
2130 TRACE("(%p %p %ld)\n", this, buf
, count
);
2134 /* ?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PA_WH@Z */
2135 /* ?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEA_W_J@Z */
2136 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PAGH@Z */
2137 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEAG_J@Z */
2138 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsetbuf
, 12)
2139 basic_streambuf_wchar
* __thiscall
basic_streambuf_wchar_pubsetbuf(basic_streambuf_wchar
*this, wchar_t *buf
, streamsize count
)
2141 TRACE("(%p %p %ld)\n", this, buf
, count
);
2142 return call_basic_streambuf_wchar_setbuf(this, buf
, count
);
2145 /* ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
2146 /* ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ */
2147 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
2148 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAHXZ */
2149 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sync
, 4)
2150 #define call_basic_streambuf_wchar_sync(this) CALL_VTBL_FUNC(this, 44, \
2151 int, (basic_streambuf_wchar*), (this))
2152 int __thiscall
basic_streambuf_wchar_sync(basic_streambuf_wchar
*this)
2154 TRACE("(%p)\n", this);
2158 /* ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
2159 /* ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAHXZ */
2160 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
2161 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHXZ */
2162 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsync
, 4)
2163 int __thiscall
basic_streambuf_wchar_pubsync(basic_streambuf_wchar
*this)
2165 TRACE("(%p)\n", this);
2166 return call_basic_streambuf_wchar_sync(this);
2169 /* ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WH@Z */
2170 /* ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_J@Z */
2171 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGH@Z */
2172 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_J@Z */
2173 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsgetn
, 12)
2174 #define call_basic_streambuf_wchar_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, \
2175 streamsize, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, ptr, count))
2176 streamsize __thiscall
basic_streambuf_wchar_xsgetn(basic_streambuf_wchar
*this, wchar_t *ptr
, streamsize count
)
2178 TRACE("(%p %p %ld)\n", this, ptr
, count
);
2179 return call_basic_streambuf_wchar_xsgetn(this, ptr
, count
);
2182 /* ?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPA_WH@Z */
2183 /* ?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z */
2184 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGH@Z */
2185 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z */
2186 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetn
, 12)
2187 streamsize __thiscall
basic_streambuf_wchar_sgetn(basic_streambuf_wchar
*this, wchar_t *ptr
, streamsize count
)
2189 TRACE("(%p %p %ld)\n", this, ptr
, count
);
2190 return call_basic_streambuf_wchar_xsgetn(this, ptr
, count
);
2193 /* ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
2194 /* ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JXZ */
2195 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
2196 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JXZ */
2197 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_showmanyc
, 4)
2198 #define call_basic_streambuf_wchar_showmanyc(this) CALL_VTBL_FUNC(this, 12, \
2199 streamsize, (basic_streambuf_wchar*), (this))
2200 streamsize __thiscall
basic_streambuf_wchar_showmanyc(basic_streambuf_wchar
*this)
2202 TRACE("(%p)\n", this);
2206 /* ?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
2207 /* ?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JXZ */
2208 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
2209 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JXZ */
2210 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_in_avail
, 4)
2211 streamsize __thiscall
basic_streambuf_wchar_in_avail(basic_streambuf_wchar
*this)
2215 TRACE("(%p)\n", this);
2217 ret
= basic_streambuf_wchar__Gnavail(this);
2218 return ret
? ret
: call_basic_streambuf_wchar_showmanyc(this);
2221 /* ?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z */
2222 /* ?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z */
2223 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
2224 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z */
2225 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputbackc
, 8)
2226 unsigned short __thiscall
basic_streambuf_wchar_sputbackc(basic_streambuf_wchar
*this, wchar_t ch
)
2228 TRACE("(%p %d)\n", this, ch
);
2229 if(*this->prpos
&& *this->prpos
>*this->prbuf
&& (*this->prpos
)[-1]==ch
) {
2235 return call_basic_streambuf_wchar_pbackfail(this, ch
);
2238 /* ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z */
2239 /* ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z */
2240 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
2241 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHG@Z */
2242 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputc
, 8)
2243 unsigned short __thiscall
basic_streambuf_wchar_sputc(basic_streambuf_wchar
*this, wchar_t ch
)
2245 TRACE("(%p %d)\n", this, ch
);
2246 return basic_streambuf_wchar__Pnavail(this) ?
2247 (*basic_streambuf_wchar__Pninc(this) = ch
) :
2248 call_basic_streambuf_wchar_overflow(this, ch
);
2251 /* ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2252 /* ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2253 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2254 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2255 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sungetc
, 4)
2256 unsigned short __thiscall
basic_streambuf_wchar_sungetc(basic_streambuf_wchar
*this)
2258 TRACE("(%p)\n", this);
2259 if(*this->prpos
&& *this->prpos
>*this->prbuf
) {
2262 return **this->prpos
;
2265 return call_basic_streambuf_wchar_pbackfail(this, WEOF
);
2268 /* ?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
2269 /* ?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
2270 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
2271 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
2272 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_stossc
, 4)
2273 void __thiscall
basic_streambuf_wchar_stossc(basic_streambuf_wchar
*this)
2275 TRACE("(%p)\n", this);
2276 if(basic_streambuf_wchar__Gnavail(this))
2277 basic_streambuf_wchar__Gninc(this);
2279 call_basic_streambuf_wchar_uflow(this);
2282 /* ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2283 /* ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2284 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2285 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2286 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sbumpc
, 4)
2287 unsigned short __thiscall
basic_streambuf_wchar_sbumpc(basic_streambuf_wchar
*this)
2289 TRACE("(%p)\n", this);
2290 return basic_streambuf_wchar__Gnavail(this) ?
2291 *basic_streambuf_wchar__Gninc(this) : call_basic_streambuf_wchar_uflow(this);
2294 /* ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2295 /* ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2296 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2297 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2298 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetc
, 4)
2299 unsigned short __thiscall
basic_streambuf_wchar_sgetc(basic_streambuf_wchar
*this)
2301 TRACE("(%p)\n", this);
2302 return basic_streambuf_wchar__Gnavail(this) ?
2303 *basic_streambuf_wchar_gptr(this) : call_basic_streambuf_wchar_underflow(this);
2306 /* ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2307 /* ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2308 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2309 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2310 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_snextc
, 4)
2311 unsigned short __thiscall
basic_streambuf_wchar_snextc(basic_streambuf_wchar
*this)
2313 TRACE("(%p)\n", this);
2315 if(basic_streambuf_wchar__Gnavail(this) > 1)
2316 return *basic_streambuf_wchar__Gnpreinc(this);
2317 return basic_streambuf_wchar_sbumpc(this)==WEOF
?
2318 WEOF
: basic_streambuf_wchar_sgetc(this);
2321 /* ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPB_WH@Z */
2322 /* ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEB_W_J@Z */
2323 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPBGH@Z */
2324 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEBG_J@Z */
2325 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsputn
, 12)
2326 #define call_basic_streambuf_wchar_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 28, \
2327 streamsize, (basic_streambuf_wchar*, const wchar_t*, streamsize), (this, ptr, count))
2328 streamsize __thiscall
basic_streambuf_wchar_xsputn(basic_streambuf_wchar
*this, const wchar_t *ptr
, streamsize count
)
2330 streamsize copied
, chunk
;
2332 TRACE("(%p %p %ld)\n", this, ptr
, count
);
2334 for(copied
=0; copied
<count
;) {
2335 chunk
= basic_streambuf_wchar__Pnavail(this);
2336 if(chunk
> count
-copied
)
2337 chunk
= count
-copied
;
2340 memcpy(*this->pwpos
, ptr
+copied
, chunk
*sizeof(wchar_t));
2341 *this->pwpos
+= chunk
;
2342 *this->pwsize
-= chunk
;
2344 }else if(call_basic_streambuf_wchar_overflow(this, ptr
[copied
]) != WEOF
) {
2354 /* ?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPB_WH@Z */
2355 /* ?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEB_W_J@Z */
2356 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPBGH@Z */
2357 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEBG_J@Z */
2358 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputn
, 12)
2359 streamsize __thiscall
basic_streambuf_wchar_sputn(basic_streambuf_wchar
*this, const wchar_t *ptr
, streamsize count
)
2361 TRACE("(%p %p %ld)\n", this, ptr
, count
);
2362 return call_basic_streambuf_wchar_xsputn(this, ptr
, count
);
2365 /* ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
2366 /* ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
2367 int basic_filebuf_char__Init__Stinit
= 0;
2369 /* ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
2370 /* ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
2371 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Init
, 12)
2372 void __thiscall
basic_filebuf_char__Init(basic_filebuf_char
*this, FILE *file
, basic_filebuf__Initfl which
)
2374 TRACE("(%p %p %d)\n", this, file
, which
);
2377 this->wrotesome
= FALSE
;
2378 this->state
= basic_filebuf_char__Init__Stinit
;
2379 this->close
= (which
== INITFL_open
);
2382 basic_streambuf_char__Init_empty(&this->base
);
2384 basic_streambuf_char__Init(&this->base
, &file
->_base
, &file
->_ptr
,
2385 &file
->_cnt
, &file
->_base
, &file
->_ptr
, &file
->_cnt
);
2388 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAV?$codecvt@DDH@2@@Z */
2389 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$codecvt@DDH@2@@Z */
2390 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Initcvt
, 8)
2391 void __thiscall
basic_filebuf_char__Initcvt(basic_filebuf_char
*this, codecvt_char
*cvt
)
2393 TRACE("(%p %p)\n", this, cvt
);
2395 if(codecvt_base_always_noconv(&cvt
->base
)) {
2398 basic_streambuf_char__Init_empty(&this->base
);
2403 /* ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ */
2404 /* ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ */
2405 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Endwrite
, 4)
2406 MSVCP_bool __thiscall
basic_filebuf_char__Endwrite(basic_filebuf_char
*this)
2408 TRACE("(%p)\n", this);
2410 if(!this->wrotesome
|| !this->cvt
)
2414 if(call_basic_streambuf_char_overflow(&this->base
, EOF
) == EOF
)
2418 /* TODO: check if we need a dynamic buffer here */
2423 ret
= codecvt_char_unshift(this->cvt
, &this->state
, buf
, buf
+sizeof(buf
), &next
);
2426 this->wrotesome
= FALSE
;
2428 case CODECVT_partial
:
2429 if(!fwrite(buf
, next
-buf
, 1, this->file
))
2434 case CODECVT_noconv
:
2435 if(call_basic_streambuf_char_overflow(&this->base
, EOF
) == EOF
)
2444 /* ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ */
2445 /* ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ */
2446 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_close
, 4)
2447 basic_filebuf_char
* __thiscall
basic_filebuf_char_close(basic_filebuf_char
*this)
2449 basic_filebuf_char
*ret
= this;
2451 TRACE("(%p)\n", this);
2456 /* TODO: handle exceptions */
2457 if(!basic_filebuf_char__Endwrite(this))
2459 if(fclose(this->file
))
2462 basic_filebuf_char__Init(this, NULL
, INITFL_close
);
2466 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
2467 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
2468 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor_file
, 8)
2469 basic_filebuf_char
* __thiscall
basic_filebuf_char_ctor_file(basic_filebuf_char
*this, FILE *file
)
2471 TRACE("(%p %p)\n", this, file
);
2473 basic_streambuf_char_ctor(&this->base
);
2474 this->base
.vtable
= &MSVCP_basic_filebuf_char_vtable
;
2476 basic_filebuf_char__Init(this, file
, INITFL_new
);
2480 /* ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
2481 /* ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
2482 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor
, 4)
2483 basic_filebuf_char
* __thiscall
basic_filebuf_char_ctor(basic_filebuf_char
*this)
2485 return basic_filebuf_char_ctor_file(this, NULL
);
2488 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
2489 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
2490 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor_uninitialized
, 8)
2491 basic_filebuf_char
* __thiscall
basic_filebuf_char_ctor_uninitialized(basic_filebuf_char
*this, int uninitialized
)
2493 TRACE("(%p %d)\n", this, uninitialized
);
2495 basic_streambuf_char_ctor(&this->base
);
2496 this->base
.vtable
= &MSVCP_basic_filebuf_char_vtable
;
2500 /* ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
2501 /* ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
2502 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_dtor
, 4)
2503 void __thiscall
basic_filebuf_char_dtor(basic_filebuf_char
*this)
2505 TRACE("(%p)\n", this);
2508 basic_filebuf_char_close(this);
2509 basic_streambuf_char_dtor(&this->base
);
2512 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_vector_dtor
, 8)
2513 basic_filebuf_char
* __thiscall
basic_filebuf_char_vector_dtor(basic_filebuf_char
*this, unsigned int flags
)
2515 TRACE("(%p %x)\n", this, flags
);
2517 /* we have an array, with the number of elements stored before the first object */
2518 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
2520 for(i
=*ptr
-1; i
>=0; i
--)
2521 basic_filebuf_char_dtor(this+i
);
2522 MSVCRT_operator_delete(ptr
);
2524 basic_filebuf_char_dtor(this);
2526 MSVCRT_operator_delete(this);
2532 /* ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QBE_NXZ */
2533 /* ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
2534 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_is_open
, 4)
2535 MSVCP_bool __thiscall
basic_filebuf_char_is_open(const basic_filebuf_char
*this)
2537 TRACE("(%p)\n", this);
2538 return this->file
!= NULL
;
2541 /* ?_Fiopen@std@@YAPAU_iobuf@@PB_WHH@Z */
2542 /* ?_Fiopen@std@@YAPEAU_iobuf@@PEB_WHH@Z */
2543 static FILE* _Fiopen_wchar(const wchar_t *name
, int mode
, int prot
)
2545 static const wchar_t rW
[] = {'r',0};
2546 static const struct {
2548 const wchar_t str
[4];
2549 const wchar_t str_bin
[4];
2551 {OPENMODE_out
, {'w',0}, {'w','b',0}},
2552 {OPENMODE_out
|OPENMODE_app
, {'a',0}, {'a','b',0}},
2553 {OPENMODE_app
, {'a',0}, {'a','b',0}},
2554 {OPENMODE_out
|OPENMODE_trunc
, {'w',0}, {'w','b',0}},
2555 {OPENMODE_in
, {'r',0}, {'r','b',0}},
2556 {OPENMODE_in
|OPENMODE_out
, {'r','+',0}, {'r','+','b',0}},
2557 {OPENMODE_in
|OPENMODE_out
|OPENMODE_trunc
, {'w','+',0}, {'w','+','b',0}},
2558 {OPENMODE_in
|OPENMODE_out
|OPENMODE_app
, {'a','+',0}, {'a','+','b',0}},
2559 {OPENMODE_in
|OPENMODE_app
, {'a','+',0}, {'a','+','b',0}}
2562 int real_mode
= mode
& ~(OPENMODE_ate
|OPENMODE__Nocreate
|OPENMODE__Noreplace
|OPENMODE_binary
);
2563 unsigned int mode_idx
;
2566 TRACE("(%s %d %d)\n", debugstr_w(name
), mode
, prot
);
2568 for(mode_idx
=0; mode_idx
<sizeof(str_mode
)/sizeof(str_mode
[0]); mode_idx
++)
2569 if(str_mode
[mode_idx
].mode
== real_mode
)
2571 if(mode_idx
== sizeof(str_mode
)/sizeof(str_mode
[0]))
2574 if((mode
& OPENMODE__Nocreate
) && !(f
= _wfopen(name
, rW
)))
2579 if((mode
& OPENMODE__Noreplace
) && (mode
& (OPENMODE_out
|OPENMODE_app
))
2580 && (f
= _wfopen(name
, rW
))) {
2585 /* msvcp60 - msvcp71 are ignoring prot argument */
2586 f
= _wfsopen(name
, (mode
& OPENMODE_binary
) ? str_mode
[mode_idx
].str_bin
2587 : str_mode
[mode_idx
].str
, SH_DENYNO
);
2591 if((mode
& OPENMODE_ate
) && fseek(f
, 0, SEEK_END
)) {
2599 /* ?_Fiopen@std@@YAPAU_iobuf@@PBDHH@Z */
2600 /* ?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z */
2601 FILE* __cdecl
_Fiopen(const char *name
, int mode
, int prot
)
2603 wchar_t nameW
[FILENAME_MAX
];
2605 TRACE("(%s %d %d)\n", name
, mode
, prot
);
2607 if(mbstowcs_s(NULL
, nameW
, FILENAME_MAX
, name
, FILENAME_MAX
-1) != 0)
2609 return _Fiopen_wchar(nameW
, mode
, prot
);
2612 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PB_WHH@Z */
2613 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
2614 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBGHH@Z */
2615 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBGHH@Z */
2616 static basic_filebuf_char
* basic_filebuf_char_open_wchar(basic_filebuf_char
*this, const wchar_t *name
, int mode
, int prot
)
2620 TRACE("(%p %s %d %d)\n", this, debugstr_w(name
), mode
, prot
);
2622 if(basic_filebuf_char_is_open(this))
2625 if(!(f
= _Fiopen_wchar(name
, mode
, prot
)))
2628 basic_filebuf_char__Init(this, f
, INITFL_open
);
2629 basic_filebuf_char__Initcvt(this, codecvt_char_use_facet(this->base
.loc
));
2633 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z */
2634 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z */
2635 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open
, 16)
2636 basic_filebuf_char
* __thiscall
basic_filebuf_char_open(basic_filebuf_char
*this, const char *name
, int mode
, int prot
)
2638 wchar_t nameW
[FILENAME_MAX
];
2640 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
2642 if(mbstowcs_s(NULL
, nameW
, FILENAME_MAX
, name
, FILENAME_MAX
-1) != 0)
2644 return basic_filebuf_char_open_wchar(this, nameW
, mode
, prot
);
2647 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDI@Z */
2648 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDI@Z */
2649 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_mode
, 12)
2650 basic_filebuf_char
* __thiscall
basic_filebuf_char_open_mode(basic_filebuf_char
*this, const char *name
, unsigned int mode
)
2652 return basic_filebuf_char_open(this, name
, mode
, SH_DENYNO
);
2655 /* ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
2656 /* ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
2657 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_overflow
, 8)
2658 int __thiscall
basic_filebuf_char_overflow(basic_filebuf_char
*this, int c
)
2660 char buf
[8], *dyn_buf
;
2661 char ch
= c
, *to_next
;
2662 const char *from_next
;
2666 TRACE("(%p %d)\n", this, c
);
2668 if(!basic_filebuf_char_is_open(this))
2674 return fwrite(&ch
, sizeof(char), 1, this->file
) ? c
: EOF
;
2678 ret
= codecvt_char_out(this->cvt
, &this->state
, from_next
, &ch
+1,
2679 &from_next
, buf
, buf
+sizeof(buf
), &to_next
);
2682 case CODECVT_partial
:
2687 if(!fwrite(buf
, to_next
-buf
, 1, this->file
))
2689 if(ret
== CODECVT_partial
)
2692 case CODECVT_noconv
:
2693 return fwrite(&ch
, sizeof(char), 1, this->file
) ? c
: EOF
;
2701 max_size
= codecvt_base_max_length(&this->cvt
->base
);
2702 dyn_buf
= malloc(max_size
);
2706 ret
= codecvt_char_out(this->cvt
, &this->state
, from_next
, &ch
+1,
2707 &from_next
, dyn_buf
, dyn_buf
+max_size
, &to_next
);
2711 ret
= fwrite(dyn_buf
, to_next
-dyn_buf
, 1, this->file
);
2713 return ret
? c
: EOF
;
2714 case CODECVT_partial
:
2715 ERR("buffer should be big enough to store all output\n");
2723 /* ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
2724 /* ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
2725 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_pbackfail
, 8)
2726 int __thiscall
basic_filebuf_char_pbackfail(basic_filebuf_char
*this, int c
)
2728 TRACE("(%p %d)\n", this, c
);
2730 if(!basic_filebuf_char_is_open(this))
2733 if(basic_streambuf_char_gptr(&this->base
)>basic_streambuf_char_eback(&this->base
)
2734 && (c
==EOF
|| (int)(unsigned char)basic_streambuf_char_gptr(&this->base
)[-1]==c
)) {
2735 basic_streambuf_char__Gndec(&this->base
);
2736 return c
==EOF
? !c
: c
;
2737 }else if(c
!=EOF
&& !this->cvt
) {
2738 return ungetc(c
, this->file
);
2744 /* ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2745 /* ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2746 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_uflow
, 4)
2747 int __thiscall
basic_filebuf_char_uflow(basic_filebuf_char
*this)
2749 char ch
, buf
[128], *to_next
;
2750 const char *buf_next
;
2753 TRACE("(%p)\n", this);
2755 if(!basic_filebuf_char_is_open(this))
2758 if(basic_streambuf_char_gptr(&this->base
) < basic_streambuf_char_egptr(&this->base
))
2759 return (unsigned char)*basic_streambuf_char__Gninc(&this->base
);
2761 c
= fgetc(this->file
);
2762 if(!this->cvt
|| c
==EOF
)
2766 for(i
=0; i
< sizeof(buf
)/sizeof(buf
[0]); i
++) {
2769 switch(codecvt_char_in(this->cvt
, &this->state
, buf_next
,
2770 buf
+i
+1, &buf_next
, &ch
, &ch
+1, &to_next
)) {
2771 case CODECVT_partial
:
2773 if(to_next
== &ch
) {
2774 c
= fgetc(this->file
);
2780 for(i
--; i
>=buf_next
-buf
; i
--)
2781 ungetc(buf
[i
], this->file
);
2783 case CODECVT_noconv
:
2784 return (unsigned char)buf
[0];
2790 FIXME("buffer is too small\n");
2794 /* ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2795 /* ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2796 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_underflow
, 4)
2797 int __thiscall
basic_filebuf_char_underflow(basic_filebuf_char
*this)
2801 TRACE("(%p)\n", this);
2803 if(basic_streambuf_char_gptr(&this->base
) < basic_streambuf_char_egptr(&this->base
))
2804 return (unsigned char)*basic_streambuf_char_gptr(&this->base
);
2806 ret
= call_basic_streambuf_char_uflow(&this->base
);
2808 ret
= call_basic_streambuf_char_pbackfail(&this->base
, ret
);
2812 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
2813 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
2814 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_seekoff
, 20)
2815 fpos_int
* __thiscall
basic_filebuf_char_seekoff(basic_filebuf_char
*this,
2816 fpos_int
*ret
, streamoff off
, int way
, int mode
)
2820 TRACE("(%p %p %ld %d %d)\n", this, ret
, off
, way
, mode
);
2822 if(!basic_filebuf_char_is_open(this) || !basic_filebuf_char__Endwrite(this)
2823 || fseek(this->file
, off
, way
)) {
2830 fgetpos(this->file
, &pos
);
2833 ret
->state
= this->state
;
2837 /* ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2838 /* ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2839 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_seekpos
, 36)
2840 fpos_int
* __thiscall
basic_filebuf_char_seekpos(basic_filebuf_char
*this,
2841 fpos_int
*ret
, fpos_int pos
, int mode
)
2845 TRACE("(%p %p %s %d)\n", this, ret
, debugstr_fpos_int(&pos
), mode
);
2847 if(!basic_filebuf_char_is_open(this) || !basic_filebuf_char__Endwrite(this)
2848 || fseek(this->file
, (LONG
)pos
.pos
, SEEK_SET
)
2849 || (pos
.off
&& fseek(this->file
, pos
.off
, SEEK_CUR
))) {
2856 fgetpos(this->file
, &fpos
);
2859 ret
->state
= this->state
;
2863 /* ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PADH@Z */
2864 /* ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z */
2865 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_setbuf
, 12)
2866 basic_streambuf_char
* __thiscall
basic_filebuf_char_setbuf(basic_filebuf_char
*this, char *buf
, streamsize count
)
2868 TRACE("(%p %p %ld)\n", this, buf
, count
);
2870 if(!basic_filebuf_char_is_open(this))
2873 if(setvbuf(this->file
, buf
, (buf
==NULL
&& count
==0) ? _IONBF
: _IOFBF
, count
))
2876 basic_filebuf_char__Init(this, this->file
, INITFL_open
);
2880 /* ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2881 /* ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2882 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_sync
, 4)
2883 int __thiscall
basic_filebuf_char_sync(basic_filebuf_char
*this)
2885 TRACE("(%p)\n", this);
2887 if(!basic_filebuf_char_is_open(this))
2890 if(call_basic_streambuf_char_overflow(&this->base
, EOF
) == EOF
)
2892 return fflush(this->file
);
2895 /* ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z */
2896 /* ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z */
2897 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_imbue
, 8)
2898 void __thiscall
basic_filebuf_char_imbue(basic_filebuf_char
*this, const locale
*loc
)
2900 TRACE("(%p %p)\n", this, loc
);
2901 basic_filebuf_char__Initcvt(this, codecvt_char_use_facet(loc
));
2904 /* ?_Stinit@?1??_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
2905 /* ?_Stinit@?1??_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
2906 int basic_filebuf_wchar__Init__Stinit
= 0;
2908 /* ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
2909 /* ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
2910 int basic_filebuf_short__Init__Stinit
= 0;
2912 /* ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
2913 /* ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
2914 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Init
, 12)
2915 void __thiscall
basic_filebuf_wchar__Init(basic_filebuf_wchar
*this, FILE *file
, basic_filebuf__Initfl which
)
2917 TRACE("(%p %p %d)\n", this, file
, which
);
2920 this->wrotesome
= FALSE
;
2921 this->state
= basic_filebuf_wchar__Init__Stinit
;
2922 this->close
= (which
== INITFL_open
);
2925 basic_streambuf_wchar__Init_empty(&this->base
);
2928 /* ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
2929 /* ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
2930 DEFINE_THISCALL_WRAPPER(basic_filebuf_short__Init
, 12)
2931 void __thiscall
basic_filebuf_short__Init(basic_filebuf_wchar
*this, FILE *file
, basic_filebuf__Initfl which
)
2933 TRACE("(%p %p %d)\n", this, file
, which
);
2936 this->wrotesome
= FALSE
;
2937 this->state
= basic_filebuf_short__Init__Stinit
;
2938 this->close
= (which
== INITFL_open
);
2941 basic_streambuf_wchar__Init_empty(&this->base
);
2944 /* ?_Initcvt@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAV?$codecvt@_WDH@2@@Z */
2945 /* ?_Initcvt@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$codecvt@_WDH@2@@Z */
2946 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAV?$codecvt@GDH@2@@Z */
2947 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$codecvt@GDH@2@@Z */
2948 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Initcvt
, 8)
2949 void __thiscall
basic_filebuf_wchar__Initcvt(basic_filebuf_wchar
*this, codecvt_wchar
*cvt
)
2951 TRACE("(%p %p)\n", this, cvt
);
2953 if(codecvt_base_always_noconv(&cvt
->base
)) {
2956 basic_streambuf_wchar__Init_empty(&this->base
);
2961 /* ?_Endwrite@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAE_NXZ */
2962 /* ?_Endwrite@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAA_NXZ */
2963 /* ?_Endwrite@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAE_NXZ */
2964 /* ?_Endwrite@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAA_NXZ */
2965 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Endwrite
, 4)
2966 MSVCP_bool __thiscall
basic_filebuf_wchar__Endwrite(basic_filebuf_wchar
*this)
2968 TRACE("(%p)\n", this);
2970 if(!this->wrotesome
|| !this->cvt
)
2973 if(call_basic_streambuf_wchar_overflow(&this->base
, WEOF
) == WEOF
)
2977 /* TODO: check if we need a dynamic buffer here */
2982 ret
= codecvt_wchar_unshift(this->cvt
, &this->state
, buf
, buf
+sizeof(buf
), &next
);
2985 this->wrotesome
= FALSE
;
2987 case CODECVT_partial
:
2988 if(!fwrite(buf
, next
-buf
, 1, this->file
))
2993 case CODECVT_noconv
:
2994 if(call_basic_streambuf_wchar_overflow(&this->base
, WEOF
) == WEOF
)
3003 /* ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@XZ */
3004 /* ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@XZ */
3005 /* ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@XZ */
3006 /* ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@XZ */
3007 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_close
, 4)
3008 basic_filebuf_wchar
* __thiscall
basic_filebuf_wchar_close(basic_filebuf_wchar
*this)
3010 basic_filebuf_wchar
*ret
= this;
3012 TRACE("(%p)\n", this);
3017 /* TODO: handle exceptions */
3018 if(!basic_filebuf_wchar__Endwrite(this))
3020 if(fclose(this->file
))
3023 basic_filebuf_wchar__Init(this, NULL
, INITFL_close
);
3027 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
3028 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
3029 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor_file
, 8)
3030 basic_filebuf_wchar
* __thiscall
basic_filebuf_wchar_ctor_file(basic_filebuf_wchar
*this, FILE *file
)
3032 TRACE("(%p %p)\n", this, file
);
3034 basic_streambuf_wchar_ctor(&this->base
);
3035 this->base
.vtable
= &MSVCP_basic_filebuf_wchar_vtable
;
3037 basic_filebuf_wchar__Init(this, file
, INITFL_new
);
3041 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
3042 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
3043 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor_file
, 8)
3044 basic_filebuf_wchar
* __thiscall
basic_filebuf_short_ctor_file(basic_filebuf_wchar
*this, FILE *file
)
3046 TRACE("(%p %p)\n", this, file
);
3048 basic_streambuf_short_ctor(&this->base
);
3049 this->base
.vtable
= &MSVCP_basic_filebuf_short_vtable
;
3051 basic_filebuf_short__Init(this, file
, INITFL_new
);
3055 /* ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
3056 /* ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
3057 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor
, 4)
3058 basic_filebuf_wchar
* __thiscall
basic_filebuf_wchar_ctor(basic_filebuf_wchar
*this)
3060 return basic_filebuf_wchar_ctor_file(this, NULL
);
3063 /* ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
3064 /* ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
3065 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor
, 4)
3066 basic_filebuf_wchar
* __thiscall
basic_filebuf_short_ctor(basic_filebuf_wchar
*this)
3068 return basic_filebuf_short_ctor_file(this, NULL
);
3071 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@@Z */
3072 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
3073 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor_uninitialized
, 8)
3074 basic_filebuf_wchar
* __thiscall
basic_filebuf_wchar_ctor_uninitialized(basic_filebuf_wchar
*this, int uninitialized
)
3076 TRACE("(%p %d)\n", this, uninitialized
);
3078 basic_streambuf_wchar_ctor(&this->base
);
3079 this->base
.vtable
= &MSVCP_basic_filebuf_wchar_vtable
;
3083 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */
3084 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
3085 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor_uninitialized
, 8)
3086 basic_filebuf_wchar
* __thiscall
basic_filebuf_short_ctor_uninitialized(basic_filebuf_wchar
*this, int uninitialized
)
3088 TRACE("(%p %d)\n", this, uninitialized
);
3090 basic_streambuf_short_ctor(&this->base
);
3091 this->base
.vtable
= &MSVCP_basic_filebuf_short_vtable
;
3095 /* ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
3096 /* ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
3097 /* ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UAE@XZ */
3098 /* ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */
3099 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_dtor
, 4)
3100 void __thiscall
basic_filebuf_wchar_dtor(basic_filebuf_wchar
*this)
3102 TRACE("(%p)\n", this);
3105 basic_filebuf_wchar_close(this);
3106 basic_streambuf_wchar_dtor(&this->base
);
3109 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_vector_dtor
, 8)
3110 basic_filebuf_wchar
* __thiscall
basic_filebuf_wchar_vector_dtor(basic_filebuf_wchar
*this, unsigned int flags
)
3112 TRACE("(%p %x)\n", this, flags
);
3114 /* we have an array, with the number of elements stored before the first object */
3115 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
3117 for(i
=*ptr
-1; i
>=0; i
--)
3118 basic_filebuf_wchar_dtor(this+i
);
3119 MSVCRT_operator_delete(ptr
);
3121 basic_filebuf_wchar_dtor(this);
3123 MSVCRT_operator_delete(this);
3129 /* ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
3130 /* ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
3131 /* ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QBE_NXZ */
3132 /* ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
3133 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_is_open
, 4)
3134 MSVCP_bool __thiscall
basic_filebuf_wchar_is_open(const basic_filebuf_wchar
*this)
3136 TRACE("(%p)\n", this);
3137 return this->file
!= NULL
;
3140 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PB_WHH@Z */
3141 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
3142 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBGHH@Z */
3143 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBGHH@Z */
3144 static basic_filebuf_wchar
* basic_filebuf_wchar_open_wchar(basic_filebuf_wchar
*this, const wchar_t *name
, int mode
, int prot
)
3148 TRACE("(%p %s %d %d)\n", this, debugstr_w(name
), mode
, prot
);
3150 if(basic_filebuf_wchar_is_open(this))
3153 if(!(f
= _Fiopen_wchar(name
, mode
, prot
)))
3156 basic_filebuf_wchar__Init(this, f
, INITFL_open
);
3157 basic_filebuf_wchar__Initcvt(this, codecvt_wchar_use_facet(this->base
.loc
));
3161 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PB_WHH@Z */
3162 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
3163 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBGHH@Z */
3164 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBGHH@Z */
3165 static basic_filebuf_wchar
* basic_filebuf_short_open_wchar(basic_filebuf_wchar
*this, const wchar_t *name
, int mode
, int prot
)
3169 TRACE("(%p %s %d %d)\n", this, debugstr_w(name
), mode
, prot
);
3171 if(basic_filebuf_wchar_is_open(this))
3174 if(!(f
= _Fiopen_wchar(name
, mode
, prot
)))
3177 basic_filebuf_short__Init(this, f
, INITFL_open
);
3178 basic_filebuf_wchar__Initcvt(this, codecvt_short_use_facet(this->base
.loc
));
3182 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDHH@Z */
3183 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDHH@Z */
3184 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open
, 16)
3185 basic_filebuf_wchar
* __thiscall
basic_filebuf_wchar_open(basic_filebuf_wchar
*this, const char *name
, int mode
, int prot
)
3187 wchar_t nameW
[FILENAME_MAX
];
3189 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
3191 if(mbstowcs_s(NULL
, nameW
, FILENAME_MAX
, name
, FILENAME_MAX
-1) != 0)
3193 return basic_filebuf_wchar_open_wchar(this, nameW
, mode
, prot
);
3196 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDHH@Z */
3197 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDHH@Z */
3198 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open
, 16)
3199 basic_filebuf_wchar
* __thiscall
basic_filebuf_short_open(basic_filebuf_wchar
*this, const char *name
, int mode
, int prot
)
3201 wchar_t nameW
[FILENAME_MAX
];
3203 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
3205 if(mbstowcs_s(NULL
, nameW
, FILENAME_MAX
, name
, FILENAME_MAX
-1) != 0)
3207 return basic_filebuf_short_open_wchar(this, nameW
, mode
, prot
);
3210 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDI@Z */
3211 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDI@Z */
3212 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open_mode
, 12)
3213 basic_filebuf_wchar
* __thiscall
basic_filebuf_wchar_open_mode(basic_filebuf_wchar
*this, const char *name
, unsigned int mode
)
3215 return basic_filebuf_wchar_open(this, name
, mode
, SH_DENYNO
);
3218 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDI@Z */
3219 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDI@Z */
3220 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open_mode
, 12)
3221 basic_filebuf_wchar
* __thiscall
basic_filebuf_short_open_mode(basic_filebuf_wchar
*this, const char *name
, unsigned int mode
)
3223 return basic_filebuf_short_open(this, name
, mode
, SH_DENYNO
);
3226 /* ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
3227 /* ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
3228 /* ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
3229 /* ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
3230 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_overflow
, 8)
3231 unsigned short __thiscall
basic_filebuf_wchar_overflow(basic_filebuf_wchar
*this, unsigned short c
)
3233 char buf
[8], *dyn_buf
, *to_next
;
3235 const wchar_t *from_next
;
3240 TRACE("(%p %d)\n", this, c
);
3242 if(!basic_filebuf_wchar_is_open(this))
3248 return fwrite(&ch
, sizeof(wchar_t), 1, this->file
) ? c
: WEOF
;
3252 ret
= codecvt_wchar_out(this->cvt
, &this->state
, from_next
, &ch
+1,
3253 &from_next
, buf
, buf
+sizeof(buf
), &to_next
);
3256 case CODECVT_partial
:
3261 if(!fwrite(buf
, to_next
-buf
, 1, this->file
))
3263 if(ret
== CODECVT_partial
)
3266 case CODECVT_noconv
:
3267 return fwrite(&ch
, sizeof(wchar_t), 1, this->file
) ? c
: WEOF
;
3275 max_size
= codecvt_base_max_length(&this->cvt
->base
);
3276 dyn_buf
= malloc(max_size
);
3280 ret
= codecvt_wchar_out(this->cvt
, &this->state
, from_next
, &ch
+1,
3281 &from_next
, dyn_buf
, dyn_buf
+max_size
, &to_next
);
3285 ret
= fwrite(dyn_buf
, to_next
-dyn_buf
, 1, this->file
);
3287 return ret
? c
: WEOF
;
3288 case CODECVT_partial
:
3289 ERR("buffer should be big enough to store all output\n");
3297 /* ?pbackfail@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
3298 /* ?pbackfail@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
3299 /* ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
3300 /* ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
3301 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_pbackfail
, 8)
3302 unsigned short __thiscall
basic_filebuf_wchar_pbackfail(basic_filebuf_wchar
*this, unsigned short c
)
3304 TRACE("(%p %d)\n", this, c
);
3306 if(!basic_filebuf_wchar_is_open(this))
3309 if(basic_streambuf_wchar_gptr(&this->base
)>basic_streambuf_wchar_eback(&this->base
)
3310 && (c
==WEOF
|| basic_streambuf_wchar_gptr(&this->base
)[-1]==c
)) {
3311 basic_streambuf_wchar__Gndec(&this->base
);
3312 return c
==WEOF
? !c
: c
;
3313 }else if(c
!=WEOF
&& !this->cvt
) {
3314 return ungetwc(c
, this->file
);
3315 }else if(c
!=WEOF
&& basic_streambuf_wchar_gptr(&this->base
)!=&this->putback
) {
3317 basic_streambuf_wchar_setg(&this->base
, &this->putback
, &this->putback
, &this->putback
+1);
3324 /* ?uflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
3325 /* ?uflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
3326 /* ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
3327 /* ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
3328 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_uflow
, 4)
3329 unsigned short __thiscall
basic_filebuf_wchar_uflow(basic_filebuf_wchar
*this)
3331 wchar_t ch
, *to_next
;
3333 const char *buf_next
;
3336 TRACE("(%p)\n", this);
3338 if(!basic_filebuf_wchar_is_open(this))
3341 if(basic_streambuf_wchar_gptr(&this->base
) < basic_streambuf_wchar_egptr(&this->base
))
3342 return *basic_streambuf_wchar__Gninc(&this->base
);
3345 return fgetwc(this->file
);
3348 for(i
=0; i
< sizeof(buf
)/sizeof(buf
[0]); i
++) {
3349 if((c
= fgetc(this->file
)) == EOF
)
3353 switch(codecvt_wchar_in(this->cvt
, &this->state
, buf_next
,
3354 buf
+i
+1, &buf_next
, &ch
, &ch
+1, &to_next
)) {
3355 case CODECVT_partial
:
3360 for(i
--; i
>=buf_next
-buf
; i
--)
3361 ungetc(buf
[i
], this->file
);
3363 case CODECVT_noconv
:
3364 if(i
+1 < sizeof(wchar_t))
3367 memcpy(&ch
, buf
, sizeof(wchar_t));
3374 FIXME("buffer is too small\n");
3378 /* ?underflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
3379 /* ?underflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
3380 /* ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
3381 /* ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
3382 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_underflow
, 4)
3383 unsigned short __thiscall
basic_filebuf_wchar_underflow(basic_filebuf_wchar
*this)
3387 TRACE("(%p)\n", this);
3389 if(basic_streambuf_wchar_gptr(&this->base
) < basic_streambuf_wchar_egptr(&this->base
))
3390 return *basic_streambuf_wchar_gptr(&this->base
);
3392 ret
= call_basic_streambuf_wchar_uflow(&this->base
);
3394 ret
= call_basic_streambuf_wchar_pbackfail(&this->base
, ret
);
3398 /* ?seekoff@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
3399 /* ?seekoff@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
3400 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
3401 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
3402 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_seekoff
, 20)
3403 fpos_int
* __thiscall
basic_filebuf_wchar_seekoff(basic_filebuf_wchar
*this,
3404 fpos_int
*ret
, streamoff off
, int way
, int mode
)
3408 TRACE("(%p %p %ld %d %d)\n", this, ret
, off
, way
, mode
);
3410 if(basic_streambuf_wchar_gptr(&this->base
) == &this->putback
) {
3411 if(way
== SEEKDIR_cur
)
3412 off
-= sizeof(wchar_t);
3414 basic_streambuf_wchar_setg(&this->base
, &this->putback
, &this->putback
+1, &this->putback
+1);
3417 if(!basic_filebuf_wchar_is_open(this) || !basic_filebuf_wchar__Endwrite(this)
3418 || fseek(this->file
, off
, way
)) {
3425 fgetpos(this->file
, &pos
);
3428 ret
->state
= this->state
;
3432 /* ?seekpos@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3433 /* ?seekpos@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3434 /* ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3435 /* ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3436 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_seekpos
, 36)
3437 fpos_int
* __thiscall
basic_filebuf_wchar_seekpos(basic_filebuf_wchar
*this,
3438 fpos_int
*ret
, fpos_int pos
, int mode
)
3442 TRACE("(%p %p %s %d)\n", this, ret
, debugstr_fpos_int(&pos
), mode
);
3444 if(!basic_filebuf_wchar_is_open(this) || !basic_filebuf_wchar__Endwrite(this)
3445 || fseek(this->file
, (LONG
)pos
.pos
, SEEK_SET
)
3446 || (pos
.off
&& fseek(this->file
, pos
.off
, SEEK_CUR
))) {
3453 if(basic_streambuf_wchar_gptr(&this->base
) == &this->putback
)
3454 basic_streambuf_wchar_setg(&this->base
, &this->putback
, &this->putback
+1, &this->putback
+1);
3456 fgetpos(this->file
, &fpos
);
3459 ret
->state
= this->state
;
3463 /* ?setbuf@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PA_WH@Z */
3464 /* ?setbuf@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEA_W_J@Z */
3465 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_setbuf
, 12)
3466 basic_streambuf_wchar
* __thiscall
basic_filebuf_wchar_setbuf(basic_filebuf_wchar
*this, wchar_t *buf
, streamsize count
)
3468 TRACE("(%p %p %ld)\n", this, buf
, count
);
3470 if(!basic_filebuf_wchar_is_open(this))
3473 if(setvbuf(this->file
, (char*)buf
, (buf
==NULL
&& count
==0) ? _IONBF
: _IOFBF
, count
*sizeof(wchar_t)))
3476 basic_filebuf_wchar__Init(this, this->file
, INITFL_open
);
3480 /* ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PAGH@Z */
3481 /* ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAG_J@Z */
3482 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_setbuf
, 12)
3483 basic_streambuf_wchar
* __thiscall
basic_filebuf_short_setbuf(basic_filebuf_wchar
*this, wchar_t *buf
, streamsize count
)
3485 TRACE("(%p %p %ld)\n", this, buf
, count
);
3487 if(!basic_filebuf_wchar_is_open(this))
3490 if(setvbuf(this->file
, (char*)buf
, (buf
==NULL
&& count
==0) ? _IONBF
: _IOFBF
, count
*sizeof(wchar_t)))
3493 basic_filebuf_short__Init(this, this->file
, INITFL_open
);
3497 /* ?sync@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
3498 /* ?sync@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ */
3499 /* ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
3500 /* ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAHXZ */
3501 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_sync
, 4)
3502 int __thiscall
basic_filebuf_wchar_sync(basic_filebuf_wchar
*this)
3504 TRACE("(%p)\n", this);
3506 if(!basic_filebuf_wchar_is_open(this))
3509 if(call_basic_streambuf_wchar_overflow(&this->base
, WEOF
) == WEOF
)
3511 return fflush(this->file
);
3514 /* ?imbue@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z */
3515 /* ?imbue@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z */
3516 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_imbue
, 8)
3517 void __thiscall
basic_filebuf_wchar_imbue(basic_filebuf_wchar
*this, const locale
*loc
)
3519 TRACE("(%p %p)\n", this, loc
);
3520 basic_filebuf_wchar__Initcvt(this, codecvt_wchar_use_facet(loc
));
3523 /* ?imbue@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEXABVlocale@2@@Z */
3524 /* ?imbue@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z */
3525 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_imbue
, 8)
3526 void __thiscall
basic_filebuf_short_imbue(basic_filebuf_wchar
*this, const locale
*loc
)
3528 TRACE("(%p %p)\n", this, loc
);
3529 basic_filebuf_wchar__Initcvt(this, codecvt_short_use_facet(loc
));
3532 /* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEHH@Z */
3533 /* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAHH@Z */
3534 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Getstate
, 8)
3535 int __thiscall
basic_stringbuf_char__Getstate(basic_stringbuf_char
*this, IOSB_openmode mode
)
3539 if(!(mode
& OPENMODE_in
))
3540 state
|= STRINGBUF_no_read
;
3542 if(!(mode
& OPENMODE_out
))
3543 state
|= STRINGBUF_no_write
;
3545 if(mode
& OPENMODE_ate
)
3546 state
|= STRINGBUF_at_end
;
3548 if(mode
& OPENMODE_app
)
3549 state
|= STRINGBUF_append
;
3554 /* ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXPBDIH@Z */
3555 /* ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAXPEBD_KH@Z */
3556 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Init
, 16)
3557 void __thiscall
basic_stringbuf_char__Init(basic_stringbuf_char
*this, const char *str
, MSVCP_size_t count
, int state
)
3559 TRACE("(%p, %p, %ld, %d)\n", this, str
, count
, state
);
3561 basic_streambuf_char__Init_empty(&this->base
);
3563 this->state
= state
;
3564 this->seekhigh
= NULL
;
3567 char *buf
= MSVCRT_operator_new(count
);
3569 ERR("Out of memory\n");
3570 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
3573 memcpy(buf
, str
, count
);
3574 this->seekhigh
= buf
+ count
;
3576 this->state
|= STRINGBUF_allocated
;
3578 if(!(state
& STRINGBUF_no_read
))
3579 basic_streambuf_char_setg(&this->base
, buf
, buf
, buf
+ count
);
3581 if(!(state
& STRINGBUF_no_write
)) {
3582 basic_streambuf_char_setp_next(&this->base
, buf
, (state
& STRINGBUF_at_end
) ? buf
+ count
: buf
, buf
+ count
);
3584 if(!basic_streambuf_char_gptr(&this->base
))
3585 basic_streambuf_char_setg(&this->base
, buf
, 0, buf
);
3590 /* ??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 */
3591 /* ??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 */
3592 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor_str
, 12)
3593 basic_stringbuf_char
* __thiscall
basic_stringbuf_char_ctor_str(basic_stringbuf_char
*this,
3594 const basic_string_char
*str
, IOSB_openmode mode
)
3596 TRACE("(%p %p %d)\n", this, str
, mode
);
3598 basic_streambuf_char_ctor(&this->base
);
3599 this->base
.vtable
= &MSVCP_basic_stringbuf_char_vtable
;
3601 basic_stringbuf_char__Init(this, MSVCP_basic_string_char_c_str(str
),
3602 str
->size
, basic_stringbuf_char__Getstate(this, mode
));
3606 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
3607 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
3608 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor_mode
, 8)
3609 basic_stringbuf_char
* __thiscall
basic_stringbuf_char_ctor_mode(
3610 basic_stringbuf_char
*this, IOSB_openmode mode
)
3612 TRACE("(%p %d)\n", this, mode
);
3614 basic_streambuf_char_ctor(&this->base
);
3615 this->base
.vtable
= &MSVCP_basic_stringbuf_char_vtable
;
3617 basic_stringbuf_char__Init(this, NULL
, 0, basic_stringbuf_char__Getstate(this, mode
));
3621 /* ??_F?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
3622 /* ??_F?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
3623 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor
, 4)
3624 basic_stringbuf_char
* __thiscall
basic_stringbuf_char_ctor(basic_stringbuf_char
*this)
3626 return basic_stringbuf_char_ctor_mode(this, OPENMODE_in
|OPENMODE_out
);
3629 /* ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXXZ */
3630 /* ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAXXZ */
3631 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Tidy
, 4)
3632 void __thiscall
basic_stringbuf_char__Tidy(basic_stringbuf_char
*this)
3634 TRACE("(%p)\n", this);
3636 if(this->state
& STRINGBUF_allocated
) {
3637 MSVCRT_operator_delete(basic_streambuf_char_eback(&this->base
));
3638 this->seekhigh
= NULL
;
3639 this->state
&= ~STRINGBUF_allocated
;
3642 basic_streambuf_char__Init_empty(&this->base
);
3645 /* ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
3646 /* ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
3647 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_dtor
, 4)
3648 void __thiscall
basic_stringbuf_char_dtor(basic_stringbuf_char
*this)
3650 TRACE("(%p)\n", this);
3652 basic_stringbuf_char__Tidy(this);
3653 basic_streambuf_char_dtor(&this->base
);
3656 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_vector_dtor
, 8)
3657 basic_stringbuf_char
* __thiscall
basic_stringbuf_char_vector_dtor(basic_stringbuf_char
*this, unsigned int flags
)
3659 TRACE("(%p %x)\n", this, flags
);
3662 /* we have an array, with the number of elements stored before the first object */
3663 INT_PTR i
, *ptr
= (INT_PTR
*) this - 1;
3665 for (i
= *ptr
- 1; i
>= 0; i
--)
3666 basic_stringbuf_char_dtor(this+i
);
3668 MSVCRT_operator_delete(ptr
);
3670 basic_stringbuf_char_dtor(this);
3673 MSVCRT_operator_delete(this);
3679 /* ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z */
3680 /* ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHH@Z */
3681 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_overflow
, 8)
3682 int __thiscall
basic_stringbuf_char_overflow(basic_stringbuf_char
*this, int meta
)
3684 MSVCP_size_t oldsize
, size
;
3687 TRACE("(%p %x)\n", this, meta
);
3691 if(this->state
& STRINGBUF_no_write
)
3694 ptr
= basic_streambuf_char_pptr(&this->base
);
3695 if((this->state
&STRINGBUF_append
) && ptr
<this->seekhigh
)
3696 basic_streambuf_char_setp_next(&this->base
, basic_streambuf_char_pbase(&this->base
),
3697 this->seekhigh
, basic_streambuf_char_epptr(&this->base
));
3699 if(ptr
&& ptr
<basic_streambuf_char_epptr(&this->base
))
3700 return (*basic_streambuf_char__Pninc(&this->base
) = meta
);
3702 oldsize
= (ptr
? basic_streambuf_char_epptr(&this->base
)-basic_streambuf_char_eback(&this->base
): 0);
3705 buf
= MSVCRT_operator_new(size
);
3707 ERR("Out of memory\n");
3708 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
3712 this->seekhigh
= buf
;
3713 basic_streambuf_char_setp(&this->base
, buf
, buf
+size
);
3714 if(this->state
& STRINGBUF_no_read
)
3715 basic_streambuf_char_setg(&this->base
, buf
, NULL
, buf
);
3717 basic_streambuf_char_setg(&this->base
, buf
, buf
, buf
+1);
3719 this->state
|= STRINGBUF_allocated
;
3721 ptr
= basic_streambuf_char_eback(&this->base
);
3722 memcpy(buf
, ptr
, oldsize
);
3724 this->seekhigh
= buf
+(this->seekhigh
-ptr
);
3725 basic_streambuf_char_setp_next(&this->base
, buf
,
3726 buf
+(basic_streambuf_char_pptr(&this->base
)-ptr
), buf
+size
);
3727 if(this->state
& STRINGBUF_no_read
)
3728 basic_streambuf_char_setg(&this->base
, buf
, NULL
, buf
);
3730 basic_streambuf_char_setg(&this->base
, buf
,
3731 buf
+(basic_streambuf_char_gptr(&this->base
)-ptr
),
3732 basic_streambuf_char_pptr(&this->base
)+1);
3734 MSVCRT_operator_delete(ptr
);
3737 return (*basic_streambuf_char__Pninc(&this->base
) = meta
);
3740 /* ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z */
3741 /* ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHH@Z */
3742 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_pbackfail
, 8)
3743 int __thiscall
basic_stringbuf_char_pbackfail(basic_stringbuf_char
*this, int c
)
3747 TRACE("(%p %x)\n", this, c
);
3749 cur
= basic_streambuf_char_gptr(&this->base
);
3750 if(!cur
|| cur
==basic_streambuf_char_eback(&this->base
)
3751 || (c
!=EOF
&& c
!=cur
[-1] && this->state
&STRINGBUF_no_write
))
3756 basic_streambuf_char_gbump(&this->base
, -1);
3757 return c
==EOF
? !EOF
: c
;
3760 /* ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHXZ */
3761 /* ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHXZ */
3762 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_underflow
, 4)
3763 int __thiscall
basic_stringbuf_char_underflow(basic_stringbuf_char
*this)
3767 TRACE("(%p)\n", this);
3769 cur
= basic_streambuf_char_gptr(&this->base
);
3770 if(!cur
|| this->state
&STRINGBUF_no_read
)
3773 ptr
= basic_streambuf_char_pptr(&this->base
);
3774 if(this->seekhigh
< ptr
)
3775 this->seekhigh
= ptr
;
3777 ptr
= basic_streambuf_char_egptr(&this->base
);
3778 if(this->seekhigh
> ptr
)
3779 basic_streambuf_char_setg(&this->base
, basic_streambuf_char_eback(&this->base
), cur
, this->seekhigh
);
3781 if(cur
< this->seekhigh
)
3782 return (unsigned char)*cur
;
3786 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
3787 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
3788 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekoff
, 20)
3789 fpos_int
* __thiscall
basic_stringbuf_char_seekoff(basic_stringbuf_char
*this,
3790 fpos_int
*ret
, streamoff off
, int way
, int mode
)
3792 char *beg
, *cur_r
, *cur_w
;
3794 TRACE("(%p %p %ld %d %d)\n", this, ret
, off
, way
, mode
);
3796 cur_w
= basic_streambuf_char_pptr(&this->base
);
3797 if(cur_w
> this->seekhigh
)
3798 this->seekhigh
= cur_w
;
3804 beg
= basic_streambuf_char_eback(&this->base
);
3805 cur_r
= basic_streambuf_char_gptr(&this->base
);
3806 if((mode
& OPENMODE_in
) && cur_r
) {
3807 if(way
==SEEKDIR_cur
&& !(mode
& OPENMODE_out
))
3809 else if(way
== SEEKDIR_end
)
3810 off
+= this->seekhigh
-beg
;
3811 else if(way
!= SEEKDIR_beg
)
3814 if(off
<0 || off
>this->seekhigh
-beg
) {
3817 basic_streambuf_char_gbump(&this->base
, beg
-cur_r
+off
);
3818 if((mode
& OPENMODE_out
) && cur_w
) {
3819 basic_streambuf_char_setp_next(&this->base
, beg
,
3820 basic_streambuf_char_gptr(&this->base
),
3821 basic_streambuf_char_epptr(&this->base
));
3824 }else if((mode
& OPENMODE_out
) && cur_w
) {
3825 if(way
== SEEKDIR_cur
)
3827 else if(way
== SEEKDIR_end
)
3828 off
+= this->seekhigh
-beg
;
3829 else if(way
!= SEEKDIR_beg
)
3832 if(off
<0 || off
>this->seekhigh
-beg
)
3835 basic_streambuf_char_pbump(&this->base
, beg
-cur_w
+off
);
3844 /* ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3845 /* ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3846 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekpos
, 36)
3847 fpos_int
* __thiscall
basic_stringbuf_char_seekpos(basic_stringbuf_char
*this,
3848 fpos_int
*ret
, fpos_int pos
, int mode
)
3850 TRACE("(%p %p %s %d)\n", this, ret
, debugstr_fpos_int(&pos
), mode
);
3852 if(pos
.off
==-1 && pos
.pos
==0 && pos
.state
==0) {
3857 return basic_stringbuf_char_seekoff(this, ret
, pos
.off
, SEEKDIR_beg
, mode
);
3860 /* ?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 */
3861 /* ?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 */
3862 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_str_set
, 8)
3863 void __thiscall
basic_stringbuf_char_str_set(basic_stringbuf_char
*this, const basic_string_char
*str
)
3865 TRACE("(%p %p)\n", this, str
);
3867 basic_stringbuf_char__Tidy(this);
3868 basic_stringbuf_char__Init(this, MSVCP_basic_string_char_c_str(str
), str
->size
, this->state
);
3871 /* ?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 */
3872 /* ?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 */
3873 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_str_get
, 8)
3874 basic_string_char
* __thiscall
basic_stringbuf_char_str_get(const basic_stringbuf_char
*this, basic_string_char
*ret
)
3878 TRACE("(%p)\n", this);
3880 if(!(this->state
& STRINGBUF_no_write
) && basic_streambuf_char_pptr(&this->base
)) {
3883 ptr
= basic_streambuf_char_pbase(&this->base
);
3884 pptr
= basic_streambuf_char_pptr(&this->base
);
3886 return MSVCP_basic_string_char_ctor_cstr_len(ret
, ptr
, (this->seekhigh
< pptr
? pptr
: this->seekhigh
) - ptr
);
3889 if(!(this->state
& STRINGBUF_no_read
) && basic_streambuf_char_gptr(&this->base
)) {
3890 ptr
= basic_streambuf_char_eback(&this->base
);
3891 return MSVCP_basic_string_char_ctor_cstr_len(ret
, ptr
, basic_streambuf_char_egptr(&this->base
) - ptr
);
3894 return MSVCP_basic_string_char_ctor(ret
);
3897 /* ?_Getstate@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AAEHH@Z */
3898 /* ?_Getstate@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AEAAHH@Z */
3899 /* ?_Getstate@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AAEHH@Z */
3900 /* ?_Getstate@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AEAAHH@Z */
3901 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Getstate
, 8)
3902 int __thiscall
basic_stringbuf_wchar__Getstate(basic_stringbuf_wchar
*this, IOSB_openmode mode
)
3906 if(!(mode
& OPENMODE_in
))
3907 state
|= STRINGBUF_no_read
;
3909 if(!(mode
& OPENMODE_out
))
3910 state
|= STRINGBUF_no_write
;
3912 if(mode
& OPENMODE_ate
)
3913 state
|= STRINGBUF_at_end
;
3915 if(mode
& OPENMODE_app
)
3916 state
|= STRINGBUF_append
;
3921 /* ?_Init@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXPB_WIH@Z */
3922 /* ?_Init@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAXPEB_W_KH@Z */
3923 /* ?_Init@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXPBGIH@Z */
3924 /* ?_Init@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAXPEBG_KH@Z */
3925 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Init
, 16)
3926 void __thiscall
basic_stringbuf_wchar__Init(basic_stringbuf_wchar
*this, const wchar_t *str
, MSVCP_size_t count
, int state
)
3928 TRACE("(%p, %p, %lu, %d)\n", this, str
, count
, state
);
3930 basic_streambuf_wchar__Init_empty(&this->base
);
3932 this->state
= state
;
3933 this->seekhigh
= NULL
;
3936 wchar_t *buf
= MSVCRT_operator_new(count
*sizeof(wchar_t));
3938 ERR("Out of memory\n");
3939 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
3942 memcpy(buf
, str
, count
*sizeof(wchar_t));
3943 this->seekhigh
= buf
+ count
;
3945 this->state
|= STRINGBUF_allocated
;
3947 if(!(state
& STRINGBUF_no_read
))
3948 basic_streambuf_wchar_setg(&this->base
, buf
, buf
, buf
+ count
);
3950 if(!(state
& STRINGBUF_no_write
)) {
3951 basic_streambuf_wchar_setp_next(&this->base
, buf
, (state
& STRINGBUF_at_end
) ? buf
+ count
: buf
, buf
+ count
);
3953 if(!basic_streambuf_wchar_gptr(&this->base
))
3954 basic_streambuf_wchar_setg(&this->base
, buf
, 0, buf
);
3959 /* ??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 */
3960 /* ??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 */
3961 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor_str
, 12)
3962 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_wchar_ctor_str(basic_stringbuf_wchar
*this,
3963 const basic_string_wchar
*str
, IOSB_openmode mode
)
3965 TRACE("(%p %p %d)\n", this, str
, mode
);
3967 basic_streambuf_wchar_ctor(&this->base
);
3968 this->base
.vtable
= &MSVCP_basic_stringbuf_wchar_vtable
;
3970 basic_stringbuf_wchar__Init(this, MSVCP_basic_string_wchar_c_str(str
),
3971 str
->size
, basic_stringbuf_wchar__Getstate(this, mode
));
3975 /* ??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 */
3976 /* ??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 */
3977 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor_str
, 12)
3978 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_short_ctor_str(basic_stringbuf_wchar
*this,
3979 const basic_string_wchar
*str
, IOSB_openmode mode
)
3981 basic_stringbuf_wchar_ctor_str(this, str
, mode
);
3982 this->base
.vtable
= &MSVCP_basic_stringbuf_short_vtable
;
3986 /* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
3987 /* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
3988 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor_mode
, 8)
3989 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_wchar_ctor_mode(
3990 basic_stringbuf_wchar
*this, IOSB_openmode mode
)
3992 TRACE("(%p %d)\n", this, mode
);
3994 basic_streambuf_wchar_ctor(&this->base
);
3995 this->base
.vtable
= &MSVCP_basic_stringbuf_wchar_vtable
;
3997 basic_stringbuf_wchar__Init(this, NULL
, 0, basic_stringbuf_wchar__Getstate(this, mode
));
4001 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
4002 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
4003 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor_mode
, 8)
4004 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_short_ctor_mode(
4005 basic_stringbuf_wchar
*this, IOSB_openmode mode
)
4007 basic_stringbuf_wchar_ctor_mode(this, mode
);
4008 this->base
.vtable
= &MSVCP_basic_stringbuf_short_vtable
;
4012 /* ??_F?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
4013 /* ??_F?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
4014 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor
, 4)
4015 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_wchar_ctor(basic_stringbuf_wchar
*this)
4017 return basic_stringbuf_wchar_ctor_mode(this, OPENMODE_in
|OPENMODE_out
);
4020 /* ??_F?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
4021 /* ??_F?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
4022 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor
, 4)
4023 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_short_ctor(basic_stringbuf_wchar
*this)
4025 return basic_stringbuf_short_ctor_mode(this, OPENMODE_in
|OPENMODE_out
);
4028 /* ?_Tidy@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXXZ */
4029 /* ?_Tidy@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAXXZ */
4030 /* ?_Tidy@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXXZ */
4031 /* ?_Tidy@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAXXZ */
4032 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Tidy
, 4)
4033 void __thiscall
basic_stringbuf_wchar__Tidy(basic_stringbuf_wchar
*this)
4035 TRACE("(%p)\n", this);
4037 if(this->state
& STRINGBUF_allocated
) {
4038 MSVCRT_operator_delete(basic_streambuf_wchar_eback(&this->base
));
4039 this->seekhigh
= NULL
;
4040 this->state
&= ~STRINGBUF_allocated
;
4043 basic_streambuf_wchar__Init_empty(&this->base
);
4046 /* ??1?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
4047 /* ??1?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
4048 /* ??1?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
4049 /* ??1?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
4050 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_dtor
, 4)
4051 void __thiscall
basic_stringbuf_wchar_dtor(basic_stringbuf_wchar
*this)
4053 TRACE("(%p)\n", this);
4055 basic_stringbuf_wchar__Tidy(this);
4056 basic_streambuf_wchar_dtor(&this->base
);
4059 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_vector_dtor
, 8)
4060 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_wchar_vector_dtor(basic_stringbuf_wchar
*this, unsigned int flags
)
4062 TRACE("(%p %x)\n", this, flags
);
4065 /* we have an array, with the number of elements stored before the first object */
4066 INT_PTR i
, *ptr
= (INT_PTR
*) this - 1;
4068 for (i
= *ptr
- 1; i
>= 0; i
--)
4069 basic_stringbuf_wchar_dtor(this+i
);
4071 MSVCRT_operator_delete(ptr
);
4073 basic_stringbuf_wchar_dtor(this);
4076 MSVCRT_operator_delete(this);
4082 /* ?overflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGG@Z */
4083 /* ?overflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGG@Z */
4084 /* ?overflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGG@Z */
4085 /* ?overflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGG@Z */
4086 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_overflow
, 8)
4087 unsigned short __thiscall
basic_stringbuf_wchar_overflow(basic_stringbuf_wchar
*this, unsigned short meta
)
4089 MSVCP_size_t oldsize
, size
;
4092 TRACE("(%p %x)\n", this, meta
);
4096 if(this->state
& STRINGBUF_no_write
)
4099 ptr
= basic_streambuf_wchar_pptr(&this->base
);
4100 if((this->state
&STRINGBUF_append
) && ptr
<this->seekhigh
)
4101 basic_streambuf_wchar_setp_next(&this->base
, basic_streambuf_wchar_pbase(&this->base
),
4102 this->seekhigh
, basic_streambuf_wchar_epptr(&this->base
));
4104 if(ptr
&& ptr
<basic_streambuf_wchar_epptr(&this->base
))
4105 return (*basic_streambuf_wchar__Pninc(&this->base
) = meta
);
4107 oldsize
= (ptr
? basic_streambuf_wchar_epptr(&this->base
)-basic_streambuf_wchar_eback(&this->base
): 0);
4110 buf
= MSVCRT_operator_new(size
*sizeof(wchar_t));
4112 ERR("Out of memory\n");
4113 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
4117 this->seekhigh
= buf
;
4118 basic_streambuf_wchar_setp(&this->base
, buf
, buf
+size
);
4119 if(this->state
& STRINGBUF_no_read
)
4120 basic_streambuf_wchar_setg(&this->base
, buf
, NULL
, buf
);
4122 basic_streambuf_wchar_setg(&this->base
, buf
, buf
, buf
+1);
4124 this->state
|= STRINGBUF_allocated
;
4126 ptr
= basic_streambuf_wchar_eback(&this->base
);
4127 memcpy(buf
, ptr
, oldsize
*sizeof(wchar_t));
4129 this->seekhigh
= buf
+(this->seekhigh
-ptr
);
4130 basic_streambuf_wchar_setp_next(&this->base
, buf
,
4131 buf
+(basic_streambuf_wchar_pptr(&this->base
)-ptr
), buf
+size
);
4132 if(this->state
& STRINGBUF_no_read
)
4133 basic_streambuf_wchar_setg(&this->base
, buf
, NULL
, buf
);
4135 basic_streambuf_wchar_setg(&this->base
, buf
,
4136 buf
+(basic_streambuf_wchar_gptr(&this->base
)-ptr
),
4137 basic_streambuf_wchar_pptr(&this->base
)+1);
4139 MSVCRT_operator_delete(ptr
);
4142 return (*basic_streambuf_wchar__Pninc(&this->base
) = meta
);
4145 /* ?pbackfail@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGG@Z */
4146 /* ?pbackfail@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGG@Z */
4147 /* ?pbackfail@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGG@Z */
4148 /* ?pbackfail@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGG@Z */
4149 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_pbackfail
, 8)
4150 unsigned short __thiscall
basic_stringbuf_wchar_pbackfail(basic_stringbuf_wchar
*this, unsigned short c
)
4154 TRACE("(%p %x)\n", this, c
);
4156 cur
= basic_streambuf_wchar_gptr(&this->base
);
4157 if(!cur
|| cur
==basic_streambuf_wchar_eback(&this->base
)
4158 || (c
!=WEOF
&& c
!=cur
[-1] && this->state
&STRINGBUF_no_write
))
4163 basic_streambuf_wchar_gbump(&this->base
, -1);
4164 return c
==WEOF
? !WEOF
: c
;
4167 /* ?underflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGXZ */
4168 /* ?underflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGXZ */
4169 /* ?underflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGXZ */
4170 /* ?underflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGXZ */
4171 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_underflow
, 4)
4172 unsigned short __thiscall
basic_stringbuf_wchar_underflow(basic_stringbuf_wchar
*this)
4176 TRACE("(%p)\n", this);
4178 cur
= basic_streambuf_wchar_gptr(&this->base
);
4179 if(!cur
|| this->state
&STRINGBUF_no_read
)
4182 ptr
= basic_streambuf_wchar_pptr(&this->base
);
4183 if(this->seekhigh
< ptr
)
4184 this->seekhigh
= ptr
;
4186 ptr
= basic_streambuf_wchar_egptr(&this->base
);
4187 if(this->seekhigh
> ptr
)
4188 basic_streambuf_wchar_setg(&this->base
, basic_streambuf_wchar_eback(&this->base
), cur
, this->seekhigh
);
4190 if(cur
< this->seekhigh
)
4195 /* ?seekoff@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
4196 /* ?seekoff@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
4197 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
4198 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
4199 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_seekoff
, 20)
4200 fpos_int
* __thiscall
basic_stringbuf_wchar_seekoff(basic_stringbuf_wchar
*this,
4201 fpos_int
*ret
, streamoff off
, int way
, int mode
)
4203 wchar_t *beg
, *cur_r
, *cur_w
;
4205 TRACE("(%p %p %ld %d %d)\n", this, ret
, off
, way
, mode
);
4207 cur_w
= basic_streambuf_wchar_pptr(&this->base
);
4208 if(cur_w
> this->seekhigh
)
4209 this->seekhigh
= cur_w
;
4215 beg
= basic_streambuf_wchar_eback(&this->base
);
4216 cur_r
= basic_streambuf_wchar_gptr(&this->base
);
4217 if((mode
& OPENMODE_in
) && cur_r
) {
4218 if(way
==SEEKDIR_cur
&& !(mode
& OPENMODE_out
))
4220 else if(way
== SEEKDIR_end
)
4221 off
+= this->seekhigh
-beg
;
4222 else if(way
!= SEEKDIR_beg
)
4225 if(off
<0 || off
>this->seekhigh
-beg
) {
4228 basic_streambuf_wchar_gbump(&this->base
, beg
-cur_r
+off
);
4229 if((mode
& OPENMODE_out
) && cur_w
) {
4230 basic_streambuf_wchar_setp_next(&this->base
, beg
,
4231 basic_streambuf_wchar_gptr(&this->base
),
4232 basic_streambuf_wchar_epptr(&this->base
));
4235 }else if((mode
& OPENMODE_out
) && cur_w
) {
4236 if(way
== SEEKDIR_cur
)
4238 else if(way
== SEEKDIR_end
)
4239 off
+= this->seekhigh
-beg
;
4240 else if(way
!= SEEKDIR_beg
)
4243 if(off
<0 || off
>this->seekhigh
-beg
)
4246 basic_streambuf_wchar_pbump(&this->base
, beg
-cur_w
+off
);
4255 /* ?seekpos@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
4256 /* ?seekpos@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
4257 /* ?seekpos@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
4258 /* ?seekpos@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
4259 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_seekpos
, 36)
4260 fpos_int
* __thiscall
basic_stringbuf_wchar_seekpos(basic_stringbuf_wchar
*this,
4261 fpos_int
*ret
, fpos_int pos
, int mode
)
4263 TRACE("(%p %p %s %d)\n", this, ret
, debugstr_fpos_int(&pos
), mode
);
4265 if(pos
.off
==-1 && pos
.pos
==0 && pos
.state
==0) {
4270 return basic_stringbuf_wchar_seekoff(this, ret
, pos
.off
, SEEKDIR_beg
, mode
);
4273 /* ?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 */
4274 /* ?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 */
4275 /* ?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 */
4276 /* ?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 */
4277 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_str_set
, 8)
4278 void __thiscall
basic_stringbuf_wchar_str_set(basic_stringbuf_wchar
*this, const basic_string_wchar
*str
)
4280 TRACE("(%p %p)\n", this, str
);
4282 basic_stringbuf_wchar__Tidy(this);
4283 basic_stringbuf_wchar__Init(this, MSVCP_basic_string_wchar_c_str(str
), str
->size
, this->state
);
4286 /* ?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 */
4287 /* ?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 */
4288 /* ?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 */
4289 /* ?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 */
4290 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_str_get
, 8)
4291 basic_string_wchar
* __thiscall
basic_stringbuf_wchar_str_get(const basic_stringbuf_wchar
*this, basic_string_wchar
*ret
)
4295 TRACE("(%p)\n", this);
4297 if(!(this->state
& STRINGBUF_no_write
) && basic_streambuf_wchar_pptr(&this->base
)) {
4300 ptr
= basic_streambuf_wchar_pbase(&this->base
);
4301 pptr
= basic_streambuf_wchar_pptr(&this->base
);
4303 return MSVCP_basic_string_wchar_ctor_cstr_len(ret
, ptr
, (this->seekhigh
< pptr
? pptr
: this->seekhigh
) - ptr
);
4306 if(!(this->state
& STRINGBUF_no_read
) && basic_streambuf_wchar_gptr(&this->base
)) {
4307 ptr
= basic_streambuf_wchar_eback(&this->base
);
4308 return MSVCP_basic_string_wchar_ctor_cstr_len(ret
, ptr
, basic_streambuf_wchar_egptr(&this->base
) - ptr
);
4311 return MSVCP_basic_string_wchar_ctor(ret
);
4314 /* ??0ios_base@std@@IAE@XZ */
4315 /* ??0ios_base@std@@IEAA@XZ */
4316 DEFINE_THISCALL_WRAPPER(ios_base_ctor
, 4)
4317 ios_base
* __thiscall
ios_base_ctor(ios_base
*this)
4319 TRACE("(%p)\n", this);
4320 this->vtable
= &MSVCP_ios_base_vtable
;
4324 /* ??0ios_base@std@@QAE@ABV01@@Z */
4325 /* ??0ios_base@std@@QEAA@AEBV01@@Z */
4326 DEFINE_THISCALL_WRAPPER(ios_base_copy_ctor
, 8)
4327 ios_base
* __thiscall
ios_base_copy_ctor(ios_base
*this, const ios_base
*copy
)
4329 TRACE("(%p %p)\n", this, copy
);
4331 this->vtable
= &MSVCP_ios_base_vtable
;
4335 /* ?_Callfns@ios_base@std@@AAEXW4event@12@@Z */
4336 /* ?_Callfns@ios_base@std@@AEAAXW4event@12@@Z */
4337 DEFINE_THISCALL_WRAPPER(ios_base_Callfns
, 8)
4338 void __thiscall
ios_base_Callfns(ios_base
*this, IOS_BASE_event event
)
4340 IOS_BASE_fnarray
*cur
;
4342 TRACE("(%p %x)\n", this, event
);
4344 for(cur
=this->calls
; cur
; cur
=cur
->next
)
4345 cur
->event_handler(event
, this, cur
->index
);
4348 /* ?_Tidy@ios_base@std@@AAAXXZ */
4349 /* ?_Tidy@ios_base@std@@AEAAXXZ */
4350 void CDECL
ios_base_Tidy(ios_base
*this)
4352 IOS_BASE_iosarray
*arr_cur
, *arr_next
;
4353 IOS_BASE_fnarray
*event_cur
, *event_next
;
4355 TRACE("(%p)\n", this);
4357 ios_base_Callfns(this, EVENT_erase_event
);
4359 for(arr_cur
=this->arr
; arr_cur
; arr_cur
=arr_next
) {
4360 arr_next
= arr_cur
->next
;
4361 MSVCRT_operator_delete(arr_cur
);
4365 for(event_cur
=this->calls
; event_cur
; event_cur
=event_next
) {
4366 event_next
= event_cur
->next
;
4367 MSVCRT_operator_delete(event_cur
);
4372 /* ?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z */
4373 /* ?_Ios_base_dtor@ios_base@std@@CAXPEAV12@@Z */
4374 static void ios_base_Ios_base_dtor(ios_base
*obj
)
4376 TRACE("(%p)\n", obj
);
4378 locale_dtor(obj
->loc
);
4379 MSVCRT_operator_delete(obj
->loc
);
4384 /* ??1ios_base@std@@UAE@XZ */
4385 /* ??1ios_base@std@@UEAA@XZ */
4386 DEFINE_THISCALL_WRAPPER(ios_base_dtor
, 4)
4387 void __thiscall
ios_base_dtor(ios_base
*this)
4389 ios_base_Ios_base_dtor(this);
4392 DEFINE_THISCALL_WRAPPER(ios_base_vector_dtor
, 8)
4393 ios_base
* __thiscall
ios_base_vector_dtor(ios_base
*this, unsigned int flags
)
4395 TRACE("(%p %x)\n", this, flags
);
4397 /* we have an array, with the number of elements stored before the first object */
4398 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
4400 for(i
=*ptr
-1; i
>=0; i
--)
4401 ios_base_dtor(this+i
);
4402 MSVCRT_operator_delete(ptr
);
4404 ios_base_dtor(this);
4406 MSVCRT_operator_delete(this);
4412 DEFINE_THISCALL_WRAPPER(iosb_vector_dtor
, 8)
4413 void* __thiscall
iosb_vector_dtor(void *this, unsigned int flags
)
4415 TRACE("(%p %x)\n", this, flags
);
4417 INT_PTR
*ptr
= (INT_PTR
*)this-1;
4418 MSVCRT_operator_delete(ptr
);
4421 MSVCRT_operator_delete(this);
4427 /* ?_Findarr@ios_base@std@@AAEAAU_Iosarray@12@H@Z */
4428 /* ?_Findarr@ios_base@std@@AEAAAEAU_Iosarray@12@H@Z */
4429 DEFINE_THISCALL_WRAPPER(ios_base_Findarr
, 8)
4430 IOS_BASE_iosarray
* __thiscall
ios_base_Findarr(ios_base
*this, int index
)
4432 IOS_BASE_iosarray
*p
;
4434 TRACE("(%p %d)\n", this, index
);
4436 for(p
=this->arr
; p
; p
=p
->next
) {
4437 if(p
->index
== index
)
4441 for(p
=this->arr
; p
; p
=p
->next
) {
4442 if(!p
->long_val
&& !p
->ptr_val
) {
4448 p
= MSVCRT_operator_new(sizeof(IOS_BASE_iosarray
));
4449 p
->next
= this->arr
;
4457 /* ?iword@ios_base@std@@QAEAAJH@Z */
4458 /* ?iword@ios_base@std@@QEAAAEAJH@Z */
4459 DEFINE_THISCALL_WRAPPER(ios_base_iword
, 8)
4460 LONG
* __thiscall
ios_base_iword(ios_base
*this, int index
)
4462 TRACE("(%p %d)\n", this, index
);
4463 return &ios_base_Findarr(this, index
)->long_val
;
4466 /* ?pword@ios_base@std@@QAEAAPAXH@Z */
4467 /* ?pword@ios_base@std@@QEAAAEAPEAXH@Z */
4468 DEFINE_THISCALL_WRAPPER(ios_base_pword
, 8)
4469 void** __thiscall
ios_base_pword(ios_base
*this, int index
)
4471 TRACE("(%p %d)\n", this, index
);
4472 return &ios_base_Findarr(this, index
)->ptr_val
;
4475 /* ?register_callback@ios_base@std@@QAEXP6AXW4event@12@AAV12@H@ZH@Z */
4476 /* ?register_callback@ios_base@std@@QEAAXP6AXW4event@12@AEAV12@H@ZH@Z */
4477 DEFINE_THISCALL_WRAPPER(ios_base_register_callback
, 12)
4478 void __thiscall
ios_base_register_callback(ios_base
*this, IOS_BASE_event_callback callback
, int index
)
4480 IOS_BASE_fnarray
*event
;
4482 TRACE("(%p %p %d)\n", this, callback
, index
);
4484 event
= MSVCRT_operator_new(sizeof(IOS_BASE_fnarray
));
4485 event
->next
= this->calls
;
4486 event
->index
= index
;
4487 event
->event_handler
= callback
;
4488 this->calls
= event
;
4491 /* ?clear@ios_base@std@@QAEXH_N@Z */
4492 /* ?clear@ios_base@std@@QEAAXH_N@Z */
4493 DEFINE_THISCALL_WRAPPER(ios_base_clear_reraise
, 12)
4494 void __thiscall
ios_base_clear_reraise(ios_base
*this, IOSB_iostate state
, MSVCP_bool reraise
)
4496 TRACE("(%p %x %x)\n", this, state
, reraise
);
4498 this->state
= state
& IOSTATE_mask
;
4499 if(!(this->state
& this->except
))
4503 throw_exception(EXCEPTION_RERAISE
, NULL
);
4504 else if(this->state
& this->except
& IOSTATE_eofbit
)
4505 throw_exception(EXCEPTION_FAILURE
, "eofbit is set");
4506 else if(this->state
& this->except
& IOSTATE_failbit
)
4507 throw_exception(EXCEPTION_FAILURE
, "failbit is set");
4508 else if(this->state
& this->except
& IOSTATE_badbit
)
4509 throw_exception(EXCEPTION_FAILURE
, "badbit is set");
4510 else if(this->state
& this->except
& IOSTATE__Hardfail
)
4511 throw_exception(EXCEPTION_FAILURE
, "_Hardfail is set");
4514 /* ?clear@ios_base@std@@QAEXH@Z */
4515 /* ?clear@ios_base@std@@QEAAXH@Z */
4516 DEFINE_THISCALL_WRAPPER(ios_base_clear
, 8)
4517 void __thiscall
ios_base_clear(ios_base
*this, IOSB_iostate state
)
4519 ios_base_clear_reraise(this, state
, FALSE
);
4522 /* ?clear@ios_base@std@@QAEXI@Z */
4523 /* ?clear@ios_base@std@@QEAAXI@Z */
4524 DEFINE_THISCALL_WRAPPER(ios_base_clear_unsigned
, 8)
4525 void __thiscall
ios_base_clear_unsigned(ios_base
*this, unsigned int state
)
4527 ios_base_clear_reraise(this, (IOSB_iostate
)state
, FALSE
);
4530 /* ?exceptions@ios_base@std@@QAEXH@Z */
4531 /* ?exceptions@ios_base@std@@QEAAXH@Z */
4532 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_set
, 8)
4533 void __thiscall
ios_base_exceptions_set(ios_base
*this, IOSB_iostate state
)
4535 TRACE("(%p %x)\n", this, state
);
4536 this->except
= state
& IOSTATE_mask
;
4537 ios_base_clear(this, this->state
);
4540 /* ?exceptions@ios_base@std@@QAEXI@Z */
4541 /* ?exceptions@ios_base@std@@QEAAXI@Z */
4542 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_set_unsigned
, 8)
4543 void __thiscall
ios_base_exceptions_set_unsigned(ios_base
*this, unsigned int state
)
4545 TRACE("(%p %x)\n", this, state
);
4546 ios_base_exceptions_set(this, state
);
4549 /* ?exceptions@ios_base@std@@QBEHXZ */
4550 /* ?exceptions@ios_base@std@@QEBAHXZ */
4551 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_get
, 4)
4552 IOSB_iostate __thiscall
ios_base_exceptions_get(ios_base
*this)
4554 TRACE("(%p)\n", this);
4555 return this->except
;
4558 /* ?copyfmt@ios_base@std@@QAEAAV12@ABV12@@Z */
4559 /* ?copyfmt@ios_base@std@@QEAAAEAV12@AEBV12@@Z */
4560 DEFINE_THISCALL_WRAPPER(ios_base_copyfmt
, 8)
4561 ios_base
* __thiscall
ios_base_copyfmt(ios_base
*this, const ios_base
*rhs
)
4563 TRACE("(%p %p)\n", this, rhs
);
4566 IOS_BASE_iosarray
*arr_cur
;
4567 IOS_BASE_fnarray
*event_cur
;
4569 ios_base_Tidy(this);
4571 for(arr_cur
=rhs
->arr
; arr_cur
; arr_cur
=arr_cur
->next
) {
4572 if(arr_cur
->long_val
)
4573 *ios_base_iword(this, arr_cur
->index
) = arr_cur
->long_val
;
4574 if(arr_cur
->ptr_val
)
4575 *ios_base_pword(this, arr_cur
->index
) = arr_cur
->ptr_val
;
4577 this->stdstr
= rhs
->stdstr
;
4578 this->fmtfl
= rhs
->fmtfl
;
4579 this->prec
= rhs
->prec
;
4580 this->wide
= rhs
->wide
;
4581 locale_operator_assign(this->loc
, rhs
->loc
);
4583 for(event_cur
=rhs
->calls
; event_cur
; event_cur
=event_cur
->next
)
4584 ios_base_register_callback(this, event_cur
->event_handler
, event_cur
->index
);
4586 ios_base_Callfns(this, EVENT_copyfmt_event
);
4587 ios_base_exceptions_set(this, rhs
->except
);
4593 /* ??4ios_base@std@@QAEAAV01@ABV01@@Z */
4594 /* ??4ios_base@std@@QEAAAEAV01@AEBV01@@Z */
4595 DEFINE_THISCALL_WRAPPER(ios_base_assign
, 8)
4596 ios_base
* __thiscall
ios_base_assign(ios_base
*this, const ios_base
*right
)
4598 TRACE("(%p %p)\n", this, right
);
4601 this->state
= right
->state
;
4602 ios_base_copyfmt(this, right
);
4608 /* ?fail@ios_base@std@@QBE_NXZ */
4609 /* ?fail@ios_base@std@@QEBA_NXZ */
4610 DEFINE_THISCALL_WRAPPER(ios_base_fail
, 4)
4611 MSVCP_bool __thiscall
ios_base_fail(const ios_base
*this)
4613 TRACE("(%p)\n", this);
4614 return (this->state
& (IOSTATE_failbit
|IOSTATE_badbit
)) != 0;
4617 /* ??7ios_base@std@@QBE_NXZ */
4618 /* ??7ios_base@std@@QEBA_NXZ */
4619 DEFINE_THISCALL_WRAPPER(ios_base_op_succ
, 4)
4620 MSVCP_bool __thiscall
ios_base_op_succ(const ios_base
*this)
4622 TRACE("(%p)\n", this);
4623 return ios_base_fail(this);
4626 /* ??Bios_base@std@@QBEPAXXZ */
4627 /* ??Bios_base@std@@QEBAPEAXXZ */
4628 DEFINE_THISCALL_WRAPPER(ios_base_op_fail
, 4)
4629 void* __thiscall
ios_base_op_fail(const ios_base
*this)
4631 TRACE("(%p)\n", this);
4632 return ios_base_fail(this) ? NULL
: (void*)this;
4635 /* ?_Addstd@ios_base@std@@SAXPAV12@@Z */
4636 /* ?_Addstd@ios_base@std@@SAXPEAV12@@Z */
4637 static void ios_base_Addstd(ios_base
*add
)
4639 FIXME("(%p) stub\n", add
);
4642 /* ?_Init@ios_base@std@@IAEXXZ */
4643 /* ?_Init@ios_base@std@@IEAAXXZ */
4644 DEFINE_THISCALL_WRAPPER(ios_base__Init
, 4)
4645 void __thiscall
ios_base__Init(ios_base
*this)
4647 TRACE("(%p)\n", this);
4650 this->state
= this->except
= IOSTATE_goodbit
;
4651 this->fmtfl
= FMTFLAG_skipws
| FMTFLAG_dec
;
4656 this->loc
= MSVCRT_operator_new(sizeof(locale
));
4657 locale_ctor(this->loc
);
4660 /* ?bad@ios_base@std@@QBE_NXZ */
4661 /* ?bad@ios_base@std@@QEBA_NXZ */
4662 DEFINE_THISCALL_WRAPPER(ios_base_bad
, 4)
4663 MSVCP_bool __thiscall
ios_base_bad(const ios_base
*this)
4665 TRACE("(%p)\n", this);
4666 return (this->state
& IOSTATE_badbit
) != 0;
4669 /* ?eof@ios_base@std@@QBE_NXZ */
4670 /* ?eof@ios_base@std@@QEBA_NXZ */
4671 DEFINE_THISCALL_WRAPPER(ios_base_eof
, 4)
4672 MSVCP_bool __thiscall
ios_base_eof(const ios_base
*this)
4674 TRACE("(%p)\n", this);
4675 return (this->state
& IOSTATE_eofbit
) != 0;
4678 /* ?flags@ios_base@std@@QAEHH@Z */
4679 /* ?flags@ios_base@std@@QEAAHH@Z */
4680 DEFINE_THISCALL_WRAPPER(ios_base_flags_set
, 8)
4681 IOSB_fmtflags __thiscall
ios_base_flags_set(ios_base
*this, IOSB_fmtflags flags
)
4683 IOSB_fmtflags ret
= this->fmtfl
;
4685 TRACE("(%p %x)\n", this, flags
);
4687 this->fmtfl
= flags
& FMTFLAG_mask
;
4691 /* ?flags@ios_base@std@@QBEHXZ */
4692 /* ?flags@ios_base@std@@QEBAHXZ */
4693 DEFINE_THISCALL_WRAPPER(ios_base_flags_get
, 4)
4694 IOSB_fmtflags __thiscall
ios_base_flags_get(const ios_base
*this)
4696 TRACE("(%p)\n", this);
4700 /* ?getloc@ios_base@std@@QBE?AVlocale@2@XZ */
4701 /* ?getloc@ios_base@std@@QEBA?AVlocale@2@XZ */
4702 DEFINE_THISCALL_WRAPPER(ios_base_getloc
, 8)
4703 locale
* __thiscall
ios_base_getloc(const ios_base
*this, locale
*ret
)
4705 TRACE("(%p)\n", this);
4706 return locale_copy_ctor(ret
, this->loc
);
4709 /* ?good@ios_base@std@@QBE_NXZ */
4710 /* ?good@ios_base@std@@QEBA_NXZ */
4711 DEFINE_THISCALL_WRAPPER(ios_base_good
, 4)
4712 MSVCP_bool __thiscall
ios_base_good(const ios_base
*this)
4714 TRACE("(%p)\n", this);
4715 return this->state
== IOSTATE_goodbit
;
4718 /* ?imbue@ios_base@std@@QAE?AVlocale@2@ABV32@@Z */
4719 /* ?imbue@ios_base@std@@QEAA?AVlocale@2@AEBV32@@Z */
4720 DEFINE_THISCALL_WRAPPER(ios_base_imbue
, 12)
4721 locale
* __thiscall
ios_base_imbue(ios_base
*this, locale
*ret
, const locale
*loc
)
4723 TRACE("(%p %p)\n", this, loc
);
4725 locale_copy_ctor(this->loc
, loc
);
4729 /* ?precision@ios_base@std@@QAEHH@Z */
4730 /* ?precision@ios_base@std@@QEAA_J_J@Z */
4731 DEFINE_THISCALL_WRAPPER(ios_base_precision_set
, 8)
4732 streamsize __thiscall
ios_base_precision_set(ios_base
*this, streamsize precision
)
4734 streamsize ret
= this->prec
;
4736 TRACE("(%p %ld)\n", this, precision
);
4738 this->prec
= precision
;
4742 /* ?precision@ios_base@std@@QBEHXZ */
4743 /* ?precision@ios_base@std@@QEBA_JXZ */
4744 DEFINE_THISCALL_WRAPPER(ios_base_precision_get
, 4)
4745 streamsize __thiscall
ios_base_precision_get(const ios_base
*this)
4747 TRACE("(%p)\n", this);
4751 /* ?rdstate@ios_base@std@@QBEHXZ */
4752 /* ?rdstate@ios_base@std@@QEBAHXZ */
4753 DEFINE_THISCALL_WRAPPER(ios_base_rdstate
, 4)
4754 IOSB_iostate __thiscall
ios_base_rdstate(const ios_base
*this)
4756 TRACE("(%p)\n", this);
4760 /* ?setf@ios_base@std@@QAEHHH@Z */
4761 /* ?setf@ios_base@std@@QEAAHHH@Z */
4762 DEFINE_THISCALL_WRAPPER(ios_base_setf_mask
, 12)
4763 IOSB_fmtflags __thiscall
ios_base_setf_mask(ios_base
*this, IOSB_fmtflags flags
, IOSB_fmtflags mask
)
4765 IOSB_fmtflags ret
= this->fmtfl
;
4767 TRACE("(%p %x %x)\n", this, flags
, mask
);
4769 this->fmtfl
= (this->fmtfl
& (~mask
)) | (flags
& mask
& FMTFLAG_mask
);
4773 /* ?setf@ios_base@std@@QAEHH@Z */
4774 /* ?setf@ios_base@std@@QEAAHH@Z */
4775 DEFINE_THISCALL_WRAPPER(ios_base_setf
, 8)
4776 IOSB_fmtflags __thiscall
ios_base_setf(ios_base
*this, IOSB_fmtflags flags
)
4778 return ios_base_setf_mask(this, flags
, ~0);
4781 /* ?setstate@ios_base@std@@QAEXH_N@Z */
4782 /* ?setstate@ios_base@std@@QEAAXH_N@Z */
4783 DEFINE_THISCALL_WRAPPER(ios_base_setstate_reraise
, 12)
4784 void __thiscall
ios_base_setstate_reraise(ios_base
*this, IOSB_iostate state
, MSVCP_bool reraise
)
4786 TRACE("(%p %x %x)\n", this, state
, reraise
);
4788 if(state
!= IOSTATE_goodbit
)
4789 ios_base_clear_reraise(this, this->state
| state
, reraise
);
4792 /* ?setstate@ios_base@std@@QAEXH@Z */
4793 /* ?setstate@ios_base@std@@QEAAXH@Z */
4794 DEFINE_THISCALL_WRAPPER(ios_base_setstate
, 8)
4795 void __thiscall
ios_base_setstate(ios_base
*this, IOSB_iostate state
)
4797 ios_base_setstate_reraise(this, state
, FALSE
);
4800 /* ?setstate@ios_base@std@@QAEXI@Z */
4801 /* ?setstate@ios_base@std@@QEAAXI@Z */
4802 DEFINE_THISCALL_WRAPPER(ios_base_setstate_unsigned
, 8)
4803 void __thiscall
ios_base_setstate_unsigned(ios_base
*this, unsigned int state
)
4805 ios_base_setstate_reraise(this, (IOSB_iostate
)state
, FALSE
);
4808 /* ?sync_with_stdio@ios_base@std@@SA_N_N@Z */
4809 MSVCP_bool CDECL
ios_base_sync_with_stdio(MSVCP_bool sync
)
4814 TRACE("(%x)\n", sync
);
4816 _Lockit_ctor_locktype(&lock
, _LOCK_STREAM
);
4817 ret
= ios_base_Sync
;
4818 ios_base_Sync
= sync
;
4819 _Lockit_dtor(&lock
);
4823 /* ?unsetf@ios_base@std@@QAEXH@Z */
4824 /* ?unsetf@ios_base@std@@QEAAXH@Z */
4825 DEFINE_THISCALL_WRAPPER(ios_base_unsetf
, 8)
4826 void __thiscall
ios_base_unsetf(ios_base
*this, IOSB_fmtflags flags
)
4828 TRACE("(%p %x)\n", this, flags
);
4829 this->fmtfl
&= ~flags
;
4832 /* ?width@ios_base@std@@QAEHH@Z */
4833 /* ?width@ios_base@std@@QEAA_J_J@Z */
4834 DEFINE_THISCALL_WRAPPER(ios_base_width_set
, 8)
4835 streamsize __thiscall
ios_base_width_set(ios_base
*this, streamsize width
)
4837 streamsize ret
= this->wide
;
4839 TRACE("(%p %ld)\n", this, width
);
4845 /* ?width@ios_base@std@@QBEHXZ */
4846 /* ?width@ios_base@std@@QEBA_JXZ */
4847 DEFINE_THISCALL_WRAPPER(ios_base_width_get
, 4)
4848 streamsize __thiscall
ios_base_width_get(ios_base
*this)
4850 TRACE("(%p)\n", this);
4854 /* ?xalloc@ios_base@std@@SAHXZ */
4855 int CDECL
ios_base_xalloc(void)
4862 _Lockit_ctor_locktype(&lock
, _LOCK_STREAM
);
4863 ret
= ios_base_Index
++;
4864 _Lockit_dtor(&lock
);
4868 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ */
4869 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ */
4870 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor
, 4)
4871 basic_ios_char
* __thiscall
basic_ios_char_ctor(basic_ios_char
*this)
4873 TRACE("(%p)\n", this);
4875 ios_base_ctor(&this->base
);
4876 this->base
.vtable
= &MSVCP_basic_ios_char_vtable
;
4880 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
4881 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
4882 DEFINE_THISCALL_WRAPPER(basic_ios_char_init
, 12)
4883 void __thiscall
basic_ios_char_init(basic_ios_char
*this, basic_streambuf_char
*streambuf
, MSVCP_bool isstd
)
4885 TRACE("(%p %p %x)\n", this, streambuf
, isstd
);
4886 ios_base__Init(&this->base
);
4887 this->strbuf
= streambuf
;
4888 this->stream
= NULL
;
4892 ios_base_setstate(&this->base
, IOSTATE_badbit
);
4895 FIXME("standard streams not handled yet\n");
4898 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
4899 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
4900 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor_streambuf
, 8)
4901 basic_ios_char
* __thiscall
basic_ios_char_ctor_streambuf(basic_ios_char
*this, basic_streambuf_char
*strbuf
)
4903 TRACE("(%p %p)\n", this, strbuf
);
4905 basic_ios_char_ctor(this);
4906 basic_ios_char_init(this, strbuf
, FALSE
);
4910 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ */
4911 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ */
4912 DEFINE_THISCALL_WRAPPER(basic_ios_char_dtor
, 4)
4913 void __thiscall
basic_ios_char_dtor(basic_ios_char
*this)
4915 TRACE("(%p)\n", this);
4916 ios_base_dtor(&this->base
);
4919 DEFINE_THISCALL_WRAPPER(basic_ios_char_vector_dtor
, 8)
4920 basic_ios_char
* __thiscall
basic_ios_char_vector_dtor(basic_ios_char
*this, unsigned int flags
)
4922 TRACE("(%p %x)\n", this, flags
);
4924 /* we have an array, with the number of elements stored before the first object */
4925 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
4927 for(i
=*ptr
-1; i
>=0; i
--)
4928 basic_ios_char_dtor(this+i
);
4929 MSVCRT_operator_delete(ptr
);
4931 basic_ios_char_dtor(this);
4933 MSVCRT_operator_delete(this);
4939 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
4940 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
4941 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear_reraise
, 12)
4942 void __thiscall
basic_ios_char_clear_reraise(basic_ios_char
*this, IOSB_iostate state
, MSVCP_bool reraise
)
4944 TRACE("(%p %x %x)\n", this, state
, reraise
);
4945 ios_base_clear_reraise(&this->base
, state
| (this->strbuf
? IOSTATE_goodbit
: IOSTATE_badbit
), reraise
);
4948 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
4949 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
4950 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear
, 8)
4951 void __thiscall
basic_ios_char_clear(basic_ios_char
*this, unsigned int state
)
4953 basic_ios_char_clear_reraise(this, (IOSB_iostate
)state
, FALSE
);
4956 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEAAV12@ABV12@@Z */
4957 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEBV12@@Z */
4958 DEFINE_THISCALL_WRAPPER(basic_ios_char_copyfmt
, 8)
4959 basic_ios_char
* __thiscall
basic_ios_char_copyfmt(basic_ios_char
*this, basic_ios_char
*copy
)
4961 TRACE("(%p %p)\n", this, copy
);
4965 this->stream
= copy
->stream
;
4966 this->fillch
= copy
->fillch
;
4967 ios_base_copyfmt(&this->base
, ©
->base
);
4971 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEDD@Z */
4972 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z */
4973 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_set
, 8)
4974 char __thiscall
basic_ios_char_fill_set(basic_ios_char
*this, char fill
)
4976 char ret
= this->fillch
;
4978 TRACE("(%p %c)\n", this, fill
);
4980 this->fillch
= fill
;
4984 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ */
4985 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ */
4986 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_get
, 4)
4987 char __thiscall
basic_ios_char_fill_get(basic_ios_char
*this)
4989 TRACE("(%p)\n", this);
4990 return this->fillch
;
4993 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
4994 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
4995 DEFINE_THISCALL_WRAPPER(basic_ios_char_imbue
, 12)
4996 locale
*__thiscall
basic_ios_char_imbue(basic_ios_char
*this, locale
*ret
, const locale
*loc
)
4998 TRACE("(%p %p %p)\n", this, ret
, loc
);
5001 basic_streambuf_char_pubimbue(this->strbuf
, ret
, loc
);
5005 return ios_base_imbue(&this->base
, ret
, loc
);
5008 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDDD@Z */
5009 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADDD@Z */
5010 DEFINE_THISCALL_WRAPPER(basic_ios_char_narrow
, 12)
5011 char __thiscall
basic_ios_char_narrow(basic_ios_char
*this, char ch
, char def
)
5013 TRACE("(%p %c %c)\n", this, ch
, def
);
5014 return ctype_char_narrow_ch(ctype_char_use_facet(this->strbuf
->loc
), ch
, def
);
5017 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PAV32@@Z */
5018 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAV32@@Z */
5019 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_set
, 8)
5020 basic_streambuf_char
* __thiscall
basic_ios_char_rdbuf_set(basic_ios_char
*this, basic_streambuf_char
*streambuf
)
5022 basic_streambuf_char
*ret
= this->strbuf
;
5024 TRACE("(%p %p)\n", this, streambuf
);
5026 this->strbuf
= streambuf
;
5027 basic_ios_char_clear(this, IOSTATE_goodbit
);
5031 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
5032 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
5033 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_get
, 4)
5034 basic_streambuf_char
* __thiscall
basic_ios_char_rdbuf_get(const basic_ios_char
*this)
5036 TRACE("(%p)\n", this);
5037 return this->strbuf
;
5040 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
5041 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
5042 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate_reraise
, 12)
5043 void __thiscall
basic_ios_char_setstate_reraise(basic_ios_char
*this, IOSB_iostate state
, MSVCP_bool reraise
)
5045 TRACE("(%p %x %x)\n", this, state
, reraise
);
5047 if(state
!= IOSTATE_goodbit
)
5048 basic_ios_char_clear_reraise(this, this->base
.state
| state
, reraise
);
5051 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
5052 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
5053 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate
, 8)
5054 void __thiscall
basic_ios_char_setstate(basic_ios_char
*this, unsigned int state
)
5056 basic_ios_char_setstate_reraise(this, (IOSB_iostate
)state
, FALSE
);
5059 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@PAV32@@Z */
5060 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@PEAV32@@Z */
5061 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_set
, 8)
5062 basic_ostream_char
* __thiscall
basic_ios_char_tie_set(basic_ios_char
*this, basic_ostream_char
*ostream
)
5064 basic_ostream_char
*ret
= this->stream
;
5066 TRACE("(%p %p)\n", this, ostream
);
5068 this->stream
= ostream
;
5072 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
5073 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
5074 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_get
, 4)
5075 basic_ostream_char
* __thiscall
basic_ios_char_tie_get(const basic_ios_char
*this)
5077 TRACE("(%p)\n", this);
5078 return this->stream
;
5081 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z */
5082 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z */
5083 DEFINE_THISCALL_WRAPPER(basic_ios_char_widen
, 8)
5084 char __thiscall
basic_ios_char_widen(basic_ios_char
*this, char ch
)
5086 TRACE("(%p %c)\n", this, ch
);
5087 return ctype_char_widen_ch(ctype_char_use_facet(this->strbuf
->loc
), ch
);
5091 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
5092 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
5093 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_ctor
, 4)
5094 basic_ios_wchar
* __thiscall
basic_ios_wchar_ctor(basic_ios_wchar
*this)
5096 TRACE("(%p)\n", this);
5098 ios_base_ctor(&this->base
);
5099 this->base
.vtable
= &MSVCP_basic_ios_wchar_vtable
;
5103 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@IAE@XZ */
5104 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@IEAA@XZ */
5105 DEFINE_THISCALL_WRAPPER(basic_ios_short_ctor
, 4)
5106 basic_ios_wchar
* __thiscall
basic_ios_short_ctor(basic_ios_wchar
*this)
5108 basic_ios_wchar_ctor(this);
5109 this->base
.vtable
= &MSVCP_basic_ios_short_vtable
;
5113 /* ?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAEXPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z */
5114 /* ?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z */
5115 /* ?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IAEXPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z */
5116 /* ?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z */
5117 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_init
, 12)
5118 void __thiscall
basic_ios_wchar_init(basic_ios_wchar
*this, basic_streambuf_wchar
*streambuf
, MSVCP_bool isstd
)
5120 TRACE("(%p %p %x)\n", this, streambuf
, isstd
);
5121 ios_base__Init(&this->base
);
5122 this->strbuf
= streambuf
;
5123 this->stream
= NULL
;
5127 ios_base_setstate(&this->base
, IOSTATE_badbit
);
5130 FIXME("standard streams not handled yet\n");
5133 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
5134 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
5135 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_ctor_streambuf
, 8)
5136 basic_ios_wchar
* __thiscall
basic_ios_wchar_ctor_streambuf(basic_ios_wchar
*this, basic_streambuf_wchar
*strbuf
)
5138 TRACE("(%p %p)\n", this, strbuf
);
5140 basic_ios_wchar_ctor(this);
5141 basic_ios_wchar_init(this, strbuf
, FALSE
);
5145 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
5146 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
5147 DEFINE_THISCALL_WRAPPER(basic_ios_short_ctor_streambuf
, 8)
5148 basic_ios_wchar
* __thiscall
basic_ios_short_ctor_streambuf(basic_ios_wchar
*this, basic_streambuf_wchar
*strbuf
)
5150 basic_ios_wchar_ctor_streambuf(this, strbuf
);
5151 this->base
.vtable
= &MSVCP_basic_ios_short_vtable
;
5155 /* ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
5156 /* ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
5157 /* ??1?$basic_ios@GU?$char_traits@G@std@@@std@@UAE@XZ */
5158 /* ??1?$basic_ios@GU?$char_traits@G@std@@@std@@UEAA@XZ */
5159 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_dtor
, 4)
5160 void __thiscall
basic_ios_wchar_dtor(basic_ios_wchar
*this)
5162 TRACE("(%p)\n", this);
5163 ios_base_dtor(&this->base
);
5166 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_vector_dtor
, 8)
5167 basic_ios_wchar
* __thiscall
basic_ios_wchar_vector_dtor(basic_ios_wchar
*this, unsigned int flags
)
5169 TRACE("(%p %x)\n", this, flags
);
5171 /* we have an array, with the number of elements stored before the first object */
5172 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
5174 for(i
=*ptr
-1; i
>=0; i
--)
5175 basic_ios_wchar_dtor(this+i
);
5176 MSVCRT_operator_delete(ptr
);
5178 basic_ios_wchar_dtor(this);
5180 MSVCRT_operator_delete(this);
5186 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z */
5187 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z */
5188 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXH_N@Z */
5189 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z */
5190 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_clear_reraise
, 12)
5191 void __thiscall
basic_ios_wchar_clear_reraise(basic_ios_wchar
*this, IOSB_iostate state
, MSVCP_bool reraise
)
5193 TRACE("(%p %x %x)\n", this, state
, reraise
);
5194 ios_base_clear_reraise(&this->base
, state
| (this->strbuf
? IOSTATE_goodbit
: IOSTATE_badbit
), reraise
);
5197 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXI@Z */
5198 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z */
5199 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXI@Z */
5200 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z */
5201 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_clear
, 8)
5202 void __thiscall
basic_ios_wchar_clear(basic_ios_wchar
*this, unsigned int state
)
5204 basic_ios_wchar_clear_reraise(this, (IOSB_iostate
)state
, FALSE
);
5207 /* ?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEAAV12@ABV12@@Z */
5208 /* ?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEBV12@@Z */
5209 /* ?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEAAV12@ABV12@@Z */
5210 /* ?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEBV12@@Z */
5211 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_copyfmt
, 8)
5212 basic_ios_wchar
* __thiscall
basic_ios_wchar_copyfmt(basic_ios_wchar
*this, basic_ios_wchar
*copy
)
5214 TRACE("(%p %p)\n", this, copy
);
5218 this->stream
= copy
->stream
;
5219 this->fillch
= copy
->fillch
;
5220 ios_base_copyfmt(&this->base
, ©
->base
);
5224 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE_W_W@Z */
5225 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA_W_W@Z */
5226 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEGG@Z */
5227 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAGG@Z */
5228 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_fill_set
, 8)
5229 wchar_t __thiscall
basic_ios_wchar_fill_set(basic_ios_wchar
*this, wchar_t fill
)
5231 wchar_t ret
= this->fillch
;
5233 TRACE("(%p %c)\n", this, fill
);
5235 this->fillch
= fill
;
5239 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WXZ */
5240 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WXZ */
5241 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEGXZ */
5242 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGXZ */
5243 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_fill_get
, 4)
5244 wchar_t __thiscall
basic_ios_wchar_fill_get(basic_ios_wchar
*this)
5246 TRACE("(%p)\n", this);
5247 return this->fillch
;
5250 /* ?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
5251 /* ?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
5252 /* ?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
5253 /* ?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
5254 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_imbue
, 12)
5255 locale
*__thiscall
basic_ios_wchar_imbue(basic_ios_wchar
*this, locale
*ret
, const locale
*loc
)
5257 TRACE("(%p %p %p)\n", this, ret
, loc
);
5260 basic_streambuf_wchar_pubimbue(this->strbuf
, ret
, loc
);
5264 return ios_base_imbue(&this->base
, ret
, loc
);
5267 /* ?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBED_WD@Z */
5268 /* ?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAD_WD@Z */
5269 /* ?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEDGD@Z */
5270 /* ?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBADGD@Z */
5271 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_narrow
, 12)
5272 char __thiscall
basic_ios_wchar_narrow(basic_ios_wchar
*this, wchar_t ch
, char def
)
5274 TRACE("(%p %c %c)\n", this, ch
, def
);
5275 return ctype_wchar_narrow_ch(ctype_wchar_use_facet(this->strbuf
->loc
), ch
, def
);
5278 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PAV32@@Z */
5279 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEAV32@@Z */
5280 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PAV32@@Z */
5281 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAV32@@Z */
5282 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_rdbuf_set
, 8)
5283 basic_streambuf_wchar
* __thiscall
basic_ios_wchar_rdbuf_set(basic_ios_wchar
*this, basic_streambuf_wchar
*streambuf
)
5285 basic_streambuf_wchar
*ret
= this->strbuf
;
5287 TRACE("(%p %p)\n", this, streambuf
);
5289 this->strbuf
= streambuf
;
5290 basic_ios_wchar_clear(this, IOSTATE_goodbit
);
5294 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ */
5295 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ */
5296 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ */
5297 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ */
5298 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_rdbuf_get
, 4)
5299 basic_streambuf_wchar
* __thiscall
basic_ios_wchar_rdbuf_get(const basic_ios_wchar
*this)
5301 TRACE("(%p)\n", this);
5302 return this->strbuf
;
5305 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z */
5306 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z */
5307 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXH_N@Z */
5308 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z */
5309 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_setstate_reraise
, 12)
5310 void __thiscall
basic_ios_wchar_setstate_reraise(basic_ios_wchar
*this, IOSB_iostate state
, MSVCP_bool reraise
)
5312 TRACE("(%p %x %x)\n", this, state
, reraise
);
5314 if(state
!= IOSTATE_goodbit
)
5315 basic_ios_wchar_clear_reraise(this, this->base
.state
| state
, reraise
);
5318 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXI@Z */
5319 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z */
5320 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXI@Z */
5321 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z */
5322 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_setstate
, 8)
5323 void __thiscall
basic_ios_wchar_setstate(basic_ios_wchar
*this, IOSB_iostate state
)
5325 basic_ios_wchar_setstate_reraise(this, state
, FALSE
);
5328 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PAV32@@Z */
5329 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PEAV32@@Z */
5330 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEPAV?$basic_ostream@GU?$char_traits@G@std@@@2@PAV32@@Z */
5331 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@PEAV32@@Z */
5332 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_tie_set
, 8)
5333 basic_ostream_wchar
* __thiscall
basic_ios_wchar_tie_set(basic_ios_wchar
*this, basic_ostream_wchar
*ostream
)
5335 basic_ostream_wchar
*ret
= this->stream
;
5337 TRACE("(%p %p)\n", this, ostream
);
5339 this->stream
= ostream
;
5343 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ */
5344 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ */
5345 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ */
5346 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ */
5347 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_tie_get
, 4)
5348 basic_ostream_wchar
* __thiscall
basic_ios_wchar_tie_get(const basic_ios_wchar
*this)
5350 TRACE("(%p)\n", this);
5351 return this->stream
;
5354 /* ?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WD@Z */
5355 /* ?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WD@Z */
5356 /* ?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEGD@Z */
5357 /* ?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGD@Z */
5358 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_widen
, 8)
5359 wchar_t __thiscall
basic_ios_wchar_widen(basic_ios_wchar
*this, char ch
)
5361 TRACE("(%p %c)\n", this, ch
);
5362 return ctype_wchar_widen_ch(ctype_wchar_use_facet(this->strbuf
->loc
), ch
);
5365 /* Caution: basic_ostream uses virtual inheritance.
5366 * All constructors have additional parameter that says if base class should be initialized.
5367 * Base class needs to be accessed using vbtable.
5369 static inline basic_ios_char
* basic_ostream_char_get_basic_ios(basic_ostream_char
*this)
5371 return (basic_ios_char
*)((char*)this+this->vbtable
[1]);
5374 static inline basic_ios_char
* basic_ostream_char_to_basic_ios(basic_ostream_char
*ptr
)
5376 return (basic_ios_char
*)((char*)ptr
+basic_ostream_char_vbtable
[1]);
5379 static inline basic_ostream_char
* basic_ostream_char_from_basic_ios(basic_ios_char
*ptr
)
5381 return (basic_ostream_char
*)((char*)ptr
-basic_ostream_char_vbtable
[1]);
5384 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
5385 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
5386 DEFINE_THISCALL_WRAPPER(basic_ostream_char_ctor
, 16)
5387 basic_ostream_char
* __thiscall
basic_ostream_char_ctor(basic_ostream_char
*this,
5388 basic_streambuf_char
*strbuf
, MSVCP_bool isstd
, MSVCP_bool virt_init
)
5390 basic_ios_char
*base
;
5392 TRACE("(%p %p %d %d)\n", this, strbuf
, isstd
, virt_init
);
5395 this->vbtable
= basic_ostream_char_vbtable
;
5396 base
= basic_ostream_char_get_basic_ios(this);
5397 basic_ios_char_ctor(base
);
5399 base
= basic_ostream_char_get_basic_ios(this);
5402 base
->base
.vtable
= &MSVCP_basic_ostream_char_vtable
;
5403 basic_ios_char_init(base
, strbuf
, isstd
);
5407 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@_N@Z */
5408 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z */
5409 static basic_ostream_char
* basic_ostream_char_ctor_uninitialized(basic_ostream_char
*this,
5410 int uninitialized
, MSVCP_bool addstd
, MSVCP_bool virt_init
)
5412 basic_ios_char
*base
;
5414 TRACE("(%p %d %x)\n", this, uninitialized
, addstd
);
5417 this->vbtable
= basic_ostream_char_vbtable
;
5418 base
= basic_ostream_char_get_basic_ios(this);
5419 basic_ios_char_ctor(base
);
5421 base
= basic_ostream_char_get_basic_ios(this);
5424 base
->base
.vtable
= &MSVCP_basic_ostream_char_vtable
;
5426 ios_base_Addstd(&base
->base
);
5430 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
5431 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
5432 DEFINE_THISCALL_WRAPPER(basic_ostream_char_dtor
, 4)
5433 void __thiscall
basic_ostream_char_dtor(basic_ios_char
*base
)
5435 basic_ostream_char
*this = basic_ostream_char_from_basic_ios(base
);
5437 /* don't destroy virtual base here */
5438 TRACE("(%p)\n", this);
5441 /* ??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
5442 /* ??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
5443 DEFINE_THISCALL_WRAPPER(basic_ostream_char_vbase_dtor
, 4)
5444 void __thiscall
basic_ostream_char_vbase_dtor(basic_ostream_char
*this)
5446 TRACE("(%p)\n", this);
5447 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(this));
5448 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(this));
5451 DEFINE_THISCALL_WRAPPER(basic_ostream_char_vector_dtor
, 8)
5452 basic_ostream_char
* __thiscall
basic_ostream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
5454 basic_ostream_char
*this = basic_ostream_char_from_basic_ios(base
);
5456 TRACE("(%p %x)\n", this, flags
);
5459 /* we have an array, with the number of elements stored before the first object */
5460 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
5462 for(i
=*ptr
-1; i
>=0; i
--)
5463 basic_ostream_char_vbase_dtor(this+i
);
5464 MSVCRT_operator_delete(ptr
);
5466 basic_ostream_char_vbase_dtor(this);
5468 MSVCRT_operator_delete(this);
5474 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ */
5475 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ */
5476 DEFINE_THISCALL_WRAPPER(basic_ostream_char_flush
, 4)
5477 basic_ostream_char
* __thiscall
basic_ostream_char_flush(basic_ostream_char
*this)
5479 /* this function is not matching C++ specification */
5480 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5482 TRACE("(%p)\n", this);
5484 if(basic_ios_char_rdbuf_get(base
) && ios_base_good(&base
->base
)
5485 && basic_streambuf_char_pubsync(basic_ios_char_rdbuf_get(base
))==-1)
5486 basic_ios_char_setstate(base
, IOSTATE_badbit
);
5490 /* ?flush@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
5491 /* ?flush@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
5492 basic_ostream_char
* __cdecl
flush_ostream_char(basic_ostream_char
*ostream
)
5494 return basic_ostream_char_flush(ostream
);
5497 /* ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
5498 /* ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
5499 DEFINE_THISCALL_WRAPPER(basic_ostream_char__Osfx
, 4)
5500 void __thiscall
basic_ostream_char__Osfx(basic_ostream_char
*this)
5502 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5504 TRACE("(%p)\n", this);
5506 if(base
->base
.fmtfl
& FMTFLAG_unitbuf
)
5507 basic_ostream_char_flush(this);
5510 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
5511 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
5512 DEFINE_THISCALL_WRAPPER(basic_ostream_char_osfx
, 4)
5513 void __thiscall
basic_ostream_char_osfx(basic_ostream_char
*this)
5515 TRACE("(%p)\n", this);
5516 basic_ostream_char__Osfx(this);
5519 static BOOL
basic_ostream_char_sentry_create(basic_ostream_char
*ostr
)
5521 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(ostr
);
5523 if(basic_ios_char_rdbuf_get(base
))
5524 basic_streambuf_char__Lock(base
->strbuf
);
5526 if(ios_base_good(&base
->base
) && base
->stream
)
5527 basic_ostream_char_flush(base
->stream
);
5529 return ios_base_good(&base
->base
);
5532 static void basic_ostream_char_sentry_destroy(basic_ostream_char
*ostr
)
5534 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(ostr
);
5536 if(ios_base_good(&base
->base
) && !__uncaught_exception())
5537 basic_ostream_char_osfx(ostr
);
5539 if(basic_ios_char_rdbuf_get(base
))
5540 basic_streambuf_char__Unlock(base
->strbuf
);
5543 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE_NXZ */
5544 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA_NXZ */
5545 DEFINE_THISCALL_WRAPPER(basic_ostream_char_opfx
, 4)
5546 MSVCP_bool __thiscall
basic_ostream_char_opfx(basic_ostream_char
*this)
5548 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5550 TRACE("(%p)\n", this);
5552 if(ios_base_good(&base
->base
) && base
->stream
)
5553 basic_ostream_char_flush(base
->stream
);
5554 return ios_base_good(&base
->base
);
5557 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z */
5558 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z */
5559 DEFINE_THISCALL_WRAPPER(basic_ostream_char_put
, 8)
5560 basic_ostream_char
* __thiscall
basic_ostream_char_put(basic_ostream_char
*this, char ch
)
5562 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5564 TRACE("(%p %c)\n", this, ch
);
5566 if(!basic_ostream_char_sentry_create(this)
5567 || basic_streambuf_char_sputc(base
->strbuf
, ch
)==EOF
) {
5568 basic_ostream_char_sentry_destroy(this);
5569 basic_ios_char_setstate(base
, IOSTATE_badbit
);
5573 basic_ostream_char_sentry_destroy(this);
5577 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@JH@Z */
5578 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
5579 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp
, 12)
5580 basic_ostream_char
* __thiscall
basic_ostream_char_seekp(basic_ostream_char
*this, streamoff off
, int way
)
5582 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5584 TRACE("(%p %ld %d)\n", this, off
, way
);
5586 if(!ios_base_fail(&base
->base
)) {
5589 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base
),
5590 &seek
, off
, way
, OPENMODE_out
);
5591 if(seek
.off
==-1 && seek
.pos
==0 && seek
.state
==0)
5592 basic_ios_char_setstate(base
, IOSTATE_failbit
);
5597 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
5598 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
5599 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp_fpos
, 28)
5600 basic_ostream_char
* __thiscall
basic_ostream_char_seekp_fpos(basic_ostream_char
*this, fpos_int pos
)
5602 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5604 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos
));
5606 if(!ios_base_fail(&base
->base
)) {
5609 basic_streambuf_char_pubseekpos(basic_ios_char_rdbuf_get(base
),
5610 &seek
, pos
, OPENMODE_out
);
5611 if(seek
.off
==-1 && seek
.pos
==0 && seek
.state
==0)
5612 basic_ios_char_setstate(base
, IOSTATE_failbit
);
5617 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
5618 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
5619 DEFINE_THISCALL_WRAPPER(basic_ostream_char_tellp
, 8)
5620 fpos_int
* __thiscall
basic_ostream_char_tellp(basic_ostream_char
*this, fpos_int
*ret
)
5622 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5624 TRACE("(%p)\n", this);
5626 if(!ios_base_fail(&base
->base
)) {
5627 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base
),
5628 ret
, 0, SEEKDIR_cur
, OPENMODE_out
);
5637 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@PBDH@Z */
5638 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z */
5639 DEFINE_THISCALL_WRAPPER(basic_ostream_char_write
, 12)
5640 basic_ostream_char
* __thiscall
basic_ostream_char_write(basic_ostream_char
*this, const char *str
, streamsize count
)
5642 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5644 TRACE("(%p %s %ld)\n", this, debugstr_a(str
), count
);
5646 if(!basic_ostream_char_sentry_create(this)
5647 || basic_streambuf_char_sputn(base
->strbuf
, str
, count
)!=count
) {
5648 basic_ostream_char_sentry_destroy(this);
5649 basic_ios_char_setstate(base
, IOSTATE_badbit
);
5653 basic_ostream_char_sentry_destroy(this);
5657 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@F@Z */
5658 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@F@Z */
5659 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_short
, 8)
5660 basic_ostream_char
* __thiscall
basic_ostream_char_print_short(basic_ostream_char
*this, short val
)
5662 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5663 int state
= IOSTATE_goodbit
;
5665 TRACE("(%p %d)\n", this, val
);
5667 if(basic_ostream_char_sentry_create(this)) {
5668 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
5669 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
5670 ostreambuf_iterator_char dest
= {0, strbuf
};
5672 num_put_char_put_long(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
),
5673 (ios_base_flags_get(&base
->base
) & FMTFLAG_basefield
& (FMTFLAG_oct
| FMTFLAG_hex
))
5674 ? (LONG
)((unsigned short)val
) : (LONG
)val
);
5676 basic_ostream_char_sentry_destroy(this);
5678 basic_ios_char_setstate(base
, state
);
5682 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@G@Z */
5683 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@G@Z */
5684 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ushort
, 8)
5685 basic_ostream_char
* __thiscall
basic_ostream_char_print_ushort(basic_ostream_char
*this, unsigned short val
)
5687 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5688 int state
= IOSTATE_goodbit
;
5690 TRACE("(%p %u)\n", this, val
);
5692 if(basic_ostream_char_sentry_create(this)) {
5693 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
5694 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
5695 ostreambuf_iterator_char dest
= {0, strbuf
};
5697 num_put_char_put_ulong(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
5699 basic_ostream_char_sentry_destroy(this);
5701 basic_ios_char_setstate(base
, state
);
5705 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@H@Z */
5706 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z */
5707 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@J@Z */
5708 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@J@Z */
5709 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int
, 8)
5710 basic_ostream_char
* __thiscall
basic_ostream_char_print_int(basic_ostream_char
*this, int val
)
5712 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5713 int state
= IOSTATE_goodbit
;
5715 TRACE("(%p %d)\n", this, val
);
5717 if(basic_ostream_char_sentry_create(this)) {
5718 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
5719 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
5720 ostreambuf_iterator_char dest
= {0, strbuf
};
5722 num_put_char_put_long(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
5724 basic_ostream_char_sentry_destroy(this);
5726 basic_ios_char_setstate(base
, state
);
5730 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@I@Z */
5731 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@I@Z */
5732 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@K@Z */
5733 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@K@Z */
5734 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint
, 8)
5735 basic_ostream_char
* __thiscall
basic_ostream_char_print_uint(basic_ostream_char
*this, unsigned int val
)
5737 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5738 int state
= IOSTATE_goodbit
;
5740 TRACE("(%p %u)\n", this, val
);
5742 if(basic_ostream_char_sentry_create(this)) {
5743 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
5744 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
5745 ostreambuf_iterator_char dest
= {0, strbuf
};
5747 num_put_char_put_ulong(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
5749 basic_ostream_char_sentry_destroy(this);
5751 basic_ios_char_setstate(base
, state
);
5755 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@M@Z */
5756 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z */
5757 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_float
, 8)
5758 basic_ostream_char
* __thiscall
basic_ostream_char_print_float(basic_ostream_char
*this, float val
)
5760 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5761 int state
= IOSTATE_goodbit
;
5763 TRACE("(%p %f)\n", this, val
);
5765 if(basic_ostream_char_sentry_create(this)) {
5766 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
5767 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
5768 ostreambuf_iterator_char dest
= {0, strbuf
};
5770 num_put_char_put_double(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
5772 basic_ostream_char_sentry_destroy(this);
5774 basic_ios_char_setstate(base
, state
);
5778 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@N@Z */
5779 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z */
5780 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_double
, 12)
5781 basic_ostream_char
* __thiscall
basic_ostream_char_print_double(basic_ostream_char
*this, double val
)
5783 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5784 int state
= IOSTATE_goodbit
;
5786 TRACE("(%p %lf)\n", this, val
);
5788 if(basic_ostream_char_sentry_create(this)) {
5789 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
5790 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
5791 ostreambuf_iterator_char dest
= {0, strbuf
};
5793 num_put_char_put_double(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
5795 basic_ostream_char_sentry_destroy(this);
5797 basic_ios_char_setstate(base
, state
);
5801 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@O@Z */
5802 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@O@Z */
5803 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ldouble
, 12)
5804 basic_ostream_char
* __thiscall
basic_ostream_char_print_ldouble(basic_ostream_char
*this, double val
)
5806 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5807 int state
= IOSTATE_goodbit
;
5809 TRACE("(%p %lf)\n", this, val
);
5811 if(basic_ostream_char_sentry_create(this)) {
5812 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
5813 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
5814 ostreambuf_iterator_char dest
= {0, strbuf
};
5816 num_put_char_put_ldouble(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
5818 basic_ostream_char_sentry_destroy(this);
5820 basic_ios_char_setstate(base
, state
);
5824 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
5825 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
5826 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_streambuf
, 8)
5827 basic_ostream_char
* __thiscall
basic_ostream_char_print_streambuf(basic_ostream_char
*this, basic_streambuf_char
*val
)
5829 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5830 IOSB_iostate state
= IOSTATE_badbit
;
5833 TRACE("(%p %p)\n", this, val
);
5835 if(basic_ostream_char_sentry_create(this)) {
5836 for(c
= basic_streambuf_char_sgetc(val
); c
!=EOF
;
5837 c
= basic_streambuf_char_snextc(val
)) {
5838 state
= IOSTATE_goodbit
;
5840 if(basic_streambuf_char_sputc(base
->strbuf
, c
) == EOF
) {
5841 state
= IOSTATE_badbit
;
5846 state
= IOSTATE_badbit
;
5848 basic_ostream_char_sentry_destroy(this);
5850 ios_base_width_set(&base
->base
, 0);
5851 basic_ios_char_setstate(base
, state
);
5855 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PBX@Z */
5856 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEBX@Z */
5857 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ptr
, 8)
5858 basic_ostream_char
* __thiscall
basic_ostream_char_print_ptr(basic_ostream_char
*this, const void *val
)
5860 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5861 int state
= IOSTATE_goodbit
;
5863 TRACE("(%p %p)\n", this, val
);
5865 if(basic_ostream_char_sentry_create(this)) {
5866 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
5867 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
5868 ostreambuf_iterator_char dest
= {0, strbuf
};
5870 num_put_char_put_ptr(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
5872 basic_ostream_char_sentry_destroy(this);
5874 basic_ios_char_setstate(base
, state
);
5878 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_J@Z */
5879 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_J@Z */
5880 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int64
, 12)
5881 basic_ostream_char
* __thiscall
basic_ostream_char_print_int64(basic_ostream_char
*this, __int64 val
)
5883 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5884 int state
= IOSTATE_goodbit
;
5886 TRACE("(%p)\n", this);
5888 if(basic_ostream_char_sentry_create(this)) {
5889 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
5890 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
5891 ostreambuf_iterator_char dest
= {0, strbuf
};
5893 num_put_char_put_int64(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
5895 basic_ostream_char_sentry_destroy(this);
5897 basic_ios_char_setstate(base
, state
);
5901 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_K@Z */
5902 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z */
5903 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint64
, 12)
5904 basic_ostream_char
* __thiscall
basic_ostream_char_print_uint64(basic_ostream_char
*this, unsigned __int64 val
)
5906 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5907 int state
= IOSTATE_goodbit
;
5909 TRACE("(%p)\n", this);
5911 if(basic_ostream_char_sentry_create(this)) {
5912 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
5913 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
5914 ostreambuf_iterator_char dest
= {0, strbuf
};
5916 num_put_char_put_uint64(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
5918 basic_ostream_char_sentry_destroy(this);
5920 basic_ios_char_setstate(base
, state
);
5924 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_N@Z */
5925 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_N@Z */
5926 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_bool
, 8)
5927 basic_ostream_char
* __thiscall
basic_ostream_char_print_bool(basic_ostream_char
*this, MSVCP_bool val
)
5929 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5930 int state
= IOSTATE_goodbit
;
5932 TRACE("(%p %x)\n", this, val
);
5934 if(basic_ostream_char_sentry_create(this)) {
5935 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
5936 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
5937 ostreambuf_iterator_char dest
= {0, strbuf
};
5939 num_put_char_put_bool(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
5941 basic_ostream_char_sentry_destroy(this);
5943 basic_ios_char_setstate(base
, state
);
5947 /* ?ends@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
5948 /* ?ends@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
5949 basic_ostream_char
* __cdecl
basic_ostream_char_ends(basic_ostream_char
*ostr
)
5951 TRACE("(%p)\n", ostr
);
5953 basic_ostream_char_put(ostr
, 0);
5957 /* ?endl@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
5958 /* ?endl@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
5959 basic_ostream_char
* __cdecl
basic_ostream_char_endl(basic_ostream_char
*ostr
)
5961 TRACE("(%p)\n", ostr
);
5963 basic_ostream_char_put(ostr
, '\n');
5964 basic_ostream_char_flush(ostr
);
5968 /* $?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 */
5969 /* ??$?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 */
5970 basic_ostream_char
* __cdecl
basic_ostream_char_print_bstr(basic_ostream_char
*ostr
, const basic_string_char
*str
)
5972 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(ostr
);
5973 IOSB_iostate state
= IOSTATE_goodbit
;
5975 TRACE("(%p %p)\n", ostr
, str
);
5977 if(basic_ostream_char_sentry_create(ostr
)) {
5978 MSVCP_size_t len
= MSVCP_basic_string_char_length(str
);
5979 streamsize pad
= (base
->base
.wide
>len
? base
->base
.wide
-len
: 0);
5981 if((base
->base
.fmtfl
& FMTFLAG_adjustfield
) != FMTFLAG_left
) {
5982 for(; pad
!=0; pad
--) {
5983 if(basic_streambuf_char_sputc(base
->strbuf
, base
->fillch
) == EOF
) {
5984 state
= IOSTATE_badbit
;
5990 if(state
== IOSTATE_goodbit
) {
5991 if(basic_streambuf_char_sputn(base
->strbuf
, MSVCP_basic_string_char_c_str(str
), len
) != len
)
5992 state
= IOSTATE_badbit
;
5995 if(state
== IOSTATE_goodbit
) {
5996 for(; pad
!=0; pad
--) {
5997 if(basic_streambuf_char_sputc(base
->strbuf
, base
->fillch
) == EOF
) {
5998 state
= IOSTATE_badbit
;
6004 base
->base
.wide
= 0;
6006 state
= IOSTATE_badbit
;
6008 basic_ostream_char_sentry_destroy(ostr
);
6010 basic_ios_char_setstate(base
, state
);
6014 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@C@Z */
6015 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@C@Z */
6016 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@D@Z */
6017 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z */
6018 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@E@Z */
6019 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@E@Z */
6020 basic_ostream_char
* __cdecl
basic_ostream_char_print_ch(basic_ostream_char
*ostr
, char ch
)
6022 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(ostr
);
6023 IOSB_iostate state
= IOSTATE_goodbit
;
6025 TRACE("(%p %d)\n", ostr
, ch
);
6027 if(basic_ostream_char_sentry_create(ostr
)) {
6028 streamsize pad
= (base
->base
.wide
>1 ? base
->base
.wide
-1 : 0);
6030 if((base
->base
.fmtfl
& FMTFLAG_adjustfield
) != FMTFLAG_left
) {
6031 for(; pad
!=0; pad
--) {
6032 if(basic_streambuf_char_sputc(base
->strbuf
, base
->fillch
) == EOF
) {
6033 state
= IOSTATE_badbit
;
6039 if(state
== IOSTATE_goodbit
) {
6040 if(basic_streambuf_char_sputc(base
->strbuf
, ch
) == EOF
)
6041 state
= IOSTATE_badbit
;
6044 if(state
== IOSTATE_goodbit
) {
6045 for(; pad
!=0; pad
--) {
6046 if(basic_streambuf_char_sputc(base
->strbuf
, base
->fillch
) == EOF
) {
6047 state
= IOSTATE_badbit
;
6053 base
->base
.wide
= 0;
6055 state
= IOSTATE_badbit
;
6057 basic_ostream_char_sentry_destroy(ostr
);
6059 basic_ios_char_setstate(base
, state
);
6063 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBC@Z */
6064 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBC@Z */
6065 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z */
6066 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBD@Z */
6067 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBE@Z */
6068 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBE@Z */
6069 basic_ostream_char
* __cdecl
basic_ostream_char_print_str(basic_ostream_char
*ostr
, const char *str
)
6071 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(ostr
);
6072 IOSB_iostate state
= IOSTATE_goodbit
;
6074 TRACE("(%p %s)\n", ostr
, str
);
6076 if(basic_ostream_char_sentry_create(ostr
)) {
6077 MSVCP_size_t len
= strlen(str
);
6078 streamsize pad
= (base
->base
.wide
>len
? base
->base
.wide
-len
: 0);
6080 if((base
->base
.fmtfl
& FMTFLAG_adjustfield
) != FMTFLAG_left
) {
6081 for(; pad
!=0; pad
--) {
6082 if(basic_streambuf_char_sputc(base
->strbuf
, base
->fillch
) == EOF
) {
6083 state
= IOSTATE_badbit
;
6089 if(state
== IOSTATE_goodbit
) {
6090 if(basic_streambuf_char_sputn(base
->strbuf
, str
, len
) != len
)
6091 state
= IOSTATE_badbit
;
6094 if(state
== IOSTATE_goodbit
) {
6095 for(; pad
!=0; pad
--) {
6096 if(basic_streambuf_char_sputc(base
->strbuf
, base
->fillch
) == EOF
) {
6097 state
= IOSTATE_badbit
;
6103 base
->base
.wide
= 0;
6105 state
= IOSTATE_badbit
;
6107 basic_ostream_char_sentry_destroy(ostr
);
6109 basic_ios_char_setstate(base
, state
);
6113 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
6114 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
6115 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func
, 8)
6116 basic_ostream_char
* __thiscall
basic_ostream_char_print_func(basic_ostream_char
*this,
6117 basic_ostream_char
* (__cdecl
*pfunc
)(basic_ostream_char
*))
6119 TRACE("(%p %p)\n", this, pfunc
);
6124 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@DU?$char_traits@D@std@@@1@AAV21@@Z@Z */
6125 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z */
6126 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func_basic_ios
, 8)
6127 basic_ostream_char
* __thiscall
basic_ostream_char_print_func_basic_ios(basic_ostream_char
*this,
6128 basic_ios_char
* (__cdecl
*pfunc
)(basic_ios_char
*))
6130 TRACE("(%p %p)\n", this, pfunc
);
6131 pfunc(basic_ostream_char_get_basic_ios(this));
6135 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
6136 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
6137 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func_ios_base
, 8)
6138 basic_ostream_char
* __thiscall
basic_ostream_char_print_func_ios_base(
6139 basic_ostream_char
*this, ios_base
* (__cdecl
*pfunc
)(ios_base
*))
6141 TRACE("(%p %p)\n", this, pfunc
);
6142 pfunc(&basic_ostream_char_get_basic_ios(this)->base
);
6146 /* Caution: basic_ostream uses virtual inheritance. */
6147 static inline basic_ios_wchar
* basic_ostream_wchar_get_basic_ios(basic_ostream_wchar
*this)
6149 return (basic_ios_wchar
*)((char*)this+this->vbtable
[1]);
6152 static inline basic_ios_wchar
* basic_ostream_wchar_to_basic_ios(basic_ostream_wchar
*ptr
)
6154 return (basic_ios_wchar
*)((char*)ptr
+basic_ostream_wchar_vbtable
[1]);
6157 static inline basic_ostream_wchar
* basic_ostream_wchar_from_basic_ios(basic_ios_wchar
*ptr
)
6159 return (basic_ostream_wchar
*)((char*)ptr
-basic_ostream_wchar_vbtable
[1]);
6162 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
6163 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
6164 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_ctor
, 16)
6165 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_ctor(basic_ostream_wchar
*this,
6166 basic_streambuf_wchar
*strbuf
, MSVCP_bool isstd
, MSVCP_bool virt_init
)
6168 basic_ios_wchar
*base
;
6170 TRACE("(%p %p %d %d)\n", this, strbuf
, isstd
, virt_init
);
6173 this->vbtable
= basic_ostream_wchar_vbtable
;
6174 base
= basic_ostream_wchar_get_basic_ios(this);
6175 basic_ios_wchar_ctor(base
);
6177 base
= basic_ostream_wchar_get_basic_ios(this);
6180 base
->base
.vtable
= &MSVCP_basic_ostream_wchar_vtable
;
6181 basic_ios_wchar_init(base
, strbuf
, isstd
);
6185 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
6186 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
6187 DEFINE_THISCALL_WRAPPER(basic_ostream_short_ctor
, 16)
6188 basic_ostream_wchar
* __thiscall
basic_ostream_short_ctor(basic_ostream_wchar
*this,
6189 basic_streambuf_wchar
*strbuf
, MSVCP_bool isstd
, MSVCP_bool virt_init
)
6191 basic_ostream_wchar_ctor(this, strbuf
, isstd
, virt_init
);
6192 basic_ostream_wchar_get_basic_ios(this)->base
.vtable
= &MSVCP_basic_ostream_short_vtable
;
6196 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@_N@Z */
6197 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z */
6198 static basic_ostream_wchar
* basic_ostream_wchar_ctor_uninitialized(basic_ostream_wchar
*this,
6199 int uninitialized
, MSVCP_bool addstd
, MSVCP_bool virt_init
)
6201 basic_ios_wchar
*base
;
6203 TRACE("(%p %d %x)\n", this, uninitialized
, addstd
);
6206 this->vbtable
= basic_ostream_wchar_vbtable
;
6207 base
= basic_ostream_wchar_get_basic_ios(this);
6208 basic_ios_wchar_ctor(base
);
6210 base
= basic_ostream_wchar_get_basic_ios(this);
6213 base
->base
.vtable
= &MSVCP_basic_ostream_wchar_vtable
;
6215 ios_base_Addstd(&base
->base
);
6219 /* ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
6220 /* ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
6221 /* ??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UAE@XZ */
6222 /* ??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
6223 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_dtor
, 4)
6224 void __thiscall
basic_ostream_wchar_dtor(basic_ios_wchar
*base
)
6226 basic_ostream_wchar
*this = basic_ostream_wchar_from_basic_ios(base
);
6228 /* don't destroy virtual base here */
6229 TRACE("(%p)\n", this);
6232 /* ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
6233 /* ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
6234 /* ??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
6235 /* ??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
6236 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_vbase_dtor
, 4)
6237 void __thiscall
basic_ostream_wchar_vbase_dtor(basic_ostream_wchar
*this)
6239 TRACE("(%p)\n", this);
6240 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(this));
6241 basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(this));
6244 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_vector_dtor
, 8)
6245 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
6247 basic_ostream_wchar
*this = basic_ostream_wchar_from_basic_ios(base
);
6249 TRACE("(%p %x)\n", this, flags
);
6252 /* we have an array, with the number of elements stored before the first object */
6253 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
6255 for(i
=*ptr
-1; i
>=0; i
--)
6256 basic_ostream_wchar_vbase_dtor(this+i
);
6257 MSVCRT_operator_delete(ptr
);
6259 basic_ostream_wchar_vbase_dtor(this);
6261 MSVCRT_operator_delete(this);
6267 /* ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ */
6268 /* ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ */
6269 /* ?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@XZ */
6270 /* ?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ */
6271 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_flush
, 4)
6272 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_flush(basic_ostream_wchar
*this)
6274 /* this function is not matching C++ specification */
6275 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
6277 TRACE("(%p)\n", this);
6279 if(basic_ios_wchar_rdbuf_get(base
) && ios_base_good(&base
->base
)
6280 && basic_streambuf_wchar_pubsync(basic_ios_wchar_rdbuf_get(base
))==-1)
6281 basic_ios_wchar_setstate(base
, IOSTATE_badbit
);
6285 /* ?flush@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
6286 /* ?flush@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
6287 /* ?flush@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
6288 /* ?flush@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
6289 basic_ostream_wchar
* __cdecl
flush_ostream_wchar(basic_ostream_wchar
*ostream
)
6291 return basic_ostream_wchar_flush(ostream
);
6294 /* ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
6295 /* ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
6296 /* ?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
6297 /* ?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
6298 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar__Osfx
, 4)
6299 void __thiscall
basic_ostream_wchar__Osfx(basic_ostream_wchar
*this)
6301 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
6303 TRACE("(%p)\n", this);
6305 if(base
->base
.fmtfl
& FMTFLAG_unitbuf
)
6306 basic_ostream_wchar_flush(this);
6309 /* ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
6310 /* ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
6311 /* ?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
6312 /* ?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
6313 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_osfx
, 4)
6314 void __thiscall
basic_ostream_wchar_osfx(basic_ostream_wchar
*this)
6316 TRACE("(%p)\n", this);
6317 basic_ostream_wchar__Osfx(this);
6320 static BOOL
basic_ostream_wchar_sentry_create(basic_ostream_wchar
*ostr
)
6322 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(ostr
);
6324 if(basic_ios_wchar_rdbuf_get(base
))
6325 basic_streambuf_wchar__Lock(base
->strbuf
);
6327 if(ios_base_good(&base
->base
) && base
->stream
)
6328 basic_ostream_wchar_flush(base
->stream
);
6330 return ios_base_good(&base
->base
);
6333 static void basic_ostream_wchar_sentry_destroy(basic_ostream_wchar
*ostr
)
6335 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(ostr
);
6337 if(ios_base_good(&base
->base
) && !__uncaught_exception())
6338 basic_ostream_wchar_osfx(ostr
);
6340 if(basic_ios_wchar_rdbuf_get(base
))
6341 basic_streambuf_wchar__Unlock(base
->strbuf
);
6344 /* ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE_NXZ */
6345 /* ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA_NXZ */
6346 /* ?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE_NXZ */
6347 /* ?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA_NXZ */
6348 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_opfx
, 4)
6349 MSVCP_bool __thiscall
basic_ostream_wchar_opfx(basic_ostream_wchar
*this)
6351 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
6353 TRACE("(%p)\n", this);
6355 if(ios_base_good(&base
->base
) && base
->stream
)
6356 basic_ostream_wchar_flush(base
->stream
);
6357 return ios_base_good(&base
->base
);
6360 /* ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@_W@Z */
6361 /* ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z */
6362 /* ?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@G@Z */
6363 /* ?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z */
6364 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_put
, 8)
6365 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_put(basic_ostream_wchar
*this, wchar_t ch
)
6367 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
6369 TRACE("(%p %c)\n", this, ch
);
6371 if(!basic_ostream_wchar_sentry_create(this)
6372 || basic_streambuf_wchar_sputc(base
->strbuf
, ch
)==WEOF
) {
6373 basic_ostream_wchar_sentry_destroy(this);
6374 basic_ios_wchar_setstate(base
, IOSTATE_badbit
);
6378 basic_ostream_wchar_sentry_destroy(this);
6382 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@JH@Z */
6383 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z */
6384 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@JH@Z */
6385 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z */
6386 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_seekp
, 12)
6387 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_seekp(basic_ostream_wchar
*this, streamoff off
, int way
)
6389 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
6391 TRACE("(%p %ld %d)\n", this, off
, way
);
6393 if(!ios_base_fail(&base
->base
)) {
6396 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base
),
6397 &seek
, off
, way
, OPENMODE_out
);
6398 if(seek
.off
==-1 && seek
.pos
==0 && seek
.state
==0)
6399 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
6404 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
6405 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
6406 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
6407 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
6408 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_seekp_fpos
, 28)
6409 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_seekp_fpos(basic_ostream_wchar
*this, fpos_int pos
)
6411 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
6413 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos
));
6415 if(!ios_base_fail(&base
->base
)) {
6418 basic_streambuf_wchar_pubseekpos(basic_ios_wchar_rdbuf_get(base
),
6419 &seek
, pos
, OPENMODE_out
);
6420 if(seek
.off
==-1 && seek
.pos
==0 && seek
.state
==0)
6421 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
6426 /* ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@XZ */
6427 /* ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
6428 /* ?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@XZ */
6429 /* ?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
6430 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_tellp
, 8)
6431 fpos_int
* __thiscall
basic_ostream_wchar_tellp(basic_ostream_wchar
*this, fpos_int
*ret
)
6433 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
6435 TRACE("(%p)\n", this);
6437 if(!ios_base_fail(&base
->base
)) {
6438 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base
),
6439 ret
, 0, SEEKDIR_cur
, OPENMODE_out
);
6448 /* ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PB_WH@Z */
6449 /* ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEB_W_J@Z */
6450 /* ?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@PBGH@Z */
6451 /* ?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEBG_J@Z */
6452 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_write
, 12)
6453 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_write(basic_ostream_wchar
*this, const wchar_t *str
, streamsize count
)
6455 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
6457 TRACE("(%p %s %ld)\n", this, debugstr_w(str
), count
);
6459 if(!basic_ostream_wchar_sentry_create(this)
6460 || basic_streambuf_wchar_sputn(base
->strbuf
, str
, count
)!=count
) {
6461 basic_ostream_wchar_sentry_destroy(this);
6462 basic_ios_wchar_setstate(base
, IOSTATE_badbit
);
6466 basic_ostream_wchar_sentry_destroy(this);
6470 static basic_ostream_wchar
* basic_ostream_print_short(basic_ostream_wchar
*this, short val
, const num_put
*numput
)
6472 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
6473 int state
= IOSTATE_goodbit
;
6475 TRACE("(%p %d)\n", this, val
);
6477 if(basic_ostream_wchar_sentry_create(this)) {
6478 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
6479 ostreambuf_iterator_wchar dest
= {0, strbuf
};
6481 num_put_wchar_put_long(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
),
6482 (ios_base_flags_get(&base
->base
) & FMTFLAG_basefield
& (FMTFLAG_oct
| FMTFLAG_hex
))
6483 ? (LONG
)((unsigned short)val
) : (LONG
)val
);
6485 basic_ostream_wchar_sentry_destroy(this);
6487 basic_ios_wchar_setstate(base
, state
);
6491 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@F@Z */
6492 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@F@Z */
6493 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_short
, 8)
6494 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_short(basic_ostream_wchar
*this, short val
)
6496 return basic_ostream_print_short(this, val
, num_put_wchar_use_facet(
6497 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc
));
6500 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@F@Z */
6501 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@F@Z */
6502 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_short
, 8)
6503 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_short(basic_ostream_wchar
*this, short val
)
6505 return basic_ostream_print_short(this, val
, num_put_short_use_facet(
6506 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc
));
6509 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@G@Z */
6510 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@G@Z */
6511 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ushort
, 8)
6512 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_ushort(basic_ostream_wchar
*this, unsigned short val
)
6514 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
6515 int state
= IOSTATE_goodbit
;
6517 TRACE("(%p %u)\n", this, val
);
6519 if(basic_ostream_wchar_sentry_create(this)) {
6520 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
6521 const num_put
*numput
= num_put_wchar_use_facet(strbuf
->loc
);
6522 ostreambuf_iterator_wchar dest
= {0, strbuf
};
6524 num_put_wchar_put_ulong(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
6526 basic_ostream_wchar_sentry_destroy(this);
6528 basic_ios_wchar_setstate(base
, state
);
6532 static basic_ostream_wchar
* basic_ostream_print_int(basic_ostream_wchar
*this, int val
, const num_put
*numput
)
6534 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
6535 int state
= IOSTATE_goodbit
;
6537 TRACE("(%p %d)\n", this, val
);
6539 if(basic_ostream_wchar_sentry_create(this)) {
6540 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
6541 ostreambuf_iterator_wchar dest
= {0, strbuf
};
6543 num_put_wchar_put_long(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
6545 basic_ostream_wchar_sentry_destroy(this);
6547 basic_ios_wchar_setstate(base
, state
);
6551 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@H@Z */
6552 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@H@Z */
6553 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@J@Z */
6554 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@J@Z */
6555 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_int
, 8)
6556 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_int(basic_ostream_wchar
*this, int val
)
6558 return basic_ostream_print_int(this, val
, num_put_wchar_use_facet(
6559 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc
));
6562 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@H@Z */
6563 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@H@Z */
6564 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@J@Z */
6565 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@J@Z */
6566 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_int
, 8)
6567 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_int(basic_ostream_wchar
*this, int val
)
6569 return basic_ostream_print_int(this, val
, num_put_short_use_facet(
6570 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc
));
6573 static basic_ostream_wchar
* basic_ostream_print_uint(basic_ostream_wchar
*this, unsigned int val
, const num_put
*numput
)
6575 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
6576 int state
= IOSTATE_goodbit
;
6578 TRACE("(%p %u)\n", this, val
);
6580 if(basic_ostream_wchar_sentry_create(this)) {
6581 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
6582 ostreambuf_iterator_wchar dest
= {0, strbuf
};
6584 num_put_wchar_put_ulong(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
6586 basic_ostream_wchar_sentry_destroy(this);
6588 basic_ios_wchar_setstate(base
, state
);
6592 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@I@Z */
6593 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@I@Z */
6594 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@K@Z */
6595 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@K@Z */
6596 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_uint
, 8)
6597 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_uint(basic_ostream_wchar
*this, unsigned int val
)
6599 return basic_ostream_print_uint(this, val
, num_put_wchar_use_facet(
6600 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc
));
6603 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@I@Z */
6604 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@I@Z */
6605 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@K@Z */
6606 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@K@Z */
6607 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_uint
, 8)
6608 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_uint(basic_ostream_wchar
*this, unsigned int val
)
6610 return basic_ostream_print_uint(this, val
, num_put_short_use_facet(
6611 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc
));
6614 static basic_ostream_wchar
* basic_ostream_print_float(basic_ostream_wchar
*this, float val
, const num_put
*numput
)
6616 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
6617 int state
= IOSTATE_goodbit
;
6619 TRACE("(%p %f)\n", this, val
);
6621 if(basic_ostream_wchar_sentry_create(this)) {
6622 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
6623 ostreambuf_iterator_wchar dest
= {0, strbuf
};
6625 num_put_wchar_put_double(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
6627 basic_ostream_wchar_sentry_destroy(this);
6629 basic_ios_wchar_setstate(base
, state
);
6633 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@M@Z */
6634 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@M@Z */
6635 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_float
, 8)
6636 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_float(basic_ostream_wchar
*this, float val
)
6638 return basic_ostream_print_float(this, val
, num_put_wchar_use_facet(
6639 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc
));
6642 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@M@Z */
6643 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@M@Z */
6644 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_float
, 8)
6645 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_float(basic_ostream_wchar
*this, float val
)
6647 return basic_ostream_print_float(this, val
, num_put_short_use_facet(
6648 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc
));
6651 static basic_ostream_wchar
* basic_ostream_print_double(basic_ostream_wchar
*this, double val
, const num_put
*numput
)
6653 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
6654 int state
= IOSTATE_goodbit
;
6656 TRACE("(%p %lf)\n", this, val
);
6658 if(basic_ostream_wchar_sentry_create(this)) {
6659 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
6660 ostreambuf_iterator_wchar dest
= {0, strbuf
};
6662 num_put_wchar_put_double(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
6664 basic_ostream_wchar_sentry_destroy(this);
6666 basic_ios_wchar_setstate(base
, state
);
6670 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@N@Z */
6671 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@N@Z */
6672 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_double
, 12)
6673 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_double(basic_ostream_wchar
*this, double val
)
6675 return basic_ostream_print_double(this, val
, num_put_wchar_use_facet(
6676 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc
));
6679 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@N@Z */
6680 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@N@Z */
6681 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_double
, 12)
6682 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_double(basic_ostream_wchar
*this, double val
)
6684 return basic_ostream_print_double(this, val
, num_put_short_use_facet(
6685 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc
));
6688 static basic_ostream_wchar
* basic_ostream_print_ldouble(basic_ostream_wchar
*this, double val
, const num_put
*numput
)
6690 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
6691 int state
= IOSTATE_goodbit
;
6693 TRACE("(%p %lf)\n", this, val
);
6695 if(basic_ostream_wchar_sentry_create(this)) {
6696 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
6697 ostreambuf_iterator_wchar dest
= {0, strbuf
};
6699 num_put_wchar_put_ldouble(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
6701 basic_ostream_wchar_sentry_destroy(this);
6703 basic_ios_wchar_setstate(base
, state
);
6707 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@O@Z */
6708 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@O@Z */
6709 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ldouble
, 12)
6710 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_ldouble(basic_ostream_wchar
*this, double val
)
6712 return basic_ostream_print_ldouble(this, val
, num_put_wchar_use_facet(
6713 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc
));
6716 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@O@Z */
6717 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@O@Z */
6718 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_ldouble
, 12)
6719 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_ldouble(basic_ostream_wchar
*this, double val
)
6721 return basic_ostream_print_ldouble(this, val
, num_put_short_use_facet(
6722 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc
));
6725 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
6726 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
6727 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
6728 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
6729 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_streambuf
, 8)
6730 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_streambuf(basic_ostream_wchar
*this, basic_streambuf_wchar
*val
)
6732 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
6733 IOSB_iostate state
= IOSTATE_badbit
;
6734 unsigned short c
= '\n';
6736 TRACE("(%p %p)\n", this, val
);
6738 if(basic_ostream_wchar_sentry_create(this)) {
6739 for(c
= basic_streambuf_wchar_sgetc(val
); c
!=WEOF
;
6740 c
= basic_streambuf_wchar_snextc(val
)) {
6741 state
= IOSTATE_goodbit
;
6743 if(basic_streambuf_wchar_sputc(base
->strbuf
, c
) == WEOF
) {
6744 state
= IOSTATE_badbit
;
6749 state
= IOSTATE_badbit
;
6751 basic_ostream_wchar_sentry_destroy(this);
6753 ios_base_width_set(&base
->base
, 0);
6754 basic_ios_wchar_setstate(base
, state
);
6758 static basic_ostream_wchar
* basic_ostream_print_ptr(basic_ostream_wchar
*this, const void *val
, const num_put
*numput
)
6760 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
6761 int state
= IOSTATE_goodbit
;
6763 TRACE("(%p %p)\n", this, val
);
6765 if(basic_ostream_wchar_sentry_create(this)) {
6766 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
6767 ostreambuf_iterator_wchar dest
= {0, strbuf
};
6769 num_put_wchar_put_ptr(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
6771 basic_ostream_wchar_sentry_destroy(this);
6773 basic_ios_wchar_setstate(base
, state
);
6777 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PBX@Z */
6778 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEBX@Z */
6779 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ptr
, 8)
6780 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_ptr(basic_ostream_wchar
*this, const void *val
)
6782 return basic_ostream_print_ptr(this, val
, num_put_wchar_use_facet(
6783 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc
));
6786 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@PBX@Z */
6787 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEBX@Z */
6788 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_ptr
, 8)
6789 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_ptr(basic_ostream_wchar
*this, const void *val
)
6791 return basic_ostream_print_ptr(this, val
, num_put_short_use_facet(
6792 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc
));
6795 static basic_ostream_wchar
* basic_ostream_print_int64(basic_ostream_wchar
*this, __int64 val
, const num_put
*numput
)
6797 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
6798 int state
= IOSTATE_goodbit
;
6800 TRACE("(%p)\n", this);
6802 if(basic_ostream_wchar_sentry_create(this)) {
6803 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
6804 ostreambuf_iterator_wchar dest
= {0, strbuf
};
6806 num_put_wchar_put_int64(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
6808 basic_ostream_wchar_sentry_destroy(this);
6810 basic_ios_wchar_setstate(base
, state
);
6814 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_J@Z */
6815 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_J@Z */
6816 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_int64
, 12)
6817 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_int64(basic_ostream_wchar
*this, __int64 val
)
6819 return basic_ostream_print_int64(this, val
, num_put_wchar_use_facet(
6820 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc
));
6823 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_J@Z */
6824 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_J@Z */
6825 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_int64
, 12)
6826 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_int64(basic_ostream_wchar
*this, __int64 val
)
6828 return basic_ostream_print_int64(this, val
, num_put_short_use_facet(
6829 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc
));
6832 static basic_ostream_wchar
* basic_ostream_print_uint64(basic_ostream_wchar
*this, unsigned __int64 val
, const num_put
*numput
)
6834 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
6835 int state
= IOSTATE_goodbit
;
6837 TRACE("(%p)\n", this);
6839 if(basic_ostream_wchar_sentry_create(this)) {
6840 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
6841 ostreambuf_iterator_wchar dest
= {0, strbuf
};
6843 num_put_wchar_put_uint64(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
6845 basic_ostream_wchar_sentry_destroy(this);
6847 basic_ios_wchar_setstate(base
, state
);
6851 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_K@Z */
6852 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_K@Z */
6853 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_uint64
, 12)
6854 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_uint64(basic_ostream_wchar
*this, unsigned __int64 val
)
6856 return basic_ostream_print_uint64(this, val
, num_put_wchar_use_facet(
6857 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc
));
6860 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_K@Z */
6861 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_K@Z */
6862 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_uint64
, 12)
6863 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_uint64(basic_ostream_wchar
*this, unsigned __int64 val
)
6865 return basic_ostream_print_uint64(this, val
, num_put_short_use_facet(
6866 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc
));
6869 static basic_ostream_wchar
* basic_ostream_print_bool(basic_ostream_wchar
*this, MSVCP_bool val
, const num_put
*numput
)
6871 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
6872 int state
= IOSTATE_goodbit
;
6874 TRACE("(%p %x)\n", this, val
);
6876 if(basic_ostream_wchar_sentry_create(this)) {
6877 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
6878 ostreambuf_iterator_wchar dest
= {0, strbuf
};
6880 num_put_wchar_put_bool(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
6882 basic_ostream_wchar_sentry_destroy(this);
6884 basic_ios_wchar_setstate(base
, state
);
6888 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_N@Z */
6889 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_N@Z */
6890 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_bool
, 8)
6891 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_bool(basic_ostream_wchar
*this, MSVCP_bool val
)
6893 return basic_ostream_print_bool(this, val
, num_put_wchar_use_facet(
6894 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc
));
6897 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_N@Z */
6898 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_N@Z */
6899 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_bool
, 8)
6900 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_bool(basic_ostream_wchar
*this, MSVCP_bool val
)
6902 return basic_ostream_print_bool(this, val
, num_put_short_use_facet(
6903 basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this))->loc
));
6906 /* ?ends@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
6907 /* ?ends@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
6908 /* ?ends@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
6909 /* ?ends@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
6910 basic_ostream_wchar
* __cdecl
basic_ostream_wchar_ends(basic_ostream_wchar
*ostr
)
6912 TRACE("(%p)\n", ostr
);
6914 basic_ostream_wchar_put(ostr
, 0);
6918 /* ?endl@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
6919 /* ?endl@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
6920 /* ?endl@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
6921 /* ?endl@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
6922 basic_ostream_wchar
* __cdecl
basic_ostream_wchar_endl(basic_ostream_wchar
*ostr
)
6924 TRACE("(%p)\n", ostr
);
6926 basic_ostream_wchar_put(ostr
, '\n');
6927 basic_ostream_wchar_flush(ostr
);
6931 /* ??$?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 */
6932 /* ??$?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 */
6933 /* ??$?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 */
6934 /* ??$?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 */
6935 basic_ostream_wchar
* __cdecl
basic_ostream_wchar_print_bstr(basic_ostream_wchar
*ostr
, const basic_string_wchar
*str
)
6937 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(ostr
);
6938 IOSB_iostate state
= IOSTATE_goodbit
;
6940 TRACE("(%p %p)\n", ostr
, str
);
6942 if(basic_ostream_wchar_sentry_create(ostr
)) {
6943 MSVCP_size_t len
= MSVCP_basic_string_wchar_length(str
);
6944 streamsize pad
= (base
->base
.wide
>len
? base
->base
.wide
-len
: 0);
6946 if((base
->base
.fmtfl
& FMTFLAG_adjustfield
) != FMTFLAG_left
) {
6947 for(; pad
!=0; pad
--) {
6948 if(basic_streambuf_wchar_sputc(base
->strbuf
, base
->fillch
) == WEOF
) {
6949 state
= IOSTATE_badbit
;
6955 if(state
== IOSTATE_goodbit
) {
6956 if(basic_streambuf_wchar_sputn(base
->strbuf
, MSVCP_basic_string_wchar_c_str(str
), len
) != len
)
6957 state
= IOSTATE_badbit
;
6960 if(state
== IOSTATE_goodbit
) {
6961 for(; pad
!=0; pad
--) {
6962 if(basic_streambuf_wchar_sputc(base
->strbuf
, base
->fillch
) == WEOF
) {
6963 state
= IOSTATE_badbit
;
6969 base
->base
.wide
= 0;
6971 state
= IOSTATE_badbit
;
6973 basic_ostream_wchar_sentry_destroy(ostr
);
6975 basic_ios_wchar_setstate(base
, state
);
6979 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@_W@Z */
6980 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@_W@Z */
6981 /* ??$?6GU?$char_traits@G@std@@@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@G@Z */
6982 /* ??$?6GU?$char_traits@G@std@@@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@G@Z */
6983 basic_ostream_wchar
* __cdecl
basic_ostream_wchar_print_ch(basic_ostream_wchar
*ostr
, wchar_t ch
)
6985 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(ostr
);
6986 IOSB_iostate state
= IOSTATE_goodbit
;
6988 TRACE("(%p %d)\n", ostr
, ch
);
6990 if(basic_ostream_wchar_sentry_create(ostr
)) {
6991 streamsize pad
= (base
->base
.wide
>1 ? base
->base
.wide
-1 : 0);
6993 if((base
->base
.fmtfl
& FMTFLAG_adjustfield
) != FMTFLAG_left
) {
6994 for(; pad
!=0; pad
--) {
6995 if(basic_streambuf_wchar_sputc(base
->strbuf
, base
->fillch
) == WEOF
) {
6996 state
= IOSTATE_badbit
;
7002 if(state
== IOSTATE_goodbit
) {
7003 if(basic_streambuf_wchar_sputc(base
->strbuf
, ch
) == WEOF
)
7004 state
= IOSTATE_badbit
;
7007 if(state
== IOSTATE_goodbit
) {
7008 for(; pad
!=0; pad
--) {
7009 if(basic_streambuf_wchar_sputc(base
->strbuf
, base
->fillch
) == WEOF
) {
7010 state
= IOSTATE_badbit
;
7016 base
->base
.wide
= 0;
7018 state
= IOSTATE_badbit
;
7020 basic_ostream_wchar_sentry_destroy(ostr
);
7022 basic_ios_wchar_setstate(base
, state
);
7026 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@PB_W@Z */
7027 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@PEB_W@Z */
7028 /* ??$?6GU?$char_traits@G@std@@@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@PBG@Z */
7029 /* ??$?6GU?$char_traits@G@std@@@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@PEBG@Z */
7030 basic_ostream_wchar
* __cdecl
basic_ostream_wchar_print_str(basic_ostream_wchar
*ostr
, const wchar_t *str
)
7032 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(ostr
);
7033 IOSB_iostate state
= IOSTATE_goodbit
;
7035 TRACE("(%p %s)\n", ostr
, debugstr_w(str
));
7037 if(basic_ostream_wchar_sentry_create(ostr
)) {
7038 MSVCP_size_t len
= wcslen(str
);
7039 streamsize pad
= (base
->base
.wide
>len
? base
->base
.wide
-len
: 0);
7041 if((base
->base
.fmtfl
& FMTFLAG_adjustfield
) != FMTFLAG_left
) {
7042 for(; pad
!=0; pad
--) {
7043 if(basic_streambuf_wchar_sputc(base
->strbuf
, base
->fillch
) == WEOF
) {
7044 state
= IOSTATE_badbit
;
7050 if(state
== IOSTATE_goodbit
) {
7051 if(basic_streambuf_wchar_sputn(base
->strbuf
, str
, len
) != len
)
7052 state
= IOSTATE_badbit
;
7055 if(state
== IOSTATE_goodbit
) {
7056 for(; pad
!=0; pad
--) {
7057 if(basic_streambuf_wchar_sputc(base
->strbuf
, base
->fillch
) == WEOF
) {
7058 state
= IOSTATE_badbit
;
7064 base
->base
.wide
= 0;
7066 state
= IOSTATE_badbit
;
7068 basic_ostream_wchar_sentry_destroy(ostr
);
7070 basic_ios_wchar_setstate(base
, state
);
7074 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
7075 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
7076 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
7077 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
7078 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func
, 8)
7079 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_func(basic_ostream_wchar
*this,
7080 basic_ostream_wchar
* (__cdecl
*pfunc
)(basic_ostream_wchar
*))
7082 TRACE("(%p %p)\n", this, pfunc
);
7087 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AAV21@@Z@Z */
7088 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z */
7089 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@GU?$char_traits@G@std@@@1@AAV21@@Z@Z */
7090 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z */
7091 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func_basic_ios
, 8)
7092 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_func_basic_ios(basic_ostream_wchar
*this,
7093 basic_ios_wchar
* (__cdecl
*pfunc
)(basic_ios_wchar
*))
7095 TRACE("(%p %p)\n", this, pfunc
);
7096 pfunc(basic_ostream_wchar_get_basic_ios(this));
7100 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
7101 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
7102 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
7103 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
7104 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func_ios_base
, 8)
7105 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_func_ios_base(
7106 basic_ostream_wchar
*this, ios_base
* (__cdecl
*pfunc
)(ios_base
*))
7108 TRACE("(%p %p)\n", this, pfunc
);
7109 pfunc(&basic_ostream_wchar_get_basic_ios(this)->base
);
7113 /* Caution: basic_istream uses virtual inheritance. */
7114 static inline basic_ios_char
* basic_istream_char_get_basic_ios(basic_istream_char
*this)
7116 return (basic_ios_char
*)((char*)this+this->vbtable
[1]);
7119 static inline basic_ios_char
* basic_istream_char_to_basic_ios(basic_istream_char
*ptr
)
7121 return (basic_ios_char
*)((char*)ptr
+basic_istream_char_vbtable
[1]);
7124 static inline basic_istream_char
* basic_istream_char_from_basic_ios(basic_ios_char
*ptr
)
7126 return (basic_istream_char
*)((char*)ptr
-basic_istream_char_vbtable
[1]);
7129 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
7130 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
7131 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor_init
, 20)
7132 basic_istream_char
* __thiscall
basic_istream_char_ctor_init(basic_istream_char
*this, basic_streambuf_char
*strbuf
, MSVCP_bool isstd
, MSVCP_bool noinit
, MSVCP_bool virt_init
)
7134 basic_ios_char
*base
;
7136 TRACE("(%p %p %d %d %d)\n", this, strbuf
, isstd
, noinit
, virt_init
);
7139 this->vbtable
= basic_istream_char_vbtable
;
7140 base
= basic_istream_char_get_basic_ios(this);
7141 basic_ios_char_ctor(base
);
7143 base
= basic_istream_char_get_basic_ios(this);
7146 base
->base
.vtable
= &MSVCP_basic_istream_char_vtable
;
7149 basic_ios_char_init(base
, strbuf
, isstd
);
7153 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
7154 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
7155 static basic_istream_char
* basic_istream_char_ctor(basic_istream_char
*this, basic_streambuf_char
*strbuf
, MSVCP_bool isstd
, MSVCP_bool virt_init
)
7157 return basic_istream_char_ctor_init(this, strbuf
, isstd
, FALSE
, virt_init
);
7160 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
7161 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
7162 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor_uninitialized
, 12)
7163 basic_istream_char
* __thiscall
basic_istream_char_ctor_uninitialized(basic_istream_char
*this, int uninitialized
, MSVCP_bool virt_init
)
7165 basic_ios_char
*base
;
7167 TRACE("(%p %d %d)\n", this, uninitialized
, virt_init
);
7170 this->vbtable
= basic_istream_char_vbtable
;
7171 base
= basic_istream_char_get_basic_ios(this);
7172 basic_ios_char_ctor(base
);
7174 base
= basic_istream_char_get_basic_ios(this);
7177 base
->base
.vtable
= &MSVCP_basic_istream_char_vtable
;
7178 ios_base_Addstd(&base
->base
);
7182 /* ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ */
7183 /* ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
7184 DEFINE_THISCALL_WRAPPER(basic_istream_char_dtor
, 4)
7185 void __thiscall
basic_istream_char_dtor(basic_ios_char
*base
)
7187 basic_istream_char
*this = basic_istream_char_from_basic_ios(base
);
7189 /* don't destroy virtual base here */
7190 TRACE("(%p)\n", this);
7193 /* ??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ */
7194 /* ??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
7195 DEFINE_THISCALL_WRAPPER(basic_istream_char_vbase_dtor
, 4)
7196 void __thiscall
basic_istream_char_vbase_dtor(basic_istream_char
*this)
7198 TRACE("(%p)\n", this);
7199 basic_istream_char_dtor(basic_istream_char_to_basic_ios(this));
7200 basic_ios_char_dtor(basic_istream_char_get_basic_ios(this));
7203 DEFINE_THISCALL_WRAPPER(basic_istream_char_vector_dtor
, 8)
7204 basic_istream_char
* __thiscall
basic_istream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
7206 basic_istream_char
*this = basic_istream_char_from_basic_ios(base
);
7208 TRACE("(%p %x)\n", this, flags
);
7211 /* we have an array, with the number of elements stored before the first object */
7212 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
7214 for(i
=*ptr
-1; i
>=0; i
--)
7215 basic_istream_char_vbase_dtor(this+i
);
7216 MSVCRT_operator_delete(ptr
);
7218 basic_istream_char_vbase_dtor(this);
7220 MSVCRT_operator_delete(this);
7226 /* ?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z */
7227 /* ?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z */
7228 DEFINE_THISCALL_WRAPPER(basic_istream_char__Ipfx
, 8)
7229 MSVCP_bool __thiscall
basic_istream_char__Ipfx(basic_istream_char
*this, MSVCP_bool noskip
)
7231 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7233 TRACE("(%p %d)\n", this, noskip
);
7235 if(ios_base_good(&base
->base
)) {
7236 if(basic_ios_char_tie_get(base
))
7237 basic_ostream_char_flush(basic_ios_char_tie_get(base
));
7239 if(!noskip
&& (ios_base_flags_get(&base
->base
) & FMTFLAG_skipws
)) {
7240 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
7241 const ctype_char
*ctype
= ctype_char_use_facet(base
->strbuf
->loc
);
7244 for(ch
= basic_streambuf_char_sgetc(strbuf
); ;
7245 ch
= basic_streambuf_char_snextc(strbuf
)) {
7247 basic_ios_char_setstate(base
, IOSTATE_eofbit
);
7251 if(!ctype_char_is_ch(ctype
, _SPACE
|_BLANK
, ch
))
7257 if(!ios_base_good(&base
->base
)) {
7258 basic_ios_char_setstate(base
, IOSTATE_failbit
);
7265 /* ?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z */
7266 /* ?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z */
7267 DEFINE_THISCALL_WRAPPER(basic_istream_char_ipfx
, 8)
7268 MSVCP_bool __thiscall
basic_istream_char_ipfx(basic_istream_char
*this, MSVCP_bool noskip
)
7270 return basic_istream_char__Ipfx(this, noskip
);
7273 /* ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ */
7274 /* ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
7275 DEFINE_THISCALL_WRAPPER(basic_istream_char_isfx
, 4)
7276 void __thiscall
basic_istream_char_isfx(basic_istream_char
*this)
7278 TRACE("(%p)\n", this);
7281 static BOOL
basic_istream_char_sentry_create(basic_istream_char
*istr
, MSVCP_bool noskip
)
7283 basic_ios_char
*base
= basic_istream_char_get_basic_ios(istr
);
7285 if(basic_ios_char_rdbuf_get(base
))
7286 basic_streambuf_char__Lock(base
->strbuf
);
7288 return basic_istream_char_ipfx(istr
, noskip
);
7291 static void basic_istream_char_sentry_destroy(basic_istream_char
*istr
)
7293 basic_ios_char
*base
= basic_istream_char_get_basic_ios(istr
);
7295 if(basic_ios_char_rdbuf_get(base
))
7296 basic_streambuf_char__Unlock(base
->strbuf
);
7299 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QBEHXZ */
7300 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QEBA_JXZ */
7301 DEFINE_THISCALL_WRAPPER(basic_istream_char_gcount
, 4)
7302 int __thiscall
basic_istream_char_gcount(const basic_istream_char
*this)
7304 TRACE("(%p)\n", this);
7308 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
7309 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
7310 DEFINE_THISCALL_WRAPPER(basic_istream_char_get
, 4)
7311 int __thiscall
basic_istream_char_get(basic_istream_char
*this)
7313 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7316 TRACE("(%p)\n", this);
7320 if(!basic_istream_char_sentry_create(this, TRUE
)) {
7321 basic_istream_char_sentry_destroy(this);
7325 ret
= basic_streambuf_char_sbumpc(basic_ios_char_rdbuf_get(base
));
7326 basic_istream_char_sentry_destroy(this);
7328 basic_ios_char_setstate(base
, IOSTATE_eofbit
|IOSTATE_failbit
);
7335 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAD@Z */
7336 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAD@Z */
7337 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_ch
, 8)
7338 basic_istream_char
* __thiscall
basic_istream_char_get_ch(basic_istream_char
*this, char *ch
)
7342 TRACE("(%p %p)\n", this, ch
);
7344 ret
= basic_istream_char_get(this);
7350 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADHD@Z */
7351 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z */
7352 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_str_delim
, 16)
7353 basic_istream_char
* __thiscall
basic_istream_char_get_str_delim(basic_istream_char
*this, char *str
, streamsize count
, char delim
)
7355 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7358 TRACE("(%p %p %ld %c)\n", this, str
, count
, delim
);
7362 if(basic_istream_char_sentry_create(this, TRUE
)) {
7363 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
7365 for(ch
= basic_streambuf_char_sgetc(strbuf
); count
>1;
7366 ch
= basic_streambuf_char_snextc(strbuf
)) {
7367 if(ch
==EOF
|| ch
==delim
)
7375 basic_istream_char_sentry_destroy(this);
7377 basic_ios_char_setstate(base
, (!this->count
? IOSTATE_failbit
: IOSTATE_goodbit
) |
7378 (ch
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
7384 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
7385 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
7386 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_str
, 12)
7387 basic_istream_char
* __thiscall
basic_istream_char_get_str(basic_istream_char
*this, char *str
, streamsize count
)
7389 return basic_istream_char_get_str_delim(this, str
, count
, '\n');
7392 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z */
7393 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z */
7394 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_streambuf_delim
, 12)
7395 basic_istream_char
* __thiscall
basic_istream_char_get_streambuf_delim(basic_istream_char
*this, basic_streambuf_char
*strbuf
, char delim
)
7397 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7400 TRACE("(%p %p %c)\n", this, strbuf
, delim
);
7404 if(basic_istream_char_sentry_create(this, TRUE
)) {
7405 basic_streambuf_char
*strbuf_read
= basic_ios_char_rdbuf_get(base
);
7407 for(ch
= basic_streambuf_char_sgetc(strbuf_read
); ;
7408 ch
= basic_streambuf_char_snextc(strbuf_read
)) {
7409 if(ch
==EOF
|| ch
==delim
)
7412 if(basic_streambuf_char_sputc(strbuf
, ch
) == EOF
)
7417 basic_istream_char_sentry_destroy(this);
7419 basic_ios_char_setstate(base
, (!this->count
? IOSTATE_failbit
: IOSTATE_goodbit
) |
7420 (ch
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
7424 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z */
7425 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z */
7426 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_streambuf
, 8)
7427 basic_istream_char
* __thiscall
basic_istream_char_get_streambuf(basic_istream_char
*this, basic_streambuf_char
*strbuf
)
7429 return basic_istream_char_get_streambuf_delim(this, strbuf
, '\n');
7432 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADHD@Z */
7433 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z */
7434 DEFINE_THISCALL_WRAPPER(basic_istream_char_getline_delim
, 16)
7435 basic_istream_char
* __thiscall
basic_istream_char_getline_delim(basic_istream_char
*this, char *str
, streamsize count
, char delim
)
7437 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7438 int ch
= (unsigned char)delim
;
7440 TRACE("(%p %p %ld %c)\n", this, str
, count
, delim
);
7444 if(basic_istream_char_sentry_create(this, TRUE
) && count
>0) {
7445 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
7448 ch
= basic_streambuf_char_sbumpc(strbuf
);
7450 if(ch
==EOF
|| ch
==(unsigned char)delim
)
7458 if(ch
== (unsigned char)delim
)
7460 else if(ch
!= EOF
) {
7461 ch
= basic_streambuf_char_sgetc(strbuf
);
7463 if(ch
== (unsigned char)delim
) {
7464 basic_streambuf_char__Gninc(strbuf
);
7469 basic_istream_char_sentry_destroy(this);
7471 basic_ios_char_setstate(base
, (ch
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
) |
7472 (!this->count
|| (ch
!=(unsigned char)delim
&& ch
!=EOF
) ? IOSTATE_failbit
: IOSTATE_goodbit
));
7478 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
7479 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
7480 DEFINE_THISCALL_WRAPPER(basic_istream_char_getline
, 12)
7481 basic_istream_char
* __thiscall
basic_istream_char_getline(basic_istream_char
*this, char *str
, streamsize count
)
7483 return basic_istream_char_getline_delim(this, str
, count
, '\n');
7486 /* ?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@HH@Z */
7487 /* ?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
7488 DEFINE_THISCALL_WRAPPER(basic_istream_char_ignore
, 12)
7489 basic_istream_char
* __thiscall
basic_istream_char_ignore(basic_istream_char
*this, streamsize count
, int delim
)
7491 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7492 int ch
= (unsigned char)delim
;
7495 TRACE("(%p %ld %d)\n", this, count
, delim
);
7499 if(basic_istream_char_sentry_create(this, TRUE
)) {
7500 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
7501 state
= IOSTATE_goodbit
;
7504 ch
= basic_streambuf_char_sbumpc(strbuf
);
7507 state
= IOSTATE_eofbit
;
7511 if(ch
==(unsigned char)delim
)
7515 if(count
!= INT_MAX
)
7519 state
= IOSTATE_failbit
;
7520 basic_istream_char_sentry_destroy(this);
7522 basic_ios_char_setstate(base
, state
);
7526 /* ?ws@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@1@AAV21@@Z */
7527 /* ?ws@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
7528 basic_istream_char
* __cdecl
ws_basic_istream_char(basic_istream_char
*istream
)
7530 basic_ios_char
*base
= basic_istream_char_get_basic_ios(istream
);
7533 TRACE("(%p)\n", istream
);
7535 if(basic_istream_char_sentry_create(istream
, TRUE
)) {
7536 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
7537 const ctype_char
*ctype
= ctype_char_use_facet(strbuf
->loc
);
7539 for(ch
= basic_streambuf_char_sgetc(strbuf
); ctype_char_is_ch(ctype
, _SPACE
, ch
);
7540 ch
= basic_streambuf_char_snextc(strbuf
)) {
7545 basic_istream_char_sentry_destroy(istream
);
7548 basic_ios_char_setstate(base
, IOSTATE_eofbit
);
7552 /* ?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
7553 /* ?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
7554 DEFINE_THISCALL_WRAPPER(basic_istream_char_peek
, 4)
7555 int __thiscall
basic_istream_char_peek(basic_istream_char
*this)
7557 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7560 TRACE("(%p)\n", this);
7564 if(basic_istream_char_sentry_create(this, TRUE
))
7565 ret
= basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base
));
7566 basic_istream_char_sentry_destroy(this);
7569 basic_ios_char_setstate(base
, IOSTATE_eofbit
);
7574 /* ?_Read_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADIH@Z */
7575 /* ?_Read_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_K_J@Z */
7576 static basic_istream_char
* basic_istream_char__Read_s(basic_istream_char
*this, char *str
, MSVCP_size_t size
, streamsize count
)
7578 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7579 IOSB_iostate state
= IOSTATE_goodbit
;
7581 TRACE("(%p %p %lu %ld)\n", this, str
, size
, count
);
7583 if(basic_istream_char_sentry_create(this, TRUE
)) {
7584 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
7586 this->count
= basic_streambuf_char__Sgetn_s(strbuf
, str
, size
, count
);
7587 if(this->count
!= count
)
7588 state
|= IOSTATE_failbit
| IOSTATE_eofbit
;
7592 basic_istream_char_sentry_destroy(this);
7594 basic_ios_char_setstate(base
, state
);
7598 /* ?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
7599 /* ?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
7600 DEFINE_THISCALL_WRAPPER(basic_istream_char_read
, 12)
7601 basic_istream_char
* __thiscall
basic_istream_char_read(basic_istream_char
*this, char *str
, streamsize count
)
7603 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7604 IOSB_iostate state
= IOSTATE_goodbit
;
7606 TRACE("(%p %p %ld)\n", this, str
, count
);
7608 if(basic_istream_char_sentry_create(this, TRUE
)) {
7609 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
7611 this->count
= basic_streambuf_char_sgetn(strbuf
, str
, count
);
7612 if(this->count
!= count
)
7613 state
|= IOSTATE_failbit
| IOSTATE_eofbit
;
7617 basic_istream_char_sentry_destroy(this);
7619 basic_ios_char_setstate(base
, state
);
7623 /* ?_Readsome_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHPADIH@Z */
7624 /* ?_Readsome_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_K_J@Z */
7625 static streamsize
basic_istream_char__Readsome_s(basic_istream_char
*this, char *str
, MSVCP_size_t size
, streamsize count
)
7627 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7628 IOSB_iostate state
= IOSTATE_goodbit
;
7630 TRACE("(%p %p %lu %ld)\n", this, str
, size
, count
);
7634 if(basic_istream_char_sentry_create(this, TRUE
)) {
7635 streamsize avail
= basic_streambuf_char_in_avail(basic_ios_char_rdbuf_get(base
));
7640 state
|= IOSTATE_eofbit
;
7642 basic_istream_char__Read_s(this, str
, size
, avail
);
7644 state
|= IOSTATE_failbit
;
7646 basic_istream_char_sentry_destroy(this);
7648 basic_ios_char_setstate(base
, state
);
7652 /* ?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHPADH@Z */
7653 /* ?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z */
7654 DEFINE_THISCALL_WRAPPER(basic_istream_char_readsome
, 12)
7655 streamsize __thiscall
basic_istream_char_readsome(basic_istream_char
*this, char *str
, streamsize count
)
7657 return basic_istream_char__Readsome_s(this, str
, count
, count
);
7660 /* ?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z */
7661 /* ?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z */
7662 DEFINE_THISCALL_WRAPPER(basic_istream_char_putback
, 8)
7663 basic_istream_char
* __thiscall
basic_istream_char_putback(basic_istream_char
*this, char ch
)
7665 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7666 IOSB_iostate state
= IOSTATE_goodbit
;
7668 TRACE("(%p %c)\n", this, ch
);
7672 if(basic_istream_char_sentry_create(this, TRUE
)) {
7673 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
7675 if(!ios_base_good(&base
->base
))
7676 state
|= IOSTATE_failbit
;
7677 else if(!strbuf
|| basic_streambuf_char_sputbackc(strbuf
, ch
)==EOF
)
7678 state
|= IOSTATE_badbit
;
7680 basic_istream_char_sentry_destroy(this);
7682 basic_ios_char_setstate(base
, state
);
7686 /* ?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ */
7687 /* ?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ */
7688 DEFINE_THISCALL_WRAPPER(basic_istream_char_unget
, 4)
7689 basic_istream_char
* __thiscall
basic_istream_char_unget(basic_istream_char
*this)
7691 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7692 IOSB_iostate state
= IOSTATE_goodbit
;
7694 TRACE("(%p)\n", this);
7698 if(basic_istream_char_sentry_create(this, TRUE
)) {
7699 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
7701 if(!ios_base_good(&base
->base
))
7702 state
|= IOSTATE_failbit
;
7703 else if(!strbuf
|| basic_streambuf_char_sungetc(strbuf
)==EOF
)
7704 state
|= IOSTATE_badbit
;
7706 basic_istream_char_sentry_destroy(this);
7708 basic_ios_char_setstate(base
, state
);
7712 /* ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
7713 /* ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
7714 DEFINE_THISCALL_WRAPPER(basic_istream_char_sync
, 4)
7715 int __thiscall
basic_istream_char_sync(basic_istream_char
*this)
7717 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7718 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
7720 TRACE("(%p)\n", this);
7725 if(basic_istream_char_sentry_create(this, TRUE
)) {
7726 if(basic_streambuf_char_pubsync(strbuf
) != -1) {
7727 basic_istream_char_sentry_destroy(this);
7731 basic_istream_char_sentry_destroy(this);
7733 basic_ios_char_setstate(base
, IOSTATE_badbit
);
7737 /* ?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
7738 /* ?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
7739 DEFINE_THISCALL_WRAPPER(basic_istream_char_tellg
, 8)
7740 fpos_int
* __thiscall
basic_istream_char_tellg(basic_istream_char
*this, fpos_int
*ret
)
7742 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7744 TRACE("(%p %p)\n", this, ret
);
7746 if(ios_base_fail(&base
->base
)) {
7753 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base
),
7754 ret
, 0, SEEKDIR_cur
, OPENMODE_in
);
7756 if(ret
->off
==-1 && ret
->pos
==0 && ret
->state
==0)
7757 basic_ios_char_setstate(base
, IOSTATE_failbit
);
7762 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@JH@Z */
7763 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
7764 DEFINE_THISCALL_WRAPPER(basic_istream_char_seekg
, 12)
7765 basic_istream_char
* __thiscall
basic_istream_char_seekg(basic_istream_char
*this, streamoff off
, int dir
)
7767 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7769 TRACE("(%p %ld %d)\n", this, off
, dir
);
7771 if(!ios_base_fail(&base
->base
)) {
7772 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
7775 basic_streambuf_char_pubseekoff(strbuf
, &ret
, off
, dir
, OPENMODE_in
);
7777 if(ret
.off
==-1 && ret
.pos
==0 && ret
.state
==0)
7778 basic_ios_char_setstate(base
, IOSTATE_failbit
);
7780 basic_ios_char_clear(base
, IOSTATE_goodbit
);
7783 basic_ios_char_clear(base
, IOSTATE_goodbit
);
7788 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
7789 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
7790 DEFINE_THISCALL_WRAPPER(basic_istream_char_seekg_fpos
, 28)
7791 basic_istream_char
* __thiscall
basic_istream_char_seekg_fpos(basic_istream_char
*this, fpos_int pos
)
7793 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7795 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos
));
7797 if(!ios_base_fail(&base
->base
)) {
7798 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
7801 basic_streambuf_char_pubseekpos(strbuf
, &ret
, pos
, OPENMODE_in
);
7803 if(ret
.off
==-1 && ret
.pos
==0 && ret
.state
==0)
7804 basic_ios_char_setstate(base
, IOSTATE_failbit
);
7806 basic_ios_char_clear(base
, IOSTATE_goodbit
);
7809 basic_ios_char_clear(base
, IOSTATE_goodbit
);
7814 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAF@Z */
7815 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAF@Z */
7816 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_short
, 8)
7817 basic_istream_char
* __thiscall
basic_istream_char_read_short(basic_istream_char
*this, short *v
)
7819 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7820 int state
= IOSTATE_goodbit
;
7822 TRACE("(%p %p)\n", this, v
);
7824 if(basic_istream_char_sentry_create(this, FALSE
)) {
7825 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
7826 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
7827 istreambuf_iterator_char first
={0}, last
={0};
7830 first
.strbuf
= strbuf
;
7831 num_get_char_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, &tmp
);
7833 if(!(state
&IOSTATE_failbit
) && tmp
==(LONG
)((short)tmp
))
7836 state
|= IOSTATE_failbit
;
7838 basic_istream_char_sentry_destroy(this);
7840 basic_ios_char_setstate(base
, state
);
7844 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAG@Z */
7845 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAG@Z */
7846 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ushort
, 8)
7847 basic_istream_char
* __thiscall
basic_istream_char_read_ushort(basic_istream_char
*this, unsigned short *v
)
7849 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7850 int state
= IOSTATE_goodbit
;
7852 TRACE("(%p %p)\n", this, v
);
7854 if(basic_istream_char_sentry_create(this, FALSE
)) {
7855 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
7856 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
7857 istreambuf_iterator_char first
={0}, last
={0};
7859 first
.strbuf
= strbuf
;
7860 num_get_char_get_ushort(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7862 basic_istream_char_sentry_destroy(this);
7864 basic_ios_char_setstate(base
, state
);
7868 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z */
7869 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAH@Z */
7870 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_int
, 8)
7871 basic_istream_char
* __thiscall
basic_istream_char_read_int(basic_istream_char
*this, int *v
)
7873 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7874 int state
= IOSTATE_goodbit
;
7876 TRACE("(%p %p)\n", this, v
);
7878 if(basic_istream_char_sentry_create(this, FALSE
)) {
7879 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
7880 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
7881 istreambuf_iterator_char first
={0}, last
={0};
7883 first
.strbuf
= strbuf
;
7884 num_get_char_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7886 basic_istream_char_sentry_destroy(this);
7888 basic_ios_char_setstate(base
, state
);
7892 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAI@Z */
7893 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAI@Z */
7894 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_uint
, 8)
7895 basic_istream_char
* __thiscall
basic_istream_char_read_uint(basic_istream_char
*this, unsigned int *v
)
7897 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7898 int state
= IOSTATE_goodbit
;
7900 TRACE("(%p %p)\n", this, v
);
7902 if(basic_istream_char_sentry_create(this, FALSE
)) {
7903 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
7904 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
7905 istreambuf_iterator_char first
={0}, last
={0};
7907 first
.strbuf
= strbuf
;
7908 num_get_char_get_uint(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7910 basic_istream_char_sentry_destroy(this);
7912 basic_ios_char_setstate(base
, state
);
7916 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAJ@Z */
7917 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAJ@Z */
7918 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_long
, 8)
7919 basic_istream_char
* __thiscall
basic_istream_char_read_long(basic_istream_char
*this, LONG
*v
)
7921 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7922 int state
= IOSTATE_goodbit
;
7924 TRACE("(%p %p)\n", this, v
);
7926 if(basic_istream_char_sentry_create(this, FALSE
)) {
7927 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
7928 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
7929 istreambuf_iterator_char first
={0}, last
={0};
7931 first
.strbuf
= strbuf
;
7932 num_get_char_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7934 basic_istream_char_sentry_destroy(this);
7936 basic_ios_char_setstate(base
, state
);
7940 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAK@Z */
7941 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAK@Z */
7942 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ulong
, 8)
7943 basic_istream_char
* __thiscall
basic_istream_char_read_ulong(basic_istream_char
*this, ULONG
*v
)
7945 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7946 int state
= IOSTATE_goodbit
;
7948 TRACE("(%p %p)\n", this, v
);
7950 if(basic_istream_char_sentry_create(this, FALSE
)) {
7951 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
7952 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
7953 istreambuf_iterator_char first
={0}, last
={0};
7955 first
.strbuf
= strbuf
;
7956 num_get_char_get_ulong(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7958 basic_istream_char_sentry_destroy(this);
7960 basic_ios_char_setstate(base
, state
);
7964 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAM@Z */
7965 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAM@Z */
7966 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_float
, 8)
7967 basic_istream_char
* __thiscall
basic_istream_char_read_float(basic_istream_char
*this, float *v
)
7969 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7970 int state
= IOSTATE_goodbit
;
7972 TRACE("(%p %p)\n", this, v
);
7974 if(basic_istream_char_sentry_create(this, FALSE
)) {
7975 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
7976 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
7977 istreambuf_iterator_char first
={0}, last
={0};
7979 first
.strbuf
= strbuf
;
7980 num_get_char_get_float(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7982 basic_istream_char_sentry_destroy(this);
7984 basic_ios_char_setstate(base
, state
);
7988 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAN@Z */
7989 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAN@Z */
7990 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_double
, 8)
7991 basic_istream_char
* __thiscall
basic_istream_char_read_double(basic_istream_char
*this, double *v
)
7993 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7994 int state
= IOSTATE_goodbit
;
7996 TRACE("(%p %p)\n", this, v
);
7998 if(basic_istream_char_sentry_create(this, FALSE
)) {
7999 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8000 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
8001 istreambuf_iterator_char first
={0}, last
={0};
8003 first
.strbuf
= strbuf
;
8004 num_get_char_get_double(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
8006 basic_istream_char_sentry_destroy(this);
8008 basic_ios_char_setstate(base
, state
);
8012 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAO@Z */
8013 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAO@Z */
8014 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ldouble
, 8)
8015 basic_istream_char
* __thiscall
basic_istream_char_read_ldouble(basic_istream_char
*this, double *v
)
8017 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8018 int state
= IOSTATE_goodbit
;
8020 TRACE("(%p %p)\n", this, v
);
8022 if(basic_istream_char_sentry_create(this, FALSE
)) {
8023 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8024 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
8025 istreambuf_iterator_char first
={0}, last
={0};
8027 first
.strbuf
= strbuf
;
8028 num_get_char_get_ldouble(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
8030 basic_istream_char_sentry_destroy(this);
8032 basic_ios_char_setstate(base
, state
);
8036 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAPAX@Z */
8037 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
8038 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ptr
, 8)
8039 basic_istream_char
* __thiscall
basic_istream_char_read_ptr(basic_istream_char
*this, void **v
)
8041 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8042 int state
= IOSTATE_goodbit
;
8044 TRACE("(%p %p)\n", this, v
);
8046 if(basic_istream_char_sentry_create(this, FALSE
)) {
8047 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8048 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
8049 istreambuf_iterator_char first
={0}, last
={0};
8051 first
.strbuf
= strbuf
;
8052 num_get_char_get_void(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
8054 basic_istream_char_sentry_destroy(this);
8056 basic_ios_char_setstate(base
, state
);
8060 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_J@Z */
8061 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_J@Z */
8062 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_int64
, 8)
8063 basic_istream_char
* __thiscall
basic_istream_char_read_int64(basic_istream_char
*this, __int64
*v
)
8065 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8066 int state
= IOSTATE_goodbit
;
8068 TRACE("(%p %p)\n", this, v
);
8070 if(basic_istream_char_sentry_create(this, FALSE
)) {
8071 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8072 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
8073 istreambuf_iterator_char first
={0}, last
={0};
8075 first
.strbuf
= strbuf
;
8076 num_get_char_get_int64(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
8078 basic_istream_char_sentry_destroy(this);
8080 basic_ios_char_setstate(base
, state
);
8084 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_K@Z */
8085 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_K@Z */
8086 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_uint64
, 8)
8087 basic_istream_char
* __thiscall
basic_istream_char_read_uint64(basic_istream_char
*this, unsigned __int64
*v
)
8089 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8090 int state
= IOSTATE_goodbit
;
8092 TRACE("(%p %p)\n", this, v
);
8094 if(basic_istream_char_sentry_create(this, FALSE
)) {
8095 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8096 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
8097 istreambuf_iterator_char first
={0}, last
={0};
8099 first
.strbuf
= strbuf
;
8100 num_get_char_get_uint64(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
8102 basic_istream_char_sentry_destroy(this);
8104 basic_ios_char_setstate(base
, state
);
8108 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_N@Z */
8109 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_N@Z */
8110 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_bool
, 8)
8111 basic_istream_char
* __thiscall
basic_istream_char_read_bool(basic_istream_char
*this, MSVCP_bool
*v
)
8113 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8114 int state
= IOSTATE_goodbit
;
8116 TRACE("(%p %p)\n", this, v
);
8118 if(basic_istream_char_sentry_create(this, FALSE
)) {
8119 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8120 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
8121 istreambuf_iterator_char first
={0}, last
={0};
8123 first
.strbuf
= strbuf
;
8124 num_get_char_get_bool(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
8126 basic_istream_char_sentry_destroy(this);
8128 basic_ios_char_setstate(base
, state
);
8132 /* ??$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 */
8133 /* ??$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 */
8134 basic_istream_char
* __cdecl
basic_istream_char_getline_bstr_delim(
8135 basic_istream_char
*istream
, basic_string_char
*str
, char delim
)
8137 basic_ios_char
*base
= basic_istream_char_get_basic_ios(istream
);
8138 IOSB_iostate state
= IOSTATE_goodbit
;
8139 int c
= (unsigned char)delim
;
8141 TRACE("(%p %p %c)\n", istream
, str
, delim
);
8143 if(basic_istream_char_sentry_create(istream
, TRUE
)) {
8144 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
8145 MSVCP_basic_string_char_clear(str
);
8147 c
= basic_streambuf_char_sgetc(strbuf
);
8148 for(; c
!=(unsigned char)delim
&& c
!=EOF
; c
= basic_streambuf_char_snextc(strbuf
))
8149 MSVCP_basic_string_char_append_ch(str
, c
);
8150 if(c
==EOF
) state
|= IOSTATE_eofbit
;
8151 else if(c
==(unsigned char)delim
) basic_streambuf_char_sbumpc(strbuf
);
8153 if(!MSVCP_basic_string_char_length(str
) && c
!=(unsigned char)delim
) state
|= IOSTATE_failbit
;
8155 basic_istream_char_sentry_destroy(istream
);
8157 basic_ios_char_setstate(basic_istream_char_get_basic_ios(istream
), state
);
8161 /* ??$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 */
8162 /* ??$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 */
8163 basic_istream_char
* __cdecl
basic_istream_char_getline_bstr(
8164 basic_istream_char
*istream
, basic_string_char
*str
)
8166 return basic_istream_char_getline_bstr_delim(istream
, str
, '\n');
8169 /* ??$?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 */
8170 /* ??$?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 */
8171 basic_istream_char
* __cdecl
basic_istream_char_read_bstr(
8172 basic_istream_char
*istream
, basic_string_char
*str
)
8174 basic_ios_char
*base
= basic_istream_char_get_basic_ios(istream
);
8175 IOSB_iostate state
= IOSTATE_failbit
;
8178 TRACE("(%p %p)\n", istream
, str
);
8180 if(basic_istream_char_sentry_create(istream
, FALSE
)) {
8181 const ctype_char
*ctype
= ctype_char_use_facet(base
->strbuf
->loc
);
8182 MSVCP_size_t count
= ios_base_width_get(&base
->base
);
8187 MSVCP_basic_string_char_clear(str
);
8189 for(c
= basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base
));
8190 c
!=EOF
&& !ctype_char_is_ch(ctype
, _SPACE
|_BLANK
, c
) && count
>0;
8191 c
= basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base
)), count
--) {
8192 state
= IOSTATE_goodbit
;
8193 MSVCP_basic_string_char_append_ch(str
, c
);
8196 basic_istream_char_sentry_destroy(istream
);
8198 ios_base_width_set(&base
->base
, 0);
8199 basic_ios_char_setstate(base
, state
| (c
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
8203 /* ??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z */
8204 /* ??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAD@Z */
8205 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAC@Z */
8206 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAC@Z */
8207 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAE@Z */
8208 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAE@Z */
8209 basic_istream_char
* __cdecl
basic_istream_char_read_str(basic_istream_char
*istream
, char *str
)
8211 basic_ios_char
*base
= basic_istream_char_get_basic_ios(istream
);
8212 IOSB_iostate state
= IOSTATE_failbit
;
8215 TRACE("(%p %p)\n", istream
, str
);
8217 if(basic_istream_char_sentry_create(istream
, FALSE
)) {
8218 const ctype_char
*ctype
= ctype_char_use_facet(base
->strbuf
->loc
);
8219 MSVCP_size_t count
= ios_base_width_get(&base
->base
)-1;
8221 for(c
= basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base
));
8222 c
!=EOF
&& !ctype_char_is_ch(ctype
, _SPACE
|_BLANK
, c
) && count
>0;
8223 c
= basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base
)), count
--) {
8224 state
= IOSTATE_goodbit
;
8228 basic_istream_char_sentry_destroy(istream
);
8231 ios_base_width_set(&base
->base
, 0);
8232 basic_ios_char_setstate(base
, state
| (c
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
8236 /* ??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAD@Z */
8237 /* ??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAD@Z */
8238 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAC@Z */
8239 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAC@Z */
8240 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAE@Z */
8241 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAE@Z */
8242 basic_istream_char
* __cdecl
basic_istream_char_read_ch(basic_istream_char
*istream
, char *ch
)
8244 IOSB_iostate state
= IOSTATE_failbit
;
8247 TRACE("(%p %p)\n", istream
, ch
);
8249 if(basic_istream_char_sentry_create(istream
, FALSE
)) {
8250 c
= basic_streambuf_char_sbumpc(basic_ios_char_rdbuf_get(
8251 basic_istream_char_get_basic_ios(istream
)));
8253 state
= IOSTATE_goodbit
;
8257 basic_istream_char_sentry_destroy(istream
);
8259 basic_ios_char_setstate(basic_istream_char_get_basic_ios(istream
),
8260 state
| (c
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
8264 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
8265 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
8266 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_streambuf
, 8)
8267 basic_istream_char
* __thiscall
basic_istream_char_read_streambuf(
8268 basic_istream_char
*this, basic_streambuf_char
*streambuf
)
8270 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
8271 IOSB_iostate state
= IOSTATE_failbit
;
8274 TRACE("(%p %p)\n", this, streambuf
);
8276 if(basic_istream_char_sentry_create(this, FALSE
)) {
8277 for(c
= basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base
)); c
!=EOF
;
8278 c
= basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base
))) {
8279 state
= IOSTATE_goodbit
;
8280 if(basic_streambuf_char_sputc(streambuf
, c
) == EOF
)
8284 basic_istream_char_sentry_destroy(this);
8286 basic_ios_char_setstate(base
, state
| (c
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
8290 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
8291 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
8292 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func
, 8)
8293 basic_istream_char
* __thiscall
basic_istream_char_read_func(basic_istream_char
*this,
8294 basic_istream_char
* (__cdecl
*pfunc
)(basic_istream_char
*))
8296 TRACE("(%p %p)\n", this, pfunc
);
8301 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@DU?$char_traits@D@std@@@1@AAV21@@Z@Z */
8302 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z */
8303 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func_basic_ios
, 8)
8304 basic_istream_char
* __thiscall
basic_istream_char_read_func_basic_ios(basic_istream_char
*this,
8305 basic_ios_char
* (__cdecl
*pfunc
)(basic_ios_char
*))
8307 TRACE("(%p %p)\n", this, pfunc
);
8308 pfunc(basic_istream_char_get_basic_ios(this));
8312 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
8313 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
8314 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func_ios_base
, 8)
8315 basic_istream_char
* __thiscall
basic_istream_char_read_func_ios_base(basic_istream_char
*this,
8316 ios_base
* (__cdecl
*pfunc
)(ios_base
*))
8318 TRACE("(%p %p)\n", this, pfunc
);
8319 pfunc(&basic_istream_char_get_basic_ios(this)->base
);
8323 /* Caution: basic_istream uses virtual inheritance. */
8324 static inline basic_ios_wchar
* basic_istream_wchar_get_basic_ios(basic_istream_wchar
*this)
8326 return (basic_ios_wchar
*)((char*)this+this->vbtable
[1]);
8329 static inline basic_ios_wchar
* basic_istream_wchar_to_basic_ios(basic_istream_wchar
*ptr
)
8331 return (basic_ios_wchar
*)((char*)ptr
+basic_istream_wchar_vbtable
[1]);
8334 static inline basic_istream_wchar
* basic_istream_wchar_from_basic_ios(basic_ios_wchar
*ptr
)
8336 return (basic_istream_wchar
*)((char*)ptr
-basic_istream_wchar_vbtable
[1]);
8339 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z */
8340 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z */
8341 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ctor_init
, 20)
8342 basic_istream_wchar
* __thiscall
basic_istream_wchar_ctor_init(basic_istream_wchar
*this,
8343 basic_streambuf_wchar
*strbuf
, MSVCP_bool isstd
, MSVCP_bool noinit
, MSVCP_bool virt_init
)
8345 basic_ios_wchar
*base
;
8347 TRACE("(%p %p %d %d %d)\n", this, strbuf
, isstd
, noinit
, virt_init
);
8350 this->vbtable
= basic_istream_wchar_vbtable
;
8351 base
= basic_istream_wchar_get_basic_ios(this);
8352 basic_ios_wchar_ctor(base
);
8354 base
= basic_istream_wchar_get_basic_ios(this);
8357 base
->base
.vtable
= &MSVCP_basic_istream_wchar_vtable
;
8360 basic_ios_wchar_init(base
, strbuf
, isstd
);
8364 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z */
8365 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z */
8366 DEFINE_THISCALL_WRAPPER(basic_istream_short_ctor_init
, 20)
8367 basic_istream_wchar
* __thiscall
basic_istream_short_ctor_init(basic_istream_wchar
*this,
8368 basic_streambuf_wchar
*strbuf
, MSVCP_bool isstd
, MSVCP_bool noinit
, MSVCP_bool virt_init
)
8370 basic_istream_wchar_ctor_init(this, strbuf
, isstd
, noinit
, virt_init
);
8371 basic_istream_wchar_get_basic_ios(this)->base
.vtable
= &MSVCP_basic_istream_short_vtable
;
8375 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
8376 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
8377 static basic_istream_wchar
* basic_istream_wchar_ctor(basic_istream_wchar
*this,
8378 basic_streambuf_wchar
*strbuf
, MSVCP_bool isstd
, MSVCP_bool virt_init
)
8380 return basic_istream_wchar_ctor_init(this, strbuf
, isstd
, FALSE
, virt_init
);
8383 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
8384 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
8385 static basic_istream_wchar
* basic_istream_short_ctor(basic_istream_wchar
*this,
8386 basic_streambuf_wchar
*strbuf
, MSVCP_bool isstd
, MSVCP_bool virt_init
)
8388 return basic_istream_short_ctor_init(this, strbuf
, isstd
, FALSE
, virt_init
);
8391 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@@Z */
8392 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
8393 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ctor_uninitialized
, 12)
8394 basic_istream_wchar
* __thiscall
basic_istream_wchar_ctor_uninitialized(
8395 basic_istream_wchar
*this, int uninitialized
, MSVCP_bool virt_init
)
8397 basic_ios_wchar
*base
;
8399 TRACE("(%p %d %d)\n", this, uninitialized
, virt_init
);
8402 this->vbtable
= basic_istream_wchar_vbtable
;
8403 base
= basic_istream_wchar_get_basic_ios(this);
8404 basic_ios_wchar_ctor(base
);
8406 base
= basic_istream_wchar_get_basic_ios(this);
8409 base
->base
.vtable
= &MSVCP_basic_istream_wchar_vtable
;
8410 ios_base_Addstd(&base
->base
);
8414 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */
8415 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
8416 DEFINE_THISCALL_WRAPPER(basic_istream_short_ctor_uninitialized
, 12)
8417 basic_istream_wchar
* __thiscall
basic_istream_short_ctor_uninitialized(
8418 basic_istream_wchar
*this, int uninitialized
, MSVCP_bool virt_init
)
8420 basic_istream_wchar_ctor_uninitialized(this, uninitialized
, virt_init
);
8421 basic_istream_wchar_get_basic_ios(this)->base
.vtable
= &MSVCP_basic_istream_short_vtable
;
8425 /* ??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
8426 /* ??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
8427 /* ??1?$basic_istream@GU?$char_traits@G@std@@@std@@UAE@XZ */
8428 /* ??1?$basic_istream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
8429 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_dtor
, 4)
8430 void __thiscall
basic_istream_wchar_dtor(basic_ios_wchar
*base
)
8432 basic_istream_wchar
*this = basic_istream_wchar_from_basic_ios(base
);
8434 /* don't destroy virtual base here */
8435 TRACE("(%p)\n", this);
8438 /* ??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
8439 /* ??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
8440 /* ??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXXZ */
8441 /* ??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
8442 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_vbase_dtor
, 4)
8443 void __thiscall
basic_istream_wchar_vbase_dtor(basic_istream_wchar
*this)
8445 TRACE("(%p)\n", this);
8446 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(this));
8447 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(this));
8450 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_vector_dtor
, 8)
8451 basic_istream_wchar
* __thiscall
basic_istream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
8453 basic_istream_wchar
*this = basic_istream_wchar_from_basic_ios(base
);
8455 TRACE("(%p %x)\n", this, flags
);
8458 /* we have an array, with the number of elements stored before the first object */
8459 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
8461 for(i
=*ptr
-1; i
>=0; i
--)
8462 basic_istream_wchar_vbase_dtor(this+i
);
8463 MSVCRT_operator_delete(ptr
);
8465 basic_istream_wchar_vbase_dtor(this);
8467 MSVCRT_operator_delete(this);
8473 /* ?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE_N_N@Z */
8474 /* ?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z */
8475 /* ?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE_N_N@Z */
8476 /* ?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z */
8477 DEFINE_THISCALL_WRAPPER(basic_istream_wchar__Ipfx
, 8)
8478 MSVCP_bool __thiscall
basic_istream_wchar__Ipfx(basic_istream_wchar
*this, MSVCP_bool noskip
)
8480 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
8482 TRACE("(%p %d)\n", this, noskip
);
8484 if(ios_base_good(&base
->base
)) {
8485 if(basic_ios_wchar_tie_get(base
))
8486 basic_ostream_wchar_flush(basic_ios_wchar_tie_get(base
));
8488 if(!noskip
&& (ios_base_flags_get(&base
->base
) & FMTFLAG_skipws
)) {
8489 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
8490 const ctype_wchar
*ctype
= ctype_wchar_use_facet(base
->strbuf
->loc
);
8493 for(ch
= basic_streambuf_wchar_sgetc(strbuf
); ;
8494 ch
= basic_streambuf_wchar_snextc(strbuf
)) {
8496 basic_ios_wchar_setstate(base
, IOSTATE_eofbit
);
8500 if(!ctype_wchar_is_ch(ctype
, _SPACE
|_BLANK
, ch
))
8506 if(!ios_base_good(&base
->base
)) {
8507 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
8513 /* ?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE_N_N@Z */
8514 /* ?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z */
8515 /* ?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE_N_N@Z */
8516 /* ?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z */
8517 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ipfx
, 8)
8518 MSVCP_bool __thiscall
basic_istream_wchar_ipfx(basic_istream_wchar
*this, MSVCP_bool noskip
)
8520 return basic_istream_wchar__Ipfx(this, noskip
);
8523 /* ?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
8524 /* ?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
8525 /* ?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXXZ */
8526 /* ?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
8527 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_isfx
, 4)
8528 void __thiscall
basic_istream_wchar_isfx(basic_istream_wchar
*this)
8530 TRACE("(%p)\n", this);
8533 static BOOL
basic_istream_wchar_sentry_create(basic_istream_wchar
*istr
, MSVCP_bool noskip
)
8535 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(istr
);
8537 if(basic_ios_wchar_rdbuf_get(base
))
8538 basic_streambuf_wchar__Lock(base
->strbuf
);
8540 return basic_istream_wchar_ipfx(istr
, noskip
);
8543 static void basic_istream_wchar_sentry_destroy(basic_istream_wchar
*istr
)
8545 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(istr
);
8547 if(basic_ios_wchar_rdbuf_get(base
))
8548 basic_streambuf_wchar__Unlock(base
->strbuf
);
8551 /* ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QBEHXZ */
8552 /* ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEBA_JXZ */
8553 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QBEHXZ */
8554 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QEBA_JXZ */
8555 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_gcount
, 4)
8556 int __thiscall
basic_istream_wchar_gcount(const basic_istream_wchar
*this)
8558 TRACE("(%p)\n", this);
8562 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
8563 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
8564 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEGXZ */
8565 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ */
8566 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get
, 4)
8567 unsigned short __thiscall
basic_istream_wchar_get(basic_istream_wchar
*this)
8569 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
8572 TRACE("(%p)\n", this);
8576 if(!basic_istream_wchar_sentry_create(this, TRUE
)) {
8577 basic_istream_wchar_sentry_destroy(this);
8581 ret
= basic_streambuf_wchar_sbumpc(basic_ios_wchar_rdbuf_get(base
));
8582 basic_istream_wchar_sentry_destroy(this);
8584 basic_ios_wchar_setstate(base
, IOSTATE_eofbit
|IOSTATE_failbit
);
8591 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AA_W@Z */
8592 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEA_W@Z */
8593 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAG@Z */
8594 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAG@Z */
8595 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_ch
, 8)
8596 basic_istream_wchar
* __thiscall
basic_istream_wchar_get_ch(basic_istream_wchar
*this, wchar_t *ch
)
8600 TRACE("(%p %p)\n", this, ch
);
8602 ret
= basic_istream_wchar_get(this);
8608 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH_W@Z */
8609 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z */
8610 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGHG@Z */
8611 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z */
8612 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_str_delim
, 16)
8613 basic_istream_wchar
* __thiscall
basic_istream_wchar_get_str_delim(basic_istream_wchar
*this, wchar_t *str
, streamsize count
, wchar_t delim
)
8615 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
8616 unsigned short ch
= delim
;
8618 TRACE("(%p %p %ld %c)\n", this, str
, count
, delim
);
8622 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
8623 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
8625 for(ch
= basic_streambuf_wchar_sgetc(strbuf
); count
>1;
8626 ch
= basic_streambuf_wchar_snextc(strbuf
)) {
8627 if(ch
==WEOF
|| ch
==delim
)
8635 basic_istream_wchar_sentry_destroy(this);
8637 basic_ios_wchar_setstate(base
, (!this->count
? IOSTATE_failbit
: IOSTATE_goodbit
) |
8638 (ch
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
8644 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
8645 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
8646 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
8647 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
8648 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_str
, 12)
8649 basic_istream_wchar
* __thiscall
basic_istream_wchar_get_str(basic_istream_wchar
*this, wchar_t *str
, streamsize count
)
8651 return basic_istream_wchar_get_str_delim(this, str
, count
, '\n');
8654 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z */
8655 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z */
8656 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAV?$basic_streambuf@GU?$char_traits@G@std@@@2@G@Z */
8657 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@G@Z */
8658 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_streambuf_delim
, 12)
8659 basic_istream_wchar
* __thiscall
basic_istream_wchar_get_streambuf_delim(basic_istream_wchar
*this, basic_streambuf_wchar
*strbuf
, wchar_t delim
)
8661 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
8662 unsigned short ch
= delim
;
8664 TRACE("(%p %p %c)\n", this, strbuf
, delim
);
8668 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
8669 basic_streambuf_wchar
*strbuf_read
= basic_ios_wchar_rdbuf_get(base
);
8671 for(ch
= basic_streambuf_wchar_sgetc(strbuf_read
); ;
8672 ch
= basic_streambuf_wchar_snextc(strbuf_read
)) {
8673 if(ch
==WEOF
|| ch
==delim
)
8676 if(basic_streambuf_wchar_sputc(strbuf
, ch
) == WEOF
)
8681 basic_istream_wchar_sentry_destroy(this);
8683 basic_ios_wchar_setstate(base
, (!this->count
? IOSTATE_failbit
: IOSTATE_goodbit
) |
8684 (ch
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
8688 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z */
8689 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z */
8690 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z */
8691 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z */
8692 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_streambuf
, 8)
8693 basic_istream_wchar
* __thiscall
basic_istream_wchar_get_streambuf(basic_istream_wchar
*this, basic_streambuf_wchar
*strbuf
)
8695 return basic_istream_wchar_get_streambuf_delim(this, strbuf
, '\n');
8698 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH_W@Z */
8699 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z */
8700 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGHG@Z */
8701 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z */
8702 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_getline_delim
, 16)
8703 basic_istream_wchar
* __thiscall
basic_istream_wchar_getline_delim(basic_istream_wchar
*this, wchar_t *str
, streamsize count
, wchar_t delim
)
8705 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
8706 unsigned short ch
= delim
;
8708 TRACE("(%p %p %ld %c)\n", this, str
, count
, delim
);
8712 if(basic_istream_wchar_sentry_create(this, TRUE
) && count
>0) {
8713 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
8716 ch
= basic_streambuf_wchar_sbumpc(strbuf
);
8718 if(ch
==WEOF
|| ch
==delim
)
8728 else if(ch
!= WEOF
) {
8729 ch
= basic_streambuf_wchar_sgetc(strbuf
);
8732 basic_streambuf_wchar__Gninc(strbuf
);
8737 basic_istream_wchar_sentry_destroy(this);
8739 basic_ios_wchar_setstate(base
, (ch
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
) |
8740 (!this->count
|| (ch
!=delim
&& ch
!=WEOF
) ? IOSTATE_failbit
: IOSTATE_goodbit
));
8746 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
8747 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
8748 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
8749 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
8750 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_getline
, 12)
8751 basic_istream_wchar
* __thiscall
basic_istream_wchar_getline(basic_istream_wchar
*this, wchar_t *str
, streamsize count
)
8753 return basic_istream_wchar_getline_delim(this, str
, count
, '\n');
8756 /* ?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@HG@Z */
8757 /* ?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JG@Z */
8758 /* ?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@HG@Z */
8759 /* ?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JG@Z */
8760 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ignore
, 12)
8761 basic_istream_wchar
* __thiscall
basic_istream_wchar_ignore(basic_istream_wchar
*this, streamsize count
, unsigned short delim
)
8763 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
8764 unsigned short ch
= delim
;
8767 TRACE("(%p %ld %d)\n", this, count
, delim
);
8771 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
8772 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
8773 state
= IOSTATE_goodbit
;
8776 ch
= basic_streambuf_wchar_sbumpc(strbuf
);
8779 state
= IOSTATE_eofbit
;
8787 if(count
!= INT_MAX
)
8791 state
= IOSTATE_failbit
;
8792 basic_istream_wchar_sentry_destroy(this);
8794 basic_ios_wchar_setstate(base
, state
);
8798 /* ?ws@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
8799 /* ?ws@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
8800 /* ?ws@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@1@AAV21@@Z */
8801 /* ?ws@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
8802 basic_istream_wchar
* __cdecl
ws_basic_istream_wchar(basic_istream_wchar
*istream
)
8804 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(istream
);
8805 unsigned short ch
= '\n';
8807 TRACE("(%p)\n", istream
);
8809 if(basic_istream_wchar_sentry_create(istream
, TRUE
)) {
8810 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
8811 const ctype_wchar
*ctype
= ctype_wchar_use_facet(strbuf
->loc
);
8813 for(ch
= basic_streambuf_wchar_sgetc(strbuf
); ctype_wchar_is_ch(ctype
, _SPACE
, ch
);
8814 ch
= basic_streambuf_wchar_snextc(strbuf
)) {
8819 basic_istream_wchar_sentry_destroy(istream
);
8822 basic_ios_wchar_setstate(base
, IOSTATE_eofbit
);
8826 /* ?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
8827 /* ?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
8828 /* ?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEGXZ */
8829 /* ?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ */
8830 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_peek
, 4)
8831 unsigned short __thiscall
basic_istream_wchar_peek(basic_istream_wchar
*this)
8833 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
8834 unsigned short ret
= WEOF
;
8836 TRACE("(%p)\n", this);
8840 if(basic_istream_wchar_sentry_create(this, TRUE
))
8841 ret
= basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base
));
8842 basic_istream_wchar_sentry_destroy(this);
8845 basic_ios_wchar_setstate(base
, IOSTATE_eofbit
);
8850 /* ?_Read_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WIH@Z */
8851 /* ?_Read_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_K_J@Z */
8852 /* ?_Read_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGIH@Z */
8853 /* ?_Read_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_K_J@Z */
8854 static basic_istream_wchar
* basic_istream_wchar__Read_s(basic_istream_wchar
*this, wchar_t *str
, MSVCP_size_t size
, streamsize count
)
8856 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
8857 IOSB_iostate state
= IOSTATE_goodbit
;
8859 TRACE("(%p %p %lu %ld)\n", this, str
, size
, count
);
8861 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
8862 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
8864 this->count
= basic_streambuf_wchar__Sgetn_s(strbuf
, str
, size
, count
);
8865 if(this->count
!= count
)
8866 state
|= IOSTATE_failbit
| IOSTATE_eofbit
;
8870 basic_istream_wchar_sentry_destroy(this);
8872 basic_ios_wchar_setstate(base
, state
);
8876 /* ?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
8877 /* ?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
8878 /* ?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
8879 /* ?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
8880 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read
, 12)
8881 basic_istream_wchar
* __thiscall
basic_istream_wchar_read(basic_istream_wchar
*this, wchar_t *str
, streamsize count
)
8883 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
8884 IOSB_iostate state
= IOSTATE_goodbit
;
8886 TRACE("(%p %p %ld)\n", this, str
, count
);
8888 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
8889 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
8891 this->count
= basic_streambuf_wchar_sgetn(strbuf
, str
, count
);
8892 if(this->count
!= count
)
8893 state
|= IOSTATE_failbit
| IOSTATE_eofbit
;
8897 basic_istream_wchar_sentry_destroy(this);
8899 basic_ios_wchar_setstate(base
, state
);
8903 /* ?_Readsome_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHPA_WIH@Z */
8904 /* ?_Readsome_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_K_J@Z */
8905 /* ?_Readsome_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHPAGIH@Z */
8906 /* ?_Readsome_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_K_J@Z */
8907 static streamsize
basic_istream_wchar__Readsome_s(basic_istream_wchar
*this, wchar_t *str
, MSVCP_size_t size
, streamsize count
)
8909 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
8910 IOSB_iostate state
= IOSTATE_goodbit
;
8912 TRACE("(%p %p %lu %ld)\n", this, str
, size
, count
);
8916 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
8917 streamsize avail
= basic_streambuf_wchar_in_avail(basic_ios_wchar_rdbuf_get(base
));
8922 state
|= IOSTATE_eofbit
;
8924 basic_istream_wchar__Read_s(this, str
, size
, avail
);
8926 state
|= IOSTATE_failbit
;
8928 basic_istream_wchar_sentry_destroy(this);
8930 basic_ios_wchar_setstate(base
, state
);
8934 /* ?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHPA_WH@Z */
8935 /* ?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z */
8936 /* ?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHPAGH@Z */
8937 /* ?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z */
8938 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_readsome
, 12)
8939 streamsize __thiscall
basic_istream_wchar_readsome(basic_istream_wchar
*this, wchar_t *str
, streamsize count
)
8941 return basic_istream_wchar__Readsome_s(this, str
, count
, count
);
8944 /* ?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@_W@Z */
8945 /* ?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z */
8946 /* ?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@G@Z */
8947 /* ?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z */
8948 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_putback
, 8)
8949 basic_istream_wchar
* __thiscall
basic_istream_wchar_putback(basic_istream_wchar
*this, wchar_t ch
)
8951 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
8952 IOSB_iostate state
= IOSTATE_goodbit
;
8954 TRACE("(%p %c)\n", this, ch
);
8958 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
8959 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
8961 if(!ios_base_good(&base
->base
))
8962 state
|= IOSTATE_failbit
;
8963 else if(!strbuf
|| basic_streambuf_wchar_sputbackc(strbuf
, ch
)==WEOF
)
8964 state
|= IOSTATE_badbit
;
8966 basic_istream_wchar_sentry_destroy(this);
8968 basic_ios_wchar_setstate(base
, state
);
8972 /* ?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ */
8973 /* ?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ */
8974 /* ?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@XZ */
8975 /* ?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ */
8976 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_unget
, 4)
8977 basic_istream_wchar
* __thiscall
basic_istream_wchar_unget(basic_istream_wchar
*this)
8979 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
8980 IOSB_iostate state
= IOSTATE_goodbit
;
8982 TRACE("(%p)\n", this);
8986 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
8987 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
8989 if(!ios_base_good(&base
->base
))
8990 state
|= IOSTATE_failbit
;
8991 else if(!strbuf
|| basic_streambuf_wchar_sungetc(strbuf
)==WEOF
)
8992 state
|= IOSTATE_badbit
;
8994 basic_istream_wchar_sentry_destroy(this);
8996 basic_ios_wchar_setstate(base
, state
);
9000 /* ?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
9001 /* ?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAHXZ */
9002 /* ?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHXZ */
9003 /* ?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAHXZ */
9004 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_sync
, 4)
9005 int __thiscall
basic_istream_wchar_sync(basic_istream_wchar
*this)
9007 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9008 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
9010 TRACE("(%p)\n", this);
9015 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
9016 if(basic_streambuf_wchar_pubsync(strbuf
) != -1) {
9017 basic_istream_wchar_sentry_destroy(this);
9021 basic_istream_wchar_sentry_destroy(this);
9023 basic_ios_wchar_setstate(base
, IOSTATE_badbit
);
9027 /* ?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@XZ */
9028 /* ?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
9029 /* ?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@XZ */
9030 /* ?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
9031 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_tellg
, 8)
9032 fpos_int
* __thiscall
basic_istream_wchar_tellg(basic_istream_wchar
*this, fpos_int
*ret
)
9034 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9036 TRACE("(%p %p)\n", this, ret
);
9038 if(ios_base_fail(&base
->base
)) {
9045 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base
),
9046 ret
, 0, SEEKDIR_cur
, OPENMODE_in
);
9047 if(ret
->off
==-1 && ret
->pos
==0 && ret
->state
==0)
9048 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
9053 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@JH@Z */
9054 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z */
9055 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@JH@Z */
9056 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z */
9057 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_seekg
, 12)
9058 basic_istream_wchar
* __thiscall
basic_istream_wchar_seekg(basic_istream_wchar
*this, streamoff off
, int dir
)
9060 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9062 TRACE("(%p %ld %d)\n", this, off
, dir
);
9064 if(!ios_base_fail(&base
->base
)) {
9065 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
9068 basic_streambuf_wchar_pubseekoff(strbuf
, &ret
, off
, dir
, OPENMODE_in
);
9070 if(ret
.off
==-1 && ret
.pos
==0 && ret
.state
==0)
9071 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
9073 basic_ios_wchar_clear(base
, IOSTATE_goodbit
);
9076 basic_ios_wchar_clear(base
, IOSTATE_goodbit
);
9081 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
9082 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
9083 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
9084 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
9085 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_seekg_fpos
, 28)
9086 basic_istream_wchar
* __thiscall
basic_istream_wchar_seekg_fpos(basic_istream_wchar
*this, fpos_int pos
)
9088 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9090 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos
));
9092 if(!ios_base_fail(&base
->base
)) {
9093 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
9096 basic_streambuf_wchar_pubseekpos(strbuf
, &ret
, pos
, OPENMODE_in
);
9098 if(ret
.off
==-1 && ret
.pos
==0 && ret
.state
==0)
9099 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
9101 basic_ios_wchar_clear(base
, IOSTATE_goodbit
);
9104 basic_ios_wchar_clear(base
, IOSTATE_goodbit
);
9109 static basic_istream_wchar
* basic_istream_read_short(basic_istream_wchar
*this, short *v
, const num_get
*numget
)
9111 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9112 int state
= IOSTATE_goodbit
;
9114 TRACE("(%p %p)\n", this, v
);
9116 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
9117 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
9118 istreambuf_iterator_wchar first
={0}, last
={0};
9121 first
.strbuf
= strbuf
;
9122 num_get_wchar_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, &tmp
);
9124 if(!(state
&IOSTATE_failbit
) && tmp
==(LONG
)((short)tmp
))
9127 state
|= IOSTATE_failbit
;
9129 basic_istream_wchar_sentry_destroy(this);
9131 basic_ios_wchar_setstate(base
, state
);
9135 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAF@Z */
9136 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAF@Z */
9137 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_short
, 8)
9138 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_short(basic_istream_wchar
*this, short *v
)
9140 return basic_istream_read_short(this, v
, num_get_wchar_use_facet(
9141 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9144 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAF@Z */
9145 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAF@Z */
9146 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_short
, 8)
9147 basic_istream_wchar
* __thiscall
basic_istream_short_read_short(basic_istream_wchar
*this, short *v
)
9149 return basic_istream_read_short(this, v
, num_get_short_use_facet(
9150 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9153 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAG@Z */
9154 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAG@Z */
9155 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ushort
, 8)
9156 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_ushort(basic_istream_wchar
*this, unsigned short *v
)
9158 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9159 int state
= IOSTATE_goodbit
;
9161 TRACE("(%p %p)\n", this, v
);
9163 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
9164 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
9165 const num_get
*numget
= num_get_wchar_use_facet(strbuf
->loc
);
9166 istreambuf_iterator_wchar first
={0}, last
={0};
9168 first
.strbuf
= strbuf
;
9169 num_get_wchar_get_ushort(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9171 basic_istream_wchar_sentry_destroy(this);
9173 basic_ios_wchar_setstate(base
, state
);
9177 static basic_istream_wchar
* basic_istream_read_int(basic_istream_wchar
*this, int *v
, const num_get
*numget
)
9179 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9180 int state
= IOSTATE_goodbit
;
9182 TRACE("(%p %p)\n", this, v
);
9184 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
9185 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
9186 istreambuf_iterator_wchar first
={0}, last
={0};
9188 first
.strbuf
= strbuf
;
9189 num_get_wchar_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9191 basic_istream_wchar_sentry_destroy(this);
9193 basic_ios_wchar_setstate(base
, state
);
9197 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAH@Z */
9198 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAH@Z */
9199 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_int
, 8)
9200 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_int(basic_istream_wchar
*this, int *v
)
9202 return basic_istream_read_int(this, v
, num_get_wchar_use_facet(
9203 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9206 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAH@Z */
9207 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAH@Z */
9208 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_int
, 8)
9209 basic_istream_wchar
* __thiscall
basic_istream_short_read_int(basic_istream_wchar
*this, int *v
)
9211 return basic_istream_read_int(this, v
, num_get_short_use_facet(
9212 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9215 static basic_istream_wchar
* basic_istream_read_uint(basic_istream_wchar
*this, unsigned int *v
, const num_get
*numget
)
9217 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9218 int state
= IOSTATE_goodbit
;
9220 TRACE("(%p %p)\n", this, v
);
9222 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
9223 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
9224 istreambuf_iterator_wchar first
={0}, last
={0};
9226 first
.strbuf
= strbuf
;
9227 num_get_wchar_get_uint(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9229 basic_istream_wchar_sentry_destroy(this);
9231 basic_ios_wchar_setstate(base
, state
);
9235 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAI@Z */
9236 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAI@Z */
9237 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_uint
, 8)
9238 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_uint(basic_istream_wchar
*this, unsigned int *v
)
9240 return basic_istream_read_uint(this, v
, num_get_wchar_use_facet(
9241 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9244 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAI@Z */
9245 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAI@Z */
9246 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_uint
, 8)
9247 basic_istream_wchar
* __thiscall
basic_istream_short_read_uint(basic_istream_wchar
*this, unsigned int *v
)
9249 return basic_istream_read_uint(this, v
, num_get_short_use_facet(
9250 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9253 static basic_istream_wchar
* basic_istream_read_long(basic_istream_wchar
*this, LONG
*v
, const num_get
*numget
)
9255 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9256 int state
= IOSTATE_goodbit
;
9258 TRACE("(%p %p)\n", this, v
);
9260 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
9261 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
9262 istreambuf_iterator_wchar first
={0}, last
={0};
9264 first
.strbuf
= strbuf
;
9265 num_get_wchar_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9267 basic_istream_wchar_sentry_destroy(this);
9269 basic_ios_wchar_setstate(base
, state
);
9273 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAJ@Z */
9274 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAJ@Z */
9275 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_long
, 8)
9276 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_long(basic_istream_wchar
*this, LONG
*v
)
9278 return basic_istream_read_long(this, v
, num_get_wchar_use_facet(
9279 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9282 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAJ@Z */
9283 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAJ@Z */
9284 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_long
, 8)
9285 basic_istream_wchar
* __thiscall
basic_istream_short_read_long(basic_istream_wchar
*this, LONG
*v
)
9287 return basic_istream_read_long(this, v
, num_get_short_use_facet(
9288 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9291 static basic_istream_wchar
* basic_istream_read_ulong(basic_istream_wchar
*this, ULONG
*v
, const num_get
*numget
)
9293 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9294 int state
= IOSTATE_goodbit
;
9296 TRACE("(%p %p)\n", this, v
);
9298 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
9299 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
9300 istreambuf_iterator_wchar first
={0}, last
={0};
9302 first
.strbuf
= strbuf
;
9303 num_get_wchar_get_ulong(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9305 basic_istream_wchar_sentry_destroy(this);
9307 basic_ios_wchar_setstate(base
, state
);
9311 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAK@Z */
9312 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAK@Z */
9313 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ulong
, 8)
9314 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_ulong(basic_istream_wchar
*this, ULONG
*v
)
9316 return basic_istream_read_ulong(this, v
, num_get_wchar_use_facet(
9317 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9320 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAK@Z */
9321 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAK@Z */
9322 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ulong
, 8)
9323 basic_istream_wchar
* __thiscall
basic_istream_short_read_ulong(basic_istream_wchar
*this, ULONG
*v
)
9325 return basic_istream_read_ulong(this, v
, num_get_short_use_facet(
9326 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9329 static basic_istream_wchar
* basic_istream_read_float(basic_istream_wchar
*this, float *v
, const num_get
*numget
)
9331 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9332 int state
= IOSTATE_goodbit
;
9334 TRACE("(%p %p)\n", this, v
);
9336 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
9337 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
9338 istreambuf_iterator_wchar first
={0}, last
={0};
9340 first
.strbuf
= strbuf
;
9341 num_get_wchar_get_float(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9343 basic_istream_wchar_sentry_destroy(this);
9345 basic_ios_wchar_setstate(base
, state
);
9349 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAM@Z */
9350 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAM@Z */
9351 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_float
, 8)
9352 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_float(basic_istream_wchar
*this, float *v
)
9354 return basic_istream_read_float(this, v
, num_get_wchar_use_facet(
9355 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9358 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAM@Z */
9359 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAM@Z */
9360 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_float
, 8)
9361 basic_istream_wchar
* __thiscall
basic_istream_short_read_float(basic_istream_wchar
*this, float *v
)
9363 return basic_istream_read_float(this, v
, num_get_short_use_facet(
9364 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9367 static basic_istream_wchar
* basic_istream_read_double(basic_istream_wchar
*this, double *v
, const num_get
*numget
)
9369 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9370 int state
= IOSTATE_goodbit
;
9372 TRACE("(%p %p)\n", this, v
);
9374 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
9375 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
9376 istreambuf_iterator_wchar first
={0}, last
={0};
9378 first
.strbuf
= strbuf
;
9379 num_get_wchar_get_double(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9381 basic_istream_wchar_sentry_destroy(this);
9383 basic_ios_wchar_setstate(base
, state
);
9387 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAN@Z */
9388 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAN@Z */
9389 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_double
, 8)
9390 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_double(basic_istream_wchar
*this, double *v
)
9392 return basic_istream_read_double(this, v
, num_get_wchar_use_facet(
9393 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9396 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAN@Z */
9397 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAN@Z */
9398 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_double
, 8)
9399 basic_istream_wchar
* __thiscall
basic_istream_short_read_double(basic_istream_wchar
*this, double *v
)
9401 return basic_istream_read_double(this, v
, num_get_short_use_facet(
9402 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9405 static basic_istream_wchar
* basic_istream_read_ldouble(basic_istream_wchar
*this, double *v
, const num_get
*numget
)
9407 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9408 int state
= IOSTATE_goodbit
;
9410 TRACE("(%p %p)\n", this, v
);
9412 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
9413 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
9414 istreambuf_iterator_wchar first
={0}, last
={0};
9416 first
.strbuf
= strbuf
;
9417 num_get_wchar_get_ldouble(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9419 basic_istream_wchar_sentry_destroy(this);
9421 basic_ios_wchar_setstate(base
, state
);
9425 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAO@Z */
9426 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAO@Z */
9427 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ldouble
, 8)
9428 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_ldouble(basic_istream_wchar
*this, double *v
)
9430 return basic_istream_read_ldouble(this, v
, num_get_wchar_use_facet(
9431 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9434 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAO@Z */
9435 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAO@Z */
9436 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ldouble
, 8)
9437 basic_istream_wchar
* __thiscall
basic_istream_short_read_ldouble(basic_istream_wchar
*this, double *v
)
9439 return basic_istream_read_ldouble(this, v
, num_get_short_use_facet(
9440 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9443 static basic_istream_wchar
* basic_istream_read_ptr(basic_istream_wchar
*this, void **v
, const num_get
*numget
)
9445 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9446 int state
= IOSTATE_goodbit
;
9448 TRACE("(%p %p)\n", this, v
);
9450 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
9451 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
9452 istreambuf_iterator_wchar first
={0}, last
={0};
9454 first
.strbuf
= strbuf
;
9455 num_get_wchar_get_void(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9457 basic_istream_wchar_sentry_destroy(this);
9459 basic_ios_wchar_setstate(base
, state
);
9463 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAPAX@Z */
9464 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
9465 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ptr
, 8)
9466 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_ptr(basic_istream_wchar
*this, void **v
)
9468 return basic_istream_read_ptr(this, v
, num_get_wchar_use_facet(
9469 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9472 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAPAX@Z */
9473 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
9474 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ptr
, 8)
9475 basic_istream_wchar
* __thiscall
basic_istream_short_read_ptr(basic_istream_wchar
*this, void **v
)
9477 return basic_istream_read_ptr(this, v
, num_get_short_use_facet(
9478 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9481 static basic_istream_wchar
* basic_istream_read_int64(basic_istream_wchar
*this, __int64
*v
, const num_get
*numget
)
9483 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9484 int state
= IOSTATE_goodbit
;
9486 TRACE("(%p %p)\n", this, v
);
9488 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
9489 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
9490 istreambuf_iterator_wchar first
={0}, last
={0};
9492 first
.strbuf
= strbuf
;
9493 num_get_wchar_get_int64(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9495 basic_istream_wchar_sentry_destroy(this);
9497 basic_ios_wchar_setstate(base
, state
);
9501 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_J@Z */
9502 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_J@Z */
9503 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_int64
, 8)
9504 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_int64(basic_istream_wchar
*this, __int64
*v
)
9506 return basic_istream_read_int64(this, v
, num_get_wchar_use_facet(
9507 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9510 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_J@Z */
9511 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_J@Z */
9512 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_int64
, 8)
9513 basic_istream_wchar
* __thiscall
basic_istream_short_read_int64(basic_istream_wchar
*this, __int64
*v
)
9515 return basic_istream_read_int64(this, v
, num_get_short_use_facet(
9516 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9519 static basic_istream_wchar
* basic_istream_read_uint64(basic_istream_wchar
*this, unsigned __int64
*v
, const num_get
*numget
)
9521 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9522 int state
= IOSTATE_goodbit
;
9524 TRACE("(%p %p)\n", this, v
);
9526 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
9527 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
9528 istreambuf_iterator_wchar first
={0}, last
={0};
9530 first
.strbuf
= strbuf
;
9531 num_get_wchar_get_uint64(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9533 basic_istream_wchar_sentry_destroy(this);
9535 basic_ios_wchar_setstate(base
, state
);
9539 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_K@Z */
9540 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_K@Z */
9541 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_uint64
, 8)
9542 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_uint64(basic_istream_wchar
*this, unsigned __int64
*v
)
9544 return basic_istream_read_uint64(this, v
, num_get_wchar_use_facet(
9545 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9548 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_K@Z */
9549 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_K@Z */
9550 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_uint64
, 8)
9551 basic_istream_wchar
* __thiscall
basic_istream_short_read_uint64(basic_istream_wchar
*this, unsigned __int64
*v
)
9553 return basic_istream_read_uint64(this, v
, num_get_short_use_facet(
9554 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9557 static basic_istream_wchar
* basic_istream_read_bool(basic_istream_wchar
*this, MSVCP_bool
*v
, const num_get
*numget
)
9559 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9560 int state
= IOSTATE_goodbit
;
9562 TRACE("(%p %p)\n", this, v
);
9564 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
9565 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
9566 istreambuf_iterator_wchar first
={0}, last
={0};
9568 first
.strbuf
= strbuf
;
9569 num_get_wchar_get_bool(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
9571 basic_istream_wchar_sentry_destroy(this);
9573 basic_ios_wchar_setstate(base
, state
);
9577 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_N@Z */
9578 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_N@Z */
9579 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_bool
, 8)
9580 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_bool(basic_istream_wchar
*this, MSVCP_bool
*v
)
9582 return basic_istream_read_bool(this, v
, num_get_wchar_use_facet(
9583 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9586 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_N@Z */
9587 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_N@Z */
9588 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_bool
, 8)
9589 basic_istream_wchar
* __thiscall
basic_istream_short_read_bool(basic_istream_wchar
*this, MSVCP_bool
*v
)
9591 return basic_istream_read_bool(this, v
, num_get_short_use_facet(
9592 basic_istream_wchar_get_basic_ios(this)->strbuf
->loc
));
9595 /* ??$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 */
9596 /* ??$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 */
9597 /* ??$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 */
9598 /* ??$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 */
9599 basic_istream_wchar
* __cdecl
basic_istream_wchar_getline_bstr_delim(
9600 basic_istream_wchar
*istream
, basic_string_wchar
*str
, wchar_t delim
)
9602 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(istream
);
9603 IOSB_iostate state
= IOSTATE_goodbit
;
9606 TRACE("(%p %p %c)\n", istream
, str
, delim
);
9608 if(basic_istream_wchar_sentry_create(istream
, TRUE
)) {
9609 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
9610 MSVCP_basic_string_wchar_clear(str
);
9612 c
= basic_streambuf_wchar_sgetc(strbuf
);
9613 for(; c
!=delim
&& c
!=WEOF
; c
= basic_streambuf_wchar_snextc(strbuf
))
9614 MSVCP_basic_string_wchar_append_ch(str
, c
);
9615 if(c
==delim
) basic_streambuf_wchar_sbumpc(strbuf
);
9616 else if(c
==WEOF
) state
|= IOSTATE_eofbit
;
9618 if(!MSVCP_basic_string_wchar_length(str
) && c
!=delim
) state
|= IOSTATE_failbit
;
9620 basic_istream_wchar_sentry_destroy(istream
);
9622 basic_ios_wchar_setstate(basic_istream_wchar_get_basic_ios(istream
), state
);
9626 /* ??$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 */
9627 /* ??$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 */
9628 /* ??$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 */
9629 /* ??$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 */
9630 basic_istream_wchar
* __cdecl
basic_istream_wchar_getline_bstr(
9631 basic_istream_wchar
*istream
, basic_string_wchar
*str
)
9633 return basic_istream_wchar_getline_bstr_delim(istream
, str
, '\n');
9636 static basic_istream_wchar
* basic_istream_read_bstr(basic_istream_wchar
*istream
,
9637 basic_string_wchar
*str
, const ctype_wchar
*ctype
)
9639 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(istream
);
9640 IOSB_iostate state
= IOSTATE_failbit
;
9643 TRACE("(%p %p)\n", istream
, str
);
9645 if(basic_istream_wchar_sentry_create(istream
, FALSE
)) {
9646 MSVCP_size_t count
= ios_base_width_get(&base
->base
);
9651 MSVCP_basic_string_wchar_clear(str
);
9653 for(c
= basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base
));
9654 c
!=WEOF
&& !ctype_wchar_is_ch(ctype
, _SPACE
|_BLANK
, c
) && count
>0;
9655 c
= basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base
)), count
--) {
9656 state
= IOSTATE_goodbit
;
9657 MSVCP_basic_string_wchar_append_ch(str
, c
);
9660 basic_istream_wchar_sentry_destroy(istream
);
9662 ios_base_width_set(&base
->base
, 0);
9663 basic_ios_wchar_setstate(base
, state
| (c
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
9667 /* ??$?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 */
9668 /* ??$?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 */
9669 basic_istream_wchar
* __cdecl
basic_istream_wchar_read_bstr(
9670 basic_istream_wchar
*istream
, basic_string_wchar
*str
)
9672 return basic_istream_read_bstr(istream
, str
, ctype_wchar_use_facet(
9673 basic_istream_wchar_get_basic_ios(istream
)->strbuf
->loc
));
9676 /* ??$?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 */
9677 /* ??$?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 */
9678 basic_istream_wchar
* __cdecl
basic_istream_short_read_bstr(
9679 basic_istream_wchar
*istream
, basic_string_wchar
*str
)
9681 return basic_istream_read_bstr(istream
, str
, ctype_short_use_facet(
9682 basic_istream_wchar_get_basic_ios(istream
)->strbuf
->loc
));
9685 static basic_istream_wchar
* basic_istream_read_str(basic_istream_wchar
*istream
, wchar_t *str
, const ctype_wchar
*ctype
)
9687 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(istream
);
9688 IOSB_iostate state
= IOSTATE_failbit
;
9689 unsigned short c
= '\n';
9691 TRACE("(%p %p)\n", istream
, str
);
9693 if(basic_istream_wchar_sentry_create(istream
, FALSE
)) {
9694 MSVCP_size_t count
= ios_base_width_get(&base
->base
)-1;
9696 for(c
= basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base
));
9697 c
!=WEOF
&& !ctype_wchar_is_ch(ctype
, _SPACE
|_BLANK
, c
) && count
>0;
9698 c
= basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base
)), count
--) {
9699 state
= IOSTATE_goodbit
;
9703 basic_istream_wchar_sentry_destroy(istream
);
9706 ios_base_width_set(&base
->base
, 0);
9707 basic_ios_wchar_setstate(base
, state
| (c
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
9711 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@PA_W@Z */
9712 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@PEA_W@Z */
9713 basic_istream_wchar
* __cdecl
basic_istream_wchar_read_str(basic_istream_wchar
*istream
, wchar_t *str
)
9715 return basic_istream_read_str(istream
, str
, ctype_wchar_use_facet(
9716 basic_istream_wchar_get_basic_ios(istream
)->strbuf
->loc
));
9719 /* ??$?5GU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@PAG@Z */
9720 /* ??$?5GU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@PEAG@Z */
9721 basic_istream_wchar
* __cdecl
basic_istream_short_read_str(basic_istream_wchar
*istream
, wchar_t *str
)
9723 return basic_istream_read_str(istream
, str
, ctype_short_use_facet(
9724 basic_istream_wchar_get_basic_ios(istream
)->strbuf
->loc
));
9727 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AA_W@Z */
9728 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEA_W@Z */
9729 /* ??$?5GU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAG@Z */
9730 /* ??$?5GU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAG@Z */
9731 basic_istream_wchar
* __cdecl
basic_istream_wchar_read_ch(basic_istream_wchar
*istream
, wchar_t *ch
)
9733 IOSB_iostate state
= IOSTATE_failbit
;
9734 unsigned short c
= 0;
9736 TRACE("(%p %p)\n", istream
, ch
);
9738 if(basic_istream_wchar_sentry_create(istream
, FALSE
)) {
9739 c
= basic_streambuf_wchar_sbumpc(basic_ios_wchar_rdbuf_get(
9740 basic_istream_wchar_get_basic_ios(istream
)));
9742 state
= IOSTATE_goodbit
;
9746 basic_istream_wchar_sentry_destroy(istream
);
9748 basic_ios_wchar_setstate(basic_istream_wchar_get_basic_ios(istream
),
9749 state
| (c
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
9753 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
9754 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
9755 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
9756 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
9757 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_streambuf
, 8)
9758 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_streambuf(
9759 basic_istream_wchar
*this, basic_streambuf_wchar
*streambuf
)
9761 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
9762 IOSB_iostate state
= IOSTATE_failbit
;
9763 unsigned short c
= '\n';
9765 TRACE("(%p %p)\n", this, streambuf
);
9767 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
9768 for(c
= basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base
)); c
!=WEOF
;
9769 c
= basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base
))) {
9770 state
= IOSTATE_goodbit
;
9771 if(basic_streambuf_wchar_sputc(streambuf
, c
) == WEOF
)
9775 basic_istream_wchar_sentry_destroy(this);
9777 basic_ios_wchar_setstate(base
, state
| (c
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
9781 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
9782 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
9783 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
9784 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
9785 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func
, 8)
9786 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_func(basic_istream_wchar
*this,
9787 basic_istream_wchar
* (__cdecl
*pfunc
)(basic_istream_wchar
*))
9789 TRACE("(%p %p)\n", this, pfunc
);
9794 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AAV21@@Z@Z */
9795 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z */
9796 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@GU?$char_traits@G@std@@@1@AAV21@@Z@Z */
9797 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z */
9798 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func_basic_ios
, 8)
9799 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_func_basic_ios(basic_istream_wchar
*this,
9800 basic_ios_wchar
* (__cdecl
*pfunc
)(basic_ios_wchar
*))
9802 TRACE("(%p %p)\n", this, pfunc
);
9803 pfunc(basic_istream_wchar_get_basic_ios(this));
9807 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
9808 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
9809 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
9810 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
9811 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func_ios_base
, 8)
9812 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_func_ios_base(
9813 basic_istream_wchar
*this, ios_base
* (__cdecl
*pfunc
)(ios_base
*))
9815 TRACE("(%p %p)\n", this, pfunc
);
9816 pfunc(&basic_istream_wchar_get_basic_ios(this)->base
);
9820 static inline basic_ios_char
* basic_iostream_char_to_basic_ios(basic_iostream_char
*ptr
)
9822 return (basic_ios_char
*)((char*)ptr
+basic_iostream_char_vbtable1
[1]);
9825 static inline basic_iostream_char
* basic_iostream_char_from_basic_ios(basic_ios_char
*ptr
)
9827 return (basic_iostream_char
*)((char*)ptr
-basic_iostream_char_vbtable1
[1]);
9830 /* ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
9831 /* ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
9832 DEFINE_THISCALL_WRAPPER(basic_iostream_char_ctor
, 12)
9833 basic_iostream_char
* __thiscall
basic_iostream_char_ctor(basic_iostream_char
*this, basic_streambuf_char
*strbuf
, MSVCP_bool virt_init
)
9835 basic_ios_char
*basic_ios
;
9837 TRACE("(%p %p %d)\n", this, strbuf
, virt_init
);
9840 this->base1
.vbtable
= basic_iostream_char_vbtable1
;
9841 this->base2
.vbtable
= basic_iostream_char_vbtable2
;
9842 basic_ios
= basic_istream_char_get_basic_ios(&this->base1
);
9843 basic_ios_char_ctor(basic_ios
);
9845 basic_ios
= basic_istream_char_get_basic_ios(&this->base1
);
9848 basic_ios
->base
.vtable
= &MSVCP_basic_iostream_char_vtable
;
9850 basic_istream_char_ctor(&this->base1
, strbuf
, FALSE
, FALSE
);
9851 basic_ostream_char_ctor_uninitialized(&this->base2
, 0, FALSE
, FALSE
);
9855 /* ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
9856 /* ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
9857 DEFINE_THISCALL_WRAPPER(basic_iostream_char_dtor
, 4)
9858 void __thiscall
basic_iostream_char_dtor(basic_ios_char
*base
)
9860 basic_iostream_char
*this = basic_iostream_char_from_basic_ios(base
);
9862 TRACE("(%p)\n", this);
9863 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base2
));
9864 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base1
));
9867 /* ??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
9868 /* ??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
9869 DEFINE_THISCALL_WRAPPER(basic_iostream_char_vbase_dtor
, 4)
9870 void __thiscall
basic_iostream_char_vbase_dtor(basic_iostream_char
*this)
9872 TRACE("(%p)\n", this);
9873 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(this));
9874 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base1
));
9877 DEFINE_THISCALL_WRAPPER(basic_iostream_char_vector_dtor
, 8)
9878 basic_iostream_char
* __thiscall
basic_iostream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
9880 basic_iostream_char
*this = basic_iostream_char_from_basic_ios(base
);
9882 TRACE("(%p %x)\n", this, flags
);
9885 /* we have an array, with the number of elements stored before the first object */
9886 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
9888 for(i
=*ptr
-1; i
>=0; i
--)
9889 basic_iostream_char_vbase_dtor(this+i
);
9890 MSVCRT_operator_delete(ptr
);
9892 basic_iostream_char_vbase_dtor(this);
9894 MSVCRT_operator_delete(this);
9900 static inline basic_ios_wchar
* basic_iostream_wchar_to_basic_ios(basic_iostream_wchar
*ptr
)
9902 return (basic_ios_wchar
*)((char*)ptr
+basic_iostream_wchar_vbtable1
[1]);
9905 static inline basic_iostream_wchar
* basic_iostream_wchar_from_basic_ios(basic_ios_wchar
*ptr
)
9907 return (basic_iostream_wchar
*)((char*)ptr
-basic_iostream_wchar_vbtable1
[1]);
9910 /* ??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
9911 /* ??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
9912 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_ctor
, 12)
9913 basic_iostream_wchar
* __thiscall
basic_iostream_wchar_ctor(basic_iostream_wchar
*this,
9914 basic_streambuf_wchar
*strbuf
, MSVCP_bool virt_init
)
9916 basic_ios_wchar
*basic_ios
;
9918 TRACE("(%p %p %d)\n", this, strbuf
, virt_init
);
9921 this->base1
.vbtable
= basic_iostream_wchar_vbtable1
;
9922 this->base2
.vbtable
= basic_iostream_wchar_vbtable2
;
9923 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base1
);
9924 basic_ios_wchar_ctor(basic_ios
);
9926 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base1
);
9929 basic_istream_wchar_ctor(&this->base1
, strbuf
, FALSE
, FALSE
);
9930 basic_ostream_wchar_ctor_uninitialized(&this->base2
, 0, FALSE
, FALSE
);
9932 basic_ios
->base
.vtable
= &MSVCP_basic_iostream_wchar_vtable
;
9936 /* ??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
9937 /* ??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
9938 DEFINE_THISCALL_WRAPPER(basic_iostream_short_ctor
, 12)
9939 basic_iostream_wchar
* __thiscall
basic_iostream_short_ctor(basic_iostream_wchar
*this,
9940 basic_streambuf_wchar
*strbuf
, MSVCP_bool virt_init
)
9942 basic_iostream_wchar_ctor(this, strbuf
, virt_init
);
9943 basic_istream_wchar_get_basic_ios(&this->base1
)->base
.vtable
= &MSVCP_basic_iostream_short_vtable
;
9947 /* ??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
9948 /* ??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
9949 /* ??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UAE@XZ */
9950 /* ??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
9951 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_dtor
, 4)
9952 void __thiscall
basic_iostream_wchar_dtor(basic_ios_wchar
*base
)
9954 basic_iostream_wchar
*this = basic_iostream_wchar_from_basic_ios(base
);
9956 TRACE("(%p)\n", this);
9957 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base2
));
9958 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base1
));
9961 /* ??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
9962 /* ??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
9963 /* ??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
9964 /* ??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
9965 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_vbase_dtor
, 4)
9966 void __thiscall
basic_iostream_wchar_vbase_dtor(basic_iostream_wchar
*this)
9968 TRACE("(%p)\n", this);
9969 basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(this));
9970 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base1
));
9973 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_vector_dtor
, 8)
9974 basic_iostream_wchar
* __thiscall
basic_iostream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
9976 basic_iostream_wchar
*this = basic_iostream_wchar_from_basic_ios(base
);
9978 TRACE("(%p %x)\n", this, flags
);
9981 /* we have an array, with the number of elements stored before the first object */
9982 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
9984 for(i
=*ptr
-1; i
>=0; i
--)
9985 basic_iostream_wchar_vbase_dtor(this+i
);
9986 MSVCRT_operator_delete(ptr
);
9988 basic_iostream_wchar_vbase_dtor(this);
9990 MSVCRT_operator_delete(this);
9996 static inline basic_ios_char
* basic_ofstream_char_to_basic_ios(basic_ofstream_char
*ptr
)
9998 return (basic_ios_char
*)((char*)ptr
+basic_ofstream_char_vbtable
[1]);
10001 static inline basic_ofstream_char
* basic_ofstream_char_from_basic_ios(basic_ios_char
*ptr
)
10003 return (basic_ofstream_char
*)((char*)ptr
-basic_ofstream_char_vbtable
[1]);
10006 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
10007 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
10008 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor
, 8)
10009 basic_ofstream_char
* __thiscall
basic_ofstream_char_ctor(basic_ofstream_char
*this, MSVCP_bool virt_init
)
10011 basic_ios_char
*basic_ios
;
10013 TRACE("(%p %d)\n", this, virt_init
);
10016 this->base
.vbtable
= basic_ofstream_char_vbtable
;
10017 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
10018 basic_ios_char_ctor(basic_ios
);
10020 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
10023 basic_filebuf_char_ctor(&this->filebuf
);
10024 basic_ostream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
10025 basic_ios
->base
.vtable
= &MSVCP_basic_ofstream_char_vtable
;
10029 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
10030 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10031 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_file
, 12)
10032 basic_ofstream_char
* __thiscall
basic_ofstream_char_ctor_file(
10033 basic_ofstream_char
*this, FILE *file
, MSVCP_bool virt_init
)
10035 basic_ios_char
*basic_ios
;
10037 TRACE("(%p %p %d)\n", this, file
, virt_init
);
10040 this->base
.vbtable
= basic_ofstream_char_vbtable
;
10041 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
10042 basic_ios_char_ctor(basic_ios
);
10044 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
10047 basic_filebuf_char_ctor_file(&this->filebuf
, file
);
10048 basic_ostream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
10049 basic_ios
->base
.vtable
= &MSVCP_basic_ofstream_char_vtable
;
10053 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
10054 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
10055 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_name
, 20)
10056 basic_ofstream_char
* __thiscall
basic_ofstream_char_ctor_name(basic_ofstream_char
*this,
10057 const char *name
, int mode
, int prot
, MSVCP_bool virt_init
)
10059 TRACE("(%p %s %d %d %d)\n", this, name
, mode
, prot
, virt_init
);
10061 basic_ofstream_char_ctor(this, virt_init
);
10063 if(!basic_filebuf_char_open(&this->filebuf
, name
, mode
|OPENMODE_out
, prot
)) {
10064 basic_ios_char
*basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
10065 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
10070 /* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
10071 /* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
10072 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_dtor
, 4)
10073 void __thiscall
basic_ofstream_char_dtor(basic_ios_char
*base
)
10075 basic_ofstream_char
*this = basic_ofstream_char_from_basic_ios(base
);
10077 TRACE("(%p)\n", this);
10079 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base
));
10080 basic_filebuf_char_dtor(&this->filebuf
);
10083 /* ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10084 /* ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10085 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_vbase_dtor
, 4)
10086 void __thiscall
basic_ofstream_char_vbase_dtor(basic_ofstream_char
*this)
10088 TRACE("(%p)\n", this);
10090 basic_ofstream_char_dtor(basic_ofstream_char_to_basic_ios(this));
10091 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base
));
10094 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_vector_dtor
, 8)
10095 basic_ofstream_char
* __thiscall
basic_ofstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
10097 basic_ofstream_char
*this = basic_ofstream_char_from_basic_ios(base
);
10099 TRACE("(%p %x)\n", this, flags
);
10102 /* we have an array, with the number of elements stored before the first object */
10103 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
10105 for(i
=*ptr
-1; i
>=0; i
--)
10106 basic_ofstream_char_vbase_dtor(this+i
);
10107 MSVCRT_operator_delete(ptr
);
10109 basic_ofstream_char_vbase_dtor(this);
10111 MSVCRT_operator_delete(this);
10117 /* ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10118 /* ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10119 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_close
, 4)
10120 void __thiscall
basic_ofstream_char_close(basic_ofstream_char
*this)
10122 TRACE("(%p)\n", this);
10124 if(!basic_filebuf_char_close(&this->filebuf
)) {
10125 basic_ios_char
*basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
10126 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
10130 /* ?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
10131 /* ?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
10132 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_is_open
, 4)
10133 MSVCP_bool __thiscall
basic_ofstream_char_is_open(const basic_ofstream_char
*this)
10135 TRACE("(%p)\n", this);
10136 return basic_filebuf_char_is_open(&this->filebuf
);
10139 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
10140 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
10141 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open
, 16)
10142 void __thiscall
basic_ofstream_char_open(basic_ofstream_char
*this,
10143 const char *name
, int mode
, int prot
)
10145 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
10147 if(!basic_filebuf_char_open(&this->filebuf
, name
, mode
|OPENMODE_out
, prot
)) {
10148 basic_ios_char
*basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
10149 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
10153 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
10154 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
10155 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open_old
, 12)
10156 void __thiscall
basic_ofstream_char_open_old(basic_ofstream_char
*this,
10157 const char *name
, unsigned int mode
)
10159 basic_ofstream_char_open(this, name
, mode
, _SH_DENYNO
);
10162 /* ?rdbuf@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10163 /* ?rdbuf@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10164 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_rdbuf
, 4)
10165 basic_filebuf_char
* __thiscall
basic_ofstream_char_rdbuf(const basic_ofstream_char
*this)
10167 TRACE("(%p)\n", this);
10168 return (basic_filebuf_char
*)&this->filebuf
;
10171 static inline basic_ios_wchar
* basic_ofstream_wchar_to_basic_ios(basic_ofstream_wchar
*ptr
)
10173 return (basic_ios_wchar
*)((char*)ptr
+basic_ofstream_wchar_vbtable
[1]);
10176 static inline basic_ofstream_wchar
* basic_ofstream_wchar_from_basic_ios(basic_ios_wchar
*ptr
)
10178 return (basic_ofstream_wchar
*)((char*)ptr
-basic_ofstream_wchar_vbtable
[1]);
10181 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
10182 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
10183 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor
, 8)
10184 basic_ofstream_wchar
* __thiscall
basic_ofstream_wchar_ctor(basic_ofstream_wchar
*this, MSVCP_bool virt_init
)
10186 basic_ios_wchar
*basic_ios
;
10188 TRACE("(%p %d)\n", this, virt_init
);
10191 this->base
.vbtable
= basic_ofstream_wchar_vbtable
;
10192 basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
10193 basic_ios_wchar_ctor(basic_ios
);
10195 basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
10198 basic_filebuf_wchar_ctor(&this->filebuf
);
10199 basic_ostream_wchar_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
10200 basic_ios
->base
.vtable
= &MSVCP_basic_ofstream_wchar_vtable
;
10204 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
10205 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
10206 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor
, 8)
10207 basic_ofstream_wchar
* __thiscall
basic_ofstream_short_ctor(basic_ofstream_wchar
*this, MSVCP_bool virt_init
)
10209 basic_ofstream_wchar_ctor(this, virt_init
);
10210 basic_ostream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &MSVCP_basic_ofstream_short_vtable
;
10214 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
10215 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10216 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor_file
, 12)
10217 basic_ofstream_wchar
* __thiscall
basic_ofstream_wchar_ctor_file(
10218 basic_ofstream_wchar
*this, FILE *file
, MSVCP_bool virt_init
)
10220 basic_ios_wchar
*basic_ios
;
10222 TRACE("(%p %p %d)\n", this, file
, virt_init
);
10225 this->base
.vbtable
= basic_ofstream_wchar_vbtable
;
10226 basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
10227 basic_ios_wchar_ctor(basic_ios
);
10229 basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
10232 basic_filebuf_wchar_ctor_file(&this->filebuf
, file
);
10233 basic_ostream_wchar_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
10234 basic_ios
->base
.vtable
= &MSVCP_basic_ofstream_wchar_vtable
;
10238 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
10239 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10240 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor_file
, 12)
10241 basic_ofstream_wchar
* __thiscall
basic_ofstream_short_ctor_file(
10242 basic_ofstream_wchar
*this, FILE *file
, MSVCP_bool virt_init
)
10244 basic_ofstream_wchar_ctor_file(this, file
, virt_init
);
10245 basic_ostream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &MSVCP_basic_ofstream_short_vtable
;
10249 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@PBDHH@Z */
10250 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBDHH@Z */
10251 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor_name
, 20)
10252 basic_ofstream_wchar
* __thiscall
basic_ofstream_wchar_ctor_name(basic_ofstream_wchar
*this,
10253 const char *name
, int mode
, int prot
, MSVCP_bool virt_init
)
10255 TRACE("(%p %s %d %d %d)\n", this, name
, mode
, prot
, virt_init
);
10257 basic_ofstream_wchar_ctor(this, virt_init
);
10259 if(!basic_filebuf_wchar_open(&this->filebuf
, name
, mode
|OPENMODE_out
, prot
)) {
10260 basic_ios_wchar
*basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
10261 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
10266 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PBDHH@Z */
10267 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDHH@Z */
10268 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor_name
, 20)
10269 basic_ofstream_wchar
* __thiscall
basic_ofstream_short_ctor_name(basic_ofstream_wchar
*this,
10270 const char *name
, int mode
, int prot
, MSVCP_bool virt_init
)
10272 basic_ofstream_wchar_ctor_name(this, name
, mode
, prot
, virt_init
);
10273 basic_ostream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &MSVCP_basic_ofstream_short_vtable
;
10277 /* ??1?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
10278 /* ??1?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
10279 /* ??1?$basic_ofstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
10280 /* ??1?$basic_ofstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
10281 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_dtor
, 4)
10282 void __thiscall
basic_ofstream_wchar_dtor(basic_ios_wchar
*base
)
10284 basic_ofstream_wchar
*this = basic_ofstream_wchar_from_basic_ios(base
);
10286 TRACE("(%p)\n", this);
10288 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base
));
10289 basic_filebuf_wchar_dtor(&this->filebuf
);
10292 /* ??_D?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10293 /* ??_D?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10294 /* ??_D?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10295 /* ??_D?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10296 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_vbase_dtor
, 4)
10297 void __thiscall
basic_ofstream_wchar_vbase_dtor(basic_ofstream_wchar
*this)
10299 TRACE("(%p)\n", this);
10301 basic_ofstream_wchar_dtor(basic_ofstream_wchar_to_basic_ios(this));
10302 basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(&this->base
));
10305 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_vector_dtor
, 8)
10306 basic_ofstream_wchar
* __thiscall
basic_ofstream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
10308 basic_ofstream_wchar
*this = basic_ofstream_wchar_from_basic_ios(base
);
10310 TRACE("(%p %x)\n", this, flags
);
10313 /* we have an array, with the number of elements stored before the first object */
10314 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
10316 for(i
=*ptr
-1; i
>=0; i
--)
10317 basic_ofstream_wchar_vbase_dtor(this+i
);
10318 MSVCRT_operator_delete(ptr
);
10320 basic_ofstream_wchar_vbase_dtor(this);
10322 MSVCRT_operator_delete(this);
10328 /* ?close@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10329 /* ?close@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10330 /* ?close@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10331 /* ?close@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10332 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_close
, 4)
10333 void __thiscall
basic_ofstream_wchar_close(basic_ofstream_wchar
*this)
10335 TRACE("(%p)\n", this);
10337 if(!basic_filebuf_wchar_close(&this->filebuf
)) {
10338 basic_ios_wchar
*basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
10339 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
10343 /* ?is_open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
10344 /* ?is_open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
10345 /* ?is_open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
10346 /* ?is_open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
10347 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_is_open
, 4)
10348 MSVCP_bool __thiscall
basic_ofstream_wchar_is_open(const basic_ofstream_wchar
*this)
10350 TRACE("(%p)\n", this);
10351 return basic_filebuf_wchar_is_open(&this->filebuf
);
10354 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDHH@Z */
10355 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDHH@Z */
10356 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBDHH@Z */
10357 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDHH@Z */
10358 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_open
, 16)
10359 void __thiscall
basic_ofstream_wchar_open(basic_ofstream_wchar
*this,
10360 const char *name
, int mode
, int prot
)
10362 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
10364 if(!basic_filebuf_wchar_open(&this->filebuf
, name
, mode
|OPENMODE_out
, prot
)) {
10365 basic_ios_wchar
*basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
10366 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
10370 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDI@Z */
10371 /* ?open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDI@Z */
10372 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBDI@Z */
10373 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDI@Z */
10374 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_open_old
, 12)
10375 void __thiscall
basic_ofstream_wchar_open_old(basic_ofstream_wchar
*this,
10376 const char *name
, unsigned int mode
)
10378 basic_ofstream_wchar_open(this, name
, mode
, _SH_DENYNO
);
10381 /* ?rdbuf@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10382 /* ?rdbuf@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10383 /* ?rdbuf@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10384 /* ?rdbuf@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10385 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_rdbuf
, 4)
10386 basic_filebuf_wchar
* __thiscall
basic_ofstream_wchar_rdbuf(const basic_ofstream_wchar
*this)
10388 TRACE("(%p)\n", this);
10389 return (basic_filebuf_wchar
*)&this->filebuf
;
10392 static inline basic_ios_char
* basic_ifstream_char_to_basic_ios(basic_ifstream_char
*ptr
)
10394 return (basic_ios_char
*)((char*)ptr
+basic_ifstream_char_vbtable
[1]);
10397 static inline basic_ifstream_char
* basic_ifstream_char_from_basic_ios(basic_ios_char
*ptr
)
10399 return (basic_ifstream_char
*)((char*)ptr
-basic_ifstream_char_vbtable
[1]);
10402 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
10403 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
10404 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor
, 8)
10405 basic_ifstream_char
* __thiscall
basic_ifstream_char_ctor(basic_ifstream_char
*this, MSVCP_bool virt_init
)
10407 basic_ios_char
*basic_ios
;
10409 TRACE("(%p %d)\n", this, virt_init
);
10412 this->base
.vbtable
= basic_ifstream_char_vbtable
;
10413 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
10414 basic_ios_char_ctor(basic_ios
);
10416 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
10419 basic_filebuf_char_ctor(&this->filebuf
);
10420 basic_istream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
10421 basic_ios
->base
.vtable
= &MSVCP_basic_ifstream_char_vtable
;
10425 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
10426 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10427 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_file
, 12)
10428 basic_ifstream_char
* __thiscall
basic_ifstream_char_ctor_file(
10429 basic_ifstream_char
*this, FILE *file
, MSVCP_bool virt_init
)
10431 basic_ios_char
*basic_ios
;
10433 TRACE("(%p %p %d)\n", this, file
, virt_init
);
10436 this->base
.vbtable
= basic_ifstream_char_vbtable
;
10437 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
10438 basic_ios_char_ctor(basic_ios
);
10440 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
10443 basic_filebuf_char_ctor_file(&this->filebuf
, file
);
10444 basic_istream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
10445 basic_ios
->base
.vtable
= &MSVCP_basic_ifstream_char_vtable
;
10449 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
10450 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
10451 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_name
, 20)
10452 basic_ifstream_char
* __thiscall
basic_ifstream_char_ctor_name(basic_ifstream_char
*this,
10453 const char *name
, int mode
, int prot
, MSVCP_bool virt_init
)
10455 TRACE("(%p %s %d %d %d)\n", this, name
, mode
, prot
, virt_init
);
10457 basic_ifstream_char_ctor(this, virt_init
);
10459 if(!basic_filebuf_char_open(&this->filebuf
, name
, mode
|OPENMODE_in
, prot
)) {
10460 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
10461 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
10466 /* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
10467 /* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
10468 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_dtor
, 4)
10469 void __thiscall
basic_ifstream_char_dtor(basic_ios_char
*base
)
10471 basic_ifstream_char
*this = basic_ifstream_char_from_basic_ios(base
);
10473 TRACE("(%p)\n", this);
10475 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base
));
10476 basic_filebuf_char_dtor(&this->filebuf
);
10479 /* ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10480 /* ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10481 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_vbase_dtor
, 4)
10482 void __thiscall
basic_ifstream_char_vbase_dtor(basic_ifstream_char
*this)
10484 TRACE("(%p)\n", this);
10486 basic_ifstream_char_dtor(basic_ifstream_char_to_basic_ios(this));
10487 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base
));
10490 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_vector_dtor
, 8)
10491 basic_ifstream_char
* __thiscall
basic_ifstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
10493 basic_ifstream_char
*this = basic_ifstream_char_from_basic_ios(base
);
10495 TRACE("(%p %x)\n", this, flags
);
10498 /* we have an array, with the number of elements stored before the first object */
10499 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
10501 for(i
=*ptr
-1; i
>=0; i
--)
10502 basic_ifstream_char_vbase_dtor(this+i
);
10503 MSVCRT_operator_delete(ptr
);
10505 basic_ifstream_char_vbase_dtor(this);
10507 MSVCRT_operator_delete(this);
10513 /* ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10514 /* ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10515 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_close
, 4)
10516 void __thiscall
basic_ifstream_char_close(basic_ifstream_char
*this)
10518 TRACE("(%p)\n", this);
10520 if(!basic_filebuf_char_close(&this->filebuf
)) {
10521 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
10522 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
10526 /* ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
10527 /* ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
10528 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_is_open
, 4)
10529 MSVCP_bool __thiscall
basic_ifstream_char_is_open(const basic_ifstream_char
*this)
10531 TRACE("(%p)\n", this);
10532 return basic_filebuf_char_is_open(&this->filebuf
);
10535 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
10536 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
10537 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open
, 16)
10538 void __thiscall
basic_ifstream_char_open(basic_ifstream_char
*this,
10539 const char *name
, int mode
, int prot
)
10541 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
10543 if(!basic_filebuf_char_open(&this->filebuf
, name
, mode
|OPENMODE_in
, prot
)) {
10544 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
10545 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
10549 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
10550 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
10551 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open_old
, 12)
10552 void __thiscall
basic_ifstream_char_open_old(basic_ifstream_char
*this,
10553 const char *name
, unsigned int mode
)
10555 basic_ifstream_char_open(this, name
, mode
, _SH_DENYNO
);
10558 /* ?rdbuf@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10559 /* ?rdbuf@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10560 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_rdbuf
, 4)
10561 basic_filebuf_char
* __thiscall
basic_ifstream_char_rdbuf(const basic_ifstream_char
*this)
10563 TRACE("(%p)\n", this);
10564 return (basic_filebuf_char
*)&this->filebuf
;
10567 static inline basic_ios_wchar
* basic_ifstream_wchar_to_basic_ios(basic_ifstream_wchar
*ptr
)
10569 return (basic_ios_wchar
*)((char*)ptr
+basic_ifstream_wchar_vbtable
[1]);
10572 static inline basic_ifstream_wchar
* basic_ifstream_wchar_from_basic_ios(basic_ios_wchar
*ptr
)
10574 return (basic_ifstream_wchar
*)((char*)ptr
-basic_ifstream_wchar_vbtable
[1]);
10577 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
10578 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
10579 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor
, 8)
10580 basic_ifstream_wchar
* __thiscall
basic_ifstream_wchar_ctor(basic_ifstream_wchar
*this, MSVCP_bool virt_init
)
10582 basic_ios_wchar
*basic_ios
;
10584 TRACE("(%p %d)\n", this, virt_init
);
10587 this->base
.vbtable
= basic_ifstream_wchar_vbtable
;
10588 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
10589 basic_ios_wchar_ctor(basic_ios
);
10591 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
10594 basic_filebuf_wchar_ctor(&this->filebuf
);
10595 basic_istream_wchar_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
10596 basic_ios
->base
.vtable
= &MSVCP_basic_ifstream_wchar_vtable
;
10600 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
10601 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
10602 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor
, 8)
10603 basic_ifstream_wchar
* __thiscall
basic_ifstream_short_ctor(basic_ifstream_wchar
*this, MSVCP_bool virt_init
)
10605 basic_ifstream_wchar_ctor(this, virt_init
);
10606 basic_istream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &MSVCP_basic_ifstream_short_vtable
;
10610 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
10611 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10612 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor_file
, 12)
10613 basic_ifstream_wchar
* __thiscall
basic_ifstream_wchar_ctor_file(
10614 basic_ifstream_wchar
*this, FILE *file
, MSVCP_bool virt_init
)
10616 basic_ios_wchar
*basic_ios
;
10618 TRACE("(%p %p %d)\n", this, file
, virt_init
);
10621 this->base
.vbtable
= basic_ifstream_wchar_vbtable
;
10622 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
10623 basic_ios_wchar_ctor(basic_ios
);
10625 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
10628 basic_filebuf_wchar_ctor_file(&this->filebuf
, file
);
10629 basic_istream_wchar_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
10630 basic_ios
->base
.vtable
= &MSVCP_basic_ifstream_wchar_vtable
;
10634 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
10635 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10636 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor_file
, 12)
10637 basic_ifstream_wchar
* __thiscall
basic_ifstream_short_ctor_file(
10638 basic_ifstream_wchar
*this, FILE *file
, MSVCP_bool virt_init
)
10640 basic_ifstream_wchar_ctor_file(this, file
, virt_init
);
10641 basic_istream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &MSVCP_basic_ifstream_short_vtable
;
10645 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@PBDHH@Z */
10646 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEBDHH@Z */
10647 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor_name
, 20)
10648 basic_ifstream_wchar
* __thiscall
basic_ifstream_wchar_ctor_name(basic_ifstream_wchar
*this,
10649 const char *name
, int mode
, int prot
, MSVCP_bool virt_init
)
10651 TRACE("(%p %s %d %d %d)\n", this, name
, mode
, prot
, virt_init
);
10653 basic_ifstream_wchar_ctor(this, virt_init
);
10655 if(!basic_filebuf_wchar_open(&this->filebuf
, name
, mode
|OPENMODE_in
, prot
)) {
10656 basic_ios_wchar
*basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
10657 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
10662 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PBDHH@Z */
10663 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDHH@Z */
10664 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor_name
, 20)
10665 basic_ifstream_wchar
* __thiscall
basic_ifstream_short_ctor_name(basic_ifstream_wchar
*this,
10666 const char *name
, int mode
, int prot
, MSVCP_bool virt_init
)
10668 basic_ifstream_wchar_ctor_name(this, name
, mode
, prot
, virt_init
);
10669 basic_istream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &MSVCP_basic_ifstream_short_vtable
;
10673 /* ??1?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
10674 /* ??1?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
10675 /* ??1?$basic_ifstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
10676 /* ??1?$basic_ifstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
10677 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_dtor
, 4)
10678 void __thiscall
basic_ifstream_wchar_dtor(basic_ios_wchar
*base
)
10680 basic_ifstream_wchar
*this = basic_ifstream_wchar_from_basic_ios(base
);
10682 TRACE("(%p)\n", this);
10684 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base
));
10685 basic_filebuf_wchar_dtor(&this->filebuf
);
10688 /* ??_D?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10689 /* ??_D?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10690 /* ??_D?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10691 /* ??_D?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10692 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_vbase_dtor
, 4)
10693 void __thiscall
basic_ifstream_wchar_vbase_dtor(basic_ifstream_wchar
*this)
10695 TRACE("(%p)\n", this);
10697 basic_ifstream_wchar_dtor(basic_ifstream_wchar_to_basic_ios(this));
10698 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base
));
10701 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_vector_dtor
, 8)
10702 basic_ifstream_wchar
* __thiscall
basic_ifstream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
10704 basic_ifstream_wchar
*this = basic_ifstream_wchar_from_basic_ios(base
);
10706 TRACE("(%p %x)\n", this, flags
);
10709 /* we have an array, with the number of elements stored before the first object */
10710 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
10712 for(i
=*ptr
-1; i
>=0; i
--)
10713 basic_ifstream_wchar_vbase_dtor(this+i
);
10714 MSVCRT_operator_delete(ptr
);
10716 basic_ifstream_wchar_vbase_dtor(this);
10718 MSVCRT_operator_delete(this);
10724 /* ?close@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10725 /* ?close@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10726 /* ?close@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10727 /* ?close@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10728 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_close
, 4)
10729 void __thiscall
basic_ifstream_wchar_close(basic_ifstream_wchar
*this)
10731 TRACE("(%p)\n", this);
10733 if(!basic_filebuf_wchar_close(&this->filebuf
)) {
10734 basic_ios_wchar
*basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
10735 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
10739 /* ?is_open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
10740 /* ?is_open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
10741 /* ?is_open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
10742 /* ?is_open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
10743 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_is_open
, 4)
10744 MSVCP_bool __thiscall
basic_ifstream_wchar_is_open(const basic_ifstream_wchar
*this)
10746 TRACE("(%p)\n", this);
10747 return basic_filebuf_wchar_is_open(&this->filebuf
);
10750 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDHH@Z */
10751 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDHH@Z */
10752 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBDHH@Z */
10753 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDHH@Z */
10754 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_open
, 16)
10755 void __thiscall
basic_ifstream_wchar_open(basic_ifstream_wchar
*this,
10756 const char *name
, int mode
, int prot
)
10758 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
10760 if(!basic_filebuf_wchar_open(&this->filebuf
, name
, mode
|OPENMODE_in
, prot
)) {
10761 basic_ios_wchar
*basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
10762 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
10766 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDI@Z */
10767 /* ?open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDI@Z */
10768 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBDI@Z */
10769 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDI@Z */
10770 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_open_old
, 12)
10771 void __thiscall
basic_ifstream_wchar_open_old(basic_ifstream_wchar
*this,
10772 const char *name
, unsigned int mode
)
10774 basic_ifstream_wchar_open(this, name
, mode
, _SH_DENYNO
);
10777 /* ?rdbuf@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10778 /* ?rdbuf@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10779 /* ?rdbuf@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10780 /* ?rdbuf@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10781 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_rdbuf
, 4)
10782 basic_filebuf_wchar
* __thiscall
basic_ifstream_wchar_rdbuf(const basic_ifstream_wchar
*this)
10784 TRACE("(%p)\n", this);
10785 return (basic_filebuf_wchar
*)&this->filebuf
;
10788 static inline basic_ios_char
* basic_fstream_char_to_basic_ios(basic_fstream_char
*ptr
)
10790 return (basic_ios_char
*)((char*)ptr
+basic_fstream_char_vbtable1
[1]);
10793 static inline basic_fstream_char
* basic_fstream_char_from_basic_ios(basic_ios_char
*ptr
)
10795 return (basic_fstream_char
*)((char*)ptr
-basic_fstream_char_vbtable1
[1]);
10798 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
10799 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
10800 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor
, 8)
10801 basic_fstream_char
* __thiscall
basic_fstream_char_ctor(basic_fstream_char
*this, MSVCP_bool virt_init
)
10803 basic_ios_char
*basic_ios
;
10805 TRACE("(%p %d)\n", this, virt_init
);
10808 this->base
.base1
.vbtable
= basic_fstream_char_vbtable1
;
10809 this->base
.base2
.vbtable
= basic_fstream_char_vbtable2
;
10810 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
10811 basic_ios_char_ctor(basic_ios
);
10813 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
10816 basic_filebuf_char_ctor(&this->filebuf
);
10817 basic_iostream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
);
10818 basic_ios
->base
.vtable
= &MSVCP_basic_fstream_char_vtable
;
10822 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
10823 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10824 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_file
, 12)
10825 basic_fstream_char
* __thiscall
basic_fstream_char_ctor_file(basic_fstream_char
*this,
10826 FILE *file
, MSVCP_bool virt_init
)
10828 basic_ios_char
*basic_ios
;
10830 TRACE("(%p %p %d)\n", this, file
, virt_init
);
10833 this->base
.base1
.vbtable
= basic_fstream_char_vbtable1
;
10834 this->base
.base2
.vbtable
= basic_fstream_char_vbtable2
;
10835 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
10836 basic_ios_char_ctor(basic_ios
);
10838 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
10841 basic_filebuf_char_ctor_file(&this->filebuf
, file
);
10842 basic_iostream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
);
10843 basic_ios
->base
.vtable
= &MSVCP_basic_fstream_char_vtable
;
10847 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
10848 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
10849 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_name
, 20)
10850 basic_fstream_char
* __thiscall
basic_fstream_char_ctor_name(basic_fstream_char
*this,
10851 const char *name
, int mode
, int prot
, MSVCP_bool virt_init
)
10853 TRACE("(%p %s %d %d %d)\n", this, name
, mode
, prot
, virt_init
);
10855 basic_fstream_char_ctor(this, virt_init
);
10857 if(!basic_filebuf_char_open(&this->filebuf
, name
, mode
, prot
)) {
10858 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
10859 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
10864 /* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
10865 /* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
10866 DEFINE_THISCALL_WRAPPER(basic_fstream_char_dtor
, 4)
10867 void __thiscall
basic_fstream_char_dtor(basic_ios_char
*base
)
10869 basic_fstream_char
*this = basic_fstream_char_from_basic_ios(base
);
10871 TRACE("(%p)\n", this);
10873 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base
));
10874 basic_filebuf_char_dtor(&this->filebuf
);
10877 /* ??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10878 /* ??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10879 DEFINE_THISCALL_WRAPPER(basic_fstream_char_vbase_dtor
, 4)
10880 void __thiscall
basic_fstream_char_vbase_dtor(basic_fstream_char
*this)
10882 TRACE("(%p)\n", this);
10884 basic_fstream_char_dtor(basic_fstream_char_to_basic_ios(this));
10885 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base
.base1
));
10888 DEFINE_THISCALL_WRAPPER(basic_fstream_char_vector_dtor
, 8)
10889 basic_fstream_char
* __thiscall
basic_fstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
10891 basic_fstream_char
*this = basic_fstream_char_from_basic_ios(base
);
10893 TRACE("(%p %x)\n", this, flags
);
10896 /* we have an array, with the number of elements stored before the first object */
10897 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
10899 for(i
=*ptr
-1; i
>=0; i
--)
10900 basic_fstream_char_vbase_dtor(this+i
);
10901 MSVCRT_operator_delete(ptr
);
10903 basic_fstream_char_vbase_dtor(this);
10905 MSVCRT_operator_delete(this);
10911 /* ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10912 /* ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10913 DEFINE_THISCALL_WRAPPER(basic_fstream_char_close
, 4)
10914 void __thiscall
basic_fstream_char_close(basic_fstream_char
*this)
10916 TRACE("(%p)\n", this);
10918 if(!basic_filebuf_char_close(&this->filebuf
)) {
10919 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
10920 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
10924 /* ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
10925 /* ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
10926 DEFINE_THISCALL_WRAPPER(basic_fstream_char_is_open
, 4)
10927 MSVCP_bool __thiscall
basic_fstream_char_is_open(const basic_fstream_char
*this)
10929 TRACE("(%p)\n", this);
10930 return basic_filebuf_char_is_open(&this->filebuf
);
10933 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
10934 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
10935 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open
, 16)
10936 void __thiscall
basic_fstream_char_open(basic_fstream_char
*this,
10937 const char *name
, int mode
, int prot
)
10939 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
10941 if(!basic_filebuf_char_open(&this->filebuf
, name
, mode
, prot
)) {
10942 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
10943 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
10947 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
10948 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
10949 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open_old
, 12)
10950 void __thiscall
basic_fstream_char_open_old(basic_fstream_char
*this,
10951 const char *name
, unsigned int mode
)
10953 basic_fstream_char_open(this, name
, mode
, _SH_DENYNO
);
10956 /* ?rdbuf@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10957 /* ?rdbuf@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10958 DEFINE_THISCALL_WRAPPER(basic_fstream_char_rdbuf
, 4)
10959 basic_filebuf_char
* __thiscall
basic_fstream_char_rdbuf(const basic_fstream_char
*this)
10961 TRACE("(%p)\n", this);
10962 return (basic_filebuf_char
*)&this->filebuf
;
10965 static inline basic_ios_wchar
* basic_fstream_wchar_to_basic_ios(basic_fstream_wchar
*ptr
)
10967 return (basic_ios_wchar
*)((char*)ptr
+basic_fstream_wchar_vbtable1
[1]);
10970 static inline basic_fstream_wchar
* basic_fstream_wchar_from_basic_ios(basic_ios_wchar
*ptr
)
10972 return (basic_fstream_wchar
*)((char*)ptr
-basic_fstream_wchar_vbtable1
[1]);
10975 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
10976 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
10977 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor
, 8)
10978 basic_fstream_wchar
* __thiscall
basic_fstream_wchar_ctor(basic_fstream_wchar
*this, MSVCP_bool virt_init
)
10980 basic_ios_wchar
*basic_ios
;
10982 TRACE("(%p %d)\n", this, virt_init
);
10985 this->base
.base1
.vbtable
= basic_fstream_wchar_vbtable1
;
10986 this->base
.base2
.vbtable
= basic_fstream_wchar_vbtable2
;
10987 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
10988 basic_ios_wchar_ctor(basic_ios
);
10990 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
10993 basic_filebuf_wchar_ctor(&this->filebuf
);
10994 basic_iostream_wchar_ctor(&this->base
, &this->filebuf
.base
, FALSE
);
10995 basic_ios
->base
.vtable
= &MSVCP_basic_fstream_wchar_vtable
;
10999 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
11000 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
11001 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor
, 8)
11002 basic_fstream_wchar
* __thiscall
basic_fstream_short_ctor(basic_fstream_wchar
*this, MSVCP_bool virt_init
)
11004 basic_fstream_wchar_ctor(this, virt_init
);
11005 basic_istream_wchar_get_basic_ios(&this->base
.base1
)->base
.vtable
= &MSVCP_basic_fstream_short_vtable
;
11009 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
11010 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
11011 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor_file
, 12)
11012 basic_fstream_wchar
* __thiscall
basic_fstream_wchar_ctor_file(basic_fstream_wchar
*this,
11013 FILE *file
, MSVCP_bool virt_init
)
11015 basic_ios_wchar
*basic_ios
;
11017 TRACE("(%p %p %d)\n", this, file
, virt_init
);
11020 this->base
.base1
.vbtable
= basic_fstream_wchar_vbtable1
;
11021 this->base
.base2
.vbtable
= basic_fstream_wchar_vbtable2
;
11022 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
11023 basic_ios_wchar_ctor(basic_ios
);
11025 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
11028 basic_filebuf_wchar_ctor_file(&this->filebuf
, file
);
11029 basic_iostream_wchar_ctor(&this->base
, &this->filebuf
.base
, FALSE
);
11030 basic_ios
->base
.vtable
= &MSVCP_basic_fstream_wchar_vtable
;
11034 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
11035 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
11036 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor_file
, 12)
11037 basic_fstream_wchar
* __thiscall
basic_fstream_short_ctor_file(basic_fstream_wchar
*this,
11038 FILE *file
, MSVCP_bool virt_init
)
11040 basic_fstream_wchar_ctor_file(this, file
, virt_init
);
11041 basic_istream_wchar_get_basic_ios(&this->base
.base1
)->base
.vtable
= &MSVCP_basic_fstream_short_vtable
;
11045 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PB_WHH@Z */
11046 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEB_WHH@Z */
11047 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor_name
, 20)
11048 basic_fstream_wchar
* __thiscall
basic_fstream_wchar_ctor_name(basic_fstream_wchar
*this,
11049 const char *name
, int mode
, int prot
, MSVCP_bool virt_init
)
11051 TRACE("(%p %s %d %d %d)\n", this, name
, mode
, prot
, virt_init
);
11053 basic_fstream_wchar_ctor(this, virt_init
);
11055 if(!basic_filebuf_wchar_open(&this->filebuf
, name
, mode
, prot
)) {
11056 basic_ios_wchar
*basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
11057 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
11062 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PBGHH@Z */
11063 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEBGHH@Z */
11064 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor_name
, 20)
11065 basic_fstream_wchar
* __thiscall
basic_fstream_short_ctor_name(basic_fstream_wchar
*this,
11066 const char *name
, int mode
, int prot
, MSVCP_bool virt_init
)
11068 basic_fstream_wchar_ctor_name(this, name
, mode
, prot
, virt_init
);
11069 basic_istream_wchar_get_basic_ios(&this->base
.base1
)->base
.vtable
= &MSVCP_basic_fstream_short_vtable
;
11073 /* ??1?$basic_fstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
11074 /* ??1?$basic_fstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
11075 /* ??1?$basic_fstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
11076 /* ??1?$basic_fstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
11077 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_dtor
, 4)
11078 void __thiscall
basic_fstream_wchar_dtor(basic_ios_wchar
*base
)
11080 basic_fstream_wchar
*this = basic_fstream_wchar_from_basic_ios(base
);
11082 TRACE("(%p)\n", this);
11084 basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(&this->base
));
11085 basic_filebuf_wchar_dtor(&this->filebuf
);
11088 /* ??_D?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
11089 /* ??_D?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
11090 /* ??_D?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
11091 /* ??_D?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
11092 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_vbase_dtor
, 4)
11093 void __thiscall
basic_fstream_wchar_vbase_dtor(basic_fstream_wchar
*this)
11095 TRACE("(%p)\n", this);
11097 basic_fstream_wchar_dtor(basic_fstream_wchar_to_basic_ios(this));
11098 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base
.base1
));
11101 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_vector_dtor
, 8)
11102 basic_fstream_wchar
* __thiscall
basic_fstream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
11104 basic_fstream_wchar
*this = basic_fstream_wchar_from_basic_ios(base
);
11106 TRACE("(%p %x)\n", this, flags
);
11109 /* we have an array, with the number of elements stored before the first object */
11110 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
11112 for(i
=*ptr
-1; i
>=0; i
--)
11113 basic_fstream_wchar_vbase_dtor(this+i
);
11114 MSVCRT_operator_delete(ptr
);
11116 basic_fstream_wchar_vbase_dtor(this);
11118 MSVCRT_operator_delete(this);
11124 /* ?close@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
11125 /* ?close@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
11126 /* ?close@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
11127 /* ?close@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
11128 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_close
, 4)
11129 void __thiscall
basic_fstream_wchar_close(basic_fstream_wchar
*this)
11131 TRACE("(%p)\n", this);
11133 if(!basic_filebuf_wchar_close(&this->filebuf
)) {
11134 basic_ios_wchar
*basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
11135 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
11139 /* ?is_open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
11140 /* ?is_open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
11141 /* ?is_open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
11142 /* ?is_open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
11143 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_is_open
, 4)
11144 MSVCP_bool __thiscall
basic_fstream_wchar_is_open(const basic_fstream_wchar
*this)
11146 TRACE("(%p)\n", this);
11147 return basic_filebuf_wchar_is_open(&this->filebuf
);
11150 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDHH@Z */
11151 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDHH@Z */
11152 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPBDHH@Z */
11153 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDHH@Z */
11154 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_open
, 16)
11155 void __thiscall
basic_fstream_wchar_open(basic_fstream_wchar
*this,
11156 const char *name
, int mode
, int prot
)
11158 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
11160 if(!basic_filebuf_wchar_open(&this->filebuf
, name
, mode
, prot
)) {
11161 basic_ios_wchar
*basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
11162 basic_ios_wchar_setstate(basic_ios
, IOSTATE_failbit
);
11166 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXPBDI@Z */
11167 /* ?open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXPEBDI@Z */
11168 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPBDI@Z */
11169 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDI@Z */
11170 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_open_old
, 12)
11171 void __thiscall
basic_fstream_wchar_open_old(basic_fstream_wchar
*this,
11172 const char *name
, unsigned int mode
)
11174 basic_fstream_wchar_open(this, name
, mode
, _SH_DENYNO
);
11177 /* ?rdbuf@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
11178 /* ?rdbuf@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
11179 /* ?rdbuf@?$basic_fstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
11180 /* ?rdbuf@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
11181 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_rdbuf
, 4)
11182 basic_filebuf_wchar
* __thiscall
basic_fstream_wchar_rdbuf(const basic_fstream_wchar
*this)
11184 TRACE("(%p)\n", this);
11185 return (basic_filebuf_wchar
*)&this->filebuf
;
11188 static inline basic_ios_char
* basic_ostringstream_char_to_basic_ios(basic_ostringstream_char
*ptr
)
11190 return (basic_ios_char
*)((char*)ptr
+basic_ostringstream_char_vbtable
[1]);
11193 static inline basic_ostringstream_char
* basic_ostringstream_char_from_basic_ios(basic_ios_char
*ptr
)
11195 return (basic_ostringstream_char
*)((char*)ptr
-basic_ostringstream_char_vbtable
[1]);
11198 /* ??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 */
11199 /* ??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 */
11200 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_str
, 16)
11201 basic_ostringstream_char
* __thiscall
basic_ostringstream_char_ctor_str(basic_ostringstream_char
*this,
11202 const basic_string_char
*str
, int mode
, MSVCP_bool virt_init
)
11204 basic_ios_char
*basic_ios
;
11206 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
11209 this->base
.vbtable
= basic_ostringstream_char_vbtable
;
11210 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
11211 basic_ios_char_ctor(basic_ios
);
11213 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
11216 basic_stringbuf_char_ctor_str(&this->strbuf
, str
, mode
|OPENMODE_out
);
11217 basic_ostream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
11218 basic_ios
->base
.vtable
= &MSVCP_basic_ostringstream_char_vtable
;
11222 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
11223 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
11224 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_mode
, 12)
11225 basic_ostringstream_char
* __thiscall
basic_ostringstream_char_ctor_mode(
11226 basic_ostringstream_char
*this, int mode
, MSVCP_bool virt_init
)
11228 basic_ios_char
*basic_ios
;
11230 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
11233 this->base
.vbtable
= basic_ostringstream_char_vbtable
;
11234 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
11235 basic_ios_char_ctor(basic_ios
);
11237 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
11240 basic_stringbuf_char_ctor_mode(&this->strbuf
, mode
|OPENMODE_out
);
11241 basic_ostream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
11242 basic_ios
->base
.vtable
= &MSVCP_basic_ostringstream_char_vtable
;
11246 /* ??_F?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11247 /* ??_F?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11248 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor
, 8)
11249 basic_ostringstream_char
* __thiscall
basic_ostringstream_char_ctor(
11250 basic_ostringstream_char
*this, MSVCP_bool virt_init
)
11252 return basic_ostringstream_char_ctor_mode(this, 0, virt_init
);
11255 /* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
11256 /* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
11257 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_dtor
, 4)
11258 void __thiscall
basic_ostringstream_char_dtor(basic_ios_char
*base
)
11260 basic_ostringstream_char
*this = basic_ostringstream_char_from_basic_ios(base
);
11262 TRACE("(%p)\n", this);
11264 basic_stringbuf_char_dtor(&this->strbuf
);
11265 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base
));
11268 /* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11269 /* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11270 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_vbase_dtor
, 4)
11271 void __thiscall
basic_ostringstream_char_vbase_dtor(basic_ostringstream_char
*this)
11273 TRACE("(%p)\n", this);
11275 basic_ostringstream_char_dtor(basic_ostringstream_char_to_basic_ios(this));
11276 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base
));
11279 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_vector_dtor
, 8)
11280 basic_ostringstream_char
* __thiscall
basic_ostringstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
11282 basic_ostringstream_char
*this = basic_ostringstream_char_from_basic_ios(base
);
11284 TRACE("(%p %x)\n", this, flags
);
11287 /* we have an array, with the number of elements stored before the first object */
11288 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
11290 for(i
=*ptr
-1; i
>=0; i
--)
11291 basic_ostringstream_char_vbase_dtor(this+i
);
11292 MSVCRT_operator_delete(ptr
);
11294 basic_ostringstream_char_vbase_dtor(this);
11296 MSVCRT_operator_delete(this);
11302 /* ?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 */
11303 /* ?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 */
11304 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_rdbuf
, 4)
11305 basic_stringbuf_char
* __thiscall
basic_ostringstream_char_rdbuf(const basic_ostringstream_char
*this)
11307 TRACE("(%p)\n", this);
11308 return (basic_stringbuf_char
*)&this->strbuf
;
11311 /* ?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 */
11312 /* ?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 */
11313 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_str_set
, 8)
11314 void __thiscall
basic_ostringstream_char_str_set(basic_ostringstream_char
*this, const basic_string_char
*str
)
11316 TRACE("(%p %p)\n", this, str
);
11317 basic_stringbuf_char_str_set(&this->strbuf
, str
);
11320 /* ?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 */
11321 /* ?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 */
11322 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_str_get
, 8)
11323 basic_string_char
* __thiscall
basic_ostringstream_char_str_get(const basic_ostringstream_char
*this, basic_string_char
*ret
)
11325 TRACE("(%p %p)\n", this, ret
);
11326 return basic_stringbuf_char_str_get(&this->strbuf
, ret
);
11329 static inline basic_ios_wchar
* basic_ostringstream_wchar_to_basic_ios(basic_ostringstream_wchar
*ptr
)
11331 return (basic_ios_wchar
*)((char*)ptr
+basic_ostringstream_wchar_vbtable
[1]);
11334 static inline basic_ostringstream_wchar
* basic_ostringstream_wchar_from_basic_ios(basic_ios_wchar
*ptr
)
11336 return (basic_ostringstream_wchar
*)((char*)ptr
-basic_ostringstream_wchar_vbtable
[1]);
11339 /* ??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 */
11340 /* ??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 */
11341 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor_str
, 16)
11342 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_wchar_ctor_str(basic_ostringstream_wchar
*this,
11343 const basic_string_wchar
*str
, int mode
, MSVCP_bool virt_init
)
11345 basic_ios_wchar
*basic_ios
;
11347 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
11350 this->base
.vbtable
= basic_ostringstream_wchar_vbtable
;
11351 basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
11352 basic_ios_wchar_ctor(basic_ios
);
11354 basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
11357 basic_stringbuf_wchar_ctor_str(&this->strbuf
, str
, mode
|OPENMODE_out
);
11358 basic_ostream_wchar_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
11359 basic_ios
->base
.vtable
= &MSVCP_basic_ostringstream_wchar_vtable
;
11363 /* ??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 */
11364 /* ??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 */
11365 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor_str
, 16)
11366 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_short_ctor_str(basic_ostringstream_wchar
*this,
11367 const basic_string_wchar
*str
, int mode
, MSVCP_bool virt_init
)
11369 basic_ostringstream_wchar_ctor_str(this, str
, mode
, virt_init
);
11370 basic_ostream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &MSVCP_basic_ostringstream_short_vtable
;
11374 /* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
11375 /* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
11376 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor_mode
, 12)
11377 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_wchar_ctor_mode(
11378 basic_ostringstream_wchar
*this, int mode
, MSVCP_bool virt_init
)
11380 basic_ios_wchar
*basic_ios
;
11382 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
11385 this->base
.vbtable
= basic_ostringstream_wchar_vbtable
;
11386 basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
11387 basic_ios_wchar_ctor(basic_ios
);
11389 basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
11392 basic_stringbuf_wchar_ctor_mode(&this->strbuf
, mode
|OPENMODE_out
);
11393 basic_ostream_wchar_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
11394 basic_ios
->base
.vtable
= &MSVCP_basic_ostringstream_wchar_vtable
;
11398 /* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
11399 /* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
11400 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor_mode
, 12)
11401 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_short_ctor_mode(
11402 basic_ostringstream_wchar
*this, int mode
, MSVCP_bool virt_init
)
11404 basic_ostringstream_wchar_ctor_mode(this, mode
, virt_init
);
11405 basic_ostream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &MSVCP_basic_ostringstream_short_vtable
;
11409 /* ??_F?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11410 /* ??_F?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11411 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor
, 8)
11412 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_wchar_ctor(
11413 basic_ostringstream_wchar
*this, MSVCP_bool virt_init
)
11415 return basic_ostringstream_wchar_ctor_mode(this, 0, virt_init
);
11418 /* ??_F?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11419 /* ??_F?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11420 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor
, 8)
11421 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_short_ctor(
11422 basic_ostringstream_wchar
*this, MSVCP_bool virt_init
)
11424 return basic_ostringstream_short_ctor_mode(this, 0, virt_init
);
11427 /* ??1?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
11428 /* ??1?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
11429 /* ??1?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
11430 /* ??1?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
11431 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_dtor
, 4)
11432 void __thiscall
basic_ostringstream_wchar_dtor(basic_ios_wchar
*base
)
11434 basic_ostringstream_wchar
*this = basic_ostringstream_wchar_from_basic_ios(base
);
11436 TRACE("(%p)\n", this);
11438 basic_stringbuf_wchar_dtor(&this->strbuf
);
11439 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base
));
11442 /* ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11443 /* ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11444 /* ??_D?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11445 /* ??_D?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11446 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_vbase_dtor
, 4)
11447 void __thiscall
basic_ostringstream_wchar_vbase_dtor(basic_ostringstream_wchar
*this)
11449 TRACE("(%p)\n", this);
11451 basic_ostringstream_wchar_dtor(basic_ostringstream_wchar_to_basic_ios(this));
11452 basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(&this->base
));
11455 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_vector_dtor
, 8)
11456 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
11458 basic_ostringstream_wchar
*this = basic_ostringstream_wchar_from_basic_ios(base
);
11460 TRACE("(%p %x)\n", this, flags
);
11463 /* we have an array, with the number of elements stored before the first object */
11464 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
11466 for(i
=*ptr
-1; i
>=0; i
--)
11467 basic_ostringstream_wchar_vbase_dtor(this+i
);
11468 MSVCRT_operator_delete(ptr
);
11470 basic_ostringstream_wchar_vbase_dtor(this);
11472 MSVCRT_operator_delete(this);
11478 /* ?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 */
11479 /* ?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 */
11480 /* ?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 */
11481 /* ?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 */
11482 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_rdbuf
, 4)
11483 basic_stringbuf_wchar
* __thiscall
basic_ostringstream_wchar_rdbuf(const basic_ostringstream_wchar
*this)
11485 TRACE("(%p)\n", this);
11486 return (basic_stringbuf_wchar
*)&this->strbuf
;
11489 /* ?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 */
11490 /* ?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 */
11491 /* ?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 */
11492 /* ?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 */
11493 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_str_set
, 8)
11494 void __thiscall
basic_ostringstream_wchar_str_set(basic_ostringstream_wchar
*this, const basic_string_wchar
*str
)
11496 TRACE("(%p %p)\n", this, str
);
11497 basic_stringbuf_wchar_str_set(&this->strbuf
, str
);
11500 /* ?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 */
11501 /* ?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 */
11502 /* ?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 */
11503 /* ?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 */
11504 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_str_get
, 8)
11505 basic_string_wchar
* __thiscall
basic_ostringstream_wchar_str_get(const basic_ostringstream_wchar
*this, basic_string_wchar
*ret
)
11507 TRACE("(%p %p)\n", this, ret
);
11508 return basic_stringbuf_wchar_str_get(&this->strbuf
, ret
);
11511 static inline basic_ios_char
* basic_istringstream_char_to_basic_ios(basic_istringstream_char
*ptr
)
11513 return (basic_ios_char
*)((char*)ptr
+basic_istringstream_char_vbtable
[1]);
11516 static inline basic_istringstream_char
* basic_istringstream_char_from_basic_ios(basic_ios_char
*ptr
)
11518 return (basic_istringstream_char
*)((char*)ptr
-basic_istringstream_char_vbtable
[1]);
11521 /* ??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 */
11522 /* ??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 */
11523 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_str
, 16)
11524 basic_istringstream_char
* __thiscall
basic_istringstream_char_ctor_str(basic_istringstream_char
*this,
11525 const basic_string_char
*str
, int mode
, MSVCP_bool virt_init
)
11527 basic_ios_char
*basic_ios
;
11529 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
11532 this->base
.vbtable
= basic_istringstream_char_vbtable
;
11533 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
11534 basic_ios_char_ctor(basic_ios
);
11536 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
11539 basic_stringbuf_char_ctor_str(&this->strbuf
, str
, mode
|OPENMODE_in
);
11540 basic_istream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
11541 basic_ios
->base
.vtable
= &MSVCP_basic_istringstream_char_vtable
;
11545 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
11546 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
11547 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_mode
, 12)
11548 basic_istringstream_char
* __thiscall
basic_istringstream_char_ctor_mode(
11549 basic_istringstream_char
*this, int mode
, MSVCP_bool virt_init
)
11551 basic_ios_char
*basic_ios
;
11553 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
11556 this->base
.vbtable
= basic_istringstream_char_vbtable
;
11557 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
11558 basic_ios_char_ctor(basic_ios
);
11560 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
11563 basic_stringbuf_char_ctor_mode(&this->strbuf
, mode
|OPENMODE_in
);
11564 basic_istream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
11565 basic_ios
->base
.vtable
= &MSVCP_basic_istringstream_char_vtable
;
11569 /* ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11570 /* ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11571 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor
, 8)
11572 basic_istringstream_char
* __thiscall
basic_istringstream_char_ctor(
11573 basic_istringstream_char
*this, MSVCP_bool virt_init
)
11575 return basic_istringstream_char_ctor_mode(this, 0, virt_init
);
11578 /* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
11579 /* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
11580 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_dtor
, 4)
11581 void __thiscall
basic_istringstream_char_dtor(basic_ios_char
*base
)
11583 basic_istringstream_char
*this = basic_istringstream_char_from_basic_ios(base
);
11585 TRACE("(%p)\n", this);
11587 basic_stringbuf_char_dtor(&this->strbuf
);
11588 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base
));
11591 /* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11592 /* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11593 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_vbase_dtor
, 4)
11594 void __thiscall
basic_istringstream_char_vbase_dtor(basic_istringstream_char
*this)
11596 TRACE("(%p)\n", this);
11598 basic_istringstream_char_dtor(basic_istringstream_char_to_basic_ios(this));
11599 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base
));
11602 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_vector_dtor
, 8)
11603 basic_istringstream_char
* __thiscall
basic_istringstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
11605 basic_istringstream_char
*this = basic_istringstream_char_from_basic_ios(base
);
11607 TRACE("(%p %x)\n", this, flags
);
11610 /* we have an array, with the number of elements stored before the first object */
11611 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
11613 for(i
=*ptr
-1; i
>=0; i
--)
11614 basic_istringstream_char_vbase_dtor(this+i
);
11615 MSVCRT_operator_delete(ptr
);
11617 basic_istringstream_char_vbase_dtor(this);
11619 MSVCRT_operator_delete(this);
11625 /* ?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 */
11626 /* ?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 */
11627 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_rdbuf
, 4)
11628 basic_stringbuf_char
* __thiscall
basic_istringstream_char_rdbuf(const basic_istringstream_char
*this)
11630 TRACE("(%p)\n", this);
11631 return (basic_stringbuf_char
*)&this->strbuf
;
11634 /* ?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 */
11635 /* ?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 */
11636 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_str_set
, 8)
11637 void __thiscall
basic_istringstream_char_str_set(basic_istringstream_char
*this, const basic_string_char
*str
)
11639 TRACE("(%p %p)\n", this, str
);
11640 basic_stringbuf_char_str_set(&this->strbuf
, str
);
11643 /* ?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 */
11644 /* ?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 */
11645 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_str_get
, 8)
11646 basic_string_char
* __thiscall
basic_istringstream_char_str_get(const basic_istringstream_char
*this, basic_string_char
*ret
)
11648 TRACE("(%p %p)\n", this, ret
);
11649 return basic_stringbuf_char_str_get(&this->strbuf
, ret
);
11652 static inline basic_ios_wchar
* basic_istringstream_wchar_to_basic_ios(basic_istringstream_wchar
*ptr
)
11654 return (basic_ios_wchar
*)((char*)ptr
+basic_istringstream_wchar_vbtable
[1]);
11657 static inline basic_istringstream_wchar
* basic_istringstream_wchar_from_basic_ios(basic_ios_wchar
*ptr
)
11659 return (basic_istringstream_wchar
*)((char*)ptr
-basic_istringstream_wchar_vbtable
[1]);
11662 /* ??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 */
11663 /* ??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 */
11664 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor_str
, 16)
11665 basic_istringstream_wchar
* __thiscall
basic_istringstream_wchar_ctor_str(basic_istringstream_wchar
*this,
11666 const basic_string_wchar
*str
, int mode
, MSVCP_bool virt_init
)
11668 basic_ios_wchar
*basic_ios
;
11670 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
11673 this->base
.vbtable
= basic_istringstream_wchar_vbtable
;
11674 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
11675 basic_ios_wchar_ctor(basic_ios
);
11677 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
11680 basic_stringbuf_wchar_ctor_str(&this->strbuf
, str
, mode
|OPENMODE_in
);
11681 basic_istream_wchar_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
11682 basic_ios
->base
.vtable
= &MSVCP_basic_istringstream_wchar_vtable
;
11686 /* ??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 */
11687 /* ??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 */
11688 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor_str
, 16)
11689 basic_istringstream_wchar
* __thiscall
basic_istringstream_short_ctor_str(basic_istringstream_wchar
*this,
11690 const basic_string_wchar
*str
, int mode
, MSVCP_bool virt_init
)
11692 basic_istringstream_wchar_ctor_str(this, str
, mode
, virt_init
);
11693 basic_istream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &MSVCP_basic_istringstream_short_vtable
;
11697 /* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
11698 /* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
11699 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor_mode
, 12)
11700 basic_istringstream_wchar
* __thiscall
basic_istringstream_wchar_ctor_mode(
11701 basic_istringstream_wchar
*this, int mode
, MSVCP_bool virt_init
)
11703 basic_ios_wchar
*basic_ios
;
11705 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
11708 this->base
.vbtable
= basic_istringstream_wchar_vbtable
;
11709 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
11710 basic_ios_wchar_ctor(basic_ios
);
11712 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
11715 basic_stringbuf_wchar_ctor_mode(&this->strbuf
, mode
|OPENMODE_in
);
11716 basic_istream_wchar_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
11717 basic_ios
->base
.vtable
= &MSVCP_basic_istringstream_wchar_vtable
;
11721 /* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
11722 /* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
11723 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor_mode
, 12)
11724 basic_istringstream_wchar
* __thiscall
basic_istringstream_short_ctor_mode(
11725 basic_istringstream_wchar
*this, int mode
, MSVCP_bool virt_init
)
11727 basic_istringstream_wchar_ctor_mode(this, mode
, virt_init
);
11728 basic_istream_wchar_get_basic_ios(&this->base
)->base
.vtable
= &MSVCP_basic_istringstream_short_vtable
;
11732 /* ??_F?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11733 /* ??_F?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11734 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor
, 8)
11735 basic_istringstream_wchar
* __thiscall
basic_istringstream_wchar_ctor(
11736 basic_istringstream_wchar
*this, MSVCP_bool virt_init
)
11738 return basic_istringstream_wchar_ctor_mode(this, 0, virt_init
);
11741 /* ??_F?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11742 /* ??_F?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11743 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor
, 8)
11744 basic_istringstream_wchar
* __thiscall
basic_istringstream_short_ctor(
11745 basic_istringstream_wchar
*this, MSVCP_bool virt_init
)
11747 return basic_istringstream_short_ctor_mode(this, 0, virt_init
);
11750 /* ??1?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
11751 /* ??1?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
11752 /* ??1?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
11753 /* ??1?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
11754 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_dtor
, 4)
11755 void __thiscall
basic_istringstream_wchar_dtor(basic_ios_wchar
*base
)
11757 basic_istringstream_wchar
*this = basic_istringstream_wchar_from_basic_ios(base
);
11759 TRACE("(%p)\n", this);
11761 basic_stringbuf_wchar_dtor(&this->strbuf
);
11762 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base
));
11765 /* ??_D?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11766 /* ??_D?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11767 /* ??_D?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11768 /* ??_D?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11769 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_vbase_dtor
, 4)
11770 void __thiscall
basic_istringstream_wchar_vbase_dtor(basic_istringstream_wchar
*this)
11772 TRACE("(%p)\n", this);
11774 basic_istringstream_wchar_dtor(basic_istringstream_wchar_to_basic_ios(this));
11775 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base
));
11778 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_vector_dtor
, 8)
11779 basic_istringstream_wchar
* __thiscall
basic_istringstream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
11781 basic_istringstream_wchar
*this = basic_istringstream_wchar_from_basic_ios(base
);
11783 TRACE("(%p %x)\n", this, flags
);
11786 /* we have an array, with the number of elements stored before the first object */
11787 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
11789 for(i
=*ptr
-1; i
>=0; i
--)
11790 basic_istringstream_wchar_vbase_dtor(this+i
);
11791 MSVCRT_operator_delete(ptr
);
11793 basic_istringstream_wchar_vbase_dtor(this);
11795 MSVCRT_operator_delete(this);
11801 /* ?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 */
11802 /* ?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 */
11803 /* ?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 */
11804 /* ?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 */
11805 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_rdbuf
, 4)
11806 basic_stringbuf_wchar
* __thiscall
basic_istringstream_wchar_rdbuf(const basic_istringstream_wchar
*this)
11808 TRACE("(%p)\n", this);
11809 return (basic_stringbuf_wchar
*)&this->strbuf
;
11812 /* ?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 */
11813 /* ?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 */
11814 /* ?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 */
11815 /* ?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 */
11816 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_str_set
, 8)
11817 void __thiscall
basic_istringstream_wchar_str_set(basic_istringstream_wchar
*this, const basic_string_wchar
*str
)
11819 TRACE("(%p %p)\n", this, str
);
11820 basic_stringbuf_wchar_str_set(&this->strbuf
, str
);
11823 /* ?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 */
11824 /* ?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 */
11825 /* ?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 */
11826 /* ?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 */
11827 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_str_get
, 8)
11828 basic_string_wchar
* __thiscall
basic_istringstream_wchar_str_get(const basic_istringstream_wchar
*this, basic_string_wchar
*ret
)
11830 TRACE("(%p %p)\n", this, ret
);
11831 return basic_stringbuf_wchar_str_get(&this->strbuf
, ret
);
11834 static inline basic_ios_char
* basic_stringstream_char_to_basic_ios(basic_stringstream_char
*ptr
)
11836 return (basic_ios_char
*)((char*)ptr
+basic_stringstream_char_vbtable1
[1]);
11839 static inline basic_stringstream_char
* basic_stringstream_char_from_basic_ios(basic_ios_char
*ptr
)
11841 return (basic_stringstream_char
*)((char*)ptr
-basic_stringstream_char_vbtable1
[1]);
11844 /* ??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 */
11845 /* ??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 */
11846 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_str
, 16)
11847 basic_stringstream_char
* __thiscall
basic_stringstream_char_ctor_str(basic_stringstream_char
*this,
11848 const basic_string_char
*str
, int mode
, MSVCP_bool virt_init
)
11850 basic_ios_char
*basic_ios
;
11852 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
11855 this->base
.base1
.vbtable
= basic_stringstream_char_vbtable1
;
11856 this->base
.base2
.vbtable
= basic_stringstream_char_vbtable2
;
11857 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
11858 basic_ios_char_ctor(basic_ios
);
11860 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
11863 basic_stringbuf_char_ctor_str(&this->strbuf
, str
, mode
);
11864 basic_iostream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
);
11865 basic_ios
->base
.vtable
= &MSVCP_basic_stringstream_char_vtable
;
11869 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
11870 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
11871 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_mode
, 12)
11872 basic_stringstream_char
* __thiscall
basic_stringstream_char_ctor_mode(
11873 basic_stringstream_char
*this, int mode
, MSVCP_bool virt_init
)
11875 basic_ios_char
*basic_ios
;
11877 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
11880 this->base
.base1
.vbtable
= basic_stringstream_char_vbtable1
;
11881 this->base
.base2
.vbtable
= basic_stringstream_char_vbtable2
;
11882 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
11883 basic_ios_char_ctor(basic_ios
);
11885 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
11888 basic_stringbuf_char_ctor_mode(&this->strbuf
, mode
);
11889 basic_iostream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
);
11890 basic_ios
->base
.vtable
= &MSVCP_basic_stringstream_char_vtable
;
11894 /* ??_F?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11895 /* ??_F?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11896 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor
, 8)
11897 basic_stringstream_char
* __thiscall
basic_stringstream_char_ctor(
11898 basic_stringstream_char
*this, MSVCP_bool virt_init
)
11900 return basic_stringstream_char_ctor_mode(
11901 this, OPENMODE_out
|OPENMODE_in
, virt_init
);
11904 /* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
11905 /* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
11906 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_dtor
, 4)
11907 void __thiscall
basic_stringstream_char_dtor(basic_ios_char
*base
)
11909 basic_stringstream_char
*this = basic_stringstream_char_from_basic_ios(base
);
11911 TRACE("(%p)\n", this);
11913 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base
));
11914 basic_stringbuf_char_dtor(&this->strbuf
);
11917 /* ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11918 /* ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11919 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_vbase_dtor
, 4)
11920 void __thiscall
basic_stringstream_char_vbase_dtor(basic_stringstream_char
*this)
11922 TRACE("(%p)\n", this);
11924 basic_stringstream_char_dtor(basic_stringstream_char_to_basic_ios(this));
11925 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base
.base1
));
11928 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_vector_dtor
, 8)
11929 basic_stringstream_char
* __thiscall
basic_stringstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
11931 basic_stringstream_char
*this = basic_stringstream_char_from_basic_ios(base
);
11933 TRACE("(%p %x)\n", this, flags
);
11936 /* we have an array, with the number of elements stored before the first object */
11937 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
11939 for(i
=*ptr
-1; i
>=0; i
--)
11940 basic_stringstream_char_vbase_dtor(this+i
);
11941 MSVCRT_operator_delete(ptr
);
11943 basic_stringstream_char_vbase_dtor(this);
11945 MSVCRT_operator_delete(this);
11951 /* ?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 */
11952 /* ?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 */
11953 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_rdbuf
, 4)
11954 basic_stringbuf_char
* __thiscall
basic_stringstream_char_rdbuf(const basic_stringstream_char
*this)
11956 TRACE("(%p)\n", this);
11957 return (basic_stringbuf_char
*)&this->strbuf
;
11960 /* ?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 */
11961 /* ?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 */
11962 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_str_set
, 8)
11963 void __thiscall
basic_stringstream_char_str_set(basic_stringstream_char
*this, const basic_string_char
*str
)
11965 TRACE("(%p %p)\n", this, str
);
11966 basic_stringbuf_char_str_set(&this->strbuf
, str
);
11969 /* ?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 */
11970 /* ?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 */
11971 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_str_get
, 8)
11972 basic_string_char
* __thiscall
basic_stringstream_char_str_get(const basic_stringstream_char
*this, basic_string_char
*ret
)
11974 TRACE("(%p %p)\n", this, ret
);
11975 return basic_stringbuf_char_str_get(&this->strbuf
, ret
);
11978 static inline basic_ios_wchar
* basic_stringstream_wchar_to_basic_ios(basic_stringstream_wchar
*ptr
)
11980 return (basic_ios_wchar
*)((char*)ptr
+basic_stringstream_wchar_vbtable1
[1]);
11983 static inline basic_stringstream_wchar
* basic_stringstream_wchar_from_basic_ios(basic_ios_wchar
*ptr
)
11985 return (basic_stringstream_wchar
*)((char*)ptr
-basic_stringstream_wchar_vbtable1
[1]);
11988 /* ??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 */
11989 /* ??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 */
11990 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor_str
, 16)
11991 basic_stringstream_wchar
* __thiscall
basic_stringstream_wchar_ctor_str(basic_stringstream_wchar
*this,
11992 const basic_string_wchar
*str
, int mode
, MSVCP_bool virt_init
)
11994 basic_ios_wchar
*basic_ios
;
11996 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
11999 this->base
.base1
.vbtable
= basic_stringstream_wchar_vbtable1
;
12000 this->base
.base2
.vbtable
= basic_stringstream_wchar_vbtable2
;
12001 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
12002 basic_ios_wchar_ctor(basic_ios
);
12004 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
12007 basic_stringbuf_wchar_ctor_str(&this->strbuf
, str
, mode
);
12008 basic_iostream_wchar_ctor(&this->base
, &this->strbuf
.base
, FALSE
);
12009 basic_ios
->base
.vtable
= &MSVCP_basic_stringstream_wchar_vtable
;
12013 /* ??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 */
12014 /* ??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 */
12015 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor_str
, 16)
12016 basic_stringstream_wchar
* __thiscall
basic_stringstream_short_ctor_str(basic_stringstream_wchar
*this,
12017 const basic_string_wchar
*str
, int mode
, MSVCP_bool virt_init
)
12019 basic_stringstream_wchar_ctor_str(this, str
, mode
, virt_init
);
12020 basic_istream_wchar_get_basic_ios(&this->base
.base1
)->base
.vtable
= &MSVCP_basic_stringstream_short_vtable
;
12024 /* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
12025 /* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
12026 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor_mode
, 12)
12027 basic_stringstream_wchar
* __thiscall
basic_stringstream_wchar_ctor_mode(
12028 basic_stringstream_wchar
*this, int mode
, MSVCP_bool virt_init
)
12030 basic_ios_wchar
*basic_ios
;
12032 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
12035 this->base
.base1
.vbtable
= basic_stringstream_wchar_vbtable1
;
12036 this->base
.base2
.vbtable
= basic_stringstream_wchar_vbtable2
;
12037 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
12038 basic_ios_wchar_ctor(basic_ios
);
12040 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
12043 basic_stringbuf_wchar_ctor_mode(&this->strbuf
, mode
);
12044 basic_iostream_wchar_ctor(&this->base
, &this->strbuf
.base
, FALSE
);
12045 basic_ios
->base
.vtable
= &MSVCP_basic_stringstream_wchar_vtable
;
12049 /* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
12050 /* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
12051 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor_mode
, 12)
12052 basic_stringstream_wchar
* __thiscall
basic_stringstream_short_ctor_mode(
12053 basic_stringstream_wchar
*this, int mode
, MSVCP_bool virt_init
)
12055 basic_stringstream_wchar_ctor_mode(this, mode
, virt_init
);
12056 basic_istream_wchar_get_basic_ios(&this->base
.base1
)->base
.vtable
= &MSVCP_basic_stringstream_short_vtable
;
12060 /* ??_F?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
12061 /* ??_F?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
12062 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor
, 8)
12063 basic_stringstream_wchar
* __thiscall
basic_stringstream_wchar_ctor(
12064 basic_stringstream_wchar
*this, MSVCP_bool virt_init
)
12066 return basic_stringstream_wchar_ctor_mode(
12067 this, OPENMODE_out
|OPENMODE_in
, virt_init
);
12070 /* ??_F?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
12071 /* ??_F?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
12072 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor
, 8)
12073 basic_stringstream_wchar
* __thiscall
basic_stringstream_short_ctor(
12074 basic_stringstream_wchar
*this, MSVCP_bool virt_init
)
12076 return basic_stringstream_short_ctor_mode(
12077 this, OPENMODE_out
|OPENMODE_in
, virt_init
);
12080 /* ??1?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
12081 /* ??1?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
12082 /* ??1?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
12083 /* ??1?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
12084 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_dtor
, 4)
12085 void __thiscall
basic_stringstream_wchar_dtor(basic_ios_wchar
*base
)
12087 basic_stringstream_wchar
*this = basic_stringstream_wchar_from_basic_ios(base
);
12089 TRACE("(%p)\n", this);
12091 basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(&this->base
));
12092 basic_stringbuf_wchar_dtor(&this->strbuf
);
12095 /* ??_D?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
12096 /* ??_D?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
12097 /* ??_D?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
12098 /* ??_D?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
12099 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_vbase_dtor
, 4)
12100 void __thiscall
basic_stringstream_wchar_vbase_dtor(basic_stringstream_wchar
*this)
12102 TRACE("(%p)\n", this);
12104 basic_stringstream_wchar_dtor(basic_stringstream_wchar_to_basic_ios(this));
12105 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base
.base1
));
12108 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_vector_dtor
, 8)
12109 basic_stringstream_wchar
* __thiscall
basic_stringstream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
12111 basic_stringstream_wchar
*this = basic_stringstream_wchar_from_basic_ios(base
);
12113 TRACE("(%p %x)\n", this, flags
);
12116 /* we have an array, with the number of elements stored before the first object */
12117 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
12119 for(i
=*ptr
-1; i
>=0; i
--)
12120 basic_stringstream_wchar_vbase_dtor(this+i
);
12121 MSVCRT_operator_delete(ptr
);
12123 basic_stringstream_wchar_vbase_dtor(this);
12125 MSVCRT_operator_delete(this);
12131 /* ?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 */
12132 /* ?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 */
12133 /* ?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 */
12134 /* ?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 */
12135 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_rdbuf
, 4)
12136 basic_stringbuf_wchar
* __thiscall
basic_stringstream_wchar_rdbuf(const basic_stringstream_wchar
*this)
12138 TRACE("(%p)\n", this);
12139 return (basic_stringbuf_wchar
*)&this->strbuf
;
12142 /* ?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 */
12143 /* ?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 */
12144 /* ?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 */
12145 /* ?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 */
12146 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_str_set
, 8)
12147 void __thiscall
basic_stringstream_wchar_str_set(basic_stringstream_wchar
*this, const basic_string_wchar
*str
)
12149 TRACE("(%p %p)\n", this, str
);
12150 basic_stringbuf_wchar_str_set(&this->strbuf
, str
);
12153 /* ?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 */
12154 /* ?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 */
12155 /* ?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 */
12156 /* ?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 */
12157 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_str_get
, 8)
12158 basic_string_wchar
* __thiscall
basic_stringstream_wchar_str_get(const basic_stringstream_wchar
*this, basic_string_wchar
*ret
)
12160 TRACE("(%p %p)\n", this, ret
);
12161 return basic_stringbuf_wchar_str_get(&this->strbuf
, ret
);
12164 /* ?_Init@strstreambuf@std@@IAEXHPAD0H@Z */
12165 /* ?_Init@strstreambuf@std@@IEAAX_JPEAD1H@Z */
12166 DEFINE_THISCALL_WRAPPER(strstreambuf__Init
, 20)
12167 void __thiscall
strstreambuf__Init(strstreambuf
*this, streamsize len
, char *g
, char *p
, int mode
)
12169 TRACE("(%p %ld %p %p %d)\n", this, len
, g
, p
, mode
);
12171 this->minsize
= 32;
12172 this->endsave
= NULL
;
12173 this->strmode
= mode
;
12174 this->palloc
= NULL
;
12175 this->pfree
= NULL
;
12178 this->strmode
|= STRSTATE_Dynamic
;
12179 if(len
> this->minsize
)
12180 this->minsize
= len
;
12181 this->seekhigh
= NULL
;
12190 this->seekhigh
= g
+len
;
12191 basic_streambuf_char_setg(&this->base
, g
, g
, p
? p
: this->seekhigh
);
12193 basic_streambuf_char_setp(&this->base
, p
, this->seekhigh
);
12196 /* ??0strstreambuf@std@@QAE@PACH0@Z */
12197 /* ??0strstreambuf@std@@QEAA@PEAC_J0@Z */
12198 /* ??0strstreambuf@std@@QAE@PADH0@Z */
12199 /* ??0strstreambuf@std@@QEAA@PEAD_J0@Z */
12200 /* ??0strstreambuf@std@@QAE@PAEH0@Z */
12201 /* ??0strstreambuf@std@@QEAA@PEAE_J0@Z */
12202 static strstreambuf
* strstreambuf_ctor_get_put(strstreambuf
*this, char *g
, streamsize len
, char *p
)
12204 TRACE("(%p %p %ld %p)\n", this, g
, len
, p
);
12206 basic_streambuf_char_ctor(&this->base
);
12207 this->base
.vtable
= &MSVCP_strstreambuf_vtable
;
12209 strstreambuf__Init(this, len
, g
, p
, 0);
12213 /* ?_Tidy@strstreambuf@std@@IAEXXZ */
12214 /* ?_Tidy@strstreambuf@std@@IEAAXXZ */
12215 DEFINE_THISCALL_WRAPPER(strstreambuf__Tidy
, 4)
12216 void __thiscall
strstreambuf__Tidy(strstreambuf
*this)
12218 TRACE("(%p)\n", this);
12220 if((this->strmode
& STRSTATE_Allocated
) && !(this->strmode
& STRSTATE_Frozen
)) {
12222 this->pfree(basic_streambuf_char_eback(&this->base
));
12224 MSVCRT_operator_delete(basic_streambuf_char_eback(&this->base
));
12227 this->endsave
= NULL
;
12228 this->seekhigh
= NULL
;
12229 this->strmode
&= ~(STRSTATE_Allocated
| STRSTATE_Frozen
);
12230 basic_streambuf_char_setg(&this->base
, NULL
, NULL
, NULL
);
12231 basic_streambuf_char_setp(&this->base
, NULL
, NULL
);
12234 /* ??1strstreambuf@std@@UAE@XZ */
12235 /* ??1strstreambuf@std@@UEAA@XZ */
12236 DEFINE_THISCALL_WRAPPER(strstreambuf_dtor
, 4)
12237 void __thiscall
strstreambuf_dtor(strstreambuf
*this)
12239 TRACE("(%p)\n", this);
12241 strstreambuf__Tidy(this);
12242 basic_streambuf_char_dtor(&this->base
);
12245 DEFINE_THISCALL_WRAPPER(strstreambuf_vector_dtor
, 8)
12246 strstreambuf
* __thiscall
strstreambuf_vector_dtor(strstreambuf
*this, unsigned int flags
)
12248 TRACE("(%p %x)\n", this, flags
);
12250 /* we have an array, with the number of elements stored before the first object */
12251 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
12253 for(i
=*ptr
-1; i
>=0; i
--)
12254 strstreambuf_dtor(this+i
);
12255 MSVCRT_operator_delete(ptr
);
12257 strstreambuf_dtor(this);
12259 MSVCRT_operator_delete(this);
12265 /* ?freeze@strstreambuf@std@@QAEX_N@Z */
12266 /* ?freeze@strstreambuf@std@@QEAAX_N@Z */
12267 DEFINE_THISCALL_WRAPPER(strstreambuf_freeze
, 8)
12268 void __thiscall
strstreambuf_freeze(strstreambuf
*this, MSVCP_bool freeze
)
12270 TRACE("(%p %d)\n", this, freeze
);
12272 if(!freeze
== !(this->strmode
*STRSTATE_Frozen
))
12276 this->strmode
|= STRSTATE_Frozen
;
12277 this->endsave
= basic_streambuf_char_epptr(&this->base
);
12278 basic_streambuf_char_setp_next(&this->base
, basic_streambuf_char_pbase(&this->base
),
12279 basic_streambuf_char_pptr(&this->base
), basic_streambuf_char_eback(&this->base
));
12281 this->strmode
&= ~STRSTATE_Frozen
;
12282 basic_streambuf_char_setp_next(&this->base
, basic_streambuf_char_pbase(&this->base
),
12283 basic_streambuf_char_pptr(&this->base
), this->endsave
);
12287 /* ?overflow@strstreambuf@std@@MAEHH@Z */
12288 /* ?overflow@strstreambuf@std@@MEAAHH@Z */
12289 DEFINE_THISCALL_WRAPPER(strstreambuf_overflow
, 8)
12290 int __thiscall
strstreambuf_overflow(strstreambuf
*this, int c
)
12292 MSVCP_size_t old_size
, size
;
12295 TRACE("(%p %d)\n", this, c
);
12300 if(this->strmode
& STRSTATE_Frozen
)
12303 ptr
= basic_streambuf_char_pptr(&this->base
);
12304 if(ptr
&& ptr
<basic_streambuf_char_epptr(&this->base
))
12305 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base
) = c
);
12307 if(!(this->strmode
& STRSTATE_Dynamic
) || (this->strmode
& STRSTATE_Constant
))
12310 ptr
= basic_streambuf_char_eback(&this->base
);
12311 old_size
= ptr
? basic_streambuf_char_epptr(&this->base
) - ptr
: 0;
12313 size
= old_size
+ old_size
/2;
12314 if(size
< this->minsize
)
12315 size
= this->minsize
;
12318 buf
= this->palloc(size
);
12320 buf
= MSVCRT_operator_new(size
);
12324 memcpy(buf
, ptr
, old_size
);
12325 if(this->strmode
& STRSTATE_Allocated
) {
12329 MSVCRT_operator_delete(ptr
);
12332 this->strmode
|= STRSTATE_Allocated
;
12334 this->seekhigh
= buf
;
12335 basic_streambuf_char_setp(&this->base
, buf
, buf
+size
);
12336 basic_streambuf_char_setg(&this->base
, buf
, buf
, buf
);
12338 this->seekhigh
= this->seekhigh
-ptr
+buf
;
12339 basic_streambuf_char_setp_next(&this->base
, basic_streambuf_char_pbase(&this->base
)-ptr
+buf
,
12340 basic_streambuf_char_pptr(&this->base
)-ptr
+buf
, buf
+size
);
12341 basic_streambuf_char_setg(&this->base
, buf
, basic_streambuf_char_gptr(&this->base
)-ptr
+buf
,
12342 basic_streambuf_char_pptr(&this->base
));
12345 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base
) = c
);
12348 /* ?pbackfail@strstreambuf@std@@MAEHH@Z */
12349 /* ?pbackfail@strstreambuf@std@@MEAAHH@Z */
12350 DEFINE_THISCALL_WRAPPER(strstreambuf_pbackfail
, 8)
12351 int __thiscall
strstreambuf_pbackfail(strstreambuf
*this, int c
)
12353 char *ptr
= basic_streambuf_char_gptr(&this->base
);
12355 TRACE("(%p %d)\n", this, c
);
12357 if(ptr
<=basic_streambuf_char_eback(&this->base
)
12358 || ((this->strmode
& STRSTATE_Constant
) && c
!=ptr
[-1]))
12361 basic_streambuf_char_gbump(&this->base
, -1);
12364 if(this->strmode
& STRSTATE_Constant
)
12365 return (unsigned char)c
;
12367 return (unsigned char)(ptr
[0] = c
);
12370 /* ?seekoff@strstreambuf@std@@MAE?AV?$fpos@H@2@JHH@Z */
12371 /* ?seekoff@strstreambuf@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
12372 DEFINE_THISCALL_WRAPPER(strstreambuf_seekoff
, 20)
12373 fpos_int
* __thiscall
strstreambuf_seekoff(strstreambuf
*this, fpos_int
*ret
, streamoff off
, int way
, int mode
)
12375 char *eback
= basic_streambuf_char_eback(&this->base
);
12376 char *pptr
= basic_streambuf_char_pptr(&this->base
);
12377 char *gptr
= basic_streambuf_char_gptr(&this->base
);
12379 TRACE("(%p %p %ld %d %d)\n", this, ret
, off
, way
, mode
);
12384 if(pptr
> this->seekhigh
)
12385 this->seekhigh
= pptr
;
12387 if((mode
& OPENMODE_in
) && gptr
) {
12388 if(way
==SEEKDIR_cur
&& !(mode
& OPENMODE_out
))
12390 else if(way
== SEEKDIR_end
)
12391 off
+= this->seekhigh
-eback
;
12392 else if(way
!= SEEKDIR_beg
)
12395 if(off
<0 || off
>this->seekhigh
-eback
) {
12398 basic_streambuf_char_gbump(&this->base
, eback
-gptr
+off
);
12399 if((mode
& OPENMODE_out
) && pptr
) {
12400 basic_streambuf_char_setp_next(&this->base
, eback
,
12401 gptr
, basic_streambuf_char_epptr(&this->base
));
12404 }else if((mode
& OPENMODE_out
) && pptr
) {
12405 if(way
== SEEKDIR_cur
)
12407 else if(way
== SEEKDIR_end
)
12408 off
+= this->seekhigh
-eback
;
12409 else if(way
!= SEEKDIR_beg
)
12412 if(off
<0 || off
>this->seekhigh
-eback
)
12415 basic_streambuf_char_pbump(&this->base
, eback
-pptr
+off
);
12424 /* ?seekpos@strstreambuf@std@@MAE?AV?$fpos@H@2@V32@H@Z */
12425 /* ?seekpos@strstreambuf@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
12426 DEFINE_THISCALL_WRAPPER(strstreambuf_seekpos
, 36)
12427 fpos_int
* __thiscall
strstreambuf_seekpos(strstreambuf
*this, fpos_int
*ret
, fpos_int pos
, int mode
)
12429 TRACE("(%p %p %s %d)\n", this, ret
, debugstr_fpos_int(&pos
), mode
);
12431 if(pos
.off
==-1 && pos
.pos
==0 && pos
.state
==0) {
12436 return strstreambuf_seekoff(this, ret
, pos
.off
, SEEKDIR_beg
, mode
);
12439 /* ?underflow@strstreambuf@std@@MAEHXZ */
12440 /* ?underflow@strstreambuf@std@@MEAAHXZ */
12441 DEFINE_THISCALL_WRAPPER(strstreambuf_underflow
, 4)
12442 int __thiscall
strstreambuf_underflow(strstreambuf
*this)
12444 char *gptr
= basic_streambuf_char_gptr(&this->base
);
12447 TRACE("(%p)\n", this);
12452 if(gptr
< basic_streambuf_char_egptr(&this->base
))
12453 return (unsigned char)(*gptr
);
12455 pptr
= basic_streambuf_char_gptr(&this->base
);
12456 if(pptr
> this->seekhigh
)
12457 this->seekhigh
= pptr
;
12459 if(this->seekhigh
<= gptr
)
12462 basic_streambuf_char_setg(&this->base
, basic_streambuf_char_eback(&this->base
),
12463 gptr
, this->seekhigh
);
12464 return (unsigned char)(*gptr
);
12467 static inline basic_ios_char
* ostrstream_to_basic_ios(ostrstream
*ptr
)
12469 return (basic_ios_char
*)((char*)ptr
+ostrstream_vbtable
[1]);
12472 static inline ostrstream
* ostrstream_from_basic_ios(basic_ios_char
*ptr
)
12474 return (ostrstream
*)((char*)ptr
-ostrstream_vbtable
[1]);
12477 /* ??0ostrstream@std@@QAE@PADHH@Z */
12478 DEFINE_THISCALL_WRAPPER(ostrstream_ctor
, 20)
12479 ostrstream
* __thiscall
ostrstream_ctor(ostrstream
*this, char *buf
, streamsize size
, int mode
, MSVCP_bool virt_init
)
12481 basic_ios_char
*basic_ios
;
12483 TRACE("(%p %p %ld %d %d)\n", this, buf
, size
, mode
, virt_init
);
12486 this->base
.vbtable
= ostrstream_vbtable
;
12487 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
12488 basic_ios_char_ctor(basic_ios
);
12490 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
12493 strstreambuf_ctor_get_put(&this->buf
, buf
, size
,
12494 buf
&& (mode
& OPENMODE_app
) ? buf
+strlen(buf
) : buf
);
12495 basic_ostream_char_ctor(&this->base
, &this->buf
.base
, FALSE
, FALSE
);
12496 basic_ios
->base
.vtable
= &MSVCP_ostrstream_vtable
;
12500 /* ??1ostrstream@std@@UAE@XZ */
12501 /* ??1ostrstream@std@@UEAA@XZ */
12502 DEFINE_THISCALL_WRAPPER(ostrstream_dtor
, 4)
12503 void __thiscall
ostrstream_dtor(basic_ios_char
*base
)
12505 ostrstream
*this = ostrstream_from_basic_ios(base
);
12507 TRACE("(%p)\n", this);
12509 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base
));
12510 strstreambuf_dtor(&this->buf
);
12513 static void ostrstream_vbase_dtor(ostrstream
*this)
12515 TRACE("(%p)\n", this);
12517 ostrstream_dtor(ostrstream_to_basic_ios(this));
12518 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base
));
12521 DEFINE_THISCALL_WRAPPER(ostrstream_vector_dtor
, 8)
12522 ostrstream
* __thiscall
ostrstream_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
12524 ostrstream
*this = ostrstream_from_basic_ios(base
);
12526 TRACE("(%p %x)\n", this, flags
);
12529 /* we have an array, with the number of elements stored before the first object */
12530 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
12532 for(i
=*ptr
-1; i
>=0; i
--)
12533 ostrstream_vbase_dtor(this+i
);
12534 MSVCRT_operator_delete(ptr
);
12536 ostrstream_vbase_dtor(this);
12538 MSVCRT_operator_delete(this);
12544 static inline istrstream
* istrstream_from_basic_ios(basic_ios_char
*ptr
)
12546 return (istrstream
*)((char*)ptr
-istrstream_vbtable
[1]);
12549 /* ??1istrstream@std@@UAE@XZ */
12550 /* ??1istrstream@std@@UEAA@XZ */
12551 DEFINE_THISCALL_WRAPPER(istrstream_dtor
, 4)
12552 void __thiscall
istrstream_dtor(basic_ios_char
*base
)
12554 istrstream
*this = istrstream_from_basic_ios(base
);
12556 TRACE("(%p)\n", this);
12558 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base
));
12559 strstreambuf_dtor(&this->buf
);
12562 static inline basic_ios_char
* strstream_to_basic_ios(strstream
*ptr
)
12564 return (basic_ios_char
*)((char*)ptr
+strstream_vbtable1
[1]);
12567 static inline strstream
* strstream_from_basic_ios(basic_ios_char
*ptr
)
12569 return (strstream
*)((char*)ptr
-strstream_vbtable1
[1]);
12572 /* ??0strstream@std@@QAE@PADHH@Z */
12573 /* ??0strstream@std@@QEAA@PEAD_JH@Z */
12574 DEFINE_THISCALL_WRAPPER(strstream_ctor
, 20)
12575 strstream
* __thiscall
strstream_ctor(strstream
*this, char *buf
, streamsize size
, int mode
, MSVCP_bool virt_init
)
12577 basic_ios_char
*basic_ios
;
12579 TRACE("(%p %p %ld %d %d)\n", this, buf
, size
, mode
, virt_init
);
12582 this->base
.base1
.vbtable
= strstream_vbtable1
;
12583 this->base
.base2
.vbtable
= strstream_vbtable2
;
12584 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
12585 basic_ios_char_ctor(basic_ios
);
12587 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
12590 strstreambuf_ctor_get_put(&this->buf
, buf
, size
,
12591 buf
&& (mode
& OPENMODE_app
) ? buf
+strlen(buf
) : buf
);
12592 basic_iostream_char_ctor(&this->base
, &this->buf
.base
, FALSE
);
12593 basic_ios
->base
.vtable
= &MSVCP_strstream_vtable
;
12597 /* ??1strstream@std@@UAE@XZ */
12598 /* ??1strstream@std@@UEAA@XZ */
12599 DEFINE_THISCALL_WRAPPER(strstream_dtor
, 4)
12600 void __thiscall
strstream_dtor(basic_ios_char
*base
)
12602 strstream
*this = strstream_from_basic_ios(base
);
12604 TRACE("(%p)\n", this);
12606 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base
));
12607 strstreambuf_dtor(&this->buf
);
12610 static void strstream_vbase_dtor(strstream
*this)
12612 TRACE("(%p)\n", this);
12614 strstream_dtor(strstream_to_basic_ios(this));
12615 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base
.base1
));
12618 DEFINE_THISCALL_WRAPPER(strstream_vector_dtor
, 8)
12619 strstream
* __thiscall
strstream_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
12621 strstream
*this = strstream_from_basic_ios(base
);
12623 TRACE("(%p %x)\n", this, flags
);
12626 /* we have an array, with the number of elements stored before the first object */
12627 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
12629 for(i
=*ptr
-1; i
>=0; i
--)
12630 strstream_vbase_dtor(this+i
);
12631 MSVCRT_operator_delete(ptr
);
12633 strstream_vbase_dtor(this);
12635 MSVCRT_operator_delete(this);
12641 static void __cdecl
setprecision_func(ios_base
*base
, streamsize prec
)
12643 ios_base_precision_set(base
, prec
);
12646 /* ?setprecision@std@@YA?AU?$_Smanip@H@1@H@Z */
12647 /* ?setprecision@std@@YA?AU?$_Smanip@_J@1@_J@Z */
12648 manip_streamsize
* __cdecl
setprecision(manip_streamsize
*ret
, streamsize prec
)
12650 TRACE("(%p %ld)\n", ret
, prec
);
12652 ret
->pfunc
= setprecision_func
;
12657 static void __cdecl
setw_func(ios_base
*base
, streamsize width
)
12659 ios_base_width_set(base
, width
);
12662 /* ?setw@std@@YA?AU?$_Smanip@H@1@H@Z */
12663 /* ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z */
12664 manip_streamsize
* __cdecl
setw(manip_streamsize
*ret
, streamsize width
)
12666 TRACE("(%p %ld)\n", ret
, width
);
12668 ret
->pfunc
= setw_func
;
12673 static void __cdecl
resetioflags_func(ios_base
*base
, int mask
)
12675 ios_base_setf_mask(base
, 0, mask
);
12678 /* ?resetiosflags@std@@YA?AU?$_Smanip@H@1@H@Z */
12679 manip_int
* __cdecl
resetiosflags(manip_int
*ret
, int mask
)
12681 TRACE("(%p %d)\n", ret
, mask
);
12683 ret
->pfunc
= resetioflags_func
;
12688 static void __cdecl
setiosflags_func(ios_base
*base
, int mask
)
12690 ios_base_setf_mask(base
, FMTFLAG_mask
, mask
);
12693 /* ?setiosflags@std@@YA?AU?$_Smanip@H@1@H@Z */
12694 manip_int
* __cdecl
setiosflags(manip_int
*ret
, int mask
)
12696 TRACE("(%p %d)\n", ret
, mask
);
12698 ret
->pfunc
= setiosflags_func
;
12703 static void __cdecl
setbase_func(ios_base
*base
, int set_base
)
12706 set_base
= FMTFLAG_dec
;
12707 else if(set_base
== 8)
12708 set_base
= FMTFLAG_oct
;
12709 else if(set_base
== 16)
12710 set_base
= FMTFLAG_hex
;
12714 ios_base_setf_mask(base
, set_base
, FMTFLAG_basefield
);
12717 /* ?setbase@std@@YA?AU?$_Smanip@H@1@H@Z */
12718 manip_int
* __cdecl
setbase(manip_int
*ret
, int base
)
12720 TRACE("(%p %d)\n", ret
, base
);
12722 ret
->pfunc
= setbase_func
;
12727 static basic_filebuf_char filebuf_char_stdin
;
12728 /* ?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A */
12730 basic_istream_char obj
;
12731 basic_ios_char vbase
;
12733 /* ?_Ptr_cin@std@@3PAV?$basic_istream@DU?$char_traits@D@std@@@1@A */
12734 /* ?_Ptr_cin@std@@3PEAV?$basic_istream@DU?$char_traits@D@std@@@1@EA */
12735 basic_istream_char
*_Ptr_cin
= &cin
.obj
;
12737 static basic_filebuf_wchar filebuf_short_stdin
;
12738 /* ?wcin@std@@3V?$basic_istream@GU?$char_traits@G@std@@@1@A */
12740 basic_istream_wchar obj
;
12741 basic_ios_wchar vbase
;
12742 } ucin
= { { 0 } };
12743 /* ?_Ptr_wcin@std@@3PAV?$basic_istream@GU?$char_traits@G@std@@@1@A */
12744 /* ?_Ptr_wcin@std@@3PEAV?$basic_istream@GU?$char_traits@G@std@@@1@EA */
12745 basic_istream_wchar
*_Ptr_ucin
= &ucin
.obj
;
12747 static basic_filebuf_wchar filebuf_wchar_stdin
;
12748 /* ?wcin@std@@3V?$basic_istream@_WU?$char_traits@_W@std@@@1@A */
12750 basic_istream_wchar obj
;
12751 basic_ios_wchar vbase
;
12752 } wcin
= { { 0 } };
12753 /* ?_Ptr_wcin@std@@3PAV?$basic_istream@_WU?$char_traits@_W@std@@@1@A */
12754 /* ?_Ptr_wcin@std@@3PEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@EA */
12755 basic_istream_wchar
*_Ptr_wcin
= &wcin
.obj
;
12757 static basic_filebuf_char filebuf_char_stdout
;
12758 /* ?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12760 basic_ostream_char obj
;
12761 basic_ios_char vbase
;
12762 } cout
= { { 0 } };
12763 /* ?_Ptr_cout@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12764 /* ?_Ptr_cout@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
12765 basic_ostream_char
*_Ptr_cout
= &cout
.obj
;
12767 static basic_filebuf_wchar filebuf_short_stdout
;
12768 /* ?wcout@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12770 basic_ostream_wchar obj
;
12771 basic_ios_wchar vbase
;
12772 } ucout
= { { 0 } };
12773 /* ?_Ptr_wcout@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12774 /* ?_Ptr_wcout@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
12775 basic_ostream_wchar
*_Ptr_ucout
= &ucout
.obj
;
12777 static basic_filebuf_wchar filebuf_wchar_stdout
;
12778 /* ?wcout@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12780 basic_ostream_wchar obj
;
12781 basic_ios_wchar vbase
;
12782 } wcout
= { { 0 } };
12783 /* ?_Ptr_wcout@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12784 /* ?_Ptr_wcout@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
12785 basic_ostream_wchar
*_Ptr_wcout
= &wcout
.obj
;
12787 static basic_filebuf_char filebuf_char_stderr
;
12788 /* ?cerr@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12790 basic_ostream_char obj
;
12791 basic_ios_char vbase
;
12792 } cerr
= { { 0 } };
12793 /* ?_Ptr_cerr@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12794 /* ?_Ptr_cerr@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
12795 basic_ostream_char
*_Ptr_cerr
= &cerr
.obj
;
12797 static basic_filebuf_wchar filebuf_short_stderr
;
12798 /* ?wcerr@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12800 basic_ostream_wchar obj
;
12801 basic_ios_wchar vbase
;
12802 } ucerr
= { { 0 } };
12803 /* ?_Ptr_wcerr@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12804 /* ?_Ptr_wcerr@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
12805 basic_ostream_wchar
*_Ptr_ucerr
= &ucerr
.obj
;
12807 static basic_filebuf_wchar filebuf_wchar_stderr
;
12808 /* ?wcerr@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12810 basic_ostream_wchar obj
;
12811 basic_ios_wchar vbase
;
12812 } wcerr
= { { 0 } };
12813 /* ?_Ptr_wcerr@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12814 /* ?_Ptr_wcerr@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
12815 basic_ostream_wchar
*_Ptr_wcerr
= &wcerr
.obj
;
12817 static basic_filebuf_char filebuf_char_log
;
12818 /* ?clog@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12820 basic_ostream_char obj
;
12821 basic_ios_char vbase
;
12822 } clog
= { { 0 } };
12823 /* ?_Ptr_clog@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
12824 /* ?_Ptr_clog@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
12825 basic_ostream_char
*_Ptr_clog
= &clog
.obj
;
12827 static basic_filebuf_wchar filebuf_short_log
;
12828 /* ?wclog@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12830 basic_ostream_wchar obj
;
12831 basic_ios_wchar vbase
;
12832 } uclog
= { { 0 } };
12833 /* ?_Ptr_wclog@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
12834 /* ?_Ptr_wclog@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
12835 basic_ostream_wchar
*_Ptr_uclog
= &uclog
.obj
;
12837 static basic_filebuf_wchar filebuf_wchar_log
;
12838 /* ?wclog@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12840 basic_ostream_wchar obj
;
12841 basic_ios_wchar vbase
;
12842 } wclog
= { { 0 } };
12843 /* ?_Ptr_wclog@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
12844 /* ?_Ptr_wclog@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
12845 basic_ostream_wchar
*_Ptr_wclog
= &wclog
.obj
;
12847 /* ?_Init_cnt@Init@ios_base@std@@0HA */
12848 int ios_base_Init__Init_cnt
= -1;
12850 /* ?_Init_ctor@Init@ios_base@std@@CAXPAV123@@Z */
12851 /* ?_Init_ctor@Init@ios_base@std@@CAXPEAV123@@Z */
12852 static void ios_base_Init__Init_ctor(void *this)
12854 TRACE("(%p)\n", this);
12856 if(ios_base_Init__Init_cnt
< 0)
12857 ios_base_Init__Init_cnt
= 1;
12859 ios_base_Init__Init_cnt
++;
12862 /* ??0Init@ios_base@std@@QAE@XZ */
12863 /* ??0Init@ios_base@std@@QEAA@XZ */
12864 DEFINE_THISCALL_WRAPPER(ios_base_Init_ctor
, 4)
12865 void* __thiscall
ios_base_Init_ctor(void *this)
12867 ios_base_Init__Init_ctor(this);
12871 /* ?_Init_dtor@Init@ios_base@std@@CAXPAV123@@Z */
12872 /* ?_Init_dtor@Init@ios_base@std@@CAXPEAV123@@Z */
12873 static void ios_base_Init__Init_dtor(void *this)
12875 TRACE("(%p)\n", this);
12877 ios_base_Init__Init_cnt
--;
12878 if(!ios_base_Init__Init_cnt
) {
12879 basic_ostream_char_flush(&cout
.obj
);
12880 basic_ostream_char_flush(&cerr
.obj
);
12881 basic_ostream_char_flush(&clog
.obj
);
12885 /* ??1Init@ios_base@std@@QAE@XZ */
12886 /* ??1Init@ios_base@std@@QEAA@XZ */
12887 DEFINE_THISCALL_WRAPPER(ios_base_Init_dtor
, 4)
12888 void __thiscall
ios_base_Init_dtor(void *this)
12890 ios_base_Init__Init_dtor(this);
12893 /* ??4Init@ios_base@std@@QAEAAV012@ABV012@@Z */
12894 /* ??4Init@ios_base@std@@QEAAAEAV012@AEBV012@@Z */
12895 DEFINE_THISCALL_WRAPPER(ios_base_Init_op_assign
, 8)
12896 void* __thiscall
ios_base_Init_op_assign(void *this, void *rhs
)
12898 TRACE("(%p %p)\n", this, rhs
);
12902 /* ?_Init_cnt@_Winit@std@@0HA */
12903 int _Winit__Init_cnt
= -1;
12905 /* ??0_Winit@std@@QAE@XZ */
12906 /* ??0_Winit@std@@QEAA@XZ */
12907 DEFINE_THISCALL_WRAPPER(_Winit_ctor
, 4)
12908 void* __thiscall
_Winit_ctor(void *this)
12910 TRACE("(%p)\n", this);
12912 if(_Winit__Init_cnt
< 0)
12913 _Winit__Init_cnt
= 1;
12915 _Winit__Init_cnt
++;
12920 /* ??1_Winit@std@@QAE@XZ */
12921 /* ??1_Winit@std@@QAE@XZ */
12922 DEFINE_THISCALL_WRAPPER(_Winit_dtor
, 4)
12923 void __thiscall
_Winit_dtor(void *this)
12925 TRACE("(%p)\n", this);
12927 _Winit__Init_cnt
--;
12928 if(!_Winit__Init_cnt
) {
12929 basic_ostream_wchar_flush(&wcout
.obj
);
12930 basic_ostream_wchar_flush(&wcerr
.obj
);
12931 basic_ostream_wchar_flush(&wclog
.obj
);
12935 /* ??4_Winit@std@@QAEAAV01@ABV01@@Z */
12936 /* ??4_Winit@std@@QEAAAEAV01@AEBV01@@Z */
12937 DEFINE_THISCALL_WRAPPER(_Winit_op_assign
, 8)
12938 void* __thiscall
_Winit_op_assign(void *this, void *rhs
)
12940 TRACE("(%p %p)\n", this, rhs
);
12944 void init_io(void *base
)
12947 init_iosb_rtti(base
);
12948 init_ios_base_rtti(base
);
12949 init_basic_ios_char_rtti(base
);
12950 init_basic_ios_wchar_rtti(base
);
12951 init_basic_ios_short_rtti(base
);
12952 init_basic_streambuf_char_rtti(base
);
12953 init_basic_streambuf_wchar_rtti(base
);
12954 init_basic_streambuf_short_rtti(base
);
12955 init_basic_filebuf_char_rtti(base
);
12956 init_basic_filebuf_wchar_rtti(base
);
12957 init_basic_filebuf_short_rtti(base
);
12958 init_basic_stringbuf_char_rtti(base
);
12959 init_basic_stringbuf_wchar_rtti(base
);
12960 init_basic_stringbuf_short_rtti(base
);
12961 init_basic_ostream_char_rtti(base
);
12962 init_basic_ostream_wchar_rtti(base
);
12963 init_basic_ostream_short_rtti(base
);
12964 init_basic_istream_char_rtti(base
);
12965 init_basic_istream_wchar_rtti(base
);
12966 init_basic_istream_short_rtti(base
);
12967 init_basic_iostream_char_rtti(base
);
12968 init_basic_iostream_wchar_rtti(base
);
12969 init_basic_iostream_short_rtti(base
);
12970 init_basic_ofstream_char_rtti(base
);
12971 init_basic_ofstream_wchar_rtti(base
);
12972 init_basic_ofstream_short_rtti(base
);
12973 init_basic_ifstream_char_rtti(base
);
12974 init_basic_ifstream_wchar_rtti(base
);
12975 init_basic_ifstream_short_rtti(base
);
12976 init_basic_fstream_char_rtti(base
);
12977 init_basic_fstream_wchar_rtti(base
);
12978 init_basic_fstream_short_rtti(base
);
12979 init_basic_ostringstream_char_rtti(base
);
12980 init_basic_ostringstream_wchar_rtti(base
);
12981 init_basic_ostringstream_short_rtti(base
);
12982 init_basic_istringstream_char_rtti(base
);
12983 init_basic_istringstream_wchar_rtti(base
);
12984 init_basic_istringstream_short_rtti(base
);
12985 init_basic_stringstream_char_rtti(base
);
12986 init_basic_stringstream_wchar_rtti(base
);
12987 init_basic_stringstream_short_rtti(base
);
12988 init_strstreambuf_rtti(base
);
12989 init_strstream_rtti(base
);
12990 init_ostrstream_rtti(base
);
12993 basic_filebuf_char_ctor_file(&filebuf_char_stdin
, stdin
);
12994 basic_istream_char_ctor(&cin
.obj
, &filebuf_char_stdin
.base
, FALSE
/*FIXME*/, TRUE
);
12996 basic_filebuf_short_ctor_file(&filebuf_short_stdin
, stdin
);
12997 basic_istream_short_ctor(&ucin
.obj
, &filebuf_short_stdin
.base
, FALSE
/*FIXME*/, TRUE
);
12999 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stdin
, stdin
);
13000 basic_istream_wchar_ctor(&wcin
.obj
, &filebuf_wchar_stdin
.base
, FALSE
/*FIXME*/, TRUE
);
13002 basic_filebuf_char_ctor_file(&filebuf_char_stdout
, stdout
);
13003 basic_ostream_char_ctor(&cout
.obj
, &filebuf_char_stdout
.base
, FALSE
/*FIXME*/, TRUE
);
13005 basic_filebuf_short_ctor_file(&filebuf_short_stdout
, stdout
);
13006 basic_ostream_short_ctor(&ucout
.obj
, &filebuf_short_stdout
.base
, FALSE
/*FIXME*/, TRUE
);
13008 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stdout
, stdout
);
13009 basic_ostream_wchar_ctor(&wcout
.obj
, &filebuf_wchar_stdout
.base
, FALSE
/*FIXME*/, TRUE
);
13011 basic_filebuf_char_ctor_file(&filebuf_char_stderr
, stderr
);
13012 basic_ostream_char_ctor(&cerr
.obj
, &filebuf_char_stderr
.base
, FALSE
/*FIXME*/, TRUE
);
13014 basic_filebuf_short_ctor_file(&filebuf_short_stderr
, stderr
);
13015 basic_ostream_short_ctor(&ucerr
.obj
, &filebuf_short_stderr
.base
, FALSE
/*FIXME*/, TRUE
);
13017 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stderr
, stderr
);
13018 basic_ostream_wchar_ctor(&wcerr
.obj
, &filebuf_wchar_stderr
.base
, FALSE
/*FIXME*/, TRUE
);
13020 basic_filebuf_char_ctor_file(&filebuf_char_log
, stderr
);
13021 basic_ostream_char_ctor(&clog
.obj
, &filebuf_char_log
.base
, FALSE
/*FIXME*/, TRUE
);
13023 basic_filebuf_short_ctor_file(&filebuf_short_log
, stderr
);
13024 basic_ostream_short_ctor(&uclog
.obj
, &filebuf_short_log
.base
, FALSE
/*FIXME*/, TRUE
);
13026 basic_filebuf_wchar_ctor_file(&filebuf_wchar_log
, stderr
);
13027 basic_ostream_wchar_ctor(&wclog
.obj
, &filebuf_wchar_log
.base
, FALSE
/*FIXME*/, TRUE
);
13032 basic_istream_char_vbase_dtor(&cin
.obj
);
13033 basic_filebuf_char_dtor(&filebuf_char_stdin
);
13035 basic_istream_wchar_vbase_dtor(&ucin
.obj
);
13036 basic_filebuf_wchar_dtor(&filebuf_short_stdin
);
13038 basic_istream_wchar_vbase_dtor(&wcin
.obj
);
13039 basic_filebuf_wchar_dtor(&filebuf_wchar_stdin
);
13041 basic_ostream_char_vbase_dtor(&cout
.obj
);
13042 basic_filebuf_char_dtor(&filebuf_char_stdout
);
13044 basic_ostream_wchar_vbase_dtor(&ucout
.obj
);
13045 basic_filebuf_wchar_dtor(&filebuf_short_stdout
);
13047 basic_ostream_wchar_vbase_dtor(&wcout
.obj
);
13048 basic_filebuf_wchar_dtor(&filebuf_wchar_stdout
);
13050 basic_ostream_char_vbase_dtor(&cerr
.obj
);
13051 basic_filebuf_char_dtor(&filebuf_char_stderr
);
13053 basic_ostream_wchar_vbase_dtor(&ucerr
.obj
);
13054 basic_filebuf_wchar_dtor(&filebuf_short_stderr
);
13056 basic_ostream_wchar_vbase_dtor(&wcerr
.obj
);
13057 basic_filebuf_wchar_dtor(&filebuf_wchar_stderr
);
13059 basic_ostream_char_vbase_dtor(&clog
.obj
);
13060 basic_filebuf_char_dtor(&filebuf_char_log
);
13062 basic_ostream_wchar_vbase_dtor(&uclog
.obj
);
13063 basic_filebuf_wchar_dtor(&filebuf_short_log
);
13065 basic_ostream_wchar_vbase_dtor(&wclog
.obj
);
13066 basic_filebuf_wchar_dtor(&filebuf_wchar_log
);