msvcp60: Remove basic_stringstream<wchar> code.
[wine.git] / dlls / msvcp60 / ios.c
bloba65f8ad8d253c4e95050fba54d25ba530dc41ff7
1 /*
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
20 #include <stdarg.h>
21 #include <stdio.h>
22 #include <limits.h>
23 #include <share.h>
24 #include <locale.h>
26 #include "msvcp.h"
27 #include "windef.h"
28 #include "winbase.h"
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 bool ios_base_Sync = FALSE;
37 typedef struct {
38 streamoff off;
39 __int64 DECLSPEC_ALIGN(8) pos;
40 int state;
41 } fpos_int;
43 static inline const char* debugstr_fpos_int(fpos_int *fpos)
45 return wine_dbg_sprintf("fpos(%Id %I64d %d)", fpos->off, fpos->pos, fpos->state);
48 typedef struct {
49 void (__cdecl *pfunc)(ios_base*, streamsize);
50 streamsize arg;
51 } manip_streamsize;
53 typedef struct {
54 void (__cdecl *pfunc)(ios_base*, int);
55 int arg;
56 } manip_int;
58 typedef enum {
59 INITFL_new = 0,
60 INITFL_open = 1,
61 INITFL_close = 2
62 } basic_filebuf__Initfl;
64 typedef struct {
65 basic_streambuf_char base;
66 codecvt_char *cvt;
67 int state0;
68 int state;
69 basic_string_char *str;
70 bool close;
71 locale loc;
72 FILE *file;
73 } basic_filebuf_char;
75 typedef struct {
76 basic_streambuf_wchar base;
77 codecvt_wchar *cvt;
78 int state0;
79 int state;
80 basic_string_char *str;
81 bool close;
82 locale loc;
83 FILE *file;
84 } basic_filebuf_wchar;
86 typedef enum {
87 STRINGBUF_allocated = 1,
88 STRINGBUF_no_write = 2,
89 STRINGBUF_no_read = 4,
90 STRINGBUF_append = 8,
91 STRINGBUF_at_end = 16
92 } basic_stringbuf_state;
94 typedef struct {
95 basic_streambuf_char base;
96 char *pendsave;
97 char *seekhigh;
98 int alsize;
99 int state;
100 char allocator; /* empty struct */
101 } basic_stringbuf_char;
103 typedef struct {
104 basic_streambuf_wchar base;
105 wchar_t *pendsave;
106 wchar_t *seekhigh;
107 int alsize;
108 int state;
109 char allocator; /* empty struct */
110 } basic_stringbuf_wchar;
112 typedef struct {
113 ios_base base;
114 basic_streambuf_char *strbuf;
115 struct _basic_ostream_char *stream;
116 char fillch;
117 } basic_ios_char;
119 typedef struct {
120 ios_base base;
121 basic_streambuf_wchar *strbuf;
122 struct _basic_ostream_wchar *stream;
123 wchar_t fillch;
124 } basic_ios_wchar;
126 typedef struct _basic_ostream_char {
127 const int *vbtable;
128 /* virtual inheritance
129 * basic_ios_char basic_ios;
131 } basic_ostream_char;
133 typedef struct _basic_ostream_wchar {
134 const int *vbtable;
135 /* virtual inheritance
136 * basic_ios_wchar basic_ios;
138 } basic_ostream_wchar;
140 typedef struct {
141 const int *vbtable;
142 streamsize count;
143 /* virtual inheritance
144 * basic_ios_char basic_ios;
146 } basic_istream_char;
148 typedef struct {
149 const int *vbtable;
150 streamsize count;
151 /* virtual inheritance
152 * basic_ios_wchar basic_ios;
154 } basic_istream_wchar;
156 typedef struct {
157 basic_istream_char base1;
158 basic_ostream_char base2;
159 /* virtual inheritance
160 * basic_ios_char basic_ios;
162 } basic_iostream_char;
164 typedef struct {
165 basic_istream_wchar base1;
166 basic_ostream_wchar base2;
167 /* virtual inheritance
168 * basic_ios_wchar basic_ios;
170 } basic_iostream_wchar;
172 typedef struct {
173 basic_ostream_char base;
174 basic_filebuf_char filebuf;
175 /* virtual inheritance
176 * basic_ios_char basic_ios;
178 } basic_ofstream_char;
180 typedef struct {
181 basic_ostream_wchar base;
182 basic_filebuf_wchar filebuf;
183 /* virtual inheritance
184 * basic_ios_wchar basic_ios;
186 } basic_ofstream_wchar;
188 typedef struct {
189 basic_istream_char base;
190 basic_filebuf_char filebuf;
191 /* virtual inheritance
192 * basic_ios_char basic_ios;
194 } basic_ifstream_char;
196 typedef struct {
197 basic_istream_wchar base;
198 basic_filebuf_wchar filebuf;
199 /* virtual inheritance
200 * basic_ios_wchar basic_ios;
202 } basic_ifstream_wchar;
204 typedef struct {
205 basic_iostream_char base;
206 basic_filebuf_char filebuf;
207 /* virtual inheritance
208 * basic_ios_char basic_ios;
210 } basic_fstream_char;
212 typedef struct {
213 basic_iostream_wchar base;
214 basic_filebuf_wchar filebuf;
215 /* virtual inheritance
216 * basic_ios_char basic_ios;
218 } basic_fstream_wchar;
220 typedef struct {
221 basic_ostream_char base;
222 basic_stringbuf_char strbuf;
223 /* virtual inheritance
224 * basic_ios_char basic_ios;
226 } basic_ostringstream_char;
228 typedef struct {
229 basic_ostream_wchar base;
230 basic_stringbuf_wchar strbuf;
231 /* virtual inheritance
232 * basic_ios_wchar basic_ios;
234 } basic_ostringstream_wchar;
236 typedef struct {
237 basic_istream_char base;
238 basic_stringbuf_char strbuf;
239 /* virtual inheritance
240 * basic_ios_char basic_ios;
242 } basic_istringstream_char;
244 typedef struct {
245 basic_istream_wchar base;
246 basic_stringbuf_wchar strbuf;
247 /* virtual inheritance
248 * basic_ios_wchar basic_ios;
250 } basic_istringstream_wchar;
252 typedef struct {
253 basic_iostream_char base;
254 basic_stringbuf_char strbuf;
255 /* virtual inheritance
256 * basic_ios_char basic_ios;
258 } basic_stringstream_char;
260 typedef struct {
261 basic_iostream_wchar base;
262 basic_stringbuf_wchar strbuf;
263 /* virtual inheritance
264 * basic_ios_wchar basic_ios;
266 } basic_stringstream_wchar;
268 typedef enum {
269 STRSTATE_Allocated = 1,
270 STRSTATE_Constant = 2,
271 STRSTATE_Dynamic = 4,
272 STRSTATE_Frozen = 8
273 } strstreambuf__Strstate;
275 typedef struct {
276 basic_streambuf_char base;
277 char *endsave;
278 char *seekhigh;
279 streamsize minsize;
280 int strmode;
281 void* (__cdecl *palloc)(size_t);
282 void (__cdecl *pfree)(void*);
283 } strstreambuf;
285 typedef struct {
286 basic_ostream_char base;
287 strstreambuf buf;
288 /* virtual inheritance
289 * basic_ios_char basic_ios;
291 } ostrstream;
293 typedef struct {
294 basic_istream_char base;
295 strstreambuf buf;
296 /* virtual inheritance
297 * basic_ios_char basic_ios;
299 } istrstream;
301 typedef struct {
302 basic_iostream_char base;
303 strstreambuf buf;
304 /* virtual inheritance
305 * basic_ios_char basic_ios;
307 } strstream;
309 #define VBTABLE_ALIGN 4
311 extern const vtable_ptr iosb_vtable;
313 /* ??_7ios_base@std@@6B@ */
314 extern const vtable_ptr ios_base_vtable;
316 /* ??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@ */
317 extern const vtable_ptr basic_ios_char_vtable;
319 /* ??_7?$basic_ios@_WU?$char_traits@_W@std@@@std@@6B@ */
320 extern const vtable_ptr basic_ios_wchar_vtable;
322 /* ??_7?$basic_ios@GU?$char_traits@G@std@@@std@@6B@ */
323 extern const vtable_ptr basic_ios_short_vtable;
325 /* ??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@ */
326 extern const vtable_ptr basic_streambuf_char_vtable;
328 /* ??_7?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@6B@ */
329 extern const vtable_ptr basic_streambuf_wchar_vtable;
331 /* ??_7?$basic_streambuf@GU?$char_traits@G@std@@@std@@6B@ */
332 extern const vtable_ptr basic_streambuf_short_vtable;
334 /* ??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ */
335 extern const vtable_ptr basic_filebuf_char_vtable;
337 /* ??_7?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@6B@ */
338 extern const vtable_ptr basic_filebuf_wchar_vtable;
340 /* ??_7?$basic_filebuf@GU?$char_traits@G@std@@@std@@6B@ */
341 extern const vtable_ptr basic_filebuf_short_vtable;
343 /* ??_7?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
344 extern const vtable_ptr basic_stringbuf_char_vtable;
346 /* ??_7?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
347 extern const vtable_ptr basic_stringbuf_wchar_vtable;
349 /* ??_7?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
350 extern const vtable_ptr basic_stringbuf_short_vtable;
352 /* ??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@ */
353 const int basic_ostream_char_vbtable[] = {0, ALIGNED_SIZE(sizeof(basic_ostream_char), VBTABLE_ALIGN)};
354 /* ??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@ */
355 extern const vtable_ptr basic_ostream_char_vtable;
357 /* ??_8?$basic_ostream@_WU?$char_traits@_W@std@@@std@@7B@ */
358 const int basic_ostream_wchar_vbtable[] = {0, ALIGNED_SIZE(sizeof(basic_ostream_wchar), VBTABLE_ALIGN)};
359 /* ??_7?$basic_ostream@_WU?$char_traits@_W@std@@@std@@6B@ */
360 extern const vtable_ptr basic_ostream_wchar_vtable;
362 /* ??_8?$basic_ostream@GU?$char_traits@G@std@@@std@@7B@ */
363 const int basic_ostream_short_vbtable[] = {0, ALIGNED_SIZE(sizeof(basic_ostream_wchar), VBTABLE_ALIGN)};
364 /* ??_7?$basic_ostream@GU?$char_traits@G@std@@@std@@6B@ */
365 extern const vtable_ptr basic_ostream_short_vtable;
367 /* ??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@ */
368 const int basic_istream_char_vbtable[] = {0, ALIGNED_SIZE(sizeof(basic_istream_char), VBTABLE_ALIGN)};
369 /* ??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@ */
370 extern const vtable_ptr basic_istream_char_vtable;
372 /* ??_8?$basic_istream@_WU?$char_traits@_W@std@@@std@@7B@ */
373 const int basic_istream_wchar_vbtable[] = {0, ALIGNED_SIZE(sizeof(basic_istream_wchar), VBTABLE_ALIGN)};
374 /* ??_7?$basic_istream@_WU?$char_traits@_W@std@@@std@@6B@ */
375 extern const vtable_ptr basic_istream_wchar_vtable;
377 /* ??_8?$basic_istream@GU?$char_traits@G@std@@@std@@7B@ */
378 const int basic_istream_short_vbtable[] = {0, ALIGNED_SIZE(sizeof(basic_istream_wchar), VBTABLE_ALIGN)};
379 /* ??_7?$basic_istream@GU?$char_traits@G@std@@@std@@6B@ */
380 extern const vtable_ptr basic_istream_short_vtable;
382 /* ??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
383 const int basic_iostream_char_vbtable1[] = {0, ALIGNED_SIZE(sizeof(basic_iostream_char), VBTABLE_ALIGN)};
384 /* ??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
385 const int basic_iostream_char_vbtable2[] = {0, ALIGNED_SIZE(sizeof(basic_iostream_char), VBTABLE_ALIGN)-FIELD_OFFSET(basic_iostream_char, base2)};
386 /* ??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@ */
387 extern const vtable_ptr basic_iostream_char_vtable;
389 /* ??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
390 /* ??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
391 const int basic_iostream_wchar_vbtable1[] = {0, ALIGNED_SIZE(sizeof(basic_iostream_wchar), VBTABLE_ALIGN)};
392 /* ??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
393 /* ??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
394 const int basic_iostream_wchar_vbtable2[] = {0, ALIGNED_SIZE(sizeof(basic_iostream_wchar), VBTABLE_ALIGN)-FIELD_OFFSET(basic_iostream_wchar, base2)};
395 /* ??_7?$basic_iostream@_WU?$char_traits@_W@std@@@std@@6B@ */
396 extern const vtable_ptr basic_iostream_wchar_vtable;
397 /* ??_7?$basic_iostream@GU?$char_traits@G@std@@@std@@6B@ */
398 extern const vtable_ptr basic_iostream_short_vtable;
400 /* ??_8?$basic_ofstream@DU?$char_traits@D@std@@@std@@7B@ */
401 const int basic_ofstream_char_vbtable[] = {0, sizeof(basic_ofstream_char)};
402 /* ??_7?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ */
403 extern const vtable_ptr basic_ofstream_char_vtable;
405 /* ??_8?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@7B@ */
406 const int basic_ofstream_wchar_vbtable[] = {0, sizeof(basic_ofstream_wchar)};
407 /* ??_7?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@6B@ */
408 extern const vtable_ptr basic_ofstream_wchar_vtable;
410 /* ??_8?$basic_ofstream@GU?$char_traits@G@std@@@std@@7B@ */
411 const int basic_ofstream_short_vbtable[] = {0, sizeof(basic_ofstream_wchar)};
412 /* ??_7?$basic_ofstream@GU?$char_traits@G@std@@@std@@6B@ */
413 extern const vtable_ptr basic_ofstream_short_vtable;
415 /* ??_8?$basic_ifstream@DU?$char_traits@D@std@@@std@@7B@ */
416 const int basic_ifstream_char_vbtable[] = {0, sizeof(basic_ifstream_char)};
417 /* ??_7?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@ */
418 extern const vtable_ptr basic_ifstream_char_vtable;
420 /* ??_8?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@7B@ */
421 const int basic_ifstream_wchar_vbtable[] = {0, sizeof(basic_ifstream_wchar)};
422 /* ??_7?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@6B@ */
423 extern const vtable_ptr basic_ifstream_wchar_vtable;
425 /* ??_8?$basic_ifstream@GU?$char_traits@G@std@@@std@@7B@ */
426 const int basic_ifstream_short_vbtable[] = {0, sizeof(basic_ifstream_wchar)};
427 /* ??_7?$basic_ifstream@GU?$char_traits@G@std@@@std@@6B@ */
428 extern const vtable_ptr basic_ifstream_short_vtable;
430 /* ??_8?$basic_fstream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
431 const int basic_fstream_char_vbtable1[] = {0, sizeof(basic_fstream_char)};
432 /* ??_8?$basic_fstream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
433 const int basic_fstream_char_vbtable2[] = {0, sizeof(basic_fstream_char)-FIELD_OFFSET(basic_fstream_char, base.base2)};
434 /* ??_7?$basic_fstream@DU?$char_traits@D@std@@@std@@6B@ */
435 extern const vtable_ptr basic_fstream_char_vtable;
437 /* ??_8?$basic_fstream@_WU?$char_traits@_W@std@@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
438 /* ??_8?$basic_fstream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
439 const int basic_fstream_wchar_vbtable1[] = {0, sizeof(basic_fstream_wchar)};
440 /* ??_8?$basic_fstream@_WU?$char_traits@_W@std@@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
441 /* ??_8?$basic_fstream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
442 const int basic_fstream_wchar_vbtable2[] = {0, sizeof(basic_fstream_wchar)-FIELD_OFFSET(basic_fstream_wchar, base.base2)};
443 /* ??_7?$basic_fstream@_WU?$char_traits@_W@std@@@std@@6B@ */
444 extern const vtable_ptr basic_fstream_wchar_vtable;
445 /* ??_7?$basic_fstream@GU?$char_traits@G@std@@@std@@6B@ */
446 extern const vtable_ptr basic_fstream_short_vtable;
448 /* ??_8?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B@ */
449 const int basic_ostringstream_char_vbtable[] = {0, sizeof(basic_ostringstream_char)};
450 /* ??_7?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
451 extern const vtable_ptr basic_ostringstream_char_vtable;
453 /* ??_8?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B@ */
454 const int basic_ostringstream_wchar_vbtable[] = {0, sizeof(basic_ostringstream_wchar)};
455 /* ??_7?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
456 extern const vtable_ptr basic_ostringstream_wchar_vtable;
458 /* ??_8?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B@ */
459 const int basic_ostringstream_short_vbtable[] = {0, sizeof(basic_ostringstream_wchar)};
460 /* ??_7?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
461 extern const vtable_ptr basic_ostringstream_short_vtable;
463 /* ??_8?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B@ */
464 const int basic_istringstream_char_vbtable[] = {0, sizeof(basic_istringstream_char)};
465 /* ??_7?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
466 extern const vtable_ptr basic_istringstream_char_vtable;
468 /* ??_8?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B@ */
469 const int basic_istringstream_wchar_vbtable[] = {0, sizeof(basic_istringstream_wchar)};
470 /* ??_7?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
471 extern const vtable_ptr basic_istringstream_wchar_vtable;
473 /* ??_8?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B@ */
474 const int basic_istringstream_short_vbtable[] = {0, sizeof(basic_istringstream_wchar)};
475 /* ??_7?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
476 extern const vtable_ptr basic_istringstream_short_vtable;
478 /* ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
479 const int basic_stringstream_char_vbtable1[] = {0, sizeof(basic_stringstream_char)};
480 /* ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
481 const int basic_stringstream_char_vbtable2[] = {0, sizeof(basic_stringstream_char)-FIELD_OFFSET(basic_stringstream_char, base.base2)};
482 /* ??_7?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
483 extern const vtable_ptr basic_stringstream_char_vtable;
485 /* ??_8?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
486 const int basic_stringstream_short_vbtable1[] = {0, sizeof(basic_stringstream_wchar)};
487 /* ??_8?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
488 const int basic_stringstream_short_vbtable2[] = {0, sizeof(basic_stringstream_wchar)-FIELD_OFFSET(basic_stringstream_wchar, base.base2)};
489 /* ??_7?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
490 extern const vtable_ptr basic_stringstream_short_vtable;
492 /* ??_7strstreambuf@std@@6B */
493 extern const vtable_ptr strstreambuf_vtable;
495 static const int ostrstream_vbtable[] = {0, sizeof(ostrstream)};
496 extern const vtable_ptr ostrstream_vtable;
498 static const int istrstream_vbtable[] = {0, sizeof(istrstream)};
500 static const int strstream_vbtable1[] = {0, sizeof(strstream)};
501 static const int strstream_vbtable2[] = {0, sizeof(strstream)-FIELD_OFFSET(strstream, base.base2)};
502 extern const vtable_ptr strstream_vtable;
504 DEFINE_RTTI_DATA0(iosb, 0, ".?AV?$_Iosb@H@std@@")
505 DEFINE_RTTI_DATA1(ios_base, 0, &iosb_rtti_base_descriptor, ".?AV?$_Iosb@H@std@@")
506 DEFINE_RTTI_DATA2(basic_ios_char, 0, &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
507 ".?AV?$basic_ios@DU?$char_traits@D@std@@@std@@")
508 DEFINE_RTTI_DATA2(basic_ios_wchar, 0, &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
509 ".?AV?$basic_ios@_WU?$char_traits@_W@std@@@std@@")
510 DEFINE_RTTI_DATA2(basic_ios_short, 0, &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
511 ".?AV?$basic_ios@GU?$char_traits@G@std@@@std@@")
512 DEFINE_RTTI_DATA0(basic_streambuf_char, 0,
513 ".?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@")
514 DEFINE_RTTI_DATA0(basic_streambuf_wchar, 0,
515 ".?AV?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@")
516 DEFINE_RTTI_DATA0(basic_streambuf_short, 0,
517 ".?AV?$basic_streambuf@GU?$char_traits@G@std@@@std@@")
518 DEFINE_RTTI_DATA1(basic_filebuf_char, 0, &basic_streambuf_char_rtti_base_descriptor,
519 ".?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@")
520 DEFINE_RTTI_DATA1(basic_filebuf_wchar, 0, &basic_streambuf_wchar_rtti_base_descriptor,
521 ".?AV?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@")
522 DEFINE_RTTI_DATA1(basic_filebuf_short, 0, &basic_streambuf_short_rtti_base_descriptor,
523 ".?AV?$basic_filebuf@GU?$char_traits@G@std@@@std@@")
524 DEFINE_RTTI_DATA1(basic_stringbuf_char, 0, &basic_streambuf_char_rtti_base_descriptor,
525 ".?AV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@")
526 DEFINE_RTTI_DATA1(basic_stringbuf_wchar, 0, &basic_streambuf_wchar_rtti_base_descriptor,
527 ".?AV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@")
528 DEFINE_RTTI_DATA1(basic_stringbuf_short, 0, &basic_streambuf_short_rtti_base_descriptor,
529 ".?AV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@")
530 DEFINE_RTTI_DATA3(basic_ostream_char, sizeof(basic_ostream_char), &basic_ios_char_rtti_base_descriptor,
531 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
532 ".?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@")
533 DEFINE_RTTI_DATA3(basic_ostream_wchar, sizeof(basic_ostream_wchar), &basic_ios_wchar_rtti_base_descriptor,
534 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
535 ".?AV?$basic_ostream@_WU?$char_traits@_W@std@@@std@@")
536 DEFINE_RTTI_DATA3(basic_ostream_short, sizeof(basic_ostream_wchar), &basic_ios_short_rtti_base_descriptor,
537 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
538 ".?AV?$basic_ostream@GU?$char_traits@G@std@@@std@@")
539 DEFINE_RTTI_DATA3(basic_istream_char, sizeof(basic_istream_char), &basic_ios_char_rtti_base_descriptor,
540 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
541 ".?AV?$basic_istream@DU?$char_traits@D@std@@@std@@")
542 DEFINE_RTTI_DATA3(basic_istream_wchar, sizeof(basic_istream_wchar), &basic_ios_wchar_rtti_base_descriptor,
543 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
544 ".?AV?$basic_istream@_WU?$char_traits@_W@std@@@std@@")
545 DEFINE_RTTI_DATA3(basic_istream_short, sizeof(basic_istream_wchar), &basic_ios_short_rtti_base_descriptor,
546 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
547 ".?AV?$basic_istream@GU?$char_traits@G@std@@@std@@")
548 DEFINE_RTTI_DATA8(basic_iostream_char, sizeof(basic_iostream_char),
549 &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
550 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
551 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
552 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
553 ".?AV?$basic_iostream@DU?$char_traits@D@std@@@std@@")
554 DEFINE_RTTI_DATA8(basic_iostream_wchar, sizeof(basic_iostream_wchar),
555 &basic_istream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
556 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
557 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
558 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
559 ".?AV?$basic_iostream@_WU?$char_traits@_W@std@@@std@@")
560 DEFINE_RTTI_DATA8(basic_iostream_short, sizeof(basic_iostream_wchar),
561 &basic_istream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
562 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
563 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
564 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
565 ".?AV?$basic_iostream@GU?$char_traits@G@std@@@std@@")
566 DEFINE_RTTI_DATA4(basic_ofstream_char, sizeof(basic_ofstream_char),
567 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
568 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
569 ".?AV?$basic_ofstream@DU?$char_traits@D@std@@@std@@")
570 DEFINE_RTTI_DATA4(basic_ofstream_wchar, sizeof(basic_ofstream_wchar),
571 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
572 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
573 ".?AV?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@")
574 DEFINE_RTTI_DATA4(basic_ofstream_short, sizeof(basic_ofstream_wchar),
575 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
576 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
577 ".?AV?$basic_ofstream@GU?$char_traits@G@std@@@std@@")
578 DEFINE_RTTI_DATA4(basic_ifstream_char, sizeof(basic_ifstream_char),
579 &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
580 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
581 ".?AV?$basic_ifstream@DU?$char_traits@D@std@@@std@@")
582 DEFINE_RTTI_DATA4(basic_ifstream_wchar, sizeof(basic_ifstream_wchar),
583 &basic_istream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
584 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
585 ".?AV?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@")
586 DEFINE_RTTI_DATA4(basic_ifstream_short, sizeof(basic_ifstream_wchar),
587 &basic_istream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
588 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
589 ".?AV?$basic_ifstream@GU?$char_traits@G@std@@@std@@")
590 DEFINE_RTTI_DATA8(basic_fstream_char, sizeof(basic_fstream_char),
591 &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
592 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
593 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
594 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
595 ".?AV?$basic_fstream@DU?$char_traits@D@std@@@std@@")
596 DEFINE_RTTI_DATA8(basic_fstream_wchar, sizeof(basic_fstream_wchar),
597 &basic_istream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
598 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
599 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
600 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
601 ".?AV?$basic_fstream@_WU?$char_traits@_W@std@@@std@@")
602 DEFINE_RTTI_DATA8(basic_fstream_short, sizeof(basic_fstream_wchar),
603 &basic_istream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
604 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
605 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
606 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
607 ".?AV?$basic_fstream@GU?$char_traits@G@std@@@std@@")
608 DEFINE_RTTI_DATA4(basic_ostringstream_char, sizeof(basic_ostringstream_char),
609 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
610 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
611 ".?AV?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@")
612 DEFINE_RTTI_DATA4(basic_ostringstream_wchar, sizeof(basic_ostringstream_wchar),
613 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
614 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
615 ".?AV?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@")
616 DEFINE_RTTI_DATA4(basic_ostringstream_short, sizeof(basic_ostringstream_wchar),
617 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
618 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
619 ".?AV?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@")
620 DEFINE_RTTI_DATA4(basic_istringstream_char, sizeof(basic_istringstream_char),
621 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
622 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
623 ".?AV?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@")
624 DEFINE_RTTI_DATA4(basic_istringstream_wchar, sizeof(basic_istringstream_wchar),
625 &basic_ostream_wchar_rtti_base_descriptor, &basic_ios_wchar_rtti_base_descriptor,
626 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
627 ".?AV?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@")
628 DEFINE_RTTI_DATA4(basic_istringstream_short, sizeof(basic_istringstream_wchar),
629 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
630 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
631 ".?AV?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@")
632 DEFINE_RTTI_DATA8(basic_stringstream_char, sizeof(basic_stringstream_char),
633 &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
634 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
635 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
636 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
637 ".?AV?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@")
638 DEFINE_RTTI_DATA8(basic_stringstream_short, sizeof(basic_stringstream_wchar),
639 &basic_istream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
640 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
641 &basic_ostream_short_rtti_base_descriptor, &basic_ios_short_rtti_base_descriptor,
642 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
643 ".?AV?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@")
644 DEFINE_RTTI_DATA1(strstreambuf, sizeof(strstreambuf),
645 &basic_streambuf_char_rtti_base_descriptor, ".?AVstrstreambuf@std@@")
646 DEFINE_RTTI_DATA4(ostrstream, sizeof(ostrstream),
647 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
648 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
649 "?AVostrstream@std@@")
650 DEFINE_RTTI_DATA8(strstream, sizeof(strstream),
651 &basic_istream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
652 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
653 &basic_ostream_char_rtti_base_descriptor, &basic_ios_char_rtti_base_descriptor,
654 &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
655 "?AVstrstream@std@@")
657 __ASM_BLOCK_BEGIN(ios_vtables)
658 __ASM_VTABLE(iosb,
659 VTABLE_ADD_FUNC(iosb_vector_dtor));
660 __ASM_VTABLE(ios_base,
661 VTABLE_ADD_FUNC(ios_base_vector_dtor));
662 __ASM_VTABLE(basic_ios_char,
663 VTABLE_ADD_FUNC(basic_ios_char_vector_dtor));
664 __ASM_VTABLE(basic_ios_wchar,
665 VTABLE_ADD_FUNC(basic_ios_wchar_vector_dtor));
666 __ASM_VTABLE(basic_ios_short,
667 VTABLE_ADD_FUNC(basic_ios_wchar_vector_dtor));
668 __ASM_VTABLE(basic_streambuf_char,
669 VTABLE_ADD_FUNC(basic_streambuf_char_vector_dtor)
670 VTABLE_ADD_FUNC(basic_streambuf_char_overflow)
671 VTABLE_ADD_FUNC(basic_streambuf_char_pbackfail)
672 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
673 VTABLE_ADD_FUNC(basic_streambuf_char_underflow)
674 VTABLE_ADD_FUNC(basic_streambuf_char_uflow)
675 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
676 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
677 VTABLE_ADD_FUNC(basic_streambuf_char_seekoff)
678 VTABLE_ADD_FUNC(basic_streambuf_char_seekpos)
679 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf)
680 VTABLE_ADD_FUNC(basic_streambuf_char_sync)
681 VTABLE_ADD_FUNC(basic_streambuf_char_imbue));
682 __ASM_VTABLE(basic_streambuf_wchar,
683 VTABLE_ADD_FUNC(basic_streambuf_wchar_vector_dtor)
684 VTABLE_ADD_FUNC(basic_streambuf_wchar_overflow)
685 VTABLE_ADD_FUNC(basic_streambuf_wchar_pbackfail)
686 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
687 VTABLE_ADD_FUNC(basic_streambuf_wchar_underflow)
688 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
689 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
690 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
691 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff)
692 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos)
693 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
694 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
695 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
696 __ASM_VTABLE(basic_streambuf_short,
697 VTABLE_ADD_FUNC(basic_streambuf_wchar_vector_dtor)
698 VTABLE_ADD_FUNC(basic_streambuf_wchar_overflow)
699 VTABLE_ADD_FUNC(basic_streambuf_wchar_pbackfail)
700 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
701 VTABLE_ADD_FUNC(basic_streambuf_wchar_underflow)
702 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
703 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
704 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
705 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff)
706 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos)
707 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
708 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
709 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
710 __ASM_VTABLE(basic_filebuf_char,
711 VTABLE_ADD_FUNC(basic_filebuf_char_vector_dtor)
712 VTABLE_ADD_FUNC(basic_filebuf_char_overflow)
713 VTABLE_ADD_FUNC(basic_filebuf_char_pbackfail)
714 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
715 VTABLE_ADD_FUNC(basic_filebuf_char_underflow)
716 VTABLE_ADD_FUNC(basic_filebuf_char_uflow)
717 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
718 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
719 VTABLE_ADD_FUNC(basic_filebuf_char_seekoff)
720 VTABLE_ADD_FUNC(basic_filebuf_char_seekpos)
721 VTABLE_ADD_FUNC(basic_filebuf_char_setbuf)
722 VTABLE_ADD_FUNC(basic_filebuf_char_sync)
723 VTABLE_ADD_FUNC(basic_streambuf_char_imbue));
724 __ASM_VTABLE(basic_filebuf_wchar,
725 VTABLE_ADD_FUNC(basic_filebuf_wchar_vector_dtor)
726 VTABLE_ADD_FUNC(basic_filebuf_wchar_overflow)
727 VTABLE_ADD_FUNC(basic_filebuf_wchar_pbackfail)
728 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
729 VTABLE_ADD_FUNC(basic_filebuf_wchar_underflow)
730 VTABLE_ADD_FUNC(basic_filebuf_wchar_uflow)
731 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
732 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
733 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekoff)
734 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekpos)
735 VTABLE_ADD_FUNC(basic_filebuf_wchar_setbuf)
736 VTABLE_ADD_FUNC(basic_filebuf_wchar_sync)
737 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
738 __ASM_VTABLE(basic_filebuf_short,
739 VTABLE_ADD_FUNC(basic_filebuf_wchar_vector_dtor)
740 VTABLE_ADD_FUNC(basic_filebuf_wchar_overflow)
741 VTABLE_ADD_FUNC(basic_filebuf_wchar_pbackfail)
742 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
743 VTABLE_ADD_FUNC(basic_filebuf_wchar_underflow)
744 VTABLE_ADD_FUNC(basic_filebuf_wchar_uflow)
745 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
746 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
747 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekoff)
748 VTABLE_ADD_FUNC(basic_filebuf_wchar_seekpos)
749 VTABLE_ADD_FUNC(basic_filebuf_short_setbuf)
750 VTABLE_ADD_FUNC(basic_filebuf_wchar_sync)
751 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
752 __ASM_VTABLE(basic_stringbuf_char,
753 VTABLE_ADD_FUNC(basic_stringbuf_char_vector_dtor)
754 VTABLE_ADD_FUNC(basic_stringbuf_char_overflow)
755 VTABLE_ADD_FUNC(basic_stringbuf_char_pbackfail)
756 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
757 VTABLE_ADD_FUNC(basic_stringbuf_char_underflow)
758 VTABLE_ADD_FUNC(basic_streambuf_char_uflow)
759 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
760 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
761 VTABLE_ADD_FUNC(basic_stringbuf_char_seekoff)
762 VTABLE_ADD_FUNC(basic_stringbuf_char_seekpos)
763 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf)
764 VTABLE_ADD_FUNC(basic_streambuf_char_sync)
765 VTABLE_ADD_FUNC(basic_streambuf_char_imbue));
766 __ASM_VTABLE(basic_stringbuf_wchar,
767 VTABLE_ADD_FUNC(basic_stringbuf_wchar_vector_dtor)
768 VTABLE_ADD_FUNC(basic_stringbuf_wchar_overflow)
769 VTABLE_ADD_FUNC(basic_stringbuf_wchar_pbackfail)
770 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
771 VTABLE_ADD_FUNC(basic_stringbuf_wchar_underflow)
772 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
773 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
774 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
775 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekoff)
776 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekpos)
777 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
778 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
779 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
780 __ASM_VTABLE(basic_stringbuf_short,
781 VTABLE_ADD_FUNC(basic_stringbuf_wchar_vector_dtor)
782 VTABLE_ADD_FUNC(basic_stringbuf_wchar_overflow)
783 VTABLE_ADD_FUNC(basic_stringbuf_wchar_pbackfail)
784 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
785 VTABLE_ADD_FUNC(basic_stringbuf_wchar_underflow)
786 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
787 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
788 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
789 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekoff)
790 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekpos)
791 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
792 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
793 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
794 __ASM_VTABLE(basic_ostream_char,
795 VTABLE_ADD_FUNC(basic_ostream_char_vector_dtor));
796 __ASM_VTABLE(basic_ostream_wchar,
797 VTABLE_ADD_FUNC(basic_ostream_wchar_vector_dtor));
798 __ASM_VTABLE(basic_ostream_short,
799 VTABLE_ADD_FUNC(basic_ostream_wchar_vector_dtor));
800 __ASM_VTABLE(basic_istream_char,
801 VTABLE_ADD_FUNC(basic_istream_char_vector_dtor));
802 __ASM_VTABLE(basic_istream_wchar,
803 VTABLE_ADD_FUNC(basic_istream_wchar_vector_dtor));
804 __ASM_VTABLE(basic_istream_short,
805 VTABLE_ADD_FUNC(basic_istream_wchar_vector_dtor));
806 __ASM_VTABLE(basic_iostream_char,
807 VTABLE_ADD_FUNC(basic_iostream_char_vector_dtor));
808 __ASM_VTABLE(basic_iostream_wchar,
809 VTABLE_ADD_FUNC(basic_iostream_wchar_vector_dtor));
810 __ASM_VTABLE(basic_iostream_short,
811 VTABLE_ADD_FUNC(basic_iostream_wchar_vector_dtor));
812 __ASM_VTABLE(basic_ofstream_char,
813 VTABLE_ADD_FUNC(basic_ofstream_char_vector_dtor));
814 __ASM_VTABLE(basic_ofstream_wchar,
815 VTABLE_ADD_FUNC(basic_ofstream_wchar_vector_dtor));
816 __ASM_VTABLE(basic_ofstream_short,
817 VTABLE_ADD_FUNC(basic_ofstream_wchar_vector_dtor));
818 __ASM_VTABLE(basic_ifstream_char,
819 VTABLE_ADD_FUNC(basic_ifstream_char_vector_dtor));
820 __ASM_VTABLE(basic_ifstream_wchar,
821 VTABLE_ADD_FUNC(basic_ifstream_wchar_vector_dtor));
822 __ASM_VTABLE(basic_ifstream_short,
823 VTABLE_ADD_FUNC(basic_ifstream_wchar_vector_dtor));
824 __ASM_VTABLE(basic_fstream_char,
825 VTABLE_ADD_FUNC(basic_fstream_char_vector_dtor));
826 __ASM_VTABLE(basic_fstream_wchar,
827 VTABLE_ADD_FUNC(basic_fstream_wchar_vector_dtor));
828 __ASM_VTABLE(basic_fstream_short,
829 VTABLE_ADD_FUNC(basic_fstream_wchar_vector_dtor));
830 __ASM_VTABLE(basic_ostringstream_char,
831 VTABLE_ADD_FUNC(basic_ostringstream_char_vector_dtor));
832 __ASM_VTABLE(basic_ostringstream_wchar,
833 VTABLE_ADD_FUNC(basic_ostringstream_wchar_vector_dtor));
834 __ASM_VTABLE(basic_ostringstream_short,
835 VTABLE_ADD_FUNC(basic_ostringstream_wchar_vector_dtor));
836 __ASM_VTABLE(basic_istringstream_char,
837 VTABLE_ADD_FUNC(basic_istringstream_char_vector_dtor));
838 __ASM_VTABLE(basic_istringstream_wchar,
839 VTABLE_ADD_FUNC(basic_istringstream_wchar_vector_dtor));
840 __ASM_VTABLE(basic_istringstream_short,
841 VTABLE_ADD_FUNC(basic_istringstream_wchar_vector_dtor));
842 __ASM_VTABLE(basic_stringstream_char,
843 VTABLE_ADD_FUNC(basic_stringstream_char_vector_dtor));
844 __ASM_VTABLE(basic_stringstream_short,
845 VTABLE_ADD_FUNC(basic_stringstream_short_vector_dtor));
846 __ASM_VTABLE(strstreambuf,
847 VTABLE_ADD_FUNC(strstreambuf_vector_dtor)
848 VTABLE_ADD_FUNC(strstreambuf_overflow)
849 VTABLE_ADD_FUNC(strstreambuf_pbackfail)
850 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
851 VTABLE_ADD_FUNC(strstreambuf_underflow)
852 VTABLE_ADD_FUNC(basic_streambuf_char_uflow)
853 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
854 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
855 VTABLE_ADD_FUNC(strstreambuf_seekoff)
856 VTABLE_ADD_FUNC(strstreambuf_seekpos)
857 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf)
858 VTABLE_ADD_FUNC(basic_streambuf_char_sync)
859 VTABLE_ADD_FUNC(basic_streambuf_char_imbue));
860 __ASM_VTABLE(ostrstream,
861 VTABLE_ADD_FUNC(ostrstream_vector_dtor));
862 __ASM_VTABLE(strstream,
863 VTABLE_ADD_FUNC(strstream_vector_dtor));
864 __ASM_BLOCK_END
866 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
867 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
868 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp_next, 16)
869 void __thiscall basic_streambuf_char_setp_next(basic_streambuf_char *this, char *first, char *next, char *last)
871 TRACE("(%p %p %p %p)\n", this, first, next, last);
873 this->wbuf = first;
874 this->wpos = next;
875 this->wsize = last-next;
878 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z */
879 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z */
880 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp, 12)
881 void __thiscall basic_streambuf_char_setp(basic_streambuf_char *this, char *first, char *last)
883 basic_streambuf_char_setp_next(this, first, first, last);
886 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
887 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
888 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setg, 16)
889 void __thiscall basic_streambuf_char_setg(basic_streambuf_char *this, char *first, char *next, char *last)
891 TRACE("(%p %p %p %p)\n", this, first, next, last);
893 this->rbuf = first;
894 this->rpos = next;
895 this->rsize = last-next;
898 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ */
899 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ */
900 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init_empty, 4)
901 void __thiscall basic_streambuf_char__Init_empty(basic_streambuf_char *this)
903 TRACE("(%p)\n", this);
905 this->prbuf = &this->rbuf;
906 this->pwbuf = &this->wbuf;
907 this->prpos = &this->rpos;
908 this->pwpos = &this->wpos;
909 this->prsize = &this->rsize;
910 this->pwsize = &this->wsize;
912 basic_streambuf_char_setp(this, NULL, NULL);
913 basic_streambuf_char_setg(this, NULL, NULL, NULL);
916 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@W4_Uninitialized@1@@Z */
917 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
918 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor_uninitialized, 8)
919 basic_streambuf_char* __thiscall basic_streambuf_char_ctor_uninitialized(basic_streambuf_char *this, int uninitialized)
921 TRACE("(%p %d)\n", this, uninitialized);
922 this->vtable = &basic_streambuf_char_vtable;
923 return this;
926 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ */
927 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ */
928 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor, 4)
929 basic_streambuf_char* __thiscall basic_streambuf_char_ctor(basic_streambuf_char *this)
931 TRACE("(%p)\n", this);
933 this->vtable = &basic_streambuf_char_vtable;
934 locale_ctor(IOS_LOCALE(this));
935 basic_streambuf_char__Init_empty(this);
937 return this;
940 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
941 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
942 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_dtor, 4)
943 void __thiscall basic_streambuf_char_dtor(basic_streambuf_char *this)
945 TRACE("(%p)\n", this);
946 locale_dtor(IOS_LOCALE(this));
949 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_vector_dtor, 8)
950 basic_streambuf_char* __thiscall basic_streambuf_char_vector_dtor(basic_streambuf_char *this, unsigned int flags)
952 TRACE("(%p %x)\n", this, flags);
953 if(flags & 2) {
954 /* we have an array, with the number of elements stored before the first object */
955 INT_PTR i, *ptr = (INT_PTR *)this-1;
957 for(i=*ptr-1; i>=0; i--)
958 basic_streambuf_char_dtor(this+i);
959 operator_delete(ptr);
960 } else {
961 basic_streambuf_char_dtor(this);
962 if(flags & 1)
963 operator_delete(this);
966 return this;
969 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
970 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
971 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gnavail, 4)
972 streamsize __thiscall basic_streambuf_char__Gnavail(const basic_streambuf_char *this)
974 TRACE("(%p)\n", this);
975 return *this->prpos ? *this->prsize : 0;
978 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
979 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
980 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gndec, 4)
981 char* __thiscall basic_streambuf_char__Gndec(basic_streambuf_char *this)
983 TRACE("(%p)\n", this);
984 (*this->prsize)++;
985 (*this->prpos)--;
986 return *this->prpos;
989 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
990 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
991 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gninc, 4)
992 char* __thiscall basic_streambuf_char__Gninc(basic_streambuf_char *this)
994 TRACE("(%p)\n", this);
995 (*this->prsize)--;
996 return (*this->prpos)++;
999 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
1000 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
1001 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gnpreinc, 4)
1002 char* __thiscall basic_streambuf_char__Gnpreinc(basic_streambuf_char *this)
1004 TRACE("(%p)\n", this);
1005 (*this->prsize)--;
1006 (*this->prpos)++;
1007 return *this->prpos;
1010 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z */
1011 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAPEAD0PEAH001@Z */
1012 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init, 28)
1013 void __thiscall basic_streambuf_char__Init(basic_streambuf_char *this, char **gf, char **gn, int *gc, char **pf, char **pn, int *pc)
1015 TRACE("(%p %p %p %p %p %p %p)\n", this, gf, gn, gc, pf, pn, pc);
1017 this->prbuf = gf;
1018 this->pwbuf = pf;
1019 this->prpos = gn;
1020 this->pwpos = pn;
1021 this->prsize = gc;
1022 this->pwsize = pc;
1025 /* ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1026 /* ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1027 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Lock, 4)
1028 #define call_basic_streambuf_char__Lock(this) basic_streambuf_char__Lock(this)
1029 void __thiscall basic_streambuf_char__Lock(basic_streambuf_char *this)
1031 TRACE("(%p)\n", this);
1034 /* ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
1035 /* ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
1036 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Pnavail, 4)
1037 streamsize __thiscall basic_streambuf_char__Pnavail(const basic_streambuf_char *this)
1039 TRACE("(%p)\n", this);
1040 return *this->pwpos ? *this->pwsize : 0;
1043 /* ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
1044 /* ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
1045 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Pninc, 4)
1046 char* __thiscall basic_streambuf_char__Pninc(basic_streambuf_char *this)
1048 TRACE("(%p)\n", this);
1049 (*this->pwsize)--;
1050 return (*this->pwpos)++;
1053 /* ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1054 /* ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1055 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_underflow, 4)
1056 #define call_basic_streambuf_char_underflow(this) CALL_VTBL_FUNC(this, 16, int, (basic_streambuf_char*), (this))
1057 int __thiscall basic_streambuf_char_underflow(basic_streambuf_char *this)
1059 TRACE("(%p)\n", this);
1060 return EOF;
1063 /* ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1064 /* ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1065 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_uflow, 4)
1066 #define call_basic_streambuf_char_uflow(this) CALL_VTBL_FUNC(this, 20, int, (basic_streambuf_char*), (this))
1067 int __thiscall basic_streambuf_char_uflow(basic_streambuf_char *this)
1069 int ret;
1071 TRACE("(%p)\n", this);
1073 if(call_basic_streambuf_char_underflow(this)==EOF)
1074 return EOF;
1076 ret = (unsigned char)**this->prpos;
1077 (*this->prsize)--;
1078 (*this->prpos)++;
1079 return ret;
1082 /* ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADIH@Z */
1083 /* ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_K_J@Z */
1084 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Xsgetn_s, 16)
1085 #define call_basic_streambuf_char__Xsgetn_s(this, ptr, size, count) basic_streambuf_char__Xsgetn_s(this, ptr, size, count)
1086 streamsize __thiscall basic_streambuf_char__Xsgetn_s(basic_streambuf_char *this, char *ptr, size_t size, streamsize count)
1088 streamsize copied, chunk;
1089 int c;
1091 TRACE("(%p %p %Iu %Id)\n", this, ptr, size, count);
1093 for(copied=0; copied<count && size;) {
1094 chunk = basic_streambuf_char__Gnavail(this);
1095 if(chunk > count-copied)
1096 chunk = count-copied;
1098 if(chunk > 0) {
1099 memcpy_s(ptr+copied, size, *this->prpos, chunk);
1100 *this->prpos += chunk;
1101 *this->prsize -= chunk;
1102 copied += chunk;
1103 size -= chunk;
1104 }else if((c = call_basic_streambuf_char_uflow(this)) != EOF) {
1105 ptr[copied] = c;
1106 copied++;
1107 size--;
1108 }else {
1109 break;
1113 return copied;
1116 /* ?_Sgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADIH@Z */
1117 /* ?_Sgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_K_J@Z */
1118 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Sgetn_s, 16)
1119 streamsize __thiscall basic_streambuf_char__Sgetn_s(basic_streambuf_char *this, char *ptr, size_t size, streamsize count)
1121 TRACE("(%p %p %Iu %Id)\n", this, ptr, size, count);
1122 return call_basic_streambuf_char__Xsgetn_s(this, ptr, size, count);
1125 /* ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1126 /* ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1127 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Unlock, 4)
1128 #define call_basic_streambuf_char__Unlock(this) basic_streambuf_char__Unlock(this)
1129 void __thiscall basic_streambuf_char__Unlock(basic_streambuf_char *this)
1131 TRACE("(%p)\n", this);
1134 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1135 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1136 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_eback, 4)
1137 char* __thiscall basic_streambuf_char_eback(const basic_streambuf_char *this)
1139 TRACE("(%p)\n", this);
1140 return *this->prbuf;
1143 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1144 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1145 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gptr, 4)
1146 char* __thiscall basic_streambuf_char_gptr(const basic_streambuf_char *this)
1148 TRACE("(%p)\n", this);
1149 return *this->prpos;
1152 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1153 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1154 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_egptr, 4)
1155 char* __thiscall basic_streambuf_char_egptr(const basic_streambuf_char *this)
1157 TRACE("(%p)\n", this);
1158 return *this->prpos+*this->prsize;
1161 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1162 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1163 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_epptr, 4)
1164 char* __thiscall basic_streambuf_char_epptr(const basic_streambuf_char *this)
1166 TRACE("(%p)\n", this);
1167 return *this->pwpos+*this->pwsize;
1170 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
1171 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
1172 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gbump, 8)
1173 void __thiscall basic_streambuf_char_gbump(basic_streambuf_char *this, int off)
1175 TRACE("(%p %d)\n", this, off);
1176 *this->prpos += off;
1177 *this->prsize -= off;
1180 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@XZ */
1181 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ */
1182 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@XZ */
1183 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?AVlocale@2@XZ */
1184 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_getloc, 8)
1185 locale* __thiscall basic_streambuf_char_getloc(const basic_streambuf_char *this, locale *ret)
1187 TRACE("(%p)\n", this);
1188 return locale_copy_ctor(ret, IOS_LOCALE(this));
1191 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z */
1192 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z */
1193 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_imbue, 8)
1194 #define call_basic_streambuf_char_imbue(this, loc) CALL_VTBL_FUNC(this, 48, void, (basic_streambuf_char*, const locale*), (this, loc))
1195 void __thiscall basic_streambuf_char_imbue(basic_streambuf_char *this, const locale *loc)
1197 TRACE("(%p %p)\n", this, loc);
1200 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
1201 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
1202 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_overflow, 8)
1203 #define call_basic_streambuf_char_overflow(this, ch) CALL_VTBL_FUNC(this, 4, int, (basic_streambuf_char*, int), (this, ch))
1204 int __thiscall basic_streambuf_char_overflow(basic_streambuf_char *this, int ch)
1206 TRACE("(%p %d)\n", this, ch);
1207 return EOF;
1210 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
1211 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
1212 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbackfail, 8)
1213 #define call_basic_streambuf_char_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, int, (basic_streambuf_char*, int), (this, ch))
1214 int __thiscall basic_streambuf_char_pbackfail(basic_streambuf_char *this, int ch)
1216 TRACE("(%p %d)\n", this, ch);
1217 return EOF;
1220 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1221 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1222 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbase, 4)
1223 char* __thiscall basic_streambuf_char_pbase(const basic_streambuf_char *this)
1225 TRACE("(%p)\n", this);
1226 return *this->pwbuf;
1229 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
1230 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
1231 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbump, 8)
1232 void __thiscall basic_streambuf_char_pbump(basic_streambuf_char *this, int off)
1234 TRACE("(%p %d)\n", this, off);
1235 *this->pwpos += off;
1236 *this->pwsize -= off;
1239 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1240 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1241 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pptr, 4)
1242 char* __thiscall basic_streambuf_char_pptr(const basic_streambuf_char *this)
1244 TRACE("(%p)\n", this);
1245 return *this->pwpos;
1248 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
1249 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
1250 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubimbue, 12)
1251 locale* __thiscall basic_streambuf_char_pubimbue(basic_streambuf_char *this, locale *ret, const locale *loc)
1253 TRACE("(%p %p)\n", this, loc);
1254 memcpy(ret, IOS_LOCALE(this), sizeof(locale));
1255 call_basic_streambuf_char_imbue(this, loc);
1256 locale_copy_ctor(IOS_LOCALE(this), loc);
1257 return ret;
1260 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
1261 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
1262 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
1263 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
1264 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekoff, 20)
1265 #define call_basic_streambuf_char_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 32, fpos_int*, (basic_streambuf_char*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
1266 fpos_int* __thiscall basic_streambuf_char_seekoff(basic_streambuf_char *this,
1267 fpos_int *ret, streamoff off, int way, int mode)
1269 TRACE("(%p %Id %d %d)\n", this, off, way, mode);
1270 ret->off = -1;
1271 ret->pos = 0;
1272 ret->state = 0;
1273 return ret;
1276 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
1277 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
1278 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JFF@Z */
1279 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JFF@Z */
1280 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
1281 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
1282 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff, 20)
1283 fpos_int* __thiscall basic_streambuf_char_pubseekoff(basic_streambuf_char *this,
1284 fpos_int *ret, streamoff off, int way, int mode)
1286 TRACE("(%p %Id %d %d)\n", this, off, way, mode);
1287 return call_basic_streambuf_char_seekoff(this, ret, off, way, mode);
1290 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
1291 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
1292 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff_old, 20)
1293 fpos_int* __thiscall basic_streambuf_char_pubseekoff_old(basic_streambuf_char *this,
1294 fpos_int *ret, streamoff off, unsigned int way, unsigned int mode)
1296 TRACE("(%p %Id %d %d)\n", this, off, way, mode);
1297 return basic_streambuf_char_pubseekoff(this, ret, off, way, mode);
1300 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
1301 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
1302 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekpos, 36)
1303 #define call_basic_streambuf_char_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 36, fpos_int*, (basic_streambuf_char*, fpos_int*, fpos_int, int), (this, ret, pos, mode))
1304 fpos_int* __thiscall basic_streambuf_char_seekpos(basic_streambuf_char *this,
1305 fpos_int *ret, fpos_int pos, int mode)
1307 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
1308 ret->off = -1;
1309 ret->pos = 0;
1310 ret->state = 0;
1311 return ret;
1314 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
1315 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
1316 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos, 36)
1317 fpos_int* __thiscall basic_streambuf_char_pubseekpos(basic_streambuf_char *this,
1318 fpos_int *ret, fpos_int pos, int mode)
1320 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
1321 return call_basic_streambuf_char_seekpos(this, ret, pos, mode);
1324 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
1325 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
1326 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos_old, 36)
1327 fpos_int* __thiscall basic_streambuf_char_pubseekpos_old(basic_streambuf_char *this,
1328 fpos_int *ret, fpos_int pos, unsigned int mode)
1330 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
1331 return basic_streambuf_char_pubseekpos(this, ret, pos, mode);
1334 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z */
1335 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@PEAD_J@Z */
1336 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setbuf, 12)
1337 #define call_basic_streambuf_char_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 40, basic_streambuf_char*, (basic_streambuf_char*, char*, streamsize), (this, buf, count))
1338 basic_streambuf_char* __thiscall basic_streambuf_char_setbuf(basic_streambuf_char *this, char *buf, streamsize count)
1340 TRACE("(%p %p %Id)\n", this, buf, count);
1341 return this;
1344 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PADH@Z */
1345 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEAD_J@Z */
1346 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsetbuf, 12)
1347 basic_streambuf_char* __thiscall basic_streambuf_char_pubsetbuf(basic_streambuf_char *this, char *buf, streamsize count)
1349 TRACE("(%p %p %Id)\n", this, buf, count);
1350 return call_basic_streambuf_char_setbuf(this, buf, count);
1353 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1354 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1355 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sync, 4)
1356 #define call_basic_streambuf_char_sync(this) CALL_VTBL_FUNC(this, 44, int, (basic_streambuf_char*), (this))
1357 int __thiscall basic_streambuf_char_sync(basic_streambuf_char *this)
1359 TRACE("(%p)\n", this);
1360 return 0;
1363 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1364 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1365 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsync, 4)
1366 int __thiscall basic_streambuf_char_pubsync(basic_streambuf_char *this)
1368 TRACE("(%p)\n", this);
1369 return call_basic_streambuf_char_sync(this);
1372 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADH@Z */
1373 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z */
1374 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetn, 12)
1375 streamsize __thiscall basic_streambuf_char_sgetn(basic_streambuf_char *this, char *ptr, streamsize count)
1377 TRACE("(%p %p %Id)\n", this, ptr, count);
1378 return call_basic_streambuf_char__Xsgetn_s(this, ptr, -1, count);
1381 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1382 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ */
1383 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_showmanyc, 4)
1384 #define call_basic_streambuf_char_showmanyc(this) CALL_VTBL_FUNC(this, 12, streamsize, (basic_streambuf_char*), (this))
1385 streamsize __thiscall basic_streambuf_char_showmanyc(basic_streambuf_char *this)
1387 TRACE("(%p)\n", this);
1388 return 0;
1391 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1392 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JXZ */
1393 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_in_avail, 4)
1394 streamsize __thiscall basic_streambuf_char_in_avail(basic_streambuf_char *this)
1396 streamsize ret;
1398 TRACE("(%p)\n", this);
1400 ret = basic_streambuf_char__Gnavail(this);
1401 return ret ? ret : call_basic_streambuf_char_showmanyc(this);
1404 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
1405 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
1406 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputbackc, 8)
1407 int __thiscall basic_streambuf_char_sputbackc(basic_streambuf_char *this, char ch)
1409 TRACE("(%p %d)\n", this, ch);
1410 if(*this->prpos && *this->prpos>*this->prbuf && (*this->prpos)[-1]==ch) {
1411 (*this->prsize)++;
1412 (*this->prpos)--;
1413 return (unsigned char)ch;
1416 return call_basic_streambuf_char_pbackfail(this, (unsigned char)ch);
1419 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
1420 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
1421 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputc, 8)
1422 int __thiscall basic_streambuf_char_sputc(basic_streambuf_char *this, char ch)
1424 TRACE("(%p %d)\n", this, ch);
1425 return basic_streambuf_char__Pnavail(this) ?
1426 (unsigned char)(*basic_streambuf_char__Pninc(this) = ch) :
1427 call_basic_streambuf_char_overflow(this, (unsigned char)ch);
1430 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1431 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1432 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sungetc, 4)
1433 int __thiscall basic_streambuf_char_sungetc(basic_streambuf_char *this)
1435 TRACE("(%p)\n", this);
1436 if(*this->prpos && *this->prpos>*this->prbuf) {
1437 (*this->prsize)++;
1438 (*this->prpos)--;
1439 return (unsigned char)**this->prpos;
1442 return call_basic_streambuf_char_pbackfail(this, EOF);
1445 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1446 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1447 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_stossc, 4)
1448 void __thiscall basic_streambuf_char_stossc(basic_streambuf_char *this)
1450 TRACE("(%p)\n", this);
1451 if(basic_streambuf_char__Gnavail(this))
1452 basic_streambuf_char__Gninc(this);
1453 else
1454 call_basic_streambuf_char_uflow(this);
1457 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1458 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1459 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sbumpc, 4)
1460 int __thiscall basic_streambuf_char_sbumpc(basic_streambuf_char *this)
1462 TRACE("(%p)\n", this);
1463 return basic_streambuf_char__Gnavail(this) ?
1464 (int)(unsigned char)*basic_streambuf_char__Gninc(this) : call_basic_streambuf_char_uflow(this);
1467 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1468 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1469 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetc, 4)
1470 int __thiscall basic_streambuf_char_sgetc(basic_streambuf_char *this)
1472 TRACE("(%p)\n", this);
1473 return basic_streambuf_char__Gnavail(this) ?
1474 (int)(unsigned char)*basic_streambuf_char_gptr(this) : call_basic_streambuf_char_underflow(this);
1477 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1478 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1479 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_snextc, 4)
1480 int __thiscall basic_streambuf_char_snextc(basic_streambuf_char *this)
1482 TRACE("(%p)\n", this);
1484 if(basic_streambuf_char__Gnavail(this) > 1)
1485 return (unsigned char)*basic_streambuf_char__Gnpreinc(this);
1486 return basic_streambuf_char_sbumpc(this)==EOF ?
1487 EOF : basic_streambuf_char_sgetc(this);
1490 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z */
1491 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z */
1492 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsgetn, 12)
1493 #define call_basic_streambuf_char_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, streamsize, (basic_streambuf_char*, char*, streamsize), (this, ptr, count))
1494 streamsize __thiscall basic_streambuf_char_xsgetn(basic_streambuf_char *this, char *ptr, streamsize count)
1496 TRACE("(%p %p %Id)\n", this, ptr, count);
1497 return call_basic_streambuf_char__Xsgetn_s(this, ptr, -1, count);
1500 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z */
1501 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z */
1502 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsputn, 12)
1503 #define call_basic_streambuf_char_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 28, streamsize, (basic_streambuf_char*, const char*, streamsize), (this, ptr, count))
1504 streamsize __thiscall basic_streambuf_char_xsputn(basic_streambuf_char *this, const char *ptr, streamsize count)
1506 streamsize copied, chunk;
1508 TRACE("(%p %p %Id)\n", this, ptr, count);
1510 for(copied=0; copied<count;) {
1511 chunk = basic_streambuf_char__Pnavail(this);
1512 if(chunk > count-copied)
1513 chunk = count-copied;
1515 if(chunk > 0) {
1516 memcpy(*this->pwpos, ptr+copied, chunk);
1517 *this->pwpos += chunk;
1518 *this->pwsize -= chunk;
1519 copied += chunk;
1520 }else if(call_basic_streambuf_char_overflow(this, (unsigned char)ptr[copied]) != EOF) {
1521 copied++;
1522 }else {
1523 break;
1527 return copied;
1530 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z */
1531 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@Z */
1532 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputn, 12)
1533 streamsize __thiscall basic_streambuf_char_sputn(basic_streambuf_char *this, const char *ptr, streamsize count)
1535 TRACE("(%p %p %Id)\n", this, ptr, count);
1536 return call_basic_streambuf_char_xsputn(this, ptr, count);
1539 /* ?swap@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXAAV12@@Z */
1540 /* ?swap@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z */
1541 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_swap, 8)
1542 void __thiscall basic_streambuf_char_swap(basic_streambuf_char *this, basic_streambuf_char *r)
1544 basic_streambuf_char tmp;
1546 TRACE("(%p %p)\n", this, r);
1548 if(this == r)
1549 return;
1551 tmp = *this;
1552 *this = *r;
1553 this->vtable = tmp.vtable;
1554 tmp.vtable = r->vtable;
1555 *r = tmp;
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);
1567 this->wbuf = first;
1568 this->wpos = next;
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);
1591 this->rbuf = first;
1592 this->rpos = next;
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 = &basic_streambuf_wchar_vtable;
1623 return this;
1626 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@W4_Uninitialized@1@@Z */
1627 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
1628 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor_uninitialized, 8)
1629 basic_streambuf_wchar* __thiscall basic_streambuf_short_ctor_uninitialized(basic_streambuf_wchar *this, int uninitialized)
1631 TRACE("(%p %d)\n", this, uninitialized);
1632 basic_streambuf_wchar_ctor_uninitialized(this, uninitialized);
1633 this->vtable = &basic_streambuf_short_vtable;
1634 return this;
1637 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
1638 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
1639 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_ctor, 4)
1640 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_ctor(basic_streambuf_wchar *this)
1642 TRACE("(%p)\n", this);
1644 this->vtable = &basic_streambuf_wchar_vtable;
1645 locale_ctor(IOS_LOCALE(this));
1646 basic_streambuf_wchar__Init_empty(this);
1648 return this;
1651 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@XZ */
1652 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@XZ */
1653 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor, 4)
1654 basic_streambuf_wchar* __thiscall basic_streambuf_short_ctor(basic_streambuf_wchar *this)
1656 TRACE("(%p)\n", this);
1657 basic_streambuf_wchar_ctor(this);
1658 this->vtable = &basic_streambuf_short_vtable;
1659 return this;
1662 /* ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
1663 /* ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
1664 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UAE@XZ */
1665 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */
1666 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_dtor, 4)
1667 void __thiscall basic_streambuf_wchar_dtor(basic_streambuf_wchar *this)
1669 TRACE("(%p)\n", this);
1670 locale_dtor(IOS_LOCALE(this));
1673 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_vector_dtor, 8)
1674 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_vector_dtor(basic_streambuf_wchar *this, unsigned int flags)
1676 TRACE("(%p %x)\n", this, flags);
1677 if(flags & 2) {
1678 /* we have an array, with the number of elements stored before the first object */
1679 INT_PTR i, *ptr = (INT_PTR *)this-1;
1681 for(i=*ptr-1; i>=0; i--)
1682 basic_streambuf_wchar_dtor(this+i);
1683 operator_delete(ptr);
1684 } else {
1685 basic_streambuf_wchar_dtor(this);
1686 if(flags & 1)
1687 operator_delete(this);
1690 return this;
1693 /* ?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEHXZ */
1694 /* ?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ */
1695 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
1696 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
1697 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gnavail, 4)
1698 streamsize __thiscall basic_streambuf_wchar__Gnavail(const basic_streambuf_wchar *this)
1700 TRACE("(%p)\n", this);
1701 return *this->prpos ? *this->prsize : 0;
1704 /* ?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1705 /* ?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1706 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1707 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1708 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gndec, 4)
1709 wchar_t* __thiscall basic_streambuf_wchar__Gndec(basic_streambuf_wchar *this)
1711 TRACE("(%p)\n", this);
1712 (*this->prsize)++;
1713 (*this->prpos)--;
1714 return *this->prpos;
1717 /* ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1718 /* ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1719 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1720 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1721 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gninc, 4)
1722 wchar_t* __thiscall basic_streambuf_wchar__Gninc(basic_streambuf_wchar *this)
1724 TRACE("(%p)\n", this);
1725 (*this->prsize)--;
1726 return (*this->prpos)++;
1729 /* ?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1730 /* ?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1731 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1732 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1733 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gnpreinc, 4)
1734 wchar_t* __thiscall basic_streambuf_wchar__Gnpreinc(basic_streambuf_wchar *this)
1736 TRACE("(%p)\n", this);
1737 (*this->prsize)--;
1738 (*this->prpos)++;
1739 return *this->prpos;
1742 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPAPA_W0PAH001@Z */
1743 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAPEA_W0PEAH001@Z */
1744 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAPAG0PAH001@Z */
1745 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAPEAG0PEAH001@Z */
1746 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init, 28)
1747 void __thiscall basic_streambuf_wchar__Init(basic_streambuf_wchar *this, wchar_t **gf, wchar_t **gn, int *gc, wchar_t **pf, wchar_t **pn, int *pc)
1749 TRACE("(%p %p %p %p %p %p %p)\n", this, gf, gn, gc, pf, pn, pc);
1751 this->prbuf = gf;
1752 this->pwbuf = pf;
1753 this->prpos = gn;
1754 this->pwpos = pn;
1755 this->prsize = gc;
1756 this->pwsize = pc;
1759 /* ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1760 /* ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1761 /* ?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1762 /* ?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1763 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Lock, 4)
1764 void __thiscall basic_streambuf_wchar__Lock(basic_streambuf_wchar *this)
1766 TRACE("(%p)\n", this);
1769 /* ?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEHXZ */
1770 /* ?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ */
1771 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
1772 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
1773 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Pnavail, 4)
1774 streamsize __thiscall basic_streambuf_wchar__Pnavail(const basic_streambuf_wchar *this)
1776 TRACE("(%p)\n", this);
1777 return *this->pwpos ? *this->pwsize : 0;
1780 /* ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1781 /* ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1782 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1783 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1784 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Pninc, 4)
1785 wchar_t* __thiscall basic_streambuf_wchar__Pninc(basic_streambuf_wchar *this)
1787 TRACE("(%p)\n", this);
1788 (*this->pwsize)--;
1789 return (*this->pwpos)++;
1792 /* ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
1793 /* ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
1794 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
1795 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
1796 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_underflow, 4)
1797 #define call_basic_streambuf_wchar_underflow(this) CALL_VTBL_FUNC(this, 16, unsigned short, (basic_streambuf_wchar*), (this))
1798 unsigned short __thiscall basic_streambuf_wchar_underflow(basic_streambuf_wchar *this)
1800 TRACE("(%p)\n", this);
1801 return WEOF;
1804 /* ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
1805 /* ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
1806 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
1807 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
1808 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_uflow, 4)
1809 #define call_basic_streambuf_wchar_uflow(this) CALL_VTBL_FUNC(this, 20, unsigned short, (basic_streambuf_wchar*), (this))
1810 unsigned short __thiscall basic_streambuf_wchar_uflow(basic_streambuf_wchar *this)
1812 int ret;
1814 TRACE("(%p)\n", this);
1816 if(call_basic_streambuf_wchar_underflow(this)==WEOF)
1817 return WEOF;
1819 ret = **this->prpos;
1820 (*this->prsize)--;
1821 (*this->prpos)++;
1822 return ret;
1825 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WIH@Z */
1826 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_K_J@Z */
1827 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGIH@Z */
1828 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_K_J@Z */
1829 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Xsgetn_s, 16)
1830 #define call_basic_streambuf_wchar__Xsgetn_s(this, ptr, size, count) basic_streambuf_wchar__Xsgetn_s(this, ptr, size, count)
1831 streamsize __thiscall basic_streambuf_wchar__Xsgetn_s(basic_streambuf_wchar *this, wchar_t *ptr, size_t size, streamsize count)
1833 streamsize copied, chunk;
1834 unsigned short c;
1836 TRACE("(%p %p %Iu %Id)\n", this, ptr, size, count);
1838 for(copied=0; copied<count && size;) {
1839 chunk = basic_streambuf_wchar__Gnavail(this);
1840 if(chunk > count-copied)
1841 chunk = count-copied;
1843 if(chunk > 0) {
1844 memcpy_s(ptr+copied, size, *this->prpos, chunk*sizeof(wchar_t));
1845 *this->prpos += chunk;
1846 *this->prsize -= chunk;
1847 copied += chunk;
1848 size -= chunk*sizeof(wchar_t);
1849 }else if((c = call_basic_streambuf_wchar_uflow(this)) != WEOF) {
1850 ptr[copied] = c;
1851 copied++;
1852 size--;
1853 }else {
1854 break;
1858 return copied;
1861 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPA_WIH@Z */
1862 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_K_J@Z */
1863 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGIH@Z */
1864 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_K_J@Z */
1865 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Sgetn_s, 16)
1866 streamsize __thiscall basic_streambuf_wchar__Sgetn_s(basic_streambuf_wchar *this, wchar_t *ptr, size_t size, streamsize count)
1868 TRACE("(%p %p %Iu %Id)\n", this, ptr, size, count);
1869 return call_basic_streambuf_wchar__Xsgetn_s(this, ptr, size, count);
1872 /* ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1873 /* ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1874 /* ?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1875 /* ?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1876 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Unlock, 4)
1877 void __thiscall basic_streambuf_wchar__Unlock(basic_streambuf_wchar *this)
1879 TRACE("(%p)\n", this);
1882 /* ?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1883 /* ?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1884 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1885 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1886 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_eback, 4)
1887 wchar_t* __thiscall basic_streambuf_wchar_eback(const basic_streambuf_wchar *this)
1889 TRACE("(%p)\n", this);
1890 return *this->prbuf;
1893 /* ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1894 /* ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1895 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1896 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1897 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gptr, 4)
1898 wchar_t* __thiscall basic_streambuf_wchar_gptr(const basic_streambuf_wchar *this)
1900 TRACE("(%p)\n", this);
1901 return *this->prpos;
1904 /* ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1905 /* ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1906 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1907 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1908 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_egptr, 4)
1909 wchar_t* __thiscall basic_streambuf_wchar_egptr(const basic_streambuf_wchar *this)
1911 TRACE("(%p)\n", this);
1912 return *this->prpos+*this->prsize;
1915 /* ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1916 /* ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1917 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1918 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1919 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_epptr, 4)
1920 wchar_t* __thiscall basic_streambuf_wchar_epptr(const basic_streambuf_wchar *this)
1922 TRACE("(%p)\n", this);
1923 return *this->pwpos+*this->pwsize;
1926 /* ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z */
1927 /* ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z */
1928 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
1929 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
1930 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gbump, 8)
1931 void __thiscall basic_streambuf_wchar_gbump(basic_streambuf_wchar *this, int off)
1933 TRACE("(%p %d)\n", this, off);
1934 *this->prpos += off;
1935 *this->prsize -= off;
1938 /* ?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QBE?AVlocale@2@XZ */
1939 /* ?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEBA?AVlocale@2@XZ */
1940 /* ?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QBE?AVlocale@2@XZ */
1941 /* ?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEBA?AVlocale@2@XZ */
1942 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_getloc, 8)
1943 locale* __thiscall basic_streambuf_wchar_getloc(const basic_streambuf_wchar *this, locale *ret)
1945 TRACE("(%p)\n", this);
1946 return locale_copy_ctor(ret, IOS_LOCALE(this));
1949 /* ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z */
1950 /* ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z */
1951 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEXABVlocale@2@@Z */
1952 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z */
1953 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_imbue, 8)
1954 #define call_basic_streambuf_wchar_imbue(this, loc) CALL_VTBL_FUNC(this, 48, void, (basic_streambuf_wchar*, const locale*), (this, loc))
1955 void __thiscall basic_streambuf_wchar_imbue(basic_streambuf_wchar *this, const locale *loc)
1957 TRACE("(%p %p)\n", this, loc);
1960 /* ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
1961 /* ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
1962 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
1963 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
1964 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_overflow, 8)
1965 #define call_basic_streambuf_wchar_overflow(this, ch) CALL_VTBL_FUNC(this, 4, unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
1966 unsigned short __thiscall basic_streambuf_wchar_overflow(basic_streambuf_wchar *this, unsigned short ch)
1968 TRACE("(%p %d)\n", this, ch);
1969 return WEOF;
1972 /* ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
1973 /* ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
1974 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
1975 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
1976 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbackfail, 8)
1977 #define call_basic_streambuf_wchar_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
1978 unsigned short __thiscall basic_streambuf_wchar_pbackfail(basic_streambuf_wchar *this, unsigned short ch)
1980 TRACE("(%p %d)\n", this, ch);
1981 return WEOF;
1984 /* ?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1985 /* ?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1986 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1987 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1988 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbase, 4)
1989 wchar_t* __thiscall basic_streambuf_wchar_pbase(const basic_streambuf_wchar *this)
1991 TRACE("(%p)\n", this);
1992 return *this->pwbuf;
1995 /* ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z */
1996 /* ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z */
1997 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
1998 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
1999 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbump, 8)
2000 void __thiscall basic_streambuf_wchar_pbump(basic_streambuf_wchar *this, int off)
2002 TRACE("(%p %d)\n", this, off);
2003 *this->pwpos += off;
2004 *this->pwsize -= off;
2007 /* ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
2008 /* ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
2009 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
2010 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
2011 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pptr, 4)
2012 wchar_t* __thiscall basic_streambuf_wchar_pptr(const basic_streambuf_wchar *this)
2014 TRACE("(%p)\n", this);
2015 return *this->pwpos;
2018 /* ?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
2019 /* ?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
2020 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
2021 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
2022 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubimbue, 12)
2023 locale* __thiscall basic_streambuf_wchar_pubimbue(basic_streambuf_wchar *this, locale *ret, const locale *loc)
2025 TRACE("(%p %p)\n", this, loc);
2026 memcpy(ret, IOS_LOCALE(this), sizeof(locale));
2027 call_basic_streambuf_wchar_imbue(this, loc);
2028 locale_copy_ctor(IOS_LOCALE(this), loc);
2029 return ret;
2032 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
2033 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
2034 /* ?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
2035 /* ?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
2036 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
2037 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
2038 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekoff, 20)
2039 #define call_basic_streambuf_wchar_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 32, fpos_int*, (basic_streambuf_wchar*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
2040 fpos_int* __thiscall basic_streambuf_wchar_seekoff(basic_streambuf_wchar *this,
2041 fpos_int *ret, streamoff off, int way, int mode)
2043 TRACE("(%p %Id %d %d)\n", this, off, way, mode);
2044 ret->off = -1;
2045 ret->pos = 0;
2046 ret->state = 0;
2047 return ret;
2050 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
2051 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
2052 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
2053 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
2054 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JFF@Z */
2055 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JFF@Z */
2056 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
2057 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JW4seekdir@ioos_base@2@H@Z */
2058 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff, 20)
2059 fpos_int* __thiscall basic_streambuf_wchar_pubseekoff(basic_streambuf_wchar *this,
2060 fpos_int *ret, streamoff off, int way, int mode)
2062 TRACE("(%p %Id %d %d)\n", this, off, way, mode);
2063 return call_basic_streambuf_wchar_seekoff(this, ret, off, way, mode);
2066 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
2067 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
2068 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
2069 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
2070 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff_old, 20)
2071 fpos_int* __thiscall basic_streambuf_wchar_pubseekoff_old(basic_streambuf_wchar *this,
2072 fpos_int *ret, streamoff off, unsigned int way, unsigned int mode)
2074 TRACE("(%p %Id %d %d)\n", this, off, way, mode);
2075 return basic_streambuf_wchar_pubseekoff(this, ret, off, way, mode);
2078 /* ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2079 /* ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2080 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2081 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2082 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekpos, 36)
2083 #define call_basic_streambuf_wchar_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 36, fpos_int*, (basic_streambuf_wchar*, fpos_int*, fpos_int, int), (this, ret, pos, mode))
2084 fpos_int* __thiscall basic_streambuf_wchar_seekpos(basic_streambuf_wchar *this,
2085 fpos_int *ret, fpos_int pos, int mode)
2087 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
2088 ret->off = -1;
2089 ret->pos = 0;
2090 ret->state = 0;
2091 return ret;
2094 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
2095 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
2096 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
2097 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
2098 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekpos, 36)
2099 fpos_int* __thiscall basic_streambuf_wchar_pubseekpos(basic_streambuf_wchar *this,
2100 fpos_int *ret, fpos_int pos, int mode)
2102 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
2103 return call_basic_streambuf_wchar_seekpos(this, ret, pos, mode);
2106 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
2107 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
2108 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
2109 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
2110 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekpos_old, 36)
2111 fpos_int* __thiscall basic_streambuf_wchar_pubseekpos_old(basic_streambuf_wchar *this,
2112 fpos_int *ret, fpos_int pos, unsigned int mode)
2114 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
2115 return basic_streambuf_wchar_pubseekpos(this, ret, pos, mode);
2118 /* ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEPAV12@PA_WH@Z */
2119 /* ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV12@PEA_W_J@Z */
2120 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEPAV12@PAGH@Z */
2121 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAPEAV12@PEAG_J@Z */
2122 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setbuf, 12)
2123 #define call_basic_streambuf_wchar_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 40, basic_streambuf_wchar*, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, buf, count))
2124 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_setbuf(basic_streambuf_wchar *this, wchar_t *buf, streamsize count)
2126 TRACE("(%p %p %Id)\n", this, buf, count);
2127 return this;
2130 /* ?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PA_WH@Z */
2131 /* ?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEA_W_J@Z */
2132 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PAGH@Z */
2133 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEAG_J@Z */
2134 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsetbuf, 12)
2135 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_pubsetbuf(basic_streambuf_wchar *this, wchar_t *buf, streamsize count)
2137 TRACE("(%p %p %Id)\n", this, buf, count);
2138 return call_basic_streambuf_wchar_setbuf(this, buf, count);
2141 /* ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
2142 /* ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ */
2143 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
2144 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAHXZ */
2145 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sync, 4)
2146 #define call_basic_streambuf_wchar_sync(this) CALL_VTBL_FUNC(this, 44, int, (basic_streambuf_wchar*), (this))
2147 int __thiscall basic_streambuf_wchar_sync(basic_streambuf_wchar *this)
2149 TRACE("(%p)\n", this);
2150 return 0;
2153 /* ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
2154 /* ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAHXZ */
2155 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
2156 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHXZ */
2157 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsync, 4)
2158 int __thiscall basic_streambuf_wchar_pubsync(basic_streambuf_wchar *this)
2160 TRACE("(%p)\n", this);
2161 return call_basic_streambuf_wchar_sync(this);
2164 /* ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WH@Z */
2165 /* ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_J@Z */
2166 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGH@Z */
2167 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_J@Z */
2168 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsgetn, 12)
2169 #define call_basic_streambuf_wchar_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, streamsize, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, ptr, count))
2170 streamsize __thiscall basic_streambuf_wchar_xsgetn(basic_streambuf_wchar *this, wchar_t *ptr, streamsize count)
2172 TRACE("(%p %p %Id)\n", this, ptr, count);
2173 return call_basic_streambuf_wchar__Xsgetn_s(this, ptr, -1, count);
2176 /* ?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPA_WH@Z */
2177 /* ?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z */
2178 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGH@Z */
2179 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z */
2180 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetn, 12)
2181 streamsize __thiscall basic_streambuf_wchar_sgetn(basic_streambuf_wchar *this, wchar_t *ptr, streamsize count)
2183 TRACE("(%p %p %Id)\n", this, ptr, count);
2184 return call_basic_streambuf_wchar_xsgetn(this, ptr, count);
2187 /* ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
2188 /* ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JXZ */
2189 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
2190 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JXZ */
2191 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_showmanyc, 4)
2192 #define call_basic_streambuf_wchar_showmanyc(this) CALL_VTBL_FUNC(this, 12, streamsize, (basic_streambuf_wchar*), (this))
2193 streamsize __thiscall basic_streambuf_wchar_showmanyc(basic_streambuf_wchar *this)
2195 TRACE("(%p)\n", this);
2196 return 0;
2199 /* ?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
2200 /* ?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JXZ */
2201 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
2202 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JXZ */
2203 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_in_avail, 4)
2204 streamsize __thiscall basic_streambuf_wchar_in_avail(basic_streambuf_wchar *this)
2206 streamsize ret;
2208 TRACE("(%p)\n", this);
2210 ret = basic_streambuf_wchar__Gnavail(this);
2211 return ret ? ret : call_basic_streambuf_wchar_showmanyc(this);
2214 /* ?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z */
2215 /* ?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z */
2216 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
2217 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z */
2218 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputbackc, 8)
2219 unsigned short __thiscall basic_streambuf_wchar_sputbackc(basic_streambuf_wchar *this, wchar_t ch)
2221 TRACE("(%p %d)\n", this, ch);
2222 if(*this->prpos && *this->prpos>*this->prbuf && (*this->prpos)[-1]==ch) {
2223 (*this->prsize)++;
2224 (*this->prpos)--;
2225 return ch;
2228 return call_basic_streambuf_wchar_pbackfail(this, ch);
2231 /* ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z */
2232 /* ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z */
2233 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
2234 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHG@Z */
2235 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputc, 8)
2236 unsigned short __thiscall basic_streambuf_wchar_sputc(basic_streambuf_wchar *this, wchar_t ch)
2238 TRACE("(%p %d)\n", this, ch);
2239 return basic_streambuf_wchar__Pnavail(this) ?
2240 (*basic_streambuf_wchar__Pninc(this) = ch) :
2241 call_basic_streambuf_wchar_overflow(this, ch);
2244 /* ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2245 /* ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2246 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2247 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2248 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sungetc, 4)
2249 unsigned short __thiscall basic_streambuf_wchar_sungetc(basic_streambuf_wchar *this)
2251 TRACE("(%p)\n", this);
2252 if(*this->prpos && *this->prpos>*this->prbuf) {
2253 (*this->prsize)++;
2254 (*this->prpos)--;
2255 return **this->prpos;
2258 return call_basic_streambuf_wchar_pbackfail(this, WEOF);
2261 /* ?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
2262 /* ?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
2263 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
2264 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
2265 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_stossc, 4)
2266 void __thiscall basic_streambuf_wchar_stossc(basic_streambuf_wchar *this)
2268 TRACE("(%p)\n", this);
2269 if(basic_streambuf_wchar__Gnavail(this))
2270 basic_streambuf_wchar__Gninc(this);
2271 else
2272 call_basic_streambuf_wchar_uflow(this);
2275 /* ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2276 /* ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2277 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2278 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2279 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sbumpc, 4)
2280 unsigned short __thiscall basic_streambuf_wchar_sbumpc(basic_streambuf_wchar *this)
2282 TRACE("(%p)\n", this);
2283 return basic_streambuf_wchar__Gnavail(this) ?
2284 *basic_streambuf_wchar__Gninc(this) : call_basic_streambuf_wchar_uflow(this);
2287 /* ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2288 /* ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2289 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2290 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2291 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetc, 4)
2292 unsigned short __thiscall basic_streambuf_wchar_sgetc(basic_streambuf_wchar *this)
2294 TRACE("(%p)\n", this);
2295 return basic_streambuf_wchar__Gnavail(this) ?
2296 *basic_streambuf_wchar_gptr(this) : call_basic_streambuf_wchar_underflow(this);
2299 /* ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
2300 /* ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
2301 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
2302 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
2303 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_snextc, 4)
2304 unsigned short __thiscall basic_streambuf_wchar_snextc(basic_streambuf_wchar *this)
2306 TRACE("(%p)\n", this);
2308 if(basic_streambuf_wchar__Gnavail(this) > 1)
2309 return *basic_streambuf_wchar__Gnpreinc(this);
2310 return basic_streambuf_wchar_sbumpc(this)==WEOF ?
2311 WEOF : basic_streambuf_wchar_sgetc(this);
2314 /* ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPB_WH@Z */
2315 /* ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEB_W_J@Z */
2316 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPBGH@Z */
2317 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEBG_J@Z */
2318 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsputn, 12)
2319 #define call_basic_streambuf_wchar_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 28, streamsize, (basic_streambuf_wchar*, const wchar_t*, streamsize), (this, ptr, count))
2320 streamsize __thiscall basic_streambuf_wchar_xsputn(basic_streambuf_wchar *this, const wchar_t *ptr, streamsize count)
2322 streamsize copied, chunk;
2324 TRACE("(%p %p %Id)\n", this, ptr, count);
2326 for(copied=0; copied<count;) {
2327 chunk = basic_streambuf_wchar__Pnavail(this);
2328 if(chunk > count-copied)
2329 chunk = count-copied;
2331 if(chunk > 0) {
2332 memcpy(*this->pwpos, ptr+copied, chunk*sizeof(wchar_t));
2333 *this->pwpos += chunk;
2334 *this->pwsize -= chunk;
2335 copied += chunk;
2336 }else if(call_basic_streambuf_wchar_overflow(this, ptr[copied]) != WEOF) {
2337 copied++;
2338 }else {
2339 break;
2343 return copied;
2346 /* ?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPB_WH@Z */
2347 /* ?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEB_W_J@Z */
2348 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPBGH@Z */
2349 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEBG_J@Z */
2350 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputn, 12)
2351 streamsize __thiscall basic_streambuf_wchar_sputn(basic_streambuf_wchar *this, const wchar_t *ptr, streamsize count)
2353 TRACE("(%p %p %Id)\n", this, ptr, count);
2354 return call_basic_streambuf_wchar_xsputn(this, ptr, count);
2357 /* ?swap@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXAAV12@@Z */
2358 /* ?swap@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z */
2359 /* ?swap@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXAAV12@@Z */
2360 /* ?swap@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXAAV12@@Z */
2361 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_swap, 8)
2362 void __thiscall basic_streambuf_wchar_swap(basic_streambuf_wchar *this, basic_streambuf_wchar *r)
2364 basic_streambuf_wchar tmp;
2366 TRACE("(%p %p)\n", this, r);
2368 if(this == r)
2369 return;
2371 tmp = *this;
2372 *this = *r;
2373 this->vtable = tmp.vtable;
2374 tmp.vtable = r->vtable;
2375 *r = tmp;
2378 /* ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
2379 /* ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
2380 int basic_filebuf_char__Init__Stinit = 0;
2382 /* ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
2383 /* ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
2384 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Init, 12)
2385 void __thiscall basic_filebuf_char__Init(basic_filebuf_char *this, FILE *file, basic_filebuf__Initfl which)
2387 TRACE("(%p %p %d)\n", this, file, which);
2389 this->cvt = NULL;
2390 this->state0 = basic_filebuf_char__Init__Stinit;
2391 this->state = basic_filebuf_char__Init__Stinit;
2392 if(which == INITFL_new)
2393 this->str = NULL;
2394 this->close = (which == INITFL_open);
2395 this->file = file;
2397 basic_streambuf_char__Init_empty(&this->base);
2398 if(file)
2399 basic_streambuf_char__Init(&this->base, &file->_base, &file->_ptr,
2400 &file->_cnt, &file->_base, &file->_ptr, &file->_cnt);
2403 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAV?$codecvt@DDH@2@@Z */
2404 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$codecvt@DDH@2@@Z */
2405 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Initcvt_cvt, 8)
2406 void __thiscall basic_filebuf_char__Initcvt_cvt(basic_filebuf_char *this, codecvt_char *cvt)
2408 TRACE("(%p %p)\n", this, cvt);
2410 if(codecvt_base_always_noconv(&cvt->base)) {
2411 this->cvt = NULL;
2412 }else {
2413 this->str = operator_new(sizeof(basic_string_char));
2414 MSVCP_basic_string_char_ctor(this->str);
2415 this->cvt = cvt;
2419 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXXZ */
2420 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXXZ */
2421 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Initcvt, 4)
2422 void __thiscall basic_filebuf_char__Initcvt(basic_filebuf_char *this)
2424 codecvt_char *cvt = codecvt_char_use_facet(IOS_LOCALE(&this->base));
2426 TRACE("(%p)\n", this);
2428 locale__Addfac(&this->loc, &cvt->base.facet, codecvt_char_id.id, LC_CTYPE);
2429 basic_filebuf_char__Initcvt_cvt( this, cvt );
2432 /* ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ */
2433 /* ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ */
2434 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_close, 4)
2435 basic_filebuf_char* __thiscall basic_filebuf_char_close(basic_filebuf_char *this)
2437 basic_filebuf_char *ret = this;
2439 TRACE("(%p)\n", this);
2441 if(!this->file || fclose(this->file))
2442 return NULL;
2444 basic_filebuf_char__Init(this, NULL, INITFL_close);
2445 return ret;
2448 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
2449 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
2450 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor_file, 8)
2451 basic_filebuf_char* __thiscall basic_filebuf_char_ctor_file(basic_filebuf_char *this, FILE *file)
2453 TRACE("(%p %p)\n", this, file);
2455 basic_streambuf_char_ctor(&this->base);
2456 this->base.vtable = &basic_filebuf_char_vtable;
2458 locale_ctor(&this->loc);
2459 basic_filebuf_char__Init(this, file, INITFL_new);
2460 return this;
2463 /* ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
2464 /* ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
2465 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor, 4)
2466 basic_filebuf_char* __thiscall basic_filebuf_char_ctor(basic_filebuf_char *this)
2468 return basic_filebuf_char_ctor_file(this, NULL);
2471 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
2472 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
2473 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor_uninitialized, 8)
2474 basic_filebuf_char* __thiscall basic_filebuf_char_ctor_uninitialized(basic_filebuf_char *this, int uninitialized)
2476 TRACE("(%p %d)\n", this, uninitialized);
2478 basic_streambuf_char_ctor_uninitialized(&this->base, 0);
2479 this->base.vtable = &basic_filebuf_char_vtable;
2480 locale_ctor(&this->loc);
2481 return this;
2484 /* ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
2485 /* ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
2486 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_dtor, 4)
2487 void __thiscall basic_filebuf_char_dtor(basic_filebuf_char *this)
2489 TRACE("(%p)\n", this);
2491 if(this->close)
2492 basic_filebuf_char_close(this);
2493 if(this->str) {
2494 MSVCP_basic_string_char_dtor(this->str);
2495 operator_delete(this->str);
2497 locale_dtor(&this->loc);
2498 basic_streambuf_char_dtor(&this->base);
2501 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_vector_dtor, 8)
2502 basic_filebuf_char* __thiscall basic_filebuf_char_vector_dtor(basic_filebuf_char *this, unsigned int flags)
2504 TRACE("(%p %x)\n", this, flags);
2505 if(flags & 2) {
2506 /* we have an array, with the number of elements stored before the first object */
2507 INT_PTR i, *ptr = (INT_PTR *)this-1;
2509 for(i=*ptr-1; i>=0; i--)
2510 basic_filebuf_char_dtor(this+i);
2511 operator_delete(ptr);
2512 } else {
2513 basic_filebuf_char_dtor(this);
2514 if(flags & 1)
2515 operator_delete(this);
2518 return this;
2521 /* ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QBE_NXZ */
2522 /* ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
2523 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_is_open, 4)
2524 bool __thiscall basic_filebuf_char_is_open(const basic_filebuf_char *this)
2526 TRACE("(%p)\n", this);
2527 return this->file != NULL;
2530 /* ?_Fiopen@std@@YAPAU_iobuf@@PB_WHH@Z */
2531 /* ?_Fiopen@std@@YAPEAU_iobuf@@PEB_WHH@Z */
2532 FILE* __cdecl _Fiopen_wchar(const wchar_t *name, int mode, int prot)
2534 static const struct {
2535 int mode;
2536 const wchar_t str[4];
2537 const wchar_t str_bin[4];
2538 } str_mode[] = {
2539 {OPENMODE_out, L"w", L"wb"},
2540 {OPENMODE_out|OPENMODE_app, L"a", L"ab"},
2541 {OPENMODE_app, L"a", L"ab"},
2542 {OPENMODE_out|OPENMODE_trunc, L"w", L"wb"},
2543 {OPENMODE_in, L"r", L"rb"},
2544 {OPENMODE_in|OPENMODE_out, L"r+", L"r+b"},
2545 {OPENMODE_in|OPENMODE_out|OPENMODE_trunc, L"w+", L"w+b"},
2546 {OPENMODE_in|OPENMODE_out|OPENMODE_app, L"a+", L"a+b"},
2547 {OPENMODE_in|OPENMODE_app, L"a+", L"a+b"}
2550 int real_mode = mode & ~(OPENMODE_ate|OPENMODE__Nocreate|OPENMODE__Noreplace|OPENMODE_binary);
2551 size_t mode_idx;
2552 FILE *f = NULL;
2554 TRACE("(%s %d %d)\n", debugstr_w(name), mode, prot);
2556 for(mode_idx=0; mode_idx<ARRAY_SIZE(str_mode); mode_idx++)
2557 if(str_mode[mode_idx].mode == real_mode)
2558 break;
2559 if(mode_idx == ARRAY_SIZE(str_mode))
2560 return NULL;
2562 if((mode & OPENMODE__Nocreate) && !(f = _wfopen(name, L"r")))
2563 return NULL;
2564 else if(f)
2565 fclose(f);
2567 if((mode & OPENMODE__Noreplace) && (mode & (OPENMODE_out|OPENMODE_app))
2568 && (f = _wfopen(name, L"r"))) {
2569 fclose(f);
2570 return NULL;
2573 f = _wfsopen(name, (mode & OPENMODE_binary) ? str_mode[mode_idx].str_bin
2574 : str_mode[mode_idx].str, prot);
2575 if(!f)
2576 return NULL;
2578 if((mode & OPENMODE_ate) && fseek(f, 0, SEEK_END)) {
2579 fclose(f);
2580 return NULL;
2583 return f;
2586 /* ?_Fiopen@std@@YAPAU_iobuf@@PBDHH@Z */
2587 /* ?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z */
2588 FILE* __cdecl _Fiopen(const char *name, int mode, int prot)
2590 wchar_t nameW[FILENAME_MAX];
2592 TRACE("(%s %d %d)\n", name, mode, prot);
2594 if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
2595 return NULL;
2596 return _Fiopen_wchar(nameW, mode, prot);
2599 /* ?__Fiopen@std@@YAPAU_iobuf@@PBDH@Z */
2600 /* ?__Fiopen@std@@YAPEAU_iobuf@@PEBDH@Z */
2601 FILE* __cdecl ___Fiopen(const char *name, int mode)
2603 TRACE("(%p %d)\n", name, mode);
2604 return _Fiopen(name, mode, _SH_DENYNO);
2607 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PB_WHH@Z */
2608 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
2609 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBGHH@Z */
2610 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBGHH@Z */
2611 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_wchar, 16)
2612 basic_filebuf_char* __thiscall basic_filebuf_char_open_wchar(basic_filebuf_char *this, const wchar_t *name, int mode, int prot)
2614 FILE *f = NULL;
2616 TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
2618 if(basic_filebuf_char_is_open(this))
2619 return NULL;
2621 if(!(f = _Fiopen_wchar(name, mode, prot)))
2622 return NULL;
2624 basic_filebuf_char__Init(this, f, INITFL_open);
2625 basic_filebuf_char__Initcvt_cvt(this, codecvt_char_use_facet(IOS_LOCALE(&this->base)));
2626 return this;
2629 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PB_WI@Z */
2630 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEB_WI@Z */
2631 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBGI@Z */
2632 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBGI@Z */
2633 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_wchar_mode, 12)
2634 basic_filebuf_char* __thiscall basic_filebuf_char_open_wchar_mode(basic_filebuf_char *this, const wchar_t *name, unsigned int mode)
2636 return basic_filebuf_char_open_wchar(this, name, mode, SH_DENYNO);
2639 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z */
2640 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z */
2641 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open, 16)
2642 basic_filebuf_char* __thiscall basic_filebuf_char_open(basic_filebuf_char *this, const char *name, int mode, int prot)
2644 wchar_t nameW[FILENAME_MAX];
2646 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
2648 if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
2649 return NULL;
2650 return basic_filebuf_char_open_wchar(this, nameW, mode, prot);
2653 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDF@Z */
2654 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDF@Z */
2655 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_mode_old, 12)
2656 basic_filebuf_char* __thiscall basic_filebuf_char_open_mode_old(basic_filebuf_char *this, const char *name, short mode)
2658 TRACE("(%p %p %d)\n", this, name, mode);
2659 return basic_filebuf_char_open(this, name, mode, SH_DENYNO);
2662 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDH@Z */
2663 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDH@Z */
2664 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDI@Z */
2665 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDI@Z */
2666 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_mode, 12)
2667 basic_filebuf_char* __thiscall basic_filebuf_char_open_mode(basic_filebuf_char *this, const char *name, unsigned int mode)
2669 return basic_filebuf_char_open(this, name, mode, SH_DENYNO);
2672 /* ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
2673 /* ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
2674 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_overflow, 8)
2675 int __thiscall basic_filebuf_char_overflow(basic_filebuf_char *this, int c)
2677 char *ptr, ch = c, *to_next;
2678 const char *from_next;
2679 int ret;
2682 TRACE("(%p %d)\n", this, c);
2684 if(!basic_filebuf_char_is_open(this))
2685 return EOF;
2686 if(c == EOF)
2687 return !c;
2689 if(!this->cvt)
2690 return fwrite(&ch, sizeof(char), 1, this->file) ? c : EOF;
2692 from_next = &ch;
2693 MSVCP_basic_string_char_clear(this->str);
2694 MSVCP_basic_string_char_append_len_ch(this->str, 8, '\0');
2695 ptr = this->str->ptr;
2696 ret = codecvt_char_out(this->cvt, &this->state, from_next, &ch+1, &from_next,
2697 ptr, ptr+MSVCP_basic_string_char_length(this->str), &to_next);
2699 switch(ret) {
2700 case CODECVT_partial:
2701 if(from_next == &ch)
2702 return EOF;
2703 case CODECVT_ok:
2704 if(!fwrite(ptr, to_next-ptr, 1, this->file))
2705 return EOF;
2706 return c;
2707 case CODECVT_noconv:
2708 return fwrite(&ch, sizeof(char), 1, this->file) ? c : EOF;
2709 default:
2710 return EOF;
2714 /* ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
2715 /* ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
2716 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_pbackfail, 8)
2717 int __thiscall basic_filebuf_char_pbackfail(basic_filebuf_char *this, int c)
2719 TRACE("(%p %d)\n", this, c);
2721 if(!basic_filebuf_char_is_open(this))
2722 return EOF;
2724 if(basic_streambuf_char_gptr(&this->base)>basic_streambuf_char_eback(&this->base)
2725 && (c==EOF || (int)(unsigned char)basic_streambuf_char_gptr(&this->base)[-1]==c)) {
2726 basic_streambuf_char__Gndec(&this->base);
2727 return c==EOF ? !c : c;
2728 }else if(c == EOF) {
2729 return EOF;
2730 }else if(!this->cvt) {
2731 return ungetc(c, this->file);
2732 }else if(MSVCP_basic_string_char_length(this->str)) {
2733 char *b, *e, *cur;
2735 e = this->str->ptr;
2736 b = e+this->str->size-1;
2737 for(cur = b; cur>=e; cur--) {
2738 if(ungetc(*cur, this->file) == EOF) {
2739 for(; cur<=b; cur++)
2740 fgetc(this->file);
2741 return EOF;
2744 MSVCP_basic_string_char_clear(this->str);
2745 this->state = this->state0;
2746 return c;
2749 return EOF;
2752 /* ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2753 /* ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2754 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_uflow, 4)
2755 int __thiscall basic_filebuf_char_uflow(basic_filebuf_char *this)
2757 char ch, *to_next;
2758 const char *buf_next;
2759 int c;
2761 TRACE("(%p)\n", this);
2763 if(!basic_filebuf_char_is_open(this))
2764 return EOF;
2766 if(basic_streambuf_char_gptr(&this->base) < basic_streambuf_char_egptr(&this->base))
2767 return (unsigned char)*basic_streambuf_char__Gninc(&this->base);
2769 c = fgetc(this->file);
2770 if(!this->cvt || c==EOF)
2771 return c;
2773 MSVCP_basic_string_char_clear(this->str);
2774 this->state0 = this->state;
2775 while(1) {
2776 MSVCP_basic_string_char_append_ch(this->str, c);
2777 this->state = this->state0;
2779 switch(codecvt_char_in(this->cvt, &this->state, this->str->ptr,
2780 this->str->ptr+this->str->size, &buf_next, &ch, &ch+1, &to_next)) {
2781 case CODECVT_partial:
2782 break;
2783 case CODECVT_noconv:
2784 return (unsigned char)this->str->ptr[0];
2785 case CODECVT_ok:
2786 return (unsigned char)ch;
2787 default:
2788 return EOF;
2791 c = fgetc(this->file);
2792 if(c == EOF)
2793 return EOF;
2797 /* ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2798 /* ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2799 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_underflow, 4)
2800 int __thiscall basic_filebuf_char_underflow(basic_filebuf_char *this)
2802 int ret;
2804 TRACE("(%p)\n", this);
2806 if(basic_streambuf_char_gptr(&this->base) < basic_streambuf_char_egptr(&this->base))
2807 return (unsigned char)*basic_streambuf_char_gptr(&this->base);
2809 ret = call_basic_streambuf_char_uflow(&this->base);
2810 if(ret != EOF)
2811 ret = call_basic_streambuf_char_pbackfail(&this->base, ret);
2812 return ret;
2815 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
2816 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
2817 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
2818 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
2819 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_seekoff, 20)
2820 fpos_int* __thiscall basic_filebuf_char_seekoff(basic_filebuf_char *this,
2821 fpos_int *ret, streamoff off, int way, int mode)
2823 fpos_t pos;
2825 TRACE("(%p %p %Id %d %d)\n", this, ret, off, way, mode);
2827 if(!basic_filebuf_char_is_open(this) || fseek(this->file, off, way)) {
2828 ret->off = -1;
2829 ret->pos = 0;
2830 ret->state = 0;
2831 return ret;
2834 fgetpos(this->file, &pos);
2835 ret->off = 0;
2836 ret->pos = pos;
2837 ret->state = this->state;
2838 return ret;
2841 /* ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2842 /* ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2843 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_seekpos, 36)
2844 fpos_int* __thiscall basic_filebuf_char_seekpos(basic_filebuf_char *this,
2845 fpos_int *ret, fpos_int pos, int mode)
2847 fpos_t fpos;
2849 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
2851 if(!basic_filebuf_char_is_open(this) || fseek(this->file, (LONG)pos.pos, SEEK_SET)
2852 || (pos.off && fseek(this->file, pos.off, SEEK_CUR))) {
2853 ret->off = -1;
2854 ret->pos = 0;
2855 ret->state = 0;
2856 return ret;
2859 fgetpos(this->file, &fpos);
2860 ret->off = 0;
2861 ret->pos = fpos;
2862 ret->state = this->state;
2863 return ret;
2866 /* ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PADH@Z */
2867 /* ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z */
2868 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_setbuf, 12)
2869 basic_streambuf_char* __thiscall basic_filebuf_char_setbuf(basic_filebuf_char *this, char *buf, streamsize count)
2871 TRACE("(%p %p %Id)\n", this, buf, count);
2873 if(!basic_filebuf_char_is_open(this))
2874 return NULL;
2876 if(setvbuf(this->file, buf, (buf==NULL && count==0) ? _IONBF : _IOFBF, count))
2877 return NULL;
2879 basic_filebuf_char__Init(this, this->file, INITFL_open);
2880 return &this->base;
2883 /* ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2884 /* ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2885 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_sync, 4)
2886 int __thiscall basic_filebuf_char_sync(basic_filebuf_char *this)
2888 TRACE("(%p)\n", this);
2890 if(!basic_filebuf_char_is_open(this))
2891 return 0;
2893 if(call_basic_streambuf_char_overflow(&this->base, EOF) == EOF)
2894 return 0;
2895 return fflush(this->file);
2898 /* ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z */
2899 /* ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z */
2900 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_imbue, 8)
2901 void __thiscall basic_filebuf_char_imbue(basic_filebuf_char *this, const locale *loc)
2903 TRACE("(%p %p)\n", this, loc);
2904 basic_filebuf_char__Initcvt_cvt(this, codecvt_char_use_facet(loc));
2907 /* ?_Stinit@?1??_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
2908 /* ?_Stinit@?1??_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
2909 int basic_filebuf_wchar__Init__Stinit = 0;
2911 /* ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
2912 /* ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
2913 int basic_filebuf_short__Init__Stinit = 0;
2915 /* ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
2916 /* ?_Init@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
2917 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Init, 12)
2918 void __thiscall basic_filebuf_wchar__Init(basic_filebuf_wchar *this, FILE *file, basic_filebuf__Initfl which)
2920 TRACE("(%p %p %d)\n", this, file, which);
2922 this->cvt = NULL;
2923 this->state0 = basic_filebuf_short__Init__Stinit;
2924 this->state = basic_filebuf_short__Init__Stinit;
2925 if(which == INITFL_new)
2926 this->str = NULL;
2927 this->close = (which == INITFL_open);
2928 this->file = file;
2930 basic_streambuf_wchar__Init_empty(&this->base);
2933 /* ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
2934 /* ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
2935 DEFINE_THISCALL_WRAPPER(basic_filebuf_short__Init, 12)
2936 void __thiscall basic_filebuf_short__Init(basic_filebuf_wchar *this, FILE *file, basic_filebuf__Initfl which)
2938 TRACE("(%p %p %d)\n", this, file, which);
2940 this->cvt = NULL;
2941 this->state0 = basic_filebuf_short__Init__Stinit;
2942 this->state = basic_filebuf_short__Init__Stinit;
2943 if(which == INITFL_new)
2944 this->str = NULL;
2945 this->close = (which == INITFL_open);
2946 this->file = file;
2948 basic_streambuf_wchar__Init_empty(&this->base);
2951 /* ?_Initcvt@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IAEXPAV?$codecvt@_WDH@2@@Z */
2952 /* ?_Initcvt@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$codecvt@_WDH@2@@Z */
2953 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAV?$codecvt@GDH@2@@Z */
2954 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$codecvt@GDH@2@@Z */
2955 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Initcvt_cvt, 8)
2956 void __thiscall basic_filebuf_wchar__Initcvt_cvt(basic_filebuf_wchar *this, codecvt_wchar *cvt)
2958 TRACE("(%p %p)\n", this, cvt);
2960 if(codecvt_base_always_noconv(&cvt->base)) {
2961 this->cvt = NULL;
2962 }else {
2963 basic_streambuf_wchar__Init_empty(&this->base);
2964 this->cvt = cvt;
2968 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXXZ */
2969 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXXZ */
2970 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar__Initcvt, 4)
2971 void __thiscall basic_filebuf_wchar__Initcvt(basic_filebuf_wchar *this)
2973 codecvt_wchar *cvt = codecvt_wchar_use_facet(IOS_LOCALE(&this->base));
2974 basic_filebuf_wchar__Initcvt_cvt( this, cvt );
2977 /* ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@XZ */
2978 /* ?close@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@XZ */
2979 /* ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@XZ */
2980 /* ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@XZ */
2981 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_close, 4)
2982 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_close(basic_filebuf_wchar *this)
2984 basic_filebuf_wchar *ret = this;
2986 TRACE("(%p)\n", this);
2988 if(!this->file || fclose(this->file))
2989 return NULL;
2991 basic_filebuf_wchar__Init(this, NULL, INITFL_close);
2992 return ret;
2995 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
2996 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
2997 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor_file, 8)
2998 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_ctor_file(basic_filebuf_wchar *this, FILE *file)
3000 TRACE("(%p %p)\n", this, file);
3002 basic_streambuf_wchar_ctor(&this->base);
3003 this->base.vtable = &basic_filebuf_wchar_vtable;
3005 locale_ctor(&this->loc);
3006 basic_filebuf_wchar__Init(this, file, INITFL_new);
3007 return this;
3010 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
3011 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
3012 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor_file, 8)
3013 basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor_file(basic_filebuf_wchar *this, FILE *file)
3015 TRACE("(%p %p)\n", this, file);
3017 basic_streambuf_short_ctor(&this->base);
3018 this->base.vtable = &basic_filebuf_short_vtable;
3020 locale_ctor(&this->loc);
3021 basic_filebuf_short__Init(this, file, INITFL_new);
3022 return this;
3025 /* ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
3026 /* ??_F?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
3027 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor, 4)
3028 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_ctor(basic_filebuf_wchar *this)
3030 return basic_filebuf_wchar_ctor_file(this, NULL);
3033 /* ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
3034 /* ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
3035 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor, 4)
3036 basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor(basic_filebuf_wchar *this)
3038 return basic_filebuf_short_ctor_file(this, NULL);
3041 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@@Z */
3042 /* ??0?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
3043 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_ctor_uninitialized, 8)
3044 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_ctor_uninitialized(basic_filebuf_wchar *this, int uninitialized)
3046 TRACE("(%p %d)\n", this, uninitialized);
3048 basic_streambuf_wchar_ctor(&this->base);
3049 this->base.vtable = &basic_filebuf_wchar_vtable;
3050 return this;
3053 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */
3054 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
3055 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor_uninitialized, 8)
3056 basic_filebuf_wchar* __thiscall basic_filebuf_short_ctor_uninitialized(basic_filebuf_wchar *this, int uninitialized)
3058 TRACE("(%p %d)\n", this, uninitialized);
3060 basic_streambuf_short_ctor_uninitialized(&this->base, 0);
3061 this->base.vtable = &basic_filebuf_short_vtable;
3062 locale_ctor(&this->loc);
3063 return this;
3066 /* ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
3067 /* ??1?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
3068 /* ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UAE@XZ */
3069 /* ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */
3070 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_dtor, 4)
3071 void __thiscall basic_filebuf_wchar_dtor(basic_filebuf_wchar *this)
3073 TRACE("(%p)\n", this);
3075 if(this->close)
3076 basic_filebuf_wchar_close(this);
3077 if(this->str) {
3078 MSVCP_basic_string_char_dtor(this->str);
3079 operator_delete(this->str);
3081 locale_dtor(&this->loc);
3082 basic_streambuf_wchar_dtor(&this->base);
3085 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_vector_dtor, 8)
3086 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_vector_dtor(basic_filebuf_wchar *this, unsigned int flags)
3088 TRACE("(%p %x)\n", this, flags);
3089 if(flags & 2) {
3090 /* we have an array, with the number of elements stored before the first object */
3091 INT_PTR i, *ptr = (INT_PTR *)this-1;
3093 for(i=*ptr-1; i>=0; i--)
3094 basic_filebuf_wchar_dtor(this+i);
3095 operator_delete(ptr);
3096 } else {
3097 basic_filebuf_wchar_dtor(this);
3098 if(flags & 1)
3099 operator_delete(this);
3102 return this;
3105 /* ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
3106 /* ?is_open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
3107 /* ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QBE_NXZ */
3108 /* ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
3109 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_is_open, 4)
3110 bool __thiscall basic_filebuf_wchar_is_open(const basic_filebuf_wchar *this)
3112 TRACE("(%p)\n", this);
3113 return this->file != NULL;
3116 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PB_WHH@Z */
3117 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
3118 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBGHH@Z */
3119 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBGHH@Z */
3120 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open_wchar, 16)
3121 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open_wchar(basic_filebuf_wchar *this, const wchar_t *name, int mode, int prot)
3123 FILE *f = NULL;
3125 TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
3127 if(basic_filebuf_wchar_is_open(this))
3128 return NULL;
3130 if(!(f = _Fiopen_wchar(name, mode, prot)))
3131 return NULL;
3133 basic_filebuf_wchar__Init(this, f, INITFL_open);
3134 basic_filebuf_wchar__Initcvt_cvt(this, codecvt_wchar_use_facet(IOS_LOCALE(&this->base)));
3135 return this;
3138 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PB_WHH@Z */
3139 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
3140 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBGHH@Z */
3141 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBGHH@Z */
3142 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open_wchar, 16)
3143 basic_filebuf_wchar* __thiscall basic_filebuf_short_open_wchar(basic_filebuf_wchar *this, const wchar_t *name, int mode, int prot)
3145 FILE *f = NULL;
3147 TRACE("(%p %s %d %d)\n", this, debugstr_w(name), mode, prot);
3149 if(basic_filebuf_wchar_is_open(this))
3150 return NULL;
3152 if(!(f = _Fiopen_wchar(name, mode, prot)))
3153 return NULL;
3155 basic_filebuf_short__Init(this, f, INITFL_open);
3156 basic_filebuf_wchar__Initcvt_cvt(this, codecvt_short_use_facet(IOS_LOCALE(&this->base)));
3157 return this;
3160 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PB_WI@Z */
3161 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEB_WI@Z */
3162 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBGI@Z */
3163 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBGI@Z */
3164 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open_wchar_mode, 12)
3165 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open_wchar_mode(basic_filebuf_wchar *this, const wchar_t *name, unsigned int mode)
3167 return basic_filebuf_wchar_open_wchar(this, name, mode, SH_DENYNO);
3170 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PB_WI@Z */
3171 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEB_WI@Z */
3172 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBGI@Z */
3173 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBGI@Z */
3174 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open_wchar_mode, 12)
3175 basic_filebuf_wchar* __thiscall basic_filebuf_short_open_wchar_mode(basic_filebuf_wchar *this, const wchar_t *name, unsigned int mode)
3177 return basic_filebuf_short_open_wchar(this, name, mode, SH_DENYNO);
3180 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDHH@Z */
3181 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDHH@Z */
3182 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open, 16)
3183 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open(basic_filebuf_wchar *this, const char *name, int mode, int prot)
3185 wchar_t nameW[FILENAME_MAX];
3187 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
3189 if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
3190 return NULL;
3191 return basic_filebuf_wchar_open_wchar(this, nameW, mode, prot);
3194 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDHH@Z */
3195 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDHH@Z */
3196 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open, 16)
3197 basic_filebuf_wchar* __thiscall basic_filebuf_short_open(basic_filebuf_wchar *this, const char *name, int mode, int prot)
3199 wchar_t nameW[FILENAME_MAX];
3201 TRACE("(%p %s %d %d)\n", this, name, mode, prot);
3203 if(mbstowcs_s(NULL, nameW, FILENAME_MAX, name, FILENAME_MAX-1) != 0)
3204 return NULL;
3205 return basic_filebuf_short_open_wchar(this, nameW, mode, prot);
3208 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDF@Z */
3209 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDF@Z */
3210 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open_mode_old, 12)
3211 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open_mode_old(basic_filebuf_wchar *this, const char *name, short mode)
3213 TRACE("(%p %p %d)\n", this, name, mode);
3214 return basic_filebuf_wchar_open(this, name, mode, SH_DENYNO);
3217 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDH@Z */
3218 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDH@Z */
3219 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PBDI@Z */
3220 /* ?open@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEBDI@Z */
3221 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_open_mode, 12)
3222 basic_filebuf_wchar* __thiscall basic_filebuf_wchar_open_mode(basic_filebuf_wchar *this, const char *name, unsigned int mode)
3224 return basic_filebuf_wchar_open(this, name, mode, SH_DENYNO);
3227 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDI@Z */
3228 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDI@Z */
3229 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open_mode, 12)
3230 basic_filebuf_wchar* __thiscall basic_filebuf_short_open_mode(basic_filebuf_wchar *this, const char *name, unsigned int mode)
3232 return basic_filebuf_short_open(this, name, mode, SH_DENYNO);
3235 /* ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
3236 /* ?overflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
3237 /* ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
3238 /* ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
3239 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_overflow, 8)
3240 unsigned short __thiscall basic_filebuf_wchar_overflow(basic_filebuf_wchar *this, unsigned short c)
3242 char *ptr, *to_next;
3243 wchar_t ch = c;
3244 const wchar_t *from_next;
3245 unsigned short ret;
3248 TRACE("(%p %d)\n", this, c);
3250 if(!basic_filebuf_wchar_is_open(this))
3251 return WEOF;
3252 if(c == WEOF)
3253 return !c;
3255 if(!this->cvt)
3256 return fwrite(&ch, sizeof(wchar_t), 1, this->file) ? c : WEOF;
3258 from_next = &ch;
3259 MSVCP_basic_string_char_clear(this->str);
3260 MSVCP_basic_string_char_append_len_ch(this->str, 8, '\0');
3261 ptr = this->str->ptr;
3262 ret = codecvt_wchar_out(this->cvt, &this->state, &ch, &ch+1, &from_next,
3263 ptr, ptr+MSVCP_basic_string_char_length(this->str), &to_next);
3265 switch(ret) {
3266 case CODECVT_partial:
3267 if(from_next == &ch)
3268 return WEOF;
3269 /* fall through */
3270 case CODECVT_ok:
3271 if(!fwrite(ptr, to_next-ptr, 1, this->file))
3272 return WEOF;
3273 return c;
3274 case CODECVT_noconv:
3275 return fwrite(&ch, sizeof(wchar_t), 1, this->file) ? c : WEOF;
3276 default:
3277 return WEOF;
3281 /* ?pbackfail@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
3282 /* ?pbackfail@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
3283 /* ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
3284 /* ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
3285 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_pbackfail, 8)
3286 unsigned short __thiscall basic_filebuf_wchar_pbackfail(basic_filebuf_wchar *this, unsigned short c)
3288 TRACE("(%p %d)\n", this, c);
3290 if(!basic_filebuf_wchar_is_open(this))
3291 return WEOF;
3293 if(basic_streambuf_wchar_gptr(&this->base)>basic_streambuf_wchar_eback(&this->base)
3294 && (c==WEOF || basic_streambuf_wchar_gptr(&this->base)[-1]==c)) {
3295 basic_streambuf_wchar__Gndec(&this->base);
3296 return c==WEOF ? !c : c;
3297 }else if(c == WEOF) {
3298 return WEOF;
3299 }else if(!this->cvt) {
3300 return ungetwc(c, this->file);
3301 }else if(MSVCP_basic_string_char_length(this->str)) {
3302 char *b, *e, *cur;
3304 e = this->str->ptr;
3305 b = e+this->str->size-1;
3306 for(cur = b; cur>=e; cur--) {
3307 if(ungetc(*cur, this->file) == EOF) {
3308 for(; cur<=b; cur++)
3309 fgetc(this->file);
3310 return WEOF;
3313 MSVCP_basic_string_char_clear(this->str);
3314 this->state = this->state0;
3315 return c;
3318 return WEOF;
3321 /* ?uflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
3322 /* ?uflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
3323 /* ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
3324 /* ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
3325 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_uflow, 4)
3326 unsigned short __thiscall basic_filebuf_wchar_uflow(basic_filebuf_wchar *this)
3328 wchar_t ch, *to_next;
3329 const char *buf_next;
3330 int c;
3332 TRACE("(%p)\n", this);
3334 if(!basic_filebuf_wchar_is_open(this))
3335 return WEOF;
3337 if(basic_streambuf_wchar_gptr(&this->base) < basic_streambuf_wchar_egptr(&this->base))
3338 return *basic_streambuf_wchar__Gninc(&this->base);
3340 if(!this->cvt)
3341 return fgetwc(this->file);
3343 MSVCP_basic_string_char_clear(this->str);
3344 this->state0 = this->state;
3345 while(1) {
3346 if((c = fgetc(this->file)) == EOF)
3347 return WEOF;
3348 MSVCP_basic_string_char_append_ch(this->str, c);
3349 this->state = this->state0;
3351 switch(codecvt_wchar_in(this->cvt, &this->state, this->str->ptr,
3352 this->str->ptr+this->str->size, &buf_next, &ch, &ch+1, &to_next)) {
3353 case CODECVT_partial:
3354 break;
3355 case CODECVT_noconv:
3356 if(this->str->size < sizeof(unsigned short)/sizeof(char))
3357 break;
3358 return *(unsigned short*)this->str->ptr;
3359 case CODECVT_ok:
3360 return (unsigned short)ch;
3361 default:
3362 return WEOF;
3367 /* ?underflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
3368 /* ?underflow@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
3369 /* ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
3370 /* ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
3371 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_underflow, 4)
3372 unsigned short __thiscall basic_filebuf_wchar_underflow(basic_filebuf_wchar *this)
3374 unsigned short ret;
3376 TRACE("(%p)\n", this);
3378 if(basic_streambuf_wchar_gptr(&this->base) < basic_streambuf_wchar_egptr(&this->base))
3379 return *basic_streambuf_wchar_gptr(&this->base);
3381 ret = call_basic_streambuf_wchar_uflow(&this->base);
3382 if(ret != WEOF)
3383 ret = call_basic_streambuf_wchar_pbackfail(&this->base, ret);
3384 return ret;
3387 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
3388 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
3389 /* ?seekoff@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
3390 /* ?seekoff@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
3391 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
3392 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
3393 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_seekoff, 20)
3394 fpos_int* __thiscall basic_filebuf_wchar_seekoff(basic_filebuf_wchar *this,
3395 fpos_int *ret, streamoff off, int way, int mode)
3397 fpos_t pos;
3399 TRACE("(%p %p %Id %d %d)\n", this, ret, off, way, mode);
3401 if(!basic_filebuf_wchar_is_open(this) || fseek(this->file, off, way)) {
3402 ret->off = -1;
3403 ret->pos = 0;
3404 ret->state = 0;
3405 return ret;
3408 fgetpos(this->file, &pos);
3409 ret->off = 0;
3410 ret->pos = pos;
3411 ret->state = this->state;
3412 return ret;
3415 /* ?seekpos@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3416 /* ?seekpos@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3417 /* ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3418 /* ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3419 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_seekpos, 36)
3420 fpos_int* __thiscall basic_filebuf_wchar_seekpos(basic_filebuf_wchar *this,
3421 fpos_int *ret, fpos_int pos, int mode)
3423 fpos_t fpos;
3425 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
3427 if(!basic_filebuf_wchar_is_open(this) || fseek(this->file, (LONG)pos.pos, SEEK_SET)
3428 || (pos.off && fseek(this->file, pos.off, SEEK_CUR))) {
3429 ret->off = -1;
3430 ret->pos = 0;
3431 ret->state = 0;
3432 return ret;
3435 fgetpos(this->file, &fpos);
3436 ret->off = 0;
3437 ret->pos = fpos;
3438 ret->state = this->state;
3439 return ret;
3442 /* ?setbuf@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PA_WH@Z */
3443 /* ?setbuf@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEA_W_J@Z */
3444 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_setbuf, 12)
3445 basic_streambuf_wchar* __thiscall basic_filebuf_wchar_setbuf(basic_filebuf_wchar *this, wchar_t *buf, streamsize count)
3447 TRACE("(%p %p %Id)\n", this, buf, count);
3449 if(!basic_filebuf_wchar_is_open(this))
3450 return NULL;
3452 if(setvbuf(this->file, (char*)buf, (buf==NULL && count==0) ? _IONBF : _IOFBF, count*sizeof(wchar_t)))
3453 return NULL;
3455 basic_filebuf_wchar__Init(this, this->file, INITFL_open);
3456 return &this->base;
3459 /* ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PAGH@Z */
3460 /* ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAG_J@Z */
3461 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_setbuf, 12)
3462 basic_streambuf_wchar* __thiscall basic_filebuf_short_setbuf(basic_filebuf_wchar *this, wchar_t *buf, streamsize count)
3464 TRACE("(%p %p %Id)\n", this, buf, count);
3466 if(!basic_filebuf_wchar_is_open(this))
3467 return NULL;
3469 if(setvbuf(this->file, (char*)buf, (buf==NULL && count==0) ? _IONBF : _IOFBF, count*sizeof(wchar_t)))
3470 return NULL;
3472 basic_filebuf_short__Init(this, this->file, INITFL_open);
3473 return &this->base;
3476 /* ?sync@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
3477 /* ?sync@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ */
3478 /* ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
3479 /* ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAHXZ */
3480 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_sync, 4)
3481 int __thiscall basic_filebuf_wchar_sync(basic_filebuf_wchar *this)
3483 TRACE("(%p)\n", this);
3485 if(!basic_filebuf_wchar_is_open(this))
3486 return 0;
3488 if(call_basic_streambuf_wchar_overflow(&this->base, WEOF) == WEOF)
3489 return 0;
3490 return fflush(this->file);
3493 /* ?imbue@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z */
3494 /* ?imbue@?$basic_filebuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z */
3495 DEFINE_THISCALL_WRAPPER(basic_filebuf_wchar_imbue, 8)
3496 void __thiscall basic_filebuf_wchar_imbue(basic_filebuf_wchar *this, const locale *loc)
3498 TRACE("(%p %p)\n", this, loc);
3499 basic_filebuf_wchar__Initcvt_cvt(this, codecvt_wchar_use_facet(loc));
3502 /* ?imbue@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEXABVlocale@2@@Z */
3503 /* ?imbue@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z */
3504 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_imbue, 8)
3505 void __thiscall basic_filebuf_short_imbue(basic_filebuf_wchar *this, const locale *loc)
3507 TRACE("(%p %p)\n", this, loc);
3508 basic_filebuf_wchar__Initcvt_cvt(this, codecvt_short_use_facet(loc));
3511 /* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEHH@Z */
3512 /* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAHH@Z */
3513 /* ?_Mode@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEHH@Z */
3514 /* ?_Mode@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAHH@Z */
3515 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Getstate, 8)
3516 int __thiscall basic_stringbuf_char__Getstate(basic_stringbuf_char *this, IOSB_openmode mode)
3518 int state = 0;
3520 if(!(mode & OPENMODE_in))
3521 state |= STRINGBUF_no_read;
3523 if(!(mode & OPENMODE_out))
3524 state |= STRINGBUF_no_write;
3526 if(mode & OPENMODE_ate)
3527 state |= STRINGBUF_at_end;
3529 if(mode & OPENMODE_app)
3530 state |= STRINGBUF_append;
3532 return state;
3535 /* ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXPBDIH@Z */
3536 /* ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAXPEBD_KH@Z */
3537 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Init, 16)
3538 void __thiscall basic_stringbuf_char__Init(basic_stringbuf_char *this, const char *str, size_t count, int state)
3540 TRACE("(%p, %p, %Iu, %d)\n", this, str, count, state);
3542 basic_streambuf_char__Init_empty(&this->base);
3544 this->state = state;
3545 this->seekhigh = NULL;
3547 if(count && str) {
3548 char *buf = operator_new(count);
3550 memcpy(buf, str, count);
3551 this->seekhigh = buf + count;
3553 this->state |= STRINGBUF_allocated;
3555 if(!(state & STRINGBUF_no_read))
3556 basic_streambuf_char_setg(&this->base, buf, buf, buf + count);
3558 if(!(state & STRINGBUF_no_write)) {
3559 basic_streambuf_char_setp_next(&this->base, buf, (state & STRINGBUF_at_end) ? buf + count : buf, buf + count);
3561 if(!basic_streambuf_char_gptr(&this->base))
3562 basic_streambuf_char_setg(&this->base, buf, 0, buf);
3567 /* ??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 */
3568 /* ??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 */
3569 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor_str, 12)
3570 basic_stringbuf_char* __thiscall basic_stringbuf_char_ctor_str(basic_stringbuf_char *this,
3571 const basic_string_char *str, IOSB_openmode mode)
3573 TRACE("(%p %p %d)\n", this, str, mode);
3575 basic_streambuf_char_ctor(&this->base);
3576 this->base.vtable = &basic_stringbuf_char_vtable;
3578 basic_stringbuf_char__Init(this, MSVCP_basic_string_char_c_str(str),
3579 str->size, basic_stringbuf_char__Getstate(this, mode));
3580 return this;
3583 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
3584 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
3585 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor_mode, 8)
3586 basic_stringbuf_char* __thiscall basic_stringbuf_char_ctor_mode(
3587 basic_stringbuf_char *this, IOSB_openmode mode)
3589 TRACE("(%p %d)\n", this, mode);
3591 basic_streambuf_char_ctor(&this->base);
3592 this->base.vtable = &basic_stringbuf_char_vtable;
3594 basic_stringbuf_char__Init(this, NULL, 0, basic_stringbuf_char__Getstate(this, mode));
3595 return this;
3598 /* ??_F?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
3599 /* ??_F?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
3600 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor, 4)
3601 basic_stringbuf_char* __thiscall basic_stringbuf_char_ctor(basic_stringbuf_char *this)
3603 return basic_stringbuf_char_ctor_mode(this, OPENMODE_in|OPENMODE_out);
3606 /* ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXXZ */
3607 /* ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAXXZ */
3608 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Tidy, 4)
3609 void __thiscall basic_stringbuf_char__Tidy(basic_stringbuf_char *this)
3611 TRACE("(%p)\n", this);
3613 if(this->state & STRINGBUF_allocated) {
3614 operator_delete(basic_streambuf_char_eback(&this->base));
3615 this->seekhigh = NULL;
3616 this->state &= ~STRINGBUF_allocated;
3619 basic_streambuf_char__Init_empty(&this->base);
3622 /* ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
3623 /* ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
3624 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_dtor, 4)
3625 void __thiscall basic_stringbuf_char_dtor(basic_stringbuf_char *this)
3627 TRACE("(%p)\n", this);
3629 basic_stringbuf_char__Tidy(this);
3630 basic_streambuf_char_dtor(&this->base);
3633 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_vector_dtor, 8)
3634 basic_stringbuf_char* __thiscall basic_stringbuf_char_vector_dtor(basic_stringbuf_char *this, unsigned int flags)
3636 TRACE("(%p %x)\n", this, flags);
3638 if(flags & 2) {
3639 /* we have an array, with the number of elements stored before the first object */
3640 INT_PTR i, *ptr = (INT_PTR *) this - 1;
3642 for (i = *ptr - 1; i >= 0; i--)
3643 basic_stringbuf_char_dtor(this+i);
3645 operator_delete(ptr);
3646 }else {
3647 basic_stringbuf_char_dtor(this);
3649 if(flags & 1)
3650 operator_delete(this);
3653 return this;
3656 /* ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z */
3657 /* ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHH@Z */
3658 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_overflow, 8)
3659 int __thiscall basic_stringbuf_char_overflow(basic_stringbuf_char *this, int meta)
3661 size_t oldsize, size;
3662 char *ptr, *buf;
3664 TRACE("(%p %x)\n", this, meta);
3666 if(meta == EOF)
3667 return !EOF;
3668 if(this->state & STRINGBUF_no_write)
3669 return EOF;
3671 ptr = basic_streambuf_char_pptr(&this->base);
3672 if((this->state&STRINGBUF_append) && ptr<this->seekhigh)
3673 basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base),
3674 this->seekhigh, basic_streambuf_char_epptr(&this->base));
3676 if(ptr && ptr<basic_streambuf_char_epptr(&this->base))
3677 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = meta);
3679 oldsize = (ptr ? basic_streambuf_char_epptr(&this->base)-basic_streambuf_char_eback(&this->base): 0);
3680 size = oldsize|0xf;
3681 size += size/2;
3682 buf = operator_new(size);
3684 if(!oldsize) {
3685 this->seekhigh = buf;
3686 basic_streambuf_char_setp(&this->base, buf, buf+size);
3687 if(this->state & STRINGBUF_no_read)
3688 basic_streambuf_char_setg(&this->base, buf, NULL, buf);
3689 else
3690 basic_streambuf_char_setg(&this->base, buf, buf, buf+1);
3692 this->state |= STRINGBUF_allocated;
3693 }else {
3694 ptr = basic_streambuf_char_eback(&this->base);
3695 memcpy(buf, ptr, oldsize);
3697 this->seekhigh = buf+(this->seekhigh-ptr);
3698 basic_streambuf_char_setp_next(&this->base, buf,
3699 buf+(basic_streambuf_char_pptr(&this->base)-ptr), buf+size);
3700 if(this->state & STRINGBUF_no_read)
3701 basic_streambuf_char_setg(&this->base, buf, NULL, buf);
3702 else
3703 basic_streambuf_char_setg(&this->base, buf,
3704 buf+(basic_streambuf_char_gptr(&this->base)-ptr),
3705 basic_streambuf_char_pptr(&this->base)+1);
3707 operator_delete(ptr);
3710 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = meta);
3713 /* ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z */
3714 /* ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHH@Z */
3715 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_pbackfail, 8)
3716 int __thiscall basic_stringbuf_char_pbackfail(basic_stringbuf_char *this, int c)
3718 char *cur;
3720 TRACE("(%p %x)\n", this, c);
3722 cur = basic_streambuf_char_gptr(&this->base);
3723 if(!cur || cur==basic_streambuf_char_eback(&this->base)
3724 || (c!=EOF && c!=cur[-1] && this->state&STRINGBUF_no_write))
3725 return EOF;
3727 if(c != EOF)
3728 cur[-1] = c;
3729 basic_streambuf_char_gbump(&this->base, -1);
3730 return c==EOF ? !EOF : c;
3733 /* ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHXZ */
3734 /* ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHXZ */
3735 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_underflow, 4)
3736 int __thiscall basic_stringbuf_char_underflow(basic_stringbuf_char *this)
3738 char *ptr, *cur;
3740 TRACE("(%p)\n", this);
3742 cur = basic_streambuf_char_gptr(&this->base);
3743 if(!cur || this->state&STRINGBUF_no_read)
3744 return EOF;
3746 ptr = basic_streambuf_char_pptr(&this->base);
3747 if(this->seekhigh < ptr)
3748 this->seekhigh = ptr;
3750 ptr = basic_streambuf_char_egptr(&this->base);
3751 if(this->seekhigh > ptr)
3752 basic_streambuf_char_setg(&this->base, basic_streambuf_char_eback(&this->base), cur, this->seekhigh);
3754 if(cur < this->seekhigh)
3755 return (unsigned char)*cur;
3756 return EOF;
3759 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
3760 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
3761 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
3762 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
3763 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekoff, 20)
3764 fpos_int* __thiscall basic_stringbuf_char_seekoff(basic_stringbuf_char *this,
3765 fpos_int *ret, streamoff off, int way, int mode)
3767 char *beg, *cur_r, *cur_w;
3769 TRACE("(%p %p %Id %d %d)\n", this, ret, off, way, mode);
3771 cur_w = basic_streambuf_char_pptr(&this->base);
3772 if(cur_w > this->seekhigh)
3773 this->seekhigh = cur_w;
3775 ret->off = 0;
3776 ret->pos = 0;
3777 ret->state = 0;
3779 beg = basic_streambuf_char_eback(&this->base);
3780 cur_r = basic_streambuf_char_gptr(&this->base);
3781 if((mode & OPENMODE_in) && cur_r) {
3782 if(way==SEEKDIR_cur && !(mode & OPENMODE_out))
3783 off += cur_r-beg;
3784 else if(way == SEEKDIR_end)
3785 off += this->seekhigh-beg;
3786 else if(way != SEEKDIR_beg)
3787 off = -1;
3789 if(off<0 || off>this->seekhigh-beg) {
3790 off = -1;
3791 }else {
3792 basic_streambuf_char_gbump(&this->base, beg-cur_r+off);
3793 if((mode & OPENMODE_out) && cur_w) {
3794 basic_streambuf_char_setp_next(&this->base, beg,
3795 basic_streambuf_char_gptr(&this->base),
3796 basic_streambuf_char_epptr(&this->base));
3799 }else if((mode & OPENMODE_out) && cur_w) {
3800 if(way == SEEKDIR_cur)
3801 off += cur_w-beg;
3802 else if(way == SEEKDIR_end)
3803 off += this->seekhigh-beg;
3804 else if(way != SEEKDIR_beg)
3805 off = -1;
3807 if(off<0 || off>this->seekhigh-beg)
3808 off = -1;
3809 else
3810 basic_streambuf_char_pbump(&this->base, beg-cur_w+off);
3811 }else {
3812 off = -1;
3815 ret->off = off;
3816 return ret;
3819 /* ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3820 /* ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3821 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekpos, 36)
3822 fpos_int* __thiscall basic_stringbuf_char_seekpos(basic_stringbuf_char *this,
3823 fpos_int *ret, fpos_int pos, int mode)
3825 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
3827 if(pos.off==-1 && pos.pos==0 && pos.state==0) {
3828 *ret = pos;
3829 return ret;
3832 return basic_stringbuf_char_seekoff(this, ret, pos.pos+pos.off, SEEKDIR_beg, mode);
3835 /* ?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 */
3836 /* ?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 */
3837 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_str_set, 8)
3838 void __thiscall basic_stringbuf_char_str_set(basic_stringbuf_char *this, const basic_string_char *str)
3840 TRACE("(%p %p)\n", this, str);
3842 basic_stringbuf_char__Tidy(this);
3843 basic_stringbuf_char__Init(this, MSVCP_basic_string_char_c_str(str), str->size, this->state);
3846 /* ?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 */
3847 /* ?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 */
3848 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_str_get, 8)
3849 basic_string_char* __thiscall basic_stringbuf_char_str_get(const basic_stringbuf_char *this, basic_string_char *ret)
3851 char *ptr;
3853 TRACE("(%p)\n", this);
3855 if(!(this->state & STRINGBUF_no_write) && basic_streambuf_char_pptr(&this->base)) {
3856 char *pptr;
3858 ptr = basic_streambuf_char_pbase(&this->base);
3859 pptr = basic_streambuf_char_pptr(&this->base);
3861 return MSVCP_basic_string_char_ctor_cstr_len(ret, ptr, (this->seekhigh < pptr ? pptr : this->seekhigh) - ptr);
3864 if(!(this->state & STRINGBUF_no_read) && basic_streambuf_char_gptr(&this->base)) {
3865 ptr = basic_streambuf_char_eback(&this->base);
3866 return MSVCP_basic_string_char_ctor_cstr_len(ret, ptr, basic_streambuf_char_egptr(&this->base) - ptr);
3869 return MSVCP_basic_string_char_ctor(ret);
3872 /* ?_Getstate@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AAEHH@Z */
3873 /* ?_Getstate@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AEAAHH@Z */
3874 /* ?_Getstate@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AAEHH@Z */
3875 /* ?_Getstate@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AEAAHH@Z */
3876 /* ?_Mode@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AAEHH@Z */
3877 /* ?_Mode@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AEAAHH@Z */
3878 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Getstate, 8)
3879 int __thiscall basic_stringbuf_wchar__Getstate(basic_stringbuf_wchar *this, IOSB_openmode mode)
3881 int state = 0;
3883 if(!(mode & OPENMODE_in))
3884 state |= STRINGBUF_no_read;
3886 if(!(mode & OPENMODE_out))
3887 state |= STRINGBUF_no_write;
3889 if(mode & OPENMODE_ate)
3890 state |= STRINGBUF_at_end;
3892 if(mode & OPENMODE_app)
3893 state |= STRINGBUF_append;
3895 return state;
3898 /* ?_Init@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXPB_WIH@Z */
3899 /* ?_Init@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAXPEB_W_KH@Z */
3900 /* ?_Init@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXPBGIH@Z */
3901 /* ?_Init@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAXPEBG_KH@Z */
3902 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Init, 16)
3903 void __thiscall basic_stringbuf_wchar__Init(basic_stringbuf_wchar *this, const wchar_t *str, size_t count, int state)
3905 TRACE("(%p, %p, %Iu, %d)\n", this, str, count, state);
3907 basic_streambuf_wchar__Init_empty(&this->base);
3909 this->state = state;
3910 this->seekhigh = NULL;
3912 if(count && str) {
3913 wchar_t *buf = operator_new(count*sizeof(wchar_t));
3915 memcpy(buf, str, count*sizeof(wchar_t));
3916 this->seekhigh = buf + count;
3918 this->state |= STRINGBUF_allocated;
3920 if(!(state & STRINGBUF_no_read))
3921 basic_streambuf_wchar_setg(&this->base, buf, buf, buf + count);
3923 if(!(state & STRINGBUF_no_write)) {
3924 basic_streambuf_wchar_setp_next(&this->base, buf, (state & STRINGBUF_at_end) ? buf + count : buf, buf + count);
3926 if(!basic_streambuf_wchar_gptr(&this->base))
3927 basic_streambuf_wchar_setg(&this->base, buf, 0, buf);
3932 /* ??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 */
3933 /* ??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 */
3934 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor_str, 12)
3935 basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_ctor_str(basic_stringbuf_wchar *this,
3936 const basic_string_wchar *str, IOSB_openmode mode)
3938 TRACE("(%p %p %d)\n", this, str, mode);
3940 basic_streambuf_wchar_ctor(&this->base);
3941 this->base.vtable = &basic_stringbuf_wchar_vtable;
3943 basic_stringbuf_wchar__Init(this, MSVCP_basic_string_wchar_c_str(str),
3944 str->size, basic_stringbuf_wchar__Getstate(this, mode));
3945 return this;
3948 /* ??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 */
3949 /* ??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 */
3950 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor_str, 12)
3951 basic_stringbuf_wchar* __thiscall basic_stringbuf_short_ctor_str(basic_stringbuf_wchar *this,
3952 const basic_string_wchar *str, IOSB_openmode mode)
3954 basic_stringbuf_wchar_ctor_str(this, str, mode);
3955 this->base.vtable = &basic_stringbuf_short_vtable;
3956 return this;
3959 /* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
3960 /* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
3961 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor_mode, 8)
3962 basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_ctor_mode(
3963 basic_stringbuf_wchar *this, IOSB_openmode mode)
3965 TRACE("(%p %d)\n", this, mode);
3967 basic_streambuf_wchar_ctor(&this->base);
3968 this->base.vtable = &basic_stringbuf_wchar_vtable;
3970 basic_stringbuf_wchar__Init(this, NULL, 0, basic_stringbuf_wchar__Getstate(this, mode));
3971 return this;
3974 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
3975 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
3976 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor_mode, 8)
3977 basic_stringbuf_wchar* __thiscall basic_stringbuf_short_ctor_mode(
3978 basic_stringbuf_wchar *this, IOSB_openmode mode)
3980 basic_stringbuf_wchar_ctor_mode(this, mode);
3981 this->base.vtable = &basic_stringbuf_short_vtable;
3982 return this;
3985 /* ??_F?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
3986 /* ??_F?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
3987 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor, 4)
3988 basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_ctor(basic_stringbuf_wchar *this)
3990 return basic_stringbuf_wchar_ctor_mode(this, OPENMODE_in|OPENMODE_out);
3993 /* ??_F?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
3994 /* ??_F?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
3995 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor, 4)
3996 basic_stringbuf_wchar* __thiscall basic_stringbuf_short_ctor(basic_stringbuf_wchar *this)
3998 return basic_stringbuf_short_ctor_mode(this, OPENMODE_in|OPENMODE_out);
4001 /* ?_Tidy@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXXZ */
4002 /* ?_Tidy@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAXXZ */
4003 /* ?_Tidy@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXXZ */
4004 /* ?_Tidy@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAXXZ */
4005 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Tidy, 4)
4006 void __thiscall basic_stringbuf_wchar__Tidy(basic_stringbuf_wchar *this)
4008 TRACE("(%p)\n", this);
4010 if(this->state & STRINGBUF_allocated) {
4011 operator_delete(basic_streambuf_wchar_eback(&this->base));
4012 this->seekhigh = NULL;
4013 this->state &= ~STRINGBUF_allocated;
4016 basic_streambuf_wchar__Init_empty(&this->base);
4019 /* ??1?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
4020 /* ??1?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
4021 /* ??1?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
4022 /* ??1?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
4023 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_dtor, 4)
4024 void __thiscall basic_stringbuf_wchar_dtor(basic_stringbuf_wchar *this)
4026 TRACE("(%p)\n", this);
4028 basic_stringbuf_wchar__Tidy(this);
4029 basic_streambuf_wchar_dtor(&this->base);
4032 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_vector_dtor, 8)
4033 basic_stringbuf_wchar* __thiscall basic_stringbuf_wchar_vector_dtor(basic_stringbuf_wchar *this, unsigned int flags)
4035 TRACE("(%p %x)\n", this, flags);
4037 if(flags & 2) {
4038 /* we have an array, with the number of elements stored before the first object */
4039 INT_PTR i, *ptr = (INT_PTR *) this - 1;
4041 for (i = *ptr - 1; i >= 0; i--)
4042 basic_stringbuf_wchar_dtor(this+i);
4044 operator_delete(ptr);
4045 }else {
4046 basic_stringbuf_wchar_dtor(this);
4048 if(flags & 1)
4049 operator_delete(this);
4052 return this;
4055 /* ?overflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGG@Z */
4056 /* ?overflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGG@Z */
4057 /* ?overflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGG@Z */
4058 /* ?overflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGG@Z */
4059 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_overflow, 8)
4060 unsigned short __thiscall basic_stringbuf_wchar_overflow(basic_stringbuf_wchar *this, unsigned short meta)
4062 size_t oldsize, size;
4063 wchar_t *ptr, *buf;
4065 TRACE("(%p %x)\n", this, meta);
4067 if(meta == WEOF)
4068 return !WEOF;
4069 if(this->state & STRINGBUF_no_write)
4070 return WEOF;
4072 ptr = basic_streambuf_wchar_pptr(&this->base);
4073 if((this->state&STRINGBUF_append) && ptr<this->seekhigh)
4074 basic_streambuf_wchar_setp_next(&this->base, basic_streambuf_wchar_pbase(&this->base),
4075 this->seekhigh, basic_streambuf_wchar_epptr(&this->base));
4077 if(ptr && ptr<basic_streambuf_wchar_epptr(&this->base))
4078 return (*basic_streambuf_wchar__Pninc(&this->base) = meta);
4080 oldsize = (ptr ? basic_streambuf_wchar_epptr(&this->base)-basic_streambuf_wchar_eback(&this->base): 0);
4081 size = oldsize|0xf;
4082 size += size/2;
4083 buf = operator_new(size*sizeof(wchar_t));
4085 if(!oldsize) {
4086 this->seekhigh = buf;
4087 basic_streambuf_wchar_setp(&this->base, buf, buf+size);
4088 if(this->state & STRINGBUF_no_read)
4089 basic_streambuf_wchar_setg(&this->base, buf, NULL, buf);
4090 else
4091 basic_streambuf_wchar_setg(&this->base, buf, buf, buf+1);
4093 this->state |= STRINGBUF_allocated;
4094 }else {
4095 ptr = basic_streambuf_wchar_eback(&this->base);
4096 memcpy(buf, ptr, oldsize*sizeof(wchar_t));
4098 this->seekhigh = buf+(this->seekhigh-ptr);
4099 basic_streambuf_wchar_setp_next(&this->base, buf,
4100 buf+(basic_streambuf_wchar_pptr(&this->base)-ptr), buf+size);
4101 if(this->state & STRINGBUF_no_read)
4102 basic_streambuf_wchar_setg(&this->base, buf, NULL, buf);
4103 else
4104 basic_streambuf_wchar_setg(&this->base, buf,
4105 buf+(basic_streambuf_wchar_gptr(&this->base)-ptr),
4106 basic_streambuf_wchar_pptr(&this->base)+1);
4108 operator_delete(ptr);
4111 return (*basic_streambuf_wchar__Pninc(&this->base) = meta);
4114 /* ?pbackfail@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGG@Z */
4115 /* ?pbackfail@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGG@Z */
4116 /* ?pbackfail@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGG@Z */
4117 /* ?pbackfail@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGG@Z */
4118 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_pbackfail, 8)
4119 unsigned short __thiscall basic_stringbuf_wchar_pbackfail(basic_stringbuf_wchar *this, unsigned short c)
4121 wchar_t *cur;
4123 TRACE("(%p %x)\n", this, c);
4125 cur = basic_streambuf_wchar_gptr(&this->base);
4126 if(!cur || cur==basic_streambuf_wchar_eback(&this->base)
4127 || (c!=WEOF && c!=cur[-1] && this->state&STRINGBUF_no_write))
4128 return WEOF;
4130 if(c != WEOF)
4131 cur[-1] = c;
4132 basic_streambuf_wchar_gbump(&this->base, -1);
4133 return c==WEOF ? !WEOF : c;
4136 /* ?underflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGXZ */
4137 /* ?underflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGXZ */
4138 /* ?underflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGXZ */
4139 /* ?underflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGXZ */
4140 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_underflow, 4)
4141 unsigned short __thiscall basic_stringbuf_wchar_underflow(basic_stringbuf_wchar *this)
4143 wchar_t *ptr, *cur;
4145 TRACE("(%p)\n", this);
4147 cur = basic_streambuf_wchar_gptr(&this->base);
4148 if(!cur || this->state&STRINGBUF_no_read)
4149 return WEOF;
4151 ptr = basic_streambuf_wchar_pptr(&this->base);
4152 if(this->seekhigh < ptr)
4153 this->seekhigh = ptr;
4155 ptr = basic_streambuf_wchar_egptr(&this->base);
4156 if(this->seekhigh > ptr)
4157 basic_streambuf_wchar_setg(&this->base, basic_streambuf_wchar_eback(&this->base), cur, this->seekhigh);
4159 if(cur < this->seekhigh)
4160 return *cur;
4161 return WEOF;
4164 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
4165 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
4166 /* ?seekoff@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
4167 /* ?seekoff@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
4168 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
4169 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
4170 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_seekoff, 20)
4171 fpos_int* __thiscall basic_stringbuf_wchar_seekoff(basic_stringbuf_wchar *this,
4172 fpos_int *ret, streamoff off, int way, int mode)
4174 wchar_t *beg, *cur_r, *cur_w;
4176 TRACE("(%p %p %Id %d %d)\n", this, ret, off, way, mode);
4178 cur_w = basic_streambuf_wchar_pptr(&this->base);
4179 if(cur_w > this->seekhigh)
4180 this->seekhigh = cur_w;
4182 ret->off = 0;
4183 ret->pos = 0;
4184 ret->state = 0;
4186 beg = basic_streambuf_wchar_eback(&this->base);
4187 cur_r = basic_streambuf_wchar_gptr(&this->base);
4188 if((mode & OPENMODE_in) && cur_r) {
4189 if(way==SEEKDIR_cur && !(mode & OPENMODE_out))
4190 off += cur_r-beg;
4191 else if(way == SEEKDIR_end)
4192 off += this->seekhigh-beg;
4193 else if(way != SEEKDIR_beg)
4194 off = -1;
4196 if(off<0 || off>this->seekhigh-beg) {
4197 off = -1;
4198 }else {
4199 basic_streambuf_wchar_gbump(&this->base, beg-cur_r+off);
4200 if((mode & OPENMODE_out) && cur_w) {
4201 basic_streambuf_wchar_setp_next(&this->base, beg,
4202 basic_streambuf_wchar_gptr(&this->base),
4203 basic_streambuf_wchar_epptr(&this->base));
4206 }else if((mode & OPENMODE_out) && cur_w) {
4207 if(way == SEEKDIR_cur)
4208 off += cur_w-beg;
4209 else if(way == SEEKDIR_end)
4210 off += this->seekhigh-beg;
4211 else if(way != SEEKDIR_beg)
4212 off = -1;
4214 if(off<0 || off>this->seekhigh-beg)
4215 off = -1;
4216 else
4217 basic_streambuf_wchar_pbump(&this->base, beg-cur_w+off);
4218 }else {
4219 off = -1;
4222 ret->off = off;
4223 return ret;
4226 /* ?seekpos@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
4227 /* ?seekpos@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
4228 /* ?seekpos@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
4229 /* ?seekpos@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
4230 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_seekpos, 36)
4231 fpos_int* __thiscall basic_stringbuf_wchar_seekpos(basic_stringbuf_wchar *this,
4232 fpos_int *ret, fpos_int pos, int mode)
4234 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
4236 if(pos.off==-1 && pos.pos==0 && pos.state==0) {
4237 *ret = pos;
4238 return ret;
4241 return basic_stringbuf_wchar_seekoff(this, ret, pos.pos+pos.off, SEEKDIR_beg, mode);
4244 /* ?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 */
4245 /* ?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 */
4246 /* ?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 */
4247 /* ?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 */
4248 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_str_set, 8)
4249 void __thiscall basic_stringbuf_wchar_str_set(basic_stringbuf_wchar *this, const basic_string_wchar *str)
4251 TRACE("(%p %p)\n", this, str);
4253 basic_stringbuf_wchar__Tidy(this);
4254 basic_stringbuf_wchar__Init(this, MSVCP_basic_string_wchar_c_str(str), str->size, this->state);
4257 /* ?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 */
4258 /* ?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 */
4259 /* ?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 */
4260 /* ?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 */
4261 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_str_get, 8)
4262 basic_string_wchar* __thiscall basic_stringbuf_wchar_str_get(const basic_stringbuf_wchar *this, basic_string_wchar *ret)
4264 wchar_t *ptr;
4266 TRACE("(%p)\n", this);
4268 if(!(this->state & STRINGBUF_no_write) && basic_streambuf_wchar_pptr(&this->base)) {
4269 wchar_t *pptr;
4271 ptr = basic_streambuf_wchar_pbase(&this->base);
4272 pptr = basic_streambuf_wchar_pptr(&this->base);
4274 return MSVCP_basic_string_wchar_ctor_cstr_len(ret, ptr, (this->seekhigh < pptr ? pptr : this->seekhigh) - ptr);
4277 if(!(this->state & STRINGBUF_no_read) && basic_streambuf_wchar_gptr(&this->base)) {
4278 ptr = basic_streambuf_wchar_eback(&this->base);
4279 return MSVCP_basic_string_wchar_ctor_cstr_len(ret, ptr, basic_streambuf_wchar_egptr(&this->base) - ptr);
4282 return MSVCP_basic_string_wchar_ctor(ret);
4285 /* ??0ios_base@std@@IAE@XZ */
4286 /* ??0ios_base@std@@IEAA@XZ */
4287 DEFINE_THISCALL_WRAPPER(ios_base_ctor, 4)
4288 ios_base* __thiscall ios_base_ctor(ios_base *this)
4290 TRACE("(%p)\n", this);
4291 this->vtable = &ios_base_vtable;
4292 locale_ctor_uninitialized(IOS_LOCALE(this), 0);
4293 return this;
4296 /* ??0ios_base@std@@QAE@ABV01@@Z */
4297 /* ??0ios_base@std@@QEAA@AEBV01@@Z */
4298 DEFINE_THISCALL_WRAPPER(ios_base_copy_ctor, 8)
4299 ios_base* __thiscall ios_base_copy_ctor(ios_base *this, const ios_base *copy)
4301 TRACE("(%p %p)\n", this, copy);
4302 *this = *copy;
4303 this->vtable = &ios_base_vtable;
4304 return this;
4307 /* ?_Callfns@ios_base@std@@AAEXW4event@12@@Z */
4308 /* ?_Callfns@ios_base@std@@AEAAXW4event@12@@Z */
4309 DEFINE_THISCALL_WRAPPER(ios_base_Callfns, 8)
4310 void __thiscall ios_base_Callfns(ios_base *this, IOS_BASE_event event)
4312 IOS_BASE_fnarray *cur;
4314 TRACE("(%p %x)\n", this, event);
4316 for(cur=this->calls; cur; cur=cur->next)
4317 cur->event_handler(event, this, cur->index);
4320 /* ?_Tidy@ios_base@std@@AAAXXZ */
4321 /* ?_Tidy@ios_base@std@@AEAAXXZ */
4322 void __cdecl ios_base_Tidy(ios_base *this)
4324 IOS_BASE_iosarray *arr_cur, *arr_next;
4325 IOS_BASE_fnarray *event_cur, *event_next;
4327 TRACE("(%p)\n", this);
4329 ios_base_Callfns(this, EVENT_erase_event);
4331 for(arr_cur=this->arr; arr_cur; arr_cur=arr_next) {
4332 arr_next = arr_cur->next;
4333 operator_delete(arr_cur);
4335 this->arr = NULL;
4337 for(event_cur=this->calls; event_cur; event_cur=event_next) {
4338 event_next = event_cur->next;
4339 operator_delete(event_cur);
4341 this->calls = NULL;
4344 /* ?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z */
4345 /* ?_Ios_base_dtor@ios_base@std@@CAXPEAV12@@Z */
4346 void __cdecl ios_base_Ios_base_dtor(ios_base *obj)
4348 TRACE("(%p)\n", obj);
4349 locale_dtor(IOS_LOCALE(obj));
4350 ios_base_Tidy(obj);
4353 /* ??1ios_base@std@@UAE@XZ */
4354 /* ??1ios_base@std@@UEAA@XZ */
4355 DEFINE_THISCALL_WRAPPER(ios_base_dtor, 4)
4356 void __thiscall ios_base_dtor(ios_base *this)
4358 ios_base_Ios_base_dtor(this);
4361 DEFINE_THISCALL_WRAPPER(ios_base_vector_dtor, 8)
4362 ios_base* __thiscall ios_base_vector_dtor(ios_base *this, unsigned int flags)
4364 TRACE("(%p %x)\n", this, flags);
4365 if(flags & 2) {
4366 /* we have an array, with the number of elements stored before the first object */
4367 INT_PTR i, *ptr = (INT_PTR *)this-1;
4369 for(i=*ptr-1; i>=0; i--)
4370 ios_base_dtor(this+i);
4371 operator_delete(ptr);
4372 } else {
4373 ios_base_dtor(this);
4374 if(flags & 1)
4375 operator_delete(this);
4378 return this;
4381 DEFINE_THISCALL_WRAPPER(iosb_vector_dtor, 8)
4382 void* __thiscall iosb_vector_dtor(void *this, unsigned int flags)
4384 TRACE("(%p %x)\n", this, flags);
4385 if(flags & 2) {
4386 INT_PTR *ptr = (INT_PTR *)this-1;
4387 operator_delete(ptr);
4388 } else {
4389 if(flags & 1)
4390 operator_delete(this);
4393 return this;
4396 /* ?_Findarr@ios_base@std@@AAEAAU_Iosarray@12@H@Z */
4397 /* ?_Findarr@ios_base@std@@AEAAAEAU_Iosarray@12@H@Z */
4398 DEFINE_THISCALL_WRAPPER(ios_base_Findarr, 8)
4399 IOS_BASE_iosarray* __thiscall ios_base_Findarr(ios_base *this, int index)
4401 IOS_BASE_iosarray *p;
4403 TRACE("(%p %d)\n", this, index);
4405 for(p=this->arr; p; p=p->next) {
4406 if(p->index == index)
4407 return p;
4410 for(p=this->arr; p; p=p->next) {
4411 if(!p->long_val && !p->ptr_val) {
4412 p->index = index;
4413 return p;
4417 p = operator_new(sizeof(IOS_BASE_iosarray));
4418 p->next = this->arr;
4419 p->index = index;
4420 p->long_val = 0;
4421 p->ptr_val = NULL;
4422 this->arr = p;
4423 return p;
4426 /* ?iword@ios_base@std@@QAEAAJH@Z */
4427 /* ?iword@ios_base@std@@QEAAAEAJH@Z */
4428 DEFINE_THISCALL_WRAPPER(ios_base_iword, 8)
4429 LONG* __thiscall ios_base_iword(ios_base *this, int index)
4431 TRACE("(%p %d)\n", this, index);
4432 return &ios_base_Findarr(this, index)->long_val;
4435 /* ?pword@ios_base@std@@QAEAAPAXH@Z */
4436 /* ?pword@ios_base@std@@QEAAAEAPEAXH@Z */
4437 DEFINE_THISCALL_WRAPPER(ios_base_pword, 8)
4438 void** __thiscall ios_base_pword(ios_base *this, int index)
4440 TRACE("(%p %d)\n", this, index);
4441 return &ios_base_Findarr(this, index)->ptr_val;
4444 /* ?register_callback@ios_base@std@@QAEXP6AXW4event@12@AAV12@H@ZH@Z */
4445 /* ?register_callback@ios_base@std@@QEAAXP6AXW4event@12@AEAV12@H@ZH@Z */
4446 DEFINE_THISCALL_WRAPPER(ios_base_register_callback, 12)
4447 void __thiscall ios_base_register_callback(ios_base *this, IOS_BASE_event_callback callback, int index)
4449 IOS_BASE_fnarray *event;
4451 TRACE("(%p %p %d)\n", this, callback, index);
4453 event = operator_new(sizeof(IOS_BASE_fnarray));
4454 event->next = this->calls;
4455 event->index = index;
4456 event->event_handler = callback;
4457 this->calls = event;
4460 /* ?clear@ios_base@std@@QAEXH_N@Z */
4461 /* ?clear@ios_base@std@@QEAAXH_N@Z */
4462 DEFINE_THISCALL_WRAPPER(ios_base_clear_reraise, 12)
4463 void __thiscall ios_base_clear_reraise(ios_base *this, IOSB_iostate state, bool reraise)
4465 TRACE("(%p %x %x)\n", this, state, reraise);
4467 this->state = state & IOSTATE_mask;
4468 if(!(this->state & this->except))
4469 return;
4471 if(reraise)
4472 _CxxThrowException(NULL, NULL);
4473 else if(this->state & this->except & IOSTATE_eofbit)
4474 throw_failure("eofbit is set");
4475 else if(this->state & this->except & IOSTATE_failbit)
4476 throw_failure("failbit is set");
4477 else if(this->state & this->except & IOSTATE_badbit)
4478 throw_failure("badbit is set");
4479 else if(this->state & this->except & IOSTATE__Hardfail)
4480 throw_failure("_Hardfail is set");
4483 /* ?clear@ios_base@std@@QAEXH@Z */
4484 /* ?clear@ios_base@std@@QEAAXH@Z */
4485 DEFINE_THISCALL_WRAPPER(ios_base_clear, 8)
4486 void __thiscall ios_base_clear(ios_base *this, IOSB_iostate state)
4488 ios_base_clear_reraise(this, state, FALSE);
4491 /* ?clear@ios_base@std@@QAEXI@Z */
4492 /* ?clear@ios_base@std@@QEAAXI@Z */
4493 DEFINE_THISCALL_WRAPPER(ios_base_clear_unsigned, 8)
4494 void __thiscall ios_base_clear_unsigned(ios_base *this, unsigned int state)
4496 ios_base_clear_reraise(this, (IOSB_iostate)state, FALSE);
4499 /* ?exceptions@ios_base@std@@QAEXH@Z */
4500 /* ?exceptions@ios_base@std@@QEAAXH@Z */
4501 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_set, 8)
4502 void __thiscall ios_base_exceptions_set(ios_base *this, IOSB_iostate state)
4504 TRACE("(%p %x)\n", this, state);
4505 this->except = state & IOSTATE_mask;
4506 ios_base_clear(this, this->state);
4509 /* ?exceptions@ios_base@std@@QAEXI@Z */
4510 /* ?exceptions@ios_base@std@@QEAAXI@Z */
4511 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_set_unsigned, 8)
4512 void __thiscall ios_base_exceptions_set_unsigned(ios_base *this, unsigned int state)
4514 TRACE("(%p %x)\n", this, state);
4515 ios_base_exceptions_set(this, state);
4518 /* ?exceptions@ios_base@std@@QBEHXZ */
4519 /* ?exceptions@ios_base@std@@QEBAHXZ */
4520 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_get, 4)
4521 IOSB_iostate __thiscall ios_base_exceptions_get(ios_base *this)
4523 TRACE("(%p)\n", this);
4524 return this->except;
4527 /* ?copyfmt@ios_base@std@@QAEAAV12@ABV12@@Z */
4528 /* ?copyfmt@ios_base@std@@QEAAAEAV12@AEBV12@@Z */
4529 DEFINE_THISCALL_WRAPPER(ios_base_copyfmt, 8)
4530 ios_base* __thiscall ios_base_copyfmt(ios_base *this, const ios_base *rhs)
4532 TRACE("(%p %p)\n", this, rhs);
4534 if(this != rhs) {
4535 IOS_BASE_iosarray *arr_cur;
4536 IOS_BASE_fnarray *event_cur;
4538 ios_base_Tidy(this);
4540 for(arr_cur=rhs->arr; arr_cur; arr_cur=arr_cur->next) {
4541 if(arr_cur->long_val)
4542 *ios_base_iword(this, arr_cur->index) = arr_cur->long_val;
4543 if(arr_cur->ptr_val)
4544 *ios_base_pword(this, arr_cur->index) = arr_cur->ptr_val;
4546 this->stdstr = rhs->stdstr;
4547 this->fmtfl = rhs->fmtfl;
4548 this->prec = rhs->prec;
4549 this->wide = rhs->wide;
4550 locale_operator_assign(IOS_LOCALE(this), IOS_LOCALE(rhs));
4552 for(event_cur=rhs->calls; event_cur; event_cur=event_cur->next)
4553 ios_base_register_callback(this, event_cur->event_handler, event_cur->index);
4555 ios_base_Callfns(this, EVENT_copyfmt_event);
4556 ios_base_exceptions_set(this, rhs->except);
4559 return this;
4562 /* ??4ios_base@std@@QAEAAV01@ABV01@@Z */
4563 /* ??4ios_base@std@@QEAAAEAV01@AEBV01@@Z */
4564 DEFINE_THISCALL_WRAPPER(ios_base_assign, 8)
4565 ios_base* __thiscall ios_base_assign(ios_base *this, const ios_base *right)
4567 TRACE("(%p %p)\n", this, right);
4569 if(this != right) {
4570 this->state = right->state;
4571 ios_base_copyfmt(this, right);
4574 return this;
4577 /* ?fail@ios_base@std@@QBE_NXZ */
4578 /* ?fail@ios_base@std@@QEBA_NXZ */
4579 DEFINE_THISCALL_WRAPPER(ios_base_fail, 4)
4580 bool __thiscall ios_base_fail(const ios_base *this)
4582 TRACE("(%p)\n", this);
4583 return (this->state & (IOSTATE_failbit|IOSTATE_badbit)) != 0;
4586 /* ??7ios_base@std@@QBE_NXZ */
4587 /* ??7ios_base@std@@QEBA_NXZ */
4588 DEFINE_THISCALL_WRAPPER(ios_base_op_succ, 4)
4589 bool __thiscall ios_base_op_succ(const ios_base *this)
4591 TRACE("(%p)\n", this);
4592 return ios_base_fail(this);
4595 /* ??Bios_base@std@@QBEPAXXZ */
4596 /* ??Bios_base@std@@QEBAPEAXXZ */
4597 DEFINE_THISCALL_WRAPPER(ios_base_op_fail, 4)
4598 void* __thiscall ios_base_op_fail(const ios_base *this)
4600 TRACE("(%p)\n", this);
4601 return ios_base_fail(this) ? NULL : (void*)this;
4604 /* ??Bios_base@std@@QBA_NXZ */
4605 /* ??Bios_base@std@@QBE_NXZ */
4606 /* ??Bios_base@std@@QEBA_NXZ */
4607 DEFINE_THISCALL_WRAPPER(ios_base_operator_bool, 4)
4608 bool __thiscall ios_base_operator_bool(const ios_base *this)
4610 TRACE("(%p)\n", this);
4611 return (this->state & (IOSTATE_failbit|IOSTATE_badbit)) == 0;
4614 /* ?_Addstd@ios_base@std@@SAXPAV12@@Z */
4615 /* ?_Addstd@ios_base@std@@SAXPEAV12@@Z */
4616 void __cdecl ios_base_Addstd(ios_base *add)
4618 FIXME("(%p) stub\n", add);
4621 /* ?_Index_func@ios_base@std@@CAAAHXZ */
4622 /* ?_Index_func@ios_base@std@@CAAEAHXZ */
4623 int* __cdecl ios_base_Index_func(void)
4625 TRACE("\n");
4626 return &ios_base_Index;
4629 /* ?_Init@ios_base@std@@IAEXXZ */
4630 /* ?_Init@ios_base@std@@IEAAXXZ */
4631 DEFINE_THISCALL_WRAPPER(ios_base__Init, 4)
4632 void __thiscall ios_base__Init(ios_base *this)
4634 TRACE("(%p)\n", this);
4636 this->stdstr = 0;
4637 this->state = this->except = IOSTATE_goodbit;
4638 this->fmtfl = FMTFLAG_skipws | FMTFLAG_dec;
4639 this->prec = 6;
4640 this->wide = 0;
4641 this->arr = NULL;
4642 this->calls = NULL;
4643 locale_ctor(IOS_LOCALE(this));
4646 /* ?_Sync_func@ios_base@std@@CAAA_NXZ */
4647 /* ?_Sync_func@ios_base@std@@CAAEA_NXZ */
4648 bool* __cdecl ios_base_Sync_func(void)
4650 TRACE("\n");
4651 return &ios_base_Sync;
4654 /* ?bad@ios_base@std@@QBE_NXZ */
4655 /* ?bad@ios_base@std@@QEBA_NXZ */
4656 DEFINE_THISCALL_WRAPPER(ios_base_bad, 4)
4657 bool __thiscall ios_base_bad(const ios_base *this)
4659 TRACE("(%p)\n", this);
4660 return (this->state & IOSTATE_badbit) != 0;
4663 /* ?eof@ios_base@std@@QBE_NXZ */
4664 /* ?eof@ios_base@std@@QEBA_NXZ */
4665 DEFINE_THISCALL_WRAPPER(ios_base_eof, 4)
4666 bool __thiscall ios_base_eof(const ios_base *this)
4668 TRACE("(%p)\n", this);
4669 return (this->state & IOSTATE_eofbit) != 0;
4672 /* ?flags@ios_base@std@@QAEHH@Z */
4673 /* ?flags@ios_base@std@@QEAAHH@Z */
4674 DEFINE_THISCALL_WRAPPER(ios_base_flags_set, 8)
4675 IOSB_fmtflags __thiscall ios_base_flags_set(ios_base *this, IOSB_fmtflags flags)
4677 IOSB_fmtflags ret = this->fmtfl;
4679 TRACE("(%p %x)\n", this, flags);
4681 this->fmtfl = flags & FMTFLAG_mask;
4682 return ret;
4685 /* ?flags@ios_base@std@@QBEHXZ */
4686 /* ?flags@ios_base@std@@QEBAHXZ */
4687 DEFINE_THISCALL_WRAPPER(ios_base_flags_get, 4)
4688 IOSB_fmtflags __thiscall ios_base_flags_get(const ios_base *this)
4690 TRACE("(%p)\n", this);
4691 return this->fmtfl;
4694 /* ?getloc@ios_base@std@@QBE?AVlocale@2@XZ */
4695 /* ?getloc@ios_base@std@@QEBA?AVlocale@2@XZ */
4696 DEFINE_THISCALL_WRAPPER(ios_base_getloc, 8)
4697 locale* __thiscall ios_base_getloc(const ios_base *this, locale *ret)
4699 TRACE("(%p)\n", this);
4700 return locale_copy_ctor(ret, IOS_LOCALE(this));
4703 /* ?good@ios_base@std@@QBE_NXZ */
4704 /* ?good@ios_base@std@@QEBA_NXZ */
4705 DEFINE_THISCALL_WRAPPER(ios_base_good, 4)
4706 bool __thiscall ios_base_good(const ios_base *this)
4708 TRACE("(%p)\n", this);
4709 return this->state == IOSTATE_goodbit;
4712 /* ?imbue@ios_base@std@@QAE?AVlocale@2@ABV32@@Z */
4713 /* ?imbue@ios_base@std@@QEAA?AVlocale@2@AEBV32@@Z */
4714 DEFINE_THISCALL_WRAPPER(ios_base_imbue, 12)
4715 locale* __thiscall ios_base_imbue(ios_base *this, locale *ret, const locale *loc)
4717 TRACE("(%p %p)\n", this, loc);
4718 *ret = *IOS_LOCALE(this);
4719 locale_copy_ctor(IOS_LOCALE(this), loc);
4720 return ret;
4723 /* ?precision@ios_base@std@@QAEHH@Z */
4724 /* ?precision@ios_base@std@@QEAA_J_J@Z */
4725 DEFINE_THISCALL_WRAPPER(ios_base_precision_set, 8)
4726 streamsize __thiscall ios_base_precision_set(ios_base *this, streamsize precision)
4728 streamsize ret = this->prec;
4730 TRACE("(%p %Id)\n", this, precision);
4732 this->prec = precision;
4733 return ret;
4736 /* ?precision@ios_base@std@@QBEHXZ */
4737 /* ?precision@ios_base@std@@QEBA_JXZ */
4738 DEFINE_THISCALL_WRAPPER(ios_base_precision_get, 4)
4739 streamsize __thiscall ios_base_precision_get(const ios_base *this)
4741 TRACE("(%p)\n", this);
4742 return this->prec;
4745 /* ?rdstate@ios_base@std@@QBEHXZ */
4746 /* ?rdstate@ios_base@std@@QEBAHXZ */
4747 DEFINE_THISCALL_WRAPPER(ios_base_rdstate, 4)
4748 IOSB_iostate __thiscall ios_base_rdstate(const ios_base *this)
4750 TRACE("(%p)\n", this);
4751 return this->state;
4754 /* ?setf@ios_base@std@@QAEHHH@Z */
4755 /* ?setf@ios_base@std@@QEAAHHH@Z */
4756 DEFINE_THISCALL_WRAPPER(ios_base_setf_mask, 12)
4757 IOSB_fmtflags __thiscall ios_base_setf_mask(ios_base *this, IOSB_fmtflags flags, IOSB_fmtflags mask)
4759 IOSB_fmtflags ret = this->fmtfl;
4761 TRACE("(%p %x %x)\n", this, flags, mask);
4763 this->fmtfl = (this->fmtfl & (~mask)) | (flags & mask & FMTFLAG_mask);
4764 return ret;
4767 /* ?setf@ios_base@std@@QAEHH@Z */
4768 /* ?setf@ios_base@std@@QEAAHH@Z */
4769 DEFINE_THISCALL_WRAPPER(ios_base_setf, 8)
4770 IOSB_fmtflags __thiscall ios_base_setf(ios_base *this, IOSB_fmtflags flags)
4772 IOSB_fmtflags ret = this->fmtfl;
4774 TRACE("(%p %x)\n", this, flags);
4776 this->fmtfl |= flags & FMTFLAG_mask;
4777 return ret;
4780 /* ?setstate@ios_base@std@@QAEXH_N@Z */
4781 /* ?setstate@ios_base@std@@QEAAXH_N@Z */
4782 DEFINE_THISCALL_WRAPPER(ios_base_setstate_reraise, 12)
4783 void __thiscall ios_base_setstate_reraise(ios_base *this, IOSB_iostate state, bool reraise)
4785 TRACE("(%p %x %x)\n", this, state, reraise);
4787 if(state != IOSTATE_goodbit)
4788 ios_base_clear_reraise(this, this->state | state, reraise);
4791 /* ?setstate@ios_base@std@@QAEXH@Z */
4792 /* ?setstate@ios_base@std@@QEAAXH@Z */
4793 DEFINE_THISCALL_WRAPPER(ios_base_setstate, 8)
4794 void __thiscall ios_base_setstate(ios_base *this, IOSB_iostate state)
4796 ios_base_setstate_reraise(this, state, FALSE);
4799 /* ?setstate@ios_base@std@@QAEXI@Z */
4800 /* ?setstate@ios_base@std@@QEAAXI@Z */
4801 DEFINE_THISCALL_WRAPPER(ios_base_setstate_unsigned, 8)
4802 void __thiscall ios_base_setstate_unsigned(ios_base *this, unsigned int state)
4804 ios_base_setstate_reraise(this, (IOSB_iostate)state, FALSE);
4807 /* ?sync_with_stdio@ios_base@std@@SA_N_N@Z */
4808 bool __cdecl ios_base_sync_with_stdio(bool sync)
4810 _Lockit lock;
4811 bool ret;
4813 TRACE("(%x)\n", sync);
4815 _Lockit_ctor_locktype(&lock, _LOCK_STREAM);
4816 ret = ios_base_Sync;
4817 ios_base_Sync = sync;
4818 _Lockit_dtor(&lock);
4819 return ret;
4822 /* ?unsetf@ios_base@std@@QAEXH@Z */
4823 /* ?unsetf@ios_base@std@@QEAAXH@Z */
4824 DEFINE_THISCALL_WRAPPER(ios_base_unsetf, 8)
4825 void __thiscall ios_base_unsetf(ios_base *this, IOSB_fmtflags flags)
4827 TRACE("(%p %x)\n", this, flags);
4828 this->fmtfl &= ~flags;
4831 /* ?width@ios_base@std@@QAEHH@Z */
4832 /* ?width@ios_base@std@@QEAA_J_J@Z */
4833 DEFINE_THISCALL_WRAPPER(ios_base_width_set, 8)
4834 streamsize __thiscall ios_base_width_set(ios_base *this, streamsize width)
4836 streamsize ret = this->wide;
4838 TRACE("(%p %Id)\n", this, width);
4840 this->wide = width;
4841 return ret;
4844 /* ?width@ios_base@std@@QBEHXZ */
4845 /* ?width@ios_base@std@@QEBA_JXZ */
4846 DEFINE_THISCALL_WRAPPER(ios_base_width_get, 4)
4847 streamsize __thiscall ios_base_width_get(ios_base *this)
4849 TRACE("(%p)\n", this);
4850 return this->wide;
4853 /* ?xalloc@ios_base@std@@SAHXZ */
4854 int __cdecl ios_base_xalloc(void)
4856 _Lockit lock;
4857 int ret;
4859 TRACE("\n");
4861 _Lockit_ctor_locktype(&lock, _LOCK_STREAM);
4862 ret = ios_base_Index++;
4863 _Lockit_dtor(&lock);
4864 return ret;
4867 /* ?swap@ios_base@std@@QAEXAAV12@@Z */
4868 /* ?swap@ios_base@std@@QEAAXAEAV12@@Z */
4869 DEFINE_THISCALL_WRAPPER(ios_base_swap, 8)
4870 void __thiscall ios_base_swap(ios_base *this, ios_base *r)
4872 ios_base tmp;
4874 TRACE("(%p %p)\n", this, r);
4876 if(this == r)
4877 return;
4879 tmp = *this;
4880 *this = *r;
4881 this->vtable = tmp.vtable;
4882 tmp.vtable = r->vtable;
4883 *r = tmp;
4886 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ */
4887 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ */
4888 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor, 4)
4889 basic_ios_char* __thiscall basic_ios_char_ctor(basic_ios_char *this)
4891 TRACE("(%p)\n", this);
4893 ios_base_ctor(&this->base);
4894 this->base.vtable = &basic_ios_char_vtable;
4895 return this;
4898 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
4899 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
4900 DEFINE_THISCALL_WRAPPER(basic_ios_char_init, 12)
4901 void __thiscall basic_ios_char_init(basic_ios_char *this, basic_streambuf_char *streambuf, bool isstd)
4903 TRACE("(%p %p %x)\n", this, streambuf, isstd);
4904 ios_base__Init(&this->base);
4905 this->strbuf = streambuf;
4906 this->stream = NULL;
4907 this->fillch = ' ';
4909 if(!streambuf)
4910 ios_base_setstate(&this->base, IOSTATE_badbit);
4912 if(isstd)
4913 FIXME("standard streams not handled yet\n");
4916 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
4917 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
4918 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor_streambuf, 8)
4919 basic_ios_char* __thiscall basic_ios_char_ctor_streambuf(basic_ios_char *this, basic_streambuf_char *strbuf)
4921 TRACE("(%p %p)\n", this, strbuf);
4923 basic_ios_char_ctor(this);
4924 basic_ios_char_init(this, strbuf, FALSE);
4925 return this;
4928 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ */
4929 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ */
4930 DEFINE_THISCALL_WRAPPER(basic_ios_char_dtor, 4)
4931 void __thiscall basic_ios_char_dtor(basic_ios_char *this)
4933 TRACE("(%p)\n", this);
4934 ios_base_dtor(&this->base);
4937 DEFINE_THISCALL_WRAPPER(basic_ios_char_vector_dtor, 8)
4938 basic_ios_char* __thiscall basic_ios_char_vector_dtor(basic_ios_char *this, unsigned int flags)
4940 TRACE("(%p %x)\n", this, flags);
4941 if(flags & 2) {
4942 /* we have an array, with the number of elements stored before the first object */
4943 INT_PTR i, *ptr = (INT_PTR *)this-1;
4945 for(i=*ptr-1; i>=0; i--)
4946 basic_ios_char_dtor(this+i);
4947 operator_delete(ptr);
4948 } else {
4949 basic_ios_char_dtor(this);
4950 if(flags & 1)
4951 operator_delete(this);
4954 return this;
4957 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
4958 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
4959 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear_reraise, 12)
4960 void __thiscall basic_ios_char_clear_reraise(basic_ios_char *this, IOSB_iostate state, bool reraise)
4962 TRACE("(%p %x %x)\n", this, state, reraise);
4963 ios_base_clear_reraise(&this->base, state | (this->strbuf ? IOSTATE_goodbit : IOSTATE_badbit), reraise);
4966 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
4967 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
4968 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear, 8)
4969 void __thiscall basic_ios_char_clear(basic_ios_char *this, unsigned int state)
4971 basic_ios_char_clear_reraise(this, (IOSB_iostate)state, FALSE);
4974 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEAAV12@ABV12@@Z */
4975 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEBV12@@Z */
4976 DEFINE_THISCALL_WRAPPER(basic_ios_char_copyfmt, 8)
4977 basic_ios_char* __thiscall basic_ios_char_copyfmt(basic_ios_char *this, basic_ios_char *copy)
4979 TRACE("(%p %p)\n", this, copy);
4980 if(this == copy)
4981 return this;
4983 this->stream = copy->stream;
4984 this->fillch = copy->fillch;
4985 ios_base_copyfmt(&this->base, &copy->base);
4986 return this;
4989 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEDD@Z */
4990 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z */
4991 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_set, 8)
4992 char __thiscall basic_ios_char_fill_set(basic_ios_char *this, char fill)
4994 char ret = this->fillch;
4996 TRACE("(%p %c)\n", this, fill);
4998 this->fillch = fill;
4999 return ret;
5002 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ */
5003 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ */
5004 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_get, 4)
5005 char __thiscall basic_ios_char_fill_get(basic_ios_char *this)
5007 TRACE("(%p)\n", this);
5008 return this->fillch;
5011 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
5012 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
5013 DEFINE_THISCALL_WRAPPER(basic_ios_char_imbue, 12)
5014 locale *__thiscall basic_ios_char_imbue(basic_ios_char *this, locale *ret, const locale *loc)
5016 TRACE("(%p %p %p)\n", this, ret, loc);
5018 if(this->strbuf) {
5019 basic_streambuf_char_pubimbue(this->strbuf, ret, loc);
5020 locale_dtor(ret);
5023 return ios_base_imbue(&this->base, ret, loc);
5026 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDDD@Z */
5027 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADDD@Z */
5028 DEFINE_THISCALL_WRAPPER(basic_ios_char_narrow, 12)
5029 char __thiscall basic_ios_char_narrow(basic_ios_char *this, char ch, char def)
5031 TRACE("(%p %c %c)\n", this, ch, def);
5032 return ctype_char_narrow_ch(ctype_char_use_facet(IOS_LOCALE(this->strbuf)), ch, def);
5035 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PAV32@@Z */
5036 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAV32@@Z */
5037 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_set, 8)
5038 basic_streambuf_char* __thiscall basic_ios_char_rdbuf_set(basic_ios_char *this, basic_streambuf_char *streambuf)
5040 basic_streambuf_char *ret = this->strbuf;
5042 TRACE("(%p %p)\n", this, streambuf);
5044 this->strbuf = streambuf;
5045 basic_ios_char_clear(this, IOSTATE_goodbit);
5046 return ret;
5049 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
5050 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
5051 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_get, 4)
5052 basic_streambuf_char* __thiscall basic_ios_char_rdbuf_get(const basic_ios_char *this)
5054 TRACE("(%p)\n", this);
5055 return this->strbuf;
5058 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
5059 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
5060 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate_reraise, 12)
5061 void __thiscall basic_ios_char_setstate_reraise(basic_ios_char *this, IOSB_iostate state, bool reraise)
5063 TRACE("(%p %x %x)\n", this, state, reraise);
5065 if(state != IOSTATE_goodbit)
5066 basic_ios_char_clear_reraise(this, this->base.state | state, reraise);
5069 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
5070 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
5071 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate, 8)
5072 void __thiscall basic_ios_char_setstate(basic_ios_char *this, unsigned int state)
5074 basic_ios_char_setstate_reraise(this, (IOSB_iostate)state, FALSE);
5077 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@PAV32@@Z */
5078 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@PEAV32@@Z */
5079 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_set, 8)
5080 basic_ostream_char* __thiscall basic_ios_char_tie_set(basic_ios_char *this, basic_ostream_char *ostream)
5082 basic_ostream_char *ret = this->stream;
5084 TRACE("(%p %p)\n", this, ostream);
5086 this->stream = ostream;
5087 return ret;
5090 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
5091 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
5092 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_get, 4)
5093 basic_ostream_char* __thiscall basic_ios_char_tie_get(const basic_ios_char *this)
5095 TRACE("(%p)\n", this);
5096 return this->stream;
5099 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z */
5100 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z */
5101 DEFINE_THISCALL_WRAPPER(basic_ios_char_widen, 8)
5102 char __thiscall basic_ios_char_widen(basic_ios_char *this, char ch)
5104 TRACE("(%p %c)\n", this, ch);
5105 return ctype_char_widen_ch(ctype_char_use_facet(IOS_LOCALE(this->strbuf)), ch);
5108 /* ?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXAAV12@@Z */
5109 /* ?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z */
5110 DEFINE_THISCALL_WRAPPER(basic_ios_char_swap, 8)
5111 void __thiscall basic_ios_char_swap(basic_ios_char *this, basic_ios_char *r)
5113 void *swap_ptr;
5115 TRACE("(%p %p)\n", this, r);
5117 if(this == r)
5118 return;
5120 ios_base_swap(&this->base, &r->base);
5121 swap_ptr = this->stream;
5122 this->stream = r->stream;
5123 r->stream = swap_ptr;
5124 this->fillch ^= r->fillch;
5125 r->fillch ^= this->fillch;
5126 this->fillch ^= r->fillch;
5129 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
5130 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
5131 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_ctor, 4)
5132 basic_ios_wchar* __thiscall basic_ios_wchar_ctor(basic_ios_wchar *this)
5134 TRACE("(%p)\n", this);
5136 ios_base_ctor(&this->base);
5137 this->base.vtable = &basic_ios_wchar_vtable;
5138 return this;
5141 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@IAE@XZ */
5142 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@IEAA@XZ */
5143 DEFINE_THISCALL_WRAPPER(basic_ios_short_ctor, 4)
5144 basic_ios_wchar* __thiscall basic_ios_short_ctor(basic_ios_wchar *this)
5146 basic_ios_wchar_ctor(this);
5147 this->base.vtable = &basic_ios_short_vtable;
5148 return this;
5151 /* ?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAEXPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z */
5152 /* ?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z */
5153 /* ?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IAEXPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z */
5154 /* ?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z */
5155 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_init, 12)
5156 void __thiscall basic_ios_wchar_init(basic_ios_wchar *this, basic_streambuf_wchar *streambuf, bool isstd)
5158 TRACE("(%p %p %x)\n", this, streambuf, isstd);
5159 ios_base__Init(&this->base);
5160 this->strbuf = streambuf;
5161 this->stream = NULL;
5162 this->fillch = ' ';
5164 if(!streambuf)
5165 ios_base_setstate(&this->base, IOSTATE_badbit);
5167 if(isstd)
5168 FIXME("standard streams not handled yet\n");
5171 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
5172 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
5173 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_ctor_streambuf, 8)
5174 basic_ios_wchar* __thiscall basic_ios_wchar_ctor_streambuf(basic_ios_wchar *this, basic_streambuf_wchar *strbuf)
5176 TRACE("(%p %p)\n", this, strbuf);
5178 basic_ios_wchar_ctor(this);
5179 basic_ios_wchar_init(this, strbuf, FALSE);
5180 return this;
5183 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
5184 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
5185 DEFINE_THISCALL_WRAPPER(basic_ios_short_ctor_streambuf, 8)
5186 basic_ios_wchar* __thiscall basic_ios_short_ctor_streambuf(basic_ios_wchar *this, basic_streambuf_wchar *strbuf)
5188 basic_ios_wchar_ctor_streambuf(this, strbuf);
5189 this->base.vtable = &basic_ios_short_vtable;
5190 return this;
5193 /* ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
5194 /* ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
5195 /* ??1?$basic_ios@GU?$char_traits@G@std@@@std@@UAE@XZ */
5196 /* ??1?$basic_ios@GU?$char_traits@G@std@@@std@@UEAA@XZ */
5197 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_dtor, 4)
5198 void __thiscall basic_ios_wchar_dtor(basic_ios_wchar *this)
5200 TRACE("(%p)\n", this);
5201 ios_base_dtor(&this->base);
5204 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_vector_dtor, 8)
5205 basic_ios_wchar* __thiscall basic_ios_wchar_vector_dtor(basic_ios_wchar *this, unsigned int flags)
5207 TRACE("(%p %x)\n", this, flags);
5208 if(flags & 2) {
5209 /* we have an array, with the number of elements stored before the first object */
5210 INT_PTR i, *ptr = (INT_PTR *)this-1;
5212 for(i=*ptr-1; i>=0; i--)
5213 basic_ios_wchar_dtor(this+i);
5214 operator_delete(ptr);
5215 } else {
5216 basic_ios_wchar_dtor(this);
5217 if(flags & 1)
5218 operator_delete(this);
5221 return this;
5224 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z */
5225 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z */
5226 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXH_N@Z */
5227 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z */
5228 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_clear_reraise, 12)
5229 void __thiscall basic_ios_wchar_clear_reraise(basic_ios_wchar *this, IOSB_iostate state, bool reraise)
5231 TRACE("(%p %x %x)\n", this, state, reraise);
5232 ios_base_clear_reraise(&this->base, state | (this->strbuf ? IOSTATE_goodbit : IOSTATE_badbit), reraise);
5235 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXI@Z */
5236 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z */
5237 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXI@Z */
5238 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z */
5239 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_clear, 8)
5240 void __thiscall basic_ios_wchar_clear(basic_ios_wchar *this, unsigned int state)
5242 basic_ios_wchar_clear_reraise(this, (IOSB_iostate)state, FALSE);
5245 /* ?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEAAV12@ABV12@@Z */
5246 /* ?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEBV12@@Z */
5247 /* ?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEAAV12@ABV12@@Z */
5248 /* ?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEBV12@@Z */
5249 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_copyfmt, 8)
5250 basic_ios_wchar* __thiscall basic_ios_wchar_copyfmt(basic_ios_wchar *this, basic_ios_wchar *copy)
5252 TRACE("(%p %p)\n", this, copy);
5253 if(this == copy)
5254 return this;
5256 this->stream = copy->stream;
5257 this->fillch = copy->fillch;
5258 ios_base_copyfmt(&this->base, &copy->base);
5259 return this;
5262 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE_W_W@Z */
5263 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA_W_W@Z */
5264 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEGG@Z */
5265 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAGG@Z */
5266 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_fill_set, 8)
5267 wchar_t __thiscall basic_ios_wchar_fill_set(basic_ios_wchar *this, wchar_t fill)
5269 wchar_t ret = this->fillch;
5271 TRACE("(%p %c)\n", this, fill);
5273 this->fillch = fill;
5274 return ret;
5277 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WXZ */
5278 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WXZ */
5279 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEGXZ */
5280 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGXZ */
5281 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_fill_get, 4)
5282 wchar_t __thiscall basic_ios_wchar_fill_get(basic_ios_wchar *this)
5284 TRACE("(%p)\n", this);
5285 return this->fillch;
5288 /* ?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
5289 /* ?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
5290 /* ?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
5291 /* ?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
5292 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_imbue, 12)
5293 locale *__thiscall basic_ios_wchar_imbue(basic_ios_wchar *this, locale *ret, const locale *loc)
5295 TRACE("(%p %p %p)\n", this, ret, loc);
5297 if(this->strbuf) {
5298 basic_streambuf_wchar_pubimbue(this->strbuf, ret, loc);
5299 locale_dtor(ret);
5302 return ios_base_imbue(&this->base, ret, loc);
5305 /* ?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBED_WD@Z */
5306 /* ?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAD_WD@Z */
5307 /* ?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEDGD@Z */
5308 /* ?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBADGD@Z */
5309 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_narrow, 12)
5310 char __thiscall basic_ios_wchar_narrow(basic_ios_wchar *this, wchar_t ch, char def)
5312 TRACE("(%p %c %c)\n", this, ch, def);
5313 return ctype_wchar_narrow_ch(ctype_wchar_use_facet(IOS_LOCALE(this->strbuf)), ch, def);
5316 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PAV32@@Z */
5317 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEAV32@@Z */
5318 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PAV32@@Z */
5319 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAV32@@Z */
5320 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_rdbuf_set, 8)
5321 basic_streambuf_wchar* __thiscall basic_ios_wchar_rdbuf_set(basic_ios_wchar *this, basic_streambuf_wchar *streambuf)
5323 basic_streambuf_wchar *ret = this->strbuf;
5325 TRACE("(%p %p)\n", this, streambuf);
5327 this->strbuf = streambuf;
5328 basic_ios_wchar_clear(this, IOSTATE_goodbit);
5329 return ret;
5332 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ */
5333 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ */
5334 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ */
5335 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ */
5336 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_rdbuf_get, 4)
5337 basic_streambuf_wchar* __thiscall basic_ios_wchar_rdbuf_get(const basic_ios_wchar *this)
5339 TRACE("(%p)\n", this);
5340 return this->strbuf;
5343 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z */
5344 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z */
5345 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXH_N@Z */
5346 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z */
5347 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_setstate_reraise, 12)
5348 void __thiscall basic_ios_wchar_setstate_reraise(basic_ios_wchar *this, IOSB_iostate state, bool reraise)
5350 TRACE("(%p %x %x)\n", this, state, reraise);
5352 if(state != IOSTATE_goodbit)
5353 basic_ios_wchar_clear_reraise(this, this->base.state | state, reraise);
5356 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXI@Z */
5357 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z */
5358 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXI@Z */
5359 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z */
5360 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_setstate, 8)
5361 void __thiscall basic_ios_wchar_setstate(basic_ios_wchar *this, IOSB_iostate state)
5363 basic_ios_wchar_setstate_reraise(this, state, FALSE);
5366 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PAV32@@Z */
5367 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PEAV32@@Z */
5368 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEPAV?$basic_ostream@GU?$char_traits@G@std@@@2@PAV32@@Z */
5369 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@PEAV32@@Z */
5370 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_tie_set, 8)
5371 basic_ostream_wchar* __thiscall basic_ios_wchar_tie_set(basic_ios_wchar *this, basic_ostream_wchar *ostream)
5373 basic_ostream_wchar *ret = this->stream;
5375 TRACE("(%p %p)\n", this, ostream);
5377 this->stream = ostream;
5378 return ret;
5381 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ */
5382 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ */
5383 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ */
5384 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ */
5385 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_tie_get, 4)
5386 basic_ostream_wchar* __thiscall basic_ios_wchar_tie_get(const basic_ios_wchar *this)
5388 TRACE("(%p)\n", this);
5389 return this->stream;
5392 /* ?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WD@Z */
5393 /* ?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WD@Z */
5394 /* ?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEGD@Z */
5395 /* ?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGD@Z */
5396 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_widen, 8)
5397 wchar_t __thiscall basic_ios_wchar_widen(basic_ios_wchar *this, char ch)
5399 TRACE("(%p %c)\n", this, ch);
5400 return ctype_wchar_widen_ch(ctype_wchar_use_facet(IOS_LOCALE(this->strbuf)), ch);
5403 /* ?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXAAV12@@Z */
5404 /* ?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z */
5405 /* ?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXAAV12@@Z */
5406 /* ?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z */
5407 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_swap, 8)
5408 void __thiscall basic_ios_wchar_swap(basic_ios_wchar *this, basic_ios_wchar *r)
5410 void *swap_ptr;
5412 TRACE("(%p %p)\n", this, r);
5414 if(this == r)
5415 return;
5417 ios_base_swap(&this->base, &r->base);
5418 swap_ptr = this->stream;
5419 this->stream = r->stream;
5420 r->stream = swap_ptr;
5421 this->fillch ^= r->fillch;
5422 r->fillch ^= this->fillch;
5423 this->fillch ^= r->fillch;
5426 /* Caution: basic_ostream uses virtual inheritance.
5427 * All constructors have additional parameter that says if base class should be initialized.
5428 * Base class needs to be accessed using vbtable.
5430 static inline basic_ios_char* basic_ostream_char_get_basic_ios(basic_ostream_char *this)
5432 return (basic_ios_char*)((char*)this+this->vbtable[1]);
5435 static inline basic_ios_char* basic_ostream_char_to_basic_ios(basic_ostream_char *ptr)
5437 return (basic_ios_char*)((char*)ptr+basic_ostream_char_vbtable[1]);
5440 static inline basic_ostream_char* basic_ostream_char_from_basic_ios(basic_ios_char *ptr)
5442 return (basic_ostream_char*)((char*)ptr-basic_ostream_char_vbtable[1]);
5445 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
5446 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
5447 DEFINE_THISCALL_WRAPPER(basic_ostream_char_ctor, 20)
5448 basic_ostream_char* __thiscall basic_ostream_char_ctor(basic_ostream_char *this,
5449 basic_streambuf_char *strbuf, bool isstd, bool init, bool virt_init)
5451 basic_ios_char *base;
5453 TRACE("(%p %p %d %d %d)\n", this, strbuf, isstd, init, virt_init);
5455 if(virt_init) {
5456 this->vbtable = basic_ostream_char_vbtable;
5457 base = basic_ostream_char_get_basic_ios(this);
5458 basic_ios_char_ctor(base);
5459 }else {
5460 base = basic_ostream_char_get_basic_ios(this);
5463 base->base.vtable = &basic_ostream_char_vtable;
5464 if(init)
5465 basic_ios_char_init(base, strbuf, isstd);
5466 return this;
5469 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
5470 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
5471 DEFINE_THISCALL_WRAPPER(basic_ostream_char_ctor_uninitialized, 12)
5472 basic_ostream_char* __thiscall basic_ostream_char_ctor_uninitialized(basic_ostream_char *this,
5473 int uninitialized, bool virt_init)
5475 basic_ios_char *base;
5477 TRACE("(%p %d)\n", this, uninitialized);
5479 if(virt_init) {
5480 this->vbtable = basic_ostream_char_vbtable;
5481 base = basic_ostream_char_get_basic_ios(this);
5482 basic_ios_char_ctor(base);
5483 }else {
5484 base = basic_ostream_char_get_basic_ios(this);
5487 base->base.vtable = &basic_ostream_char_vtable;
5488 ios_base_Addstd(&base->base);
5489 return this;
5492 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
5493 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
5494 DEFINE_THISCALL_WRAPPER(basic_ostream_char_dtor, 4)
5495 void __thiscall basic_ostream_char_dtor(basic_ios_char *base)
5497 basic_ostream_char *this = basic_ostream_char_from_basic_ios(base);
5499 /* don't destroy virtual base here */
5500 TRACE("(%p)\n", this);
5503 /* ??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
5504 /* ??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
5505 DEFINE_THISCALL_WRAPPER(basic_ostream_char_vbase_dtor, 4)
5506 void __thiscall basic_ostream_char_vbase_dtor(basic_ostream_char *this)
5508 TRACE("(%p)\n", this);
5509 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(this));
5510 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(this));
5513 DEFINE_THISCALL_WRAPPER(basic_ostream_char_vector_dtor, 8)
5514 basic_ostream_char* __thiscall basic_ostream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
5516 basic_ostream_char *this = basic_ostream_char_from_basic_ios(base);
5518 TRACE("(%p %x)\n", this, flags);
5520 if(flags & 2) {
5521 /* we have an array, with the number of elements stored before the first object */
5522 INT_PTR i, *ptr = (INT_PTR *)this-1;
5524 for(i=*ptr-1; i>=0; i--)
5525 basic_ostream_char_vbase_dtor(this+i);
5526 operator_delete(ptr);
5527 } else {
5528 basic_ostream_char_vbase_dtor(this);
5529 if(flags & 1)
5530 operator_delete(this);
5533 return this;
5536 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ */
5537 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ */
5538 DEFINE_THISCALL_WRAPPER(basic_ostream_char_flush, 4)
5539 basic_ostream_char* __thiscall basic_ostream_char_flush(basic_ostream_char *this)
5541 /* this function is not matching C++ specification */
5542 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5544 TRACE("(%p)\n", this);
5546 if(basic_ios_char_rdbuf_get(base) && ios_base_good(&base->base)
5547 && basic_streambuf_char_pubsync(basic_ios_char_rdbuf_get(base))==-1)
5548 basic_ios_char_setstate(base, IOSTATE_badbit);
5549 return this;
5552 /* ?flush@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
5553 /* ?flush@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
5554 basic_ostream_char* __cdecl flush_ostream_char(basic_ostream_char *ostream)
5556 return basic_ostream_char_flush(ostream);
5559 /* ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
5560 /* ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
5561 DEFINE_THISCALL_WRAPPER(basic_ostream_char__Osfx, 4)
5562 void __thiscall basic_ostream_char__Osfx(basic_ostream_char *this)
5564 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5566 TRACE("(%p)\n", this);
5568 if(base->base.fmtfl & FMTFLAG_unitbuf)
5569 basic_ostream_char_flush(this);
5572 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
5573 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
5574 DEFINE_THISCALL_WRAPPER(basic_ostream_char_osfx, 4)
5575 void __thiscall basic_ostream_char_osfx(basic_ostream_char *this)
5577 TRACE("(%p)\n", this);
5578 basic_ostream_char__Osfx(this);
5581 static BOOL basic_ostream_char_sentry_create(basic_ostream_char *ostr)
5583 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
5585 if(basic_ios_char_rdbuf_get(base))
5586 call_basic_streambuf_char__Lock(base->strbuf);
5588 if(ios_base_good(&base->base) && base->stream)
5589 basic_ostream_char_flush(base->stream);
5591 return ios_base_good(&base->base);
5594 static void basic_ostream_char_sentry_destroy(basic_ostream_char *ostr)
5596 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
5598 if(ios_base_good(&base->base) && !__uncaught_exception())
5599 basic_ostream_char_osfx(ostr);
5601 if(basic_ios_char_rdbuf_get(base))
5602 call_basic_streambuf_char__Unlock(base->strbuf);
5605 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE_NXZ */
5606 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA_NXZ */
5607 DEFINE_THISCALL_WRAPPER(basic_ostream_char_opfx, 4)
5608 bool __thiscall basic_ostream_char_opfx(basic_ostream_char *this)
5610 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5612 TRACE("(%p)\n", this);
5614 if(ios_base_good(&base->base) && base->stream)
5615 basic_ostream_char_flush(base->stream);
5616 return ios_base_good(&base->base);
5619 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z */
5620 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z */
5621 DEFINE_THISCALL_WRAPPER(basic_ostream_char_put, 8)
5622 basic_ostream_char* __thiscall basic_ostream_char_put(basic_ostream_char *this, char ch)
5624 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5626 TRACE("(%p %c)\n", this, ch);
5628 if(!basic_ostream_char_sentry_create(this)
5629 || basic_streambuf_char_sputc(base->strbuf, ch)==EOF) {
5630 basic_ostream_char_sentry_destroy(this);
5631 basic_ios_char_setstate(base, IOSTATE_badbit);
5632 return this;
5635 basic_ostream_char_sentry_destroy(this);
5636 return this;
5639 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@JH@Z */
5640 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
5641 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp, 12)
5642 basic_ostream_char* __thiscall basic_ostream_char_seekp(basic_ostream_char *this, streamoff off, int way)
5644 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5646 TRACE("(%p %Id %d)\n", this, off, way);
5648 if(!ios_base_fail(&base->base)) {
5649 fpos_int seek;
5651 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base),
5652 &seek, off, way, OPENMODE_out);
5653 if(seek.off==-1 && seek.pos==0 && seek.state==0)
5654 basic_ios_char_setstate(base, IOSTATE_failbit);
5656 return this;
5659 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
5660 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
5661 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp_fpos, 28)
5662 basic_ostream_char* __thiscall basic_ostream_char_seekp_fpos(basic_ostream_char *this, fpos_int pos)
5664 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5666 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos));
5668 if(!ios_base_fail(&base->base)) {
5669 fpos_int seek;
5671 basic_streambuf_char_pubseekpos(basic_ios_char_rdbuf_get(base),
5672 &seek, pos, OPENMODE_out);
5673 if(seek.off==-1 && seek.pos==0 && seek.state==0)
5674 basic_ios_char_setstate(base, IOSTATE_failbit);
5676 return this;
5679 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
5680 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
5681 DEFINE_THISCALL_WRAPPER(basic_ostream_char_tellp, 8)
5682 fpos_int* __thiscall basic_ostream_char_tellp(basic_ostream_char *this, fpos_int *ret)
5684 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5686 TRACE("(%p)\n", this);
5688 if(!ios_base_fail(&base->base)) {
5689 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base),
5690 ret, 0, SEEKDIR_cur, OPENMODE_out);
5691 }else {
5692 ret->off = -1;
5693 ret->pos = 0;
5694 ret->state = 0;
5696 return ret;
5699 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@PBDH@Z */
5700 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z */
5701 DEFINE_THISCALL_WRAPPER(basic_ostream_char_write, 12)
5702 basic_ostream_char* __thiscall basic_ostream_char_write(basic_ostream_char *this, const char *str, streamsize count)
5704 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5706 TRACE("(%p %s %Id)\n", this, debugstr_a(str), count);
5708 if(!basic_ostream_char_sentry_create(this)
5709 || basic_streambuf_char_sputn(base->strbuf, str, count)!=count) {
5710 basic_ostream_char_sentry_destroy(this);
5711 basic_ios_char_setstate(base, IOSTATE_badbit);
5712 return this;
5715 basic_ostream_char_sentry_destroy(this);
5716 return this;
5719 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@F@Z */
5720 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@F@Z */
5721 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_short, 8)
5722 basic_ostream_char* __thiscall basic_ostream_char_print_short(basic_ostream_char *this, short val)
5724 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5725 int state = IOSTATE_goodbit;
5727 TRACE("(%p %d)\n", this, val);
5729 if(basic_ostream_char_sentry_create(this)) {
5730 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5731 const num_put *numput = num_put_char_use_facet(IOS_LOCALE(strbuf));
5732 ostreambuf_iterator_char dest;
5734 memset(&dest, 0, sizeof(dest));
5735 dest.strbuf = strbuf;
5736 num_put_char_put_long(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base),
5737 (ios_base_flags_get(&base->base) & FMTFLAG_basefield & (FMTFLAG_oct | FMTFLAG_hex))
5738 ? (LONG)((unsigned short)val) : (LONG)val);
5740 basic_ostream_char_sentry_destroy(this);
5742 basic_ios_char_setstate(base, state);
5743 return this;
5746 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@G@Z */
5747 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@G@Z */
5748 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ushort, 8)
5749 basic_ostream_char* __thiscall basic_ostream_char_print_ushort(basic_ostream_char *this, unsigned short val)
5751 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5752 int state = IOSTATE_goodbit;
5754 TRACE("(%p %u)\n", this, val);
5756 if(basic_ostream_char_sentry_create(this)) {
5757 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5758 const num_put *numput = num_put_char_use_facet(IOS_LOCALE(strbuf));
5759 ostreambuf_iterator_char dest;
5761 memset(&dest, 0, sizeof(dest));
5762 dest.strbuf = strbuf;
5763 num_put_char_put_ulong(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5765 basic_ostream_char_sentry_destroy(this);
5767 basic_ios_char_setstate(base, state);
5768 return this;
5771 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@H@Z */
5772 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z */
5773 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@J@Z */
5774 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@J@Z */
5775 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int, 8)
5776 basic_ostream_char* __thiscall basic_ostream_char_print_int(basic_ostream_char *this, int val)
5778 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5779 int state = IOSTATE_goodbit;
5781 TRACE("(%p %d)\n", this, val);
5783 if(basic_ostream_char_sentry_create(this)) {
5784 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5785 const num_put *numput = num_put_char_use_facet(IOS_LOCALE(strbuf));
5786 ostreambuf_iterator_char dest;
5788 memset(&dest, 0, sizeof(dest));
5789 dest.strbuf = strbuf;
5790 num_put_char_put_long(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5792 basic_ostream_char_sentry_destroy(this);
5794 basic_ios_char_setstate(base, state);
5795 return this;
5798 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@I@Z */
5799 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@I@Z */
5800 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@K@Z */
5801 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@K@Z */
5802 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint, 8)
5803 basic_ostream_char* __thiscall basic_ostream_char_print_uint(basic_ostream_char *this, unsigned int val)
5805 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5806 int state = IOSTATE_goodbit;
5808 TRACE("(%p %u)\n", this, val);
5810 if(basic_ostream_char_sentry_create(this)) {
5811 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5812 const num_put *numput = num_put_char_use_facet(IOS_LOCALE(strbuf));
5813 ostreambuf_iterator_char dest;
5815 memset(&dest, 0, sizeof(dest));
5816 dest.strbuf = strbuf;
5817 num_put_char_put_ulong(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5819 basic_ostream_char_sentry_destroy(this);
5821 basic_ios_char_setstate(base, state);
5822 return this;
5825 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@M@Z */
5826 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z */
5827 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_float, 8)
5828 basic_ostream_char* __thiscall basic_ostream_char_print_float(basic_ostream_char *this, float val)
5830 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5831 int state = IOSTATE_goodbit;
5833 TRACE("(%p %f)\n", this, val);
5835 if(basic_ostream_char_sentry_create(this)) {
5836 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5837 const num_put *numput = num_put_char_use_facet(IOS_LOCALE(strbuf));
5838 ostreambuf_iterator_char dest;
5840 memset(&dest, 0, sizeof(dest));
5841 dest.strbuf = strbuf;
5842 num_put_char_put_double(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5844 basic_ostream_char_sentry_destroy(this);
5846 basic_ios_char_setstate(base, state);
5847 return this;
5850 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@N@Z */
5851 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z */
5852 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_double, 12)
5853 basic_ostream_char* __thiscall basic_ostream_char_print_double(basic_ostream_char *this, double val)
5855 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5856 int state = IOSTATE_goodbit;
5858 TRACE("(%p %lf)\n", this, val);
5860 if(basic_ostream_char_sentry_create(this)) {
5861 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5862 const num_put *numput = num_put_char_use_facet(IOS_LOCALE(strbuf));
5863 ostreambuf_iterator_char dest;
5865 memset(&dest, 0, sizeof(dest));
5866 dest.strbuf = strbuf;
5867 num_put_char_put_double(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5869 basic_ostream_char_sentry_destroy(this);
5871 basic_ios_char_setstate(base, state);
5872 return this;
5875 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@O@Z */
5876 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@O@Z */
5877 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ldouble, 12)
5878 basic_ostream_char* __thiscall basic_ostream_char_print_ldouble(basic_ostream_char *this, double val)
5880 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5881 int state = IOSTATE_goodbit;
5883 TRACE("(%p %lf)\n", this, val);
5885 if(basic_ostream_char_sentry_create(this)) {
5886 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5887 const num_put *numput = num_put_char_use_facet(IOS_LOCALE(strbuf));
5888 ostreambuf_iterator_char dest;
5890 memset(&dest, 0, sizeof(dest));
5891 dest.strbuf = strbuf;
5892 num_put_char_put_ldouble(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5894 basic_ostream_char_sentry_destroy(this);
5896 basic_ios_char_setstate(base, state);
5897 return this;
5900 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
5901 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
5902 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_streambuf, 8)
5903 basic_ostream_char* __thiscall basic_ostream_char_print_streambuf(basic_ostream_char *this, basic_streambuf_char *val)
5905 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5906 IOSB_iostate state = IOSTATE_badbit;
5907 int c = '\n';
5909 TRACE("(%p %p)\n", this, val);
5911 if(basic_ostream_char_sentry_create(this)) {
5912 for(c = basic_streambuf_char_sgetc(val); c!=EOF;
5913 c = basic_streambuf_char_snextc(val)) {
5914 state = IOSTATE_goodbit;
5916 if(basic_streambuf_char_sputc(base->strbuf, c) == EOF) {
5917 state = IOSTATE_badbit;
5918 break;
5921 }else {
5922 state = IOSTATE_badbit;
5924 basic_ostream_char_sentry_destroy(this);
5926 ios_base_width_set(&base->base, 0);
5927 basic_ios_char_setstate(base, state);
5928 return this;
5931 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PBX@Z */
5932 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEBX@Z */
5933 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ptr, 8)
5934 basic_ostream_char* __thiscall basic_ostream_char_print_ptr(basic_ostream_char *this, const void *val)
5936 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5937 int state = IOSTATE_goodbit;
5939 TRACE("(%p %p)\n", this, val);
5941 if(basic_ostream_char_sentry_create(this)) {
5942 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5943 const num_put *numput = num_put_char_use_facet(IOS_LOCALE(strbuf));
5944 ostreambuf_iterator_char dest;
5946 memset(&dest, 0, sizeof(dest));
5947 dest.strbuf = strbuf;
5948 num_put_char_put_ptr(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5950 basic_ostream_char_sentry_destroy(this);
5952 basic_ios_char_setstate(base, state);
5953 return this;
5956 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_J@Z */
5957 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_J@Z */
5958 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int64, 12)
5959 basic_ostream_char* __thiscall basic_ostream_char_print_int64(basic_ostream_char *this, __int64 val)
5961 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5962 int state = IOSTATE_goodbit;
5964 TRACE("(%p)\n", this);
5966 if(basic_ostream_char_sentry_create(this)) {
5967 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5968 const num_put *numput = num_put_char_use_facet(IOS_LOCALE(strbuf));
5969 ostreambuf_iterator_char dest;
5971 memset(&dest, 0, sizeof(dest));
5972 dest.strbuf = strbuf;
5973 num_put_char_put_int64(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
5975 basic_ostream_char_sentry_destroy(this);
5977 basic_ios_char_setstate(base, state);
5978 return this;
5981 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_K@Z */
5982 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z */
5983 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint64, 12)
5984 basic_ostream_char* __thiscall basic_ostream_char_print_uint64(basic_ostream_char *this, unsigned __int64 val)
5986 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
5987 int state = IOSTATE_goodbit;
5989 TRACE("(%p)\n", this);
5991 if(basic_ostream_char_sentry_create(this)) {
5992 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
5993 const num_put *numput = num_put_char_use_facet(IOS_LOCALE(strbuf));
5994 ostreambuf_iterator_char dest;
5996 memset(&dest, 0, sizeof(dest));
5997 dest.strbuf = strbuf;
5998 num_put_char_put_uint64(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
6000 basic_ostream_char_sentry_destroy(this);
6002 basic_ios_char_setstate(base, state);
6003 return this;
6006 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_N@Z */
6007 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_N@Z */
6008 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_bool, 8)
6009 basic_ostream_char* __thiscall basic_ostream_char_print_bool(basic_ostream_char *this, bool val)
6011 basic_ios_char *base = basic_ostream_char_get_basic_ios(this);
6012 int state = IOSTATE_goodbit;
6014 TRACE("(%p %x)\n", this, val);
6016 if(basic_ostream_char_sentry_create(this)) {
6017 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
6018 const num_put *numput = num_put_char_use_facet(IOS_LOCALE(strbuf));
6019 ostreambuf_iterator_char dest;
6021 memset(&dest, 0, sizeof(dest));
6022 dest.strbuf = strbuf;
6023 num_put_char_put_bool(numput, &dest, dest, &base->base, basic_ios_char_fill_get(base), val);
6025 basic_ostream_char_sentry_destroy(this);
6027 basic_ios_char_setstate(base, state);
6028 return this;
6031 /* ?ends@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
6032 /* ?ends@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
6033 basic_ostream_char* __cdecl basic_ostream_char_ends(basic_ostream_char *ostr)
6035 TRACE("(%p)\n", ostr);
6037 basic_ostream_char_put(ostr, 0);
6038 return ostr;
6041 /* ?endl@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
6042 /* ?endl@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
6043 basic_ostream_char* __cdecl basic_ostream_char_endl(basic_ostream_char *ostr)
6045 TRACE("(%p)\n", ostr);
6047 basic_ostream_char_put(ostr, '\n');
6048 basic_ostream_char_flush(ostr);
6049 return ostr;
6052 /* ??$?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 */
6053 /* ??$?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 */
6054 basic_ostream_char* __cdecl basic_ostream_char_print_bstr(basic_ostream_char *ostr, const basic_string_char *str)
6056 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
6057 IOSB_iostate state = IOSTATE_goodbit;
6059 TRACE("(%p %p)\n", ostr, str);
6061 if(basic_ostream_char_sentry_create(ostr)) {
6062 size_t len = MSVCP_basic_string_char_length(str);
6063 streamsize pad = (base->base.wide>len ? base->base.wide-len : 0);
6065 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
6066 for(; pad!=0; pad--) {
6067 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
6068 state = IOSTATE_badbit;
6069 break;
6074 if(state == IOSTATE_goodbit) {
6075 if(basic_streambuf_char_sputn(base->strbuf, MSVCP_basic_string_char_c_str(str), len) != len)
6076 state = IOSTATE_badbit;
6079 if(state == IOSTATE_goodbit) {
6080 for(; pad!=0; pad--) {
6081 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
6082 state = IOSTATE_badbit;
6083 break;
6088 base->base.wide = 0;
6089 }else {
6090 state = IOSTATE_badbit;
6092 basic_ostream_char_sentry_destroy(ostr);
6094 basic_ios_char_setstate(base, state);
6095 return ostr;
6098 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@C@Z */
6099 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@C@Z */
6100 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@D@Z */
6101 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z */
6102 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@E@Z */
6103 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@E@Z */
6104 basic_ostream_char* __cdecl basic_ostream_char_print_ch(basic_ostream_char *ostr, char ch)
6106 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
6107 IOSB_iostate state = IOSTATE_goodbit;
6109 TRACE("(%p %d)\n", ostr, ch);
6111 if(basic_ostream_char_sentry_create(ostr)) {
6112 streamsize pad = (base->base.wide>1 ? base->base.wide-1 : 0);
6114 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
6115 for(; pad!=0; pad--) {
6116 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
6117 state = IOSTATE_badbit;
6118 break;
6123 if(state == IOSTATE_goodbit) {
6124 if(basic_streambuf_char_sputc(base->strbuf, ch) == EOF)
6125 state = IOSTATE_badbit;
6128 if(state == IOSTATE_goodbit) {
6129 for(; pad!=0; pad--) {
6130 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
6131 state = IOSTATE_badbit;
6132 break;
6137 base->base.wide = 0;
6138 }else {
6139 state = IOSTATE_badbit;
6141 basic_ostream_char_sentry_destroy(ostr);
6143 basic_ios_char_setstate(base, state);
6144 return ostr;
6147 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBC@Z */
6148 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBC@Z */
6149 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z */
6150 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBD@Z */
6151 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBE@Z */
6152 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBE@Z */
6153 basic_ostream_char* __cdecl basic_ostream_char_print_str(basic_ostream_char *ostr, const char *str)
6155 basic_ios_char *base = basic_ostream_char_get_basic_ios(ostr);
6156 IOSB_iostate state = IOSTATE_goodbit;
6158 TRACE("(%p %s)\n", ostr, str);
6160 if(basic_ostream_char_sentry_create(ostr)) {
6161 size_t len = strlen(str);
6162 streamsize pad = (base->base.wide>len ? base->base.wide-len : 0);
6164 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
6165 for(; pad!=0; pad--) {
6166 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
6167 state = IOSTATE_badbit;
6168 break;
6173 if(state == IOSTATE_goodbit) {
6174 if(basic_streambuf_char_sputn(base->strbuf, str, len) != len)
6175 state = IOSTATE_badbit;
6178 if(state == IOSTATE_goodbit) {
6179 for(; pad!=0; pad--) {
6180 if(basic_streambuf_char_sputc(base->strbuf, base->fillch) == EOF) {
6181 state = IOSTATE_badbit;
6182 break;
6187 base->base.wide = 0;
6188 }else {
6189 state = IOSTATE_badbit;
6191 basic_ostream_char_sentry_destroy(ostr);
6193 basic_ios_char_setstate(base, state);
6194 return ostr;
6197 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
6198 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
6199 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func, 8)
6200 basic_ostream_char* __thiscall basic_ostream_char_print_func(basic_ostream_char *this,
6201 basic_ostream_char* (__cdecl *pfunc)(basic_ostream_char*))
6203 TRACE("(%p %p)\n", this, pfunc);
6204 pfunc(this);
6205 return this;
6208 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@DU?$char_traits@D@std@@@1@AAV21@@Z@Z */
6209 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z */
6210 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func_basic_ios, 8)
6211 basic_ostream_char* __thiscall basic_ostream_char_print_func_basic_ios(basic_ostream_char *this,
6212 basic_ios_char* (__cdecl *pfunc)(basic_ios_char*))
6214 TRACE("(%p %p)\n", this, pfunc);
6215 pfunc(basic_ostream_char_get_basic_ios(this));
6216 return this;
6219 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
6220 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
6221 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func_ios_base, 8)
6222 basic_ostream_char* __thiscall basic_ostream_char_print_func_ios_base(
6223 basic_ostream_char *this, ios_base* (__cdecl *pfunc)(ios_base*))
6225 TRACE("(%p %p)\n", this, pfunc);
6226 pfunc(&basic_ostream_char_get_basic_ios(this)->base);
6227 return this;
6230 /* ?swap@?$basic_ostream@DU?$char_traits@D@std@@@std@@IAEXAAV12@@Z */
6231 /* ?swap@?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z */
6232 DEFINE_THISCALL_WRAPPER(basic_ostream_char_swap, 8)
6233 void __thiscall basic_ostream_char_swap(basic_ostream_char *this, basic_ostream_char *r)
6235 TRACE("(%p %p)\n", this, r);
6237 if(this == r)
6238 return;
6240 basic_ios_char_swap(basic_ostream_char_get_basic_ios(this),
6241 basic_ostream_char_get_basic_ios(r));
6244 /* Caution: basic_ostream uses virtual inheritance. */
6245 static inline basic_ios_wchar* basic_ostream_wchar_get_basic_ios(basic_ostream_wchar *this)
6247 return (basic_ios_wchar*)((char*)this+this->vbtable[1]);
6250 static inline basic_ios_wchar* basic_ostream_wchar_to_basic_ios(basic_ostream_wchar *ptr)
6252 return (basic_ios_wchar*)((char*)ptr+basic_ostream_wchar_vbtable[1]);
6255 static inline basic_ostream_wchar* basic_ostream_wchar_from_basic_ios(basic_ios_wchar *ptr)
6257 return (basic_ostream_wchar*)((char*)ptr-basic_ostream_wchar_vbtable[1]);
6260 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z */
6261 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z */
6262 DEFINE_THISCALL_WRAPPER(basic_ostream_short_ctor, 20)
6263 basic_ostream_wchar* __thiscall basic_ostream_short_ctor(basic_ostream_wchar *this,
6264 basic_streambuf_wchar *strbuf, bool isstd, bool init, bool virt_init)
6266 basic_ios_wchar *base;
6268 TRACE("(%p %p %d %d)\n", this, strbuf, isstd, virt_init);
6270 if(virt_init) {
6271 this->vbtable = basic_ostream_wchar_vbtable;
6272 base = basic_ostream_wchar_get_basic_ios(this);
6273 basic_ios_wchar_ctor(base);
6274 }else {
6275 base = basic_ostream_wchar_get_basic_ios(this);
6278 base->base.vtable = &basic_ostream_short_vtable;
6279 if(init)
6280 basic_ios_wchar_init(base, strbuf, isstd);
6281 return this;
6284 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */
6285 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
6286 DEFINE_THISCALL_WRAPPER(basic_ostream_short_ctor_uninitialized, 12)
6287 basic_ostream_wchar* __thiscall basic_ostream_short_ctor_uninitialized(basic_ostream_wchar *this,
6288 int uninitialized, bool virt_init)
6290 basic_ios_wchar *base;
6292 TRACE("(%p %d)\n", this, uninitialized);
6294 if(virt_init) {
6295 this->vbtable = basic_ostream_wchar_vbtable;
6296 base = basic_ostream_wchar_get_basic_ios(this);
6297 basic_ios_wchar_ctor(base);
6298 }else {
6299 base = basic_ostream_wchar_get_basic_ios(this);
6302 base->base.vtable = &basic_ostream_short_vtable;
6303 ios_base_Addstd(&base->base);
6304 return this;
6307 /* ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
6308 /* ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
6309 /* ??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UAE@XZ */
6310 /* ??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
6311 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_dtor, 4)
6312 void __thiscall basic_ostream_wchar_dtor(basic_ios_wchar *base)
6314 basic_ostream_wchar *this = basic_ostream_wchar_from_basic_ios(base);
6316 /* don't destroy virtual base here */
6317 TRACE("(%p)\n", this);
6320 /* ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
6321 /* ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
6322 /* ??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
6323 /* ??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
6324 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_vbase_dtor, 4)
6325 void __thiscall basic_ostream_wchar_vbase_dtor(basic_ostream_wchar *this)
6327 TRACE("(%p)\n", this);
6328 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(this));
6329 basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(this));
6332 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_vector_dtor, 8)
6333 basic_ostream_wchar* __thiscall basic_ostream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
6335 basic_ostream_wchar *this = basic_ostream_wchar_from_basic_ios(base);
6337 TRACE("(%p %x)\n", this, flags);
6339 if(flags & 2) {
6340 /* we have an array, with the number of elements stored before the first object */
6341 INT_PTR i, *ptr = (INT_PTR *)this-1;
6343 for(i=*ptr-1; i>=0; i--)
6344 basic_ostream_wchar_vbase_dtor(this+i);
6345 operator_delete(ptr);
6346 } else {
6347 basic_ostream_wchar_vbase_dtor(this);
6348 if(flags & 1)
6349 operator_delete(this);
6352 return this;
6355 /* ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ */
6356 /* ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ */
6357 /* ?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@XZ */
6358 /* ?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ */
6359 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_flush, 4)
6360 basic_ostream_wchar* __thiscall basic_ostream_wchar_flush(basic_ostream_wchar *this)
6362 /* this function is not matching C++ specification */
6363 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6365 TRACE("(%p)\n", this);
6367 if(basic_ios_wchar_rdbuf_get(base) && ios_base_good(&base->base)
6368 && basic_streambuf_wchar_pubsync(basic_ios_wchar_rdbuf_get(base))==-1)
6369 basic_ios_wchar_setstate(base, IOSTATE_badbit);
6370 return this;
6373 /* ?flush@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
6374 /* ?flush@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
6375 /* ?flush@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
6376 /* ?flush@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
6377 basic_ostream_wchar* __cdecl flush_ostream_wchar(basic_ostream_wchar *ostream)
6379 return basic_ostream_wchar_flush(ostream);
6382 /* ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
6383 /* ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
6384 /* ?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
6385 /* ?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
6386 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar__Osfx, 4)
6387 void __thiscall basic_ostream_wchar__Osfx(basic_ostream_wchar *this)
6389 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6391 TRACE("(%p)\n", this);
6393 if(base->base.fmtfl & FMTFLAG_unitbuf)
6394 basic_ostream_wchar_flush(this);
6397 /* ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
6398 /* ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
6399 /* ?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
6400 /* ?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
6401 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_osfx, 4)
6402 void __thiscall basic_ostream_wchar_osfx(basic_ostream_wchar *this)
6404 TRACE("(%p)\n", this);
6405 basic_ostream_wchar__Osfx(this);
6408 static BOOL basic_ostream_wchar_sentry_create(basic_ostream_wchar *ostr)
6410 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
6412 if(basic_ios_wchar_rdbuf_get(base))
6413 basic_streambuf_wchar__Lock(base->strbuf);
6415 if(ios_base_good(&base->base) && base->stream)
6416 basic_ostream_wchar_flush(base->stream);
6418 return ios_base_good(&base->base);
6421 static void basic_ostream_wchar_sentry_destroy(basic_ostream_wchar *ostr)
6423 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
6425 if(ios_base_good(&base->base) && !__uncaught_exception())
6426 basic_ostream_wchar_osfx(ostr);
6428 if(basic_ios_wchar_rdbuf_get(base))
6429 basic_streambuf_wchar__Unlock(base->strbuf);
6432 /* ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE_NXZ */
6433 /* ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA_NXZ */
6434 /* ?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE_NXZ */
6435 /* ?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA_NXZ */
6436 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_opfx, 4)
6437 bool __thiscall basic_ostream_wchar_opfx(basic_ostream_wchar *this)
6439 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6441 TRACE("(%p)\n", this);
6443 if(ios_base_good(&base->base) && base->stream)
6444 basic_ostream_wchar_flush(base->stream);
6445 return ios_base_good(&base->base);
6448 /* ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@_W@Z */
6449 /* ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z */
6450 /* ?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@G@Z */
6451 /* ?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z */
6452 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_put, 8)
6453 basic_ostream_wchar* __thiscall basic_ostream_wchar_put(basic_ostream_wchar *this, wchar_t ch)
6455 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6457 TRACE("(%p %c)\n", this, ch);
6459 if(!basic_ostream_wchar_sentry_create(this)
6460 || basic_streambuf_wchar_sputc(base->strbuf, ch)==WEOF) {
6461 basic_ostream_wchar_sentry_destroy(this);
6462 basic_ios_wchar_setstate(base, IOSTATE_badbit);
6463 return this;
6466 basic_ostream_wchar_sentry_destroy(this);
6467 return this;
6470 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@JH@Z */
6471 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z */
6472 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@JH@Z */
6473 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z */
6474 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_seekp, 12)
6475 basic_ostream_wchar* __thiscall basic_ostream_wchar_seekp(basic_ostream_wchar *this, streamoff off, int way)
6477 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6479 TRACE("(%p %Id %d)\n", this, off, way);
6481 if(!ios_base_fail(&base->base)) {
6482 fpos_int seek;
6484 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base),
6485 &seek, off, way, OPENMODE_out);
6486 if(seek.off==-1 && seek.pos==0 && seek.state==0)
6487 basic_ios_wchar_setstate(base, IOSTATE_failbit);
6489 return this;
6492 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
6493 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
6494 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
6495 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
6496 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_seekp_fpos, 28)
6497 basic_ostream_wchar* __thiscall basic_ostream_wchar_seekp_fpos(basic_ostream_wchar *this, fpos_int pos)
6499 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6501 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos));
6503 if(!ios_base_fail(&base->base)) {
6504 fpos_int seek;
6506 basic_streambuf_wchar_pubseekpos(basic_ios_wchar_rdbuf_get(base),
6507 &seek, pos, OPENMODE_out);
6508 if(seek.off==-1 && seek.pos==0 && seek.state==0)
6509 basic_ios_wchar_setstate(base, IOSTATE_failbit);
6511 return this;
6514 /* ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@XZ */
6515 /* ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
6516 /* ?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@XZ */
6517 /* ?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
6518 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_tellp, 8)
6519 fpos_int* __thiscall basic_ostream_wchar_tellp(basic_ostream_wchar *this, fpos_int *ret)
6521 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6523 TRACE("(%p)\n", this);
6525 if(!ios_base_fail(&base->base)) {
6526 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base),
6527 ret, 0, SEEKDIR_cur, OPENMODE_out);
6528 }else {
6529 ret->off = -1;
6530 ret->pos = 0;
6531 ret->state = 0;
6533 return ret;
6536 /* ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PB_WH@Z */
6537 /* ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEB_W_J@Z */
6538 /* ?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@PBGH@Z */
6539 /* ?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEBG_J@Z */
6540 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_write, 12)
6541 basic_ostream_wchar* __thiscall basic_ostream_wchar_write(basic_ostream_wchar *this, const wchar_t *str, streamsize count)
6543 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6545 TRACE("(%p %s %Id)\n", this, debugstr_w(str), count);
6547 if(!basic_ostream_wchar_sentry_create(this)
6548 || basic_streambuf_wchar_sputn(base->strbuf, str, count)!=count) {
6549 basic_ostream_wchar_sentry_destroy(this);
6550 basic_ios_wchar_setstate(base, IOSTATE_badbit);
6551 return this;
6554 basic_ostream_wchar_sentry_destroy(this);
6555 return this;
6558 static basic_ostream_wchar* basic_ostream_print_short(basic_ostream_wchar *this, short val, const num_put *numput)
6560 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6561 int state = IOSTATE_goodbit;
6563 TRACE("(%p %d)\n", this, val);
6565 if(basic_ostream_wchar_sentry_create(this)) {
6566 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6567 ostreambuf_iterator_wchar dest;
6569 memset(&dest, 0, sizeof(dest));
6570 dest.strbuf = strbuf;
6571 num_put_wchar_put_long(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base),
6572 (ios_base_flags_get(&base->base) & FMTFLAG_basefield & (FMTFLAG_oct | FMTFLAG_hex))
6573 ? (LONG)((unsigned short)val) : (LONG)val);
6575 basic_ostream_wchar_sentry_destroy(this);
6577 basic_ios_wchar_setstate(base, state);
6578 return this;
6581 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@F@Z */
6582 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@F@Z */
6583 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_short, 8)
6584 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_short(basic_ostream_wchar *this, short val)
6586 return basic_ostream_print_short(this, val, num_put_wchar_use_facet(
6587 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
6590 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@F@Z */
6591 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@F@Z */
6592 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_short, 8)
6593 basic_ostream_wchar* __thiscall basic_ostream_short_print_short(basic_ostream_wchar *this, short val)
6595 return basic_ostream_print_short(this, val, num_put_short_use_facet(
6596 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
6599 static basic_ostream_wchar* basic_ostream_print_ushort(basic_ostream_wchar *this, unsigned short val, const num_put *numput)
6601 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6602 int state = IOSTATE_goodbit;
6604 TRACE("(%p %d)\n", this, val);
6606 if(basic_ostream_wchar_sentry_create(this)) {
6607 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6608 ostreambuf_iterator_wchar dest;
6610 memset(&dest, 0, sizeof(dest));
6611 dest.strbuf = strbuf;
6612 num_put_wchar_put_ulong(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6614 basic_ostream_wchar_sentry_destroy(this);
6616 basic_ios_wchar_setstate(base, state);
6617 return this;
6620 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@G@Z */
6621 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@G@Z */
6622 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ushort, 8)
6623 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_ushort(basic_ostream_wchar *this, unsigned short val)
6625 return basic_ostream_print_ushort(this, val, num_put_wchar_use_facet(
6626 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
6629 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@G@Z */
6630 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@G@Z */
6631 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_ushort, 8)
6632 basic_ostream_wchar* __thiscall basic_ostream_short_print_ushort(basic_ostream_wchar *this, unsigned short val)
6634 return basic_ostream_print_ushort(this, val, num_put_short_use_facet(
6635 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
6638 /* ??6std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@G@Z */
6639 /* ??6std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@G@Z */
6640 basic_ostream_wchar* __cdecl basic_ostream_short_print_ushort_global(basic_ostream_wchar *ostr, unsigned short val)
6642 return basic_ostream_print_ushort(ostr, val, num_put_short_use_facet(
6643 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(ostr)))));
6646 static basic_ostream_wchar* basic_ostream_print_int(basic_ostream_wchar *this, int val, const num_put *numput)
6648 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6649 int state = IOSTATE_goodbit;
6651 TRACE("(%p %d)\n", this, val);
6653 if(basic_ostream_wchar_sentry_create(this)) {
6654 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6655 ostreambuf_iterator_wchar dest;
6657 memset(&dest, 0, sizeof(dest));
6658 dest.strbuf = strbuf;
6659 num_put_wchar_put_long(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6661 basic_ostream_wchar_sentry_destroy(this);
6663 basic_ios_wchar_setstate(base, state);
6664 return this;
6667 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@H@Z */
6668 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@H@Z */
6669 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@J@Z */
6670 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@J@Z */
6671 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_int, 8)
6672 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_int(basic_ostream_wchar *this, int val)
6674 return basic_ostream_print_int(this, val, num_put_wchar_use_facet(
6675 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
6678 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@H@Z */
6679 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@H@Z */
6680 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@J@Z */
6681 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@J@Z */
6682 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_int, 8)
6683 basic_ostream_wchar* __thiscall basic_ostream_short_print_int(basic_ostream_wchar *this, int val)
6685 return basic_ostream_print_int(this, val, num_put_short_use_facet(
6686 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
6689 static basic_ostream_wchar* basic_ostream_print_uint(basic_ostream_wchar *this, unsigned int val, const num_put *numput)
6691 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6692 int state = IOSTATE_goodbit;
6694 TRACE("(%p %u)\n", this, val);
6696 if(basic_ostream_wchar_sentry_create(this)) {
6697 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6698 ostreambuf_iterator_wchar dest;
6700 memset(&dest, 0, sizeof(dest));
6701 dest.strbuf = strbuf;
6702 num_put_wchar_put_ulong(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6704 basic_ostream_wchar_sentry_destroy(this);
6706 basic_ios_wchar_setstate(base, state);
6707 return this;
6710 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@I@Z */
6711 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@I@Z */
6712 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@K@Z */
6713 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@K@Z */
6714 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_uint, 8)
6715 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_uint(basic_ostream_wchar *this, unsigned int val)
6717 return basic_ostream_print_uint(this, val, num_put_wchar_use_facet(
6718 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
6721 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@I@Z */
6722 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@I@Z */
6723 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@K@Z */
6724 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@K@Z */
6725 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_uint, 8)
6726 basic_ostream_wchar* __thiscall basic_ostream_short_print_uint(basic_ostream_wchar *this, unsigned int val)
6728 return basic_ostream_print_uint(this, val, num_put_short_use_facet(
6729 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
6732 static basic_ostream_wchar* basic_ostream_print_float(basic_ostream_wchar *this, float val, const num_put *numput)
6734 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6735 int state = IOSTATE_goodbit;
6737 TRACE("(%p %f)\n", this, val);
6739 if(basic_ostream_wchar_sentry_create(this)) {
6740 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6741 ostreambuf_iterator_wchar dest;
6743 memset(&dest, 0, sizeof(dest));
6744 dest.strbuf = strbuf;
6745 num_put_wchar_put_double(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6747 basic_ostream_wchar_sentry_destroy(this);
6749 basic_ios_wchar_setstate(base, state);
6750 return this;
6753 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@M@Z */
6754 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@M@Z */
6755 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_float, 8)
6756 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_float(basic_ostream_wchar *this, float val)
6758 return basic_ostream_print_float(this, val, num_put_wchar_use_facet(
6759 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
6762 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@M@Z */
6763 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@M@Z */
6764 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_float, 8)
6765 basic_ostream_wchar* __thiscall basic_ostream_short_print_float(basic_ostream_wchar *this, float val)
6767 return basic_ostream_print_float(this, val, num_put_short_use_facet(
6768 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
6771 static basic_ostream_wchar* basic_ostream_print_double(basic_ostream_wchar *this, double val, const num_put *numput)
6773 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6774 int state = IOSTATE_goodbit;
6776 TRACE("(%p %lf)\n", this, val);
6778 if(basic_ostream_wchar_sentry_create(this)) {
6779 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6780 ostreambuf_iterator_wchar dest;
6782 memset(&dest, 0, sizeof(dest));
6783 dest.strbuf = strbuf;
6784 num_put_wchar_put_double(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6786 basic_ostream_wchar_sentry_destroy(this);
6788 basic_ios_wchar_setstate(base, state);
6789 return this;
6792 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@N@Z */
6793 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@N@Z */
6794 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_double, 12)
6795 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_double(basic_ostream_wchar *this, double val)
6797 return basic_ostream_print_double(this, val, num_put_wchar_use_facet(
6798 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
6801 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@N@Z */
6802 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@N@Z */
6803 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_double, 12)
6804 basic_ostream_wchar* __thiscall basic_ostream_short_print_double(basic_ostream_wchar *this, double val)
6806 return basic_ostream_print_double(this, val, num_put_short_use_facet(
6807 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
6810 static basic_ostream_wchar* basic_ostream_print_ldouble(basic_ostream_wchar *this, double val, const num_put *numput)
6812 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6813 int state = IOSTATE_goodbit;
6815 TRACE("(%p %lf)\n", this, val);
6817 if(basic_ostream_wchar_sentry_create(this)) {
6818 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6819 ostreambuf_iterator_wchar dest;
6821 memset(&dest, 0, sizeof(dest));
6822 dest.strbuf = strbuf;
6823 num_put_wchar_put_ldouble(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6825 basic_ostream_wchar_sentry_destroy(this);
6827 basic_ios_wchar_setstate(base, state);
6828 return this;
6831 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@O@Z */
6832 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@O@Z */
6833 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ldouble, 12)
6834 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_ldouble(basic_ostream_wchar *this, double val)
6836 return basic_ostream_print_ldouble(this, val, num_put_wchar_use_facet(
6837 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
6840 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@O@Z */
6841 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@O@Z */
6842 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_ldouble, 12)
6843 basic_ostream_wchar* __thiscall basic_ostream_short_print_ldouble(basic_ostream_wchar *this, double val)
6845 return basic_ostream_print_ldouble(this, val, num_put_short_use_facet(
6846 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
6849 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
6850 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
6851 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
6852 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
6853 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_streambuf, 8)
6854 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_streambuf(basic_ostream_wchar *this, basic_streambuf_wchar *val)
6856 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6857 IOSB_iostate state = IOSTATE_badbit;
6858 unsigned short c = '\n';
6860 TRACE("(%p %p)\n", this, val);
6862 if(basic_ostream_wchar_sentry_create(this)) {
6863 for(c = basic_streambuf_wchar_sgetc(val); c!=WEOF;
6864 c = basic_streambuf_wchar_snextc(val)) {
6865 state = IOSTATE_goodbit;
6867 if(basic_streambuf_wchar_sputc(base->strbuf, c) == WEOF) {
6868 state = IOSTATE_badbit;
6869 break;
6872 }else {
6873 state = IOSTATE_badbit;
6875 basic_ostream_wchar_sentry_destroy(this);
6877 ios_base_width_set(&base->base, 0);
6878 basic_ios_wchar_setstate(base, state);
6879 return this;
6882 static basic_ostream_wchar* basic_ostream_print_ptr(basic_ostream_wchar *this, const void *val, const num_put *numput)
6884 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6885 int state = IOSTATE_goodbit;
6887 TRACE("(%p %p)\n", this, val);
6889 if(basic_ostream_wchar_sentry_create(this)) {
6890 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6891 ostreambuf_iterator_wchar dest;
6893 memset(&dest, 0, sizeof(dest));
6894 dest.strbuf = strbuf;
6895 num_put_wchar_put_ptr(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6897 basic_ostream_wchar_sentry_destroy(this);
6899 basic_ios_wchar_setstate(base, state);
6900 return this;
6903 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PBX@Z */
6904 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEBX@Z */
6905 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ptr, 8)
6906 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_ptr(basic_ostream_wchar *this, const void *val)
6908 return basic_ostream_print_ptr(this, val, num_put_wchar_use_facet(
6909 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
6912 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@PBX@Z */
6913 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEBX@Z */
6914 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_ptr, 8)
6915 basic_ostream_wchar* __thiscall basic_ostream_short_print_ptr(basic_ostream_wchar *this, const void *val)
6917 return basic_ostream_print_ptr(this, val, num_put_short_use_facet(
6918 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
6921 static basic_ostream_wchar* basic_ostream_print_int64(basic_ostream_wchar *this, __int64 val, const num_put *numput)
6923 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6924 int state = IOSTATE_goodbit;
6926 TRACE("(%p)\n", this);
6928 if(basic_ostream_wchar_sentry_create(this)) {
6929 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6930 ostreambuf_iterator_wchar dest;
6932 memset(&dest, 0, sizeof(dest));
6933 dest.strbuf = strbuf;
6934 num_put_wchar_put_int64(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6936 basic_ostream_wchar_sentry_destroy(this);
6938 basic_ios_wchar_setstate(base, state);
6939 return this;
6942 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_J@Z */
6943 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_J@Z */
6944 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_int64, 12)
6945 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_int64(basic_ostream_wchar *this, __int64 val)
6947 return basic_ostream_print_int64(this, val, num_put_wchar_use_facet(
6948 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
6951 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_J@Z */
6952 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_J@Z */
6953 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_int64, 12)
6954 basic_ostream_wchar* __thiscall basic_ostream_short_print_int64(basic_ostream_wchar *this, __int64 val)
6956 return basic_ostream_print_int64(this, val, num_put_short_use_facet(
6957 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
6960 static basic_ostream_wchar* basic_ostream_print_uint64(basic_ostream_wchar *this, unsigned __int64 val, const num_put *numput)
6962 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
6963 int state = IOSTATE_goodbit;
6965 TRACE("(%p)\n", this);
6967 if(basic_ostream_wchar_sentry_create(this)) {
6968 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
6969 ostreambuf_iterator_wchar dest;
6971 memset(&dest, 0, sizeof(dest));
6972 dest.strbuf = strbuf;
6973 num_put_wchar_put_uint64(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
6975 basic_ostream_wchar_sentry_destroy(this);
6977 basic_ios_wchar_setstate(base, state);
6978 return this;
6981 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_K@Z */
6982 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_K@Z */
6983 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_uint64, 12)
6984 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_uint64(basic_ostream_wchar *this, unsigned __int64 val)
6986 return basic_ostream_print_uint64(this, val, num_put_wchar_use_facet(
6987 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
6990 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_K@Z */
6991 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_K@Z */
6992 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_uint64, 12)
6993 basic_ostream_wchar* __thiscall basic_ostream_short_print_uint64(basic_ostream_wchar *this, unsigned __int64 val)
6995 return basic_ostream_print_uint64(this, val, num_put_short_use_facet(
6996 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
6999 static basic_ostream_wchar* basic_ostream_print_bool(basic_ostream_wchar *this, bool val, const num_put *numput)
7001 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this);
7002 int state = IOSTATE_goodbit;
7004 TRACE("(%p %x)\n", this, val);
7006 if(basic_ostream_wchar_sentry_create(this)) {
7007 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
7008 ostreambuf_iterator_wchar dest;
7010 memset(&dest, 0, sizeof(dest));
7011 dest.strbuf = strbuf;
7012 num_put_wchar_put_bool(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val);
7014 basic_ostream_wchar_sentry_destroy(this);
7016 basic_ios_wchar_setstate(base, state);
7017 return this;
7020 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_N@Z */
7021 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_N@Z */
7022 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_bool, 8)
7023 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_bool(basic_ostream_wchar *this, bool val)
7025 return basic_ostream_print_bool(this, val, num_put_wchar_use_facet(
7026 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7029 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_N@Z */
7030 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_N@Z */
7031 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_bool, 8)
7032 basic_ostream_wchar* __thiscall basic_ostream_short_print_bool(basic_ostream_wchar *this, bool val)
7034 return basic_ostream_print_bool(this, val, num_put_short_use_facet(
7035 IOS_LOCALE(basic_ios_wchar_rdbuf_get(basic_ostream_wchar_get_basic_ios(this)))));
7038 /* ?ends@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
7039 /* ?ends@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
7040 /* ?ends@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
7041 /* ?ends@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
7042 basic_ostream_wchar* __cdecl basic_ostream_wchar_ends(basic_ostream_wchar *ostr)
7044 TRACE("(%p)\n", ostr);
7046 basic_ostream_wchar_put(ostr, 0);
7047 return ostr;
7050 /* ?endl@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
7051 /* ?endl@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
7052 /* ?endl@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
7053 /* ?endl@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
7054 basic_ostream_wchar* __cdecl basic_ostream_wchar_endl(basic_ostream_wchar *ostr)
7056 TRACE("(%p)\n", ostr);
7058 basic_ostream_wchar_put(ostr, '\n');
7059 basic_ostream_wchar_flush(ostr);
7060 return ostr;
7063 /* ??$?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 */
7064 /* ??$?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 */
7065 /* ??$?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 */
7066 /* ??$?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 */
7067 basic_ostream_wchar* __cdecl basic_ostream_wchar_print_bstr(basic_ostream_wchar *ostr, const basic_string_wchar *str)
7069 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
7070 IOSB_iostate state = IOSTATE_goodbit;
7072 TRACE("(%p %p)\n", ostr, str);
7074 if(basic_ostream_wchar_sentry_create(ostr)) {
7075 size_t len = MSVCP_basic_string_wchar_length(str);
7076 streamsize pad = (base->base.wide>len ? base->base.wide-len : 0);
7078 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
7079 for(; pad!=0; pad--) {
7080 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
7081 state = IOSTATE_badbit;
7082 break;
7087 if(state == IOSTATE_goodbit) {
7088 if(basic_streambuf_wchar_sputn(base->strbuf, MSVCP_basic_string_wchar_c_str(str), len) != len)
7089 state = IOSTATE_badbit;
7092 if(state == IOSTATE_goodbit) {
7093 for(; pad!=0; pad--) {
7094 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
7095 state = IOSTATE_badbit;
7096 break;
7101 base->base.wide = 0;
7102 }else {
7103 state = IOSTATE_badbit;
7105 basic_ostream_wchar_sentry_destroy(ostr);
7107 basic_ios_wchar_setstate(base, state);
7108 return ostr;
7111 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@_W@Z */
7112 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@_W@Z */
7113 /* ??$?6GU?$char_traits@G@std@@@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@G@Z */
7114 /* ??$?6GU?$char_traits@G@std@@@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@G@Z */
7115 basic_ostream_wchar* __cdecl basic_ostream_wchar_print_ch(basic_ostream_wchar *ostr, wchar_t ch)
7117 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
7118 IOSB_iostate state = IOSTATE_goodbit;
7120 TRACE("(%p %d)\n", ostr, ch);
7122 if(basic_ostream_wchar_sentry_create(ostr)) {
7123 streamsize pad = (base->base.wide>1 ? base->base.wide-1 : 0);
7125 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
7126 for(; pad!=0; pad--) {
7127 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
7128 state = IOSTATE_badbit;
7129 break;
7134 if(state == IOSTATE_goodbit) {
7135 if(basic_streambuf_wchar_sputc(base->strbuf, ch) == WEOF)
7136 state = IOSTATE_badbit;
7139 if(state == IOSTATE_goodbit) {
7140 for(; pad!=0; pad--) {
7141 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
7142 state = IOSTATE_badbit;
7143 break;
7148 base->base.wide = 0;
7149 }else {
7150 state = IOSTATE_badbit;
7152 basic_ostream_wchar_sentry_destroy(ostr);
7154 basic_ios_wchar_setstate(base, state);
7155 return ostr;
7158 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@PB_W@Z */
7159 /* ??$?6_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@PEB_W@Z */
7160 /* ??$?6GU?$char_traits@G@std@@@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@PBG@Z */
7161 /* ??$?6GU?$char_traits@G@std@@@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@PEBG@Z */
7162 basic_ostream_wchar* __cdecl basic_ostream_wchar_print_str(basic_ostream_wchar *ostr, const wchar_t *str)
7164 basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr);
7165 IOSB_iostate state = IOSTATE_goodbit;
7167 TRACE("(%p %s)\n", ostr, debugstr_w(str));
7169 if(basic_ostream_wchar_sentry_create(ostr)) {
7170 size_t len = wcslen(str);
7171 streamsize pad = (base->base.wide>len ? base->base.wide-len : 0);
7173 if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) {
7174 for(; pad!=0; pad--) {
7175 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
7176 state = IOSTATE_badbit;
7177 break;
7182 if(state == IOSTATE_goodbit) {
7183 if(basic_streambuf_wchar_sputn(base->strbuf, str, len) != len)
7184 state = IOSTATE_badbit;
7187 if(state == IOSTATE_goodbit) {
7188 for(; pad!=0; pad--) {
7189 if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) {
7190 state = IOSTATE_badbit;
7191 break;
7196 base->base.wide = 0;
7197 }else {
7198 state = IOSTATE_badbit;
7200 basic_ostream_wchar_sentry_destroy(ostr);
7202 basic_ios_wchar_setstate(base, state);
7203 return ostr;
7206 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
7207 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
7208 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
7209 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
7210 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func, 8)
7211 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_func(basic_ostream_wchar *this,
7212 basic_ostream_wchar* (__cdecl *pfunc)(basic_ostream_wchar*))
7214 TRACE("(%p %p)\n", this, pfunc);
7215 pfunc(this);
7216 return this;
7219 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AAV21@@Z@Z */
7220 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z */
7221 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@GU?$char_traits@G@std@@@1@AAV21@@Z@Z */
7222 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z */
7223 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func_basic_ios, 8)
7224 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_func_basic_ios(basic_ostream_wchar *this,
7225 basic_ios_wchar* (__cdecl *pfunc)(basic_ios_wchar*))
7227 TRACE("(%p %p)\n", this, pfunc);
7228 pfunc(basic_ostream_wchar_get_basic_ios(this));
7229 return this;
7232 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
7233 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
7234 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
7235 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
7236 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func_ios_base, 8)
7237 basic_ostream_wchar* __thiscall basic_ostream_wchar_print_func_ios_base(
7238 basic_ostream_wchar *this, ios_base* (__cdecl *pfunc)(ios_base*))
7240 TRACE("(%p %p)\n", this, pfunc);
7241 pfunc(&basic_ostream_wchar_get_basic_ios(this)->base);
7242 return this;
7245 /* ?swap@?$basic_ostream@GU?$char_traits@G@std@@@std@@IAEXAAV12@@Z */
7246 /* ?swap@?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z */
7247 /* ?swap@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IAEXAAV12@@Z */
7248 /* ?swap@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z */
7249 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_swap, 8)
7250 void __thiscall basic_ostream_wchar_swap(basic_ostream_wchar *this, basic_ostream_wchar *r)
7252 TRACE("(%p %p)\n", this, r);
7254 if(this == r)
7255 return;
7257 basic_ios_wchar_swap(basic_ostream_wchar_get_basic_ios(this),
7258 basic_ostream_wchar_get_basic_ios(r));
7261 /* Caution: basic_istream uses virtual inheritance. */
7262 static inline basic_ios_char* basic_istream_char_get_basic_ios(basic_istream_char *this)
7264 return (basic_ios_char*)((char*)this+this->vbtable[1]);
7267 static inline basic_ios_char* basic_istream_char_to_basic_ios(basic_istream_char *ptr)
7269 return (basic_ios_char*)((char*)ptr+basic_istream_char_vbtable[1]);
7272 static inline basic_istream_char* basic_istream_char_from_basic_ios(basic_ios_char *ptr)
7274 return (basic_istream_char*)((char*)ptr-basic_istream_char_vbtable[1]);
7277 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
7278 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
7279 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor_init, 20)
7280 basic_istream_char* __thiscall basic_istream_char_ctor_init(basic_istream_char *this, basic_streambuf_char *strbuf, bool isstd, bool noinit, bool virt_init)
7282 basic_ios_char *base;
7284 TRACE("(%p %p %d %d %d)\n", this, strbuf, isstd, noinit, virt_init);
7286 if(virt_init) {
7287 this->vbtable = basic_istream_char_vbtable;
7288 base = basic_istream_char_get_basic_ios(this);
7289 basic_ios_char_ctor(base);
7290 }else {
7291 base = basic_istream_char_get_basic_ios(this);
7294 base->base.vtable = &basic_istream_char_vtable;
7295 this->count = 0;
7296 if(!noinit)
7297 basic_ios_char_init(base, strbuf, isstd);
7298 return this;
7301 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
7302 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
7303 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor, 16)
7304 basic_istream_char* __thiscall basic_istream_char_ctor(basic_istream_char *this, basic_streambuf_char *strbuf, bool isstd, bool virt_init)
7306 return basic_istream_char_ctor_init(this, strbuf, isstd, FALSE, virt_init);
7309 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
7310 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
7311 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor_uninitialized, 12)
7312 basic_istream_char* __thiscall basic_istream_char_ctor_uninitialized(basic_istream_char *this, int uninitialized, bool virt_init)
7314 basic_ios_char *base;
7316 TRACE("(%p %d %d)\n", this, uninitialized, virt_init);
7318 if(virt_init) {
7319 this->vbtable = basic_istream_char_vbtable;
7320 base = basic_istream_char_get_basic_ios(this);
7321 basic_ios_char_ctor(base);
7322 }else {
7323 base = basic_istream_char_get_basic_ios(this);
7326 base->base.vtable = &basic_istream_char_vtable;
7327 ios_base_Addstd(&base->base);
7328 return this;
7331 /* ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ */
7332 /* ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
7333 DEFINE_THISCALL_WRAPPER(basic_istream_char_dtor, 4)
7334 void __thiscall basic_istream_char_dtor(basic_ios_char *base)
7336 basic_istream_char *this = basic_istream_char_from_basic_ios(base);
7338 /* don't destroy virtual base here */
7339 TRACE("(%p)\n", this);
7342 /* ??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ */
7343 /* ??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
7344 DEFINE_THISCALL_WRAPPER(basic_istream_char_vbase_dtor, 4)
7345 void __thiscall basic_istream_char_vbase_dtor(basic_istream_char *this)
7347 TRACE("(%p)\n", this);
7348 basic_istream_char_dtor(basic_istream_char_to_basic_ios(this));
7349 basic_ios_char_dtor(basic_istream_char_get_basic_ios(this));
7352 DEFINE_THISCALL_WRAPPER(basic_istream_char_vector_dtor, 8)
7353 basic_istream_char* __thiscall basic_istream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
7355 basic_istream_char *this = basic_istream_char_from_basic_ios(base);
7357 TRACE("(%p %x)\n", this, flags);
7359 if(flags & 2) {
7360 /* we have an array, with the number of elements stored before the first object */
7361 INT_PTR i, *ptr = (INT_PTR *)this-1;
7363 for(i=*ptr-1; i>=0; i--)
7364 basic_istream_char_vbase_dtor(this+i);
7365 operator_delete(ptr);
7366 } else {
7367 basic_istream_char_vbase_dtor(this);
7368 if(flags & 1)
7369 operator_delete(this);
7372 return this;
7375 /* ?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z */
7376 /* ?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z */
7377 DEFINE_THISCALL_WRAPPER(basic_istream_char__Ipfx, 8)
7378 bool __thiscall basic_istream_char__Ipfx(basic_istream_char *this, bool noskip)
7380 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7382 TRACE("(%p %d)\n", this, noskip);
7384 if(ios_base_good(&base->base)) {
7385 if(basic_ios_char_tie_get(base))
7386 basic_ostream_char_flush(basic_ios_char_tie_get(base));
7388 if(!noskip && (ios_base_flags_get(&base->base) & FMTFLAG_skipws)) {
7389 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7390 const ctype_char *ctype = ctype_char_use_facet(IOS_LOCALE(base->strbuf));
7391 int ch;
7393 for(ch = basic_streambuf_char_sgetc(strbuf); ;
7394 ch = basic_streambuf_char_snextc(strbuf)) {
7395 if(ch==EOF || !ctype_char_is_ch(ctype, _SPACE|_BLANK, ch))
7396 break;
7401 if(!ios_base_good(&base->base)) {
7402 basic_ios_char_setstate(base, IOSTATE_failbit);
7403 return FALSE;
7406 return TRUE;
7409 /* ?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z */
7410 /* ?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z */
7411 DEFINE_THISCALL_WRAPPER(basic_istream_char_ipfx, 8)
7412 bool __thiscall basic_istream_char_ipfx(basic_istream_char *this, bool noskip)
7414 return basic_istream_char__Ipfx(this, noskip);
7417 /* ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ */
7418 /* ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
7419 DEFINE_THISCALL_WRAPPER(basic_istream_char_isfx, 4)
7420 void __thiscall basic_istream_char_isfx(basic_istream_char *this)
7422 TRACE("(%p)\n", this);
7425 static BOOL basic_istream_char_sentry_create(basic_istream_char *istr, bool noskip)
7427 basic_ios_char *base = basic_istream_char_get_basic_ios(istr);
7429 if(basic_ios_char_rdbuf_get(base))
7430 call_basic_streambuf_char__Lock(base->strbuf);
7432 return basic_istream_char_ipfx(istr, noskip);
7435 static void basic_istream_char_sentry_destroy(basic_istream_char *istr)
7437 basic_ios_char *base = basic_istream_char_get_basic_ios(istr);
7439 if(basic_ios_char_rdbuf_get(base))
7440 call_basic_streambuf_char__Unlock(base->strbuf);
7443 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QBEHXZ */
7444 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QEBA_JXZ */
7445 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QBA_JXZ */
7446 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QBE_JXZ */
7447 DEFINE_THISCALL_WRAPPER(basic_istream_char_gcount, 4)
7448 streamsize __thiscall basic_istream_char_gcount(const basic_istream_char *this)
7450 TRACE("(%p)\n", this);
7451 return this->count;
7454 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
7455 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
7456 DEFINE_THISCALL_WRAPPER(basic_istream_char_get, 4)
7457 int __thiscall basic_istream_char_get(basic_istream_char *this)
7459 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7460 int ret;
7462 TRACE("(%p)\n", this);
7464 this->count = 0;
7466 if(!basic_istream_char_sentry_create(this, TRUE)) {
7467 basic_istream_char_sentry_destroy(this);
7468 return EOF;
7471 ret = basic_streambuf_char_sbumpc(basic_ios_char_rdbuf_get(base));
7472 basic_istream_char_sentry_destroy(this);
7473 if(ret == EOF)
7474 basic_ios_char_setstate(base, IOSTATE_eofbit|IOSTATE_failbit);
7475 else
7476 this->count++;
7478 return ret;
7481 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAD@Z */
7482 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAD@Z */
7483 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_ch, 8)
7484 basic_istream_char* __thiscall basic_istream_char_get_ch(basic_istream_char *this, char *ch)
7486 int ret;
7488 TRACE("(%p %p)\n", this, ch);
7490 ret = basic_istream_char_get(this);
7491 if(ret != EOF)
7492 *ch = (char)ret;
7493 return this;
7496 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADHD@Z */
7497 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z */
7498 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_str_delim, 16)
7499 basic_istream_char* __thiscall basic_istream_char_get_str_delim(basic_istream_char *this, char *str, streamsize count, char delim)
7501 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7502 int ch = delim;
7504 TRACE("(%p %p %Id %s)\n", this, str, count, debugstr_an(&delim, 1));
7506 this->count = 0;
7508 if(basic_istream_char_sentry_create(this, TRUE)) {
7509 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7511 for(ch = basic_streambuf_char_sgetc(strbuf); count>1;
7512 ch = basic_streambuf_char_snextc(strbuf)) {
7513 if(ch==EOF || ch==delim)
7514 break;
7516 *str++ = ch;
7517 this->count++;
7518 count--;
7521 basic_istream_char_sentry_destroy(this);
7523 basic_ios_char_setstate(base, (!this->count ? IOSTATE_failbit : IOSTATE_goodbit) |
7524 (ch==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
7525 if(count > 0)
7526 *str = 0;
7527 return this;
7530 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
7531 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
7532 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_str, 12)
7533 basic_istream_char* __thiscall basic_istream_char_get_str(basic_istream_char *this, char *str, streamsize count)
7535 return basic_istream_char_get_str_delim(this, str, count, '\n');
7538 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z */
7539 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z */
7540 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_streambuf_delim, 12)
7541 basic_istream_char* __thiscall basic_istream_char_get_streambuf_delim(basic_istream_char *this, basic_streambuf_char *strbuf, char delim)
7543 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7544 int ch = delim;
7546 TRACE("(%p %p %s)\n", this, strbuf, debugstr_an(&delim, 1));
7548 this->count = 0;
7550 if(basic_istream_char_sentry_create(this, TRUE)) {
7551 basic_streambuf_char *strbuf_read = basic_ios_char_rdbuf_get(base);
7553 for(ch = basic_streambuf_char_sgetc(strbuf_read); ;
7554 ch = basic_streambuf_char_snextc(strbuf_read)) {
7555 if(ch==EOF || ch==delim)
7556 break;
7558 if(basic_streambuf_char_sputc(strbuf, ch) == EOF)
7559 break;
7560 this->count++;
7563 basic_istream_char_sentry_destroy(this);
7565 basic_ios_char_setstate(base, (!this->count ? IOSTATE_failbit : IOSTATE_goodbit) |
7566 (ch==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
7567 return this;
7570 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z */
7571 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z */
7572 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_streambuf, 8)
7573 basic_istream_char* __thiscall basic_istream_char_get_streambuf(basic_istream_char *this, basic_streambuf_char *strbuf)
7575 return basic_istream_char_get_streambuf_delim(this, strbuf, '\n');
7578 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADHD@Z */
7579 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z */
7580 DEFINE_THISCALL_WRAPPER(basic_istream_char_getline_delim, 16)
7581 basic_istream_char* __thiscall basic_istream_char_getline_delim(basic_istream_char *this, char *str, streamsize count, char delim)
7583 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7584 int ch = (unsigned char)delim;
7586 TRACE("(%p %p %Id %s)\n", this, str, count, debugstr_an(&delim, 1));
7588 this->count = 0;
7590 if(basic_istream_char_sentry_create(this, TRUE) && count>0) {
7591 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7593 while(count > 1) {
7594 ch = basic_streambuf_char_sbumpc(strbuf);
7596 if(ch==EOF || ch==(unsigned char)delim)
7597 break;
7599 *str++ = ch;
7600 this->count++;
7601 count--;
7604 if(ch == (unsigned char)delim)
7605 this->count++;
7606 else if(ch != EOF) {
7607 ch = basic_streambuf_char_sgetc(strbuf);
7609 if(ch == (unsigned char)delim) {
7610 basic_streambuf_char__Gninc(strbuf);
7611 this->count++;
7615 basic_istream_char_sentry_destroy(this);
7617 basic_ios_char_setstate(base, (ch==EOF ? IOSTATE_eofbit : IOSTATE_goodbit) |
7618 (!this->count || (ch!=(unsigned char)delim && ch!=EOF) ? IOSTATE_failbit : IOSTATE_goodbit));
7619 if(count > 0)
7620 *str = 0;
7621 return this;
7624 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
7625 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
7626 DEFINE_THISCALL_WRAPPER(basic_istream_char_getline, 12)
7627 basic_istream_char* __thiscall basic_istream_char_getline(basic_istream_char *this, char *str, streamsize count)
7629 return basic_istream_char_getline_delim(this, str, count, '\n');
7632 /* ?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@HH@Z */
7633 /* ?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
7634 DEFINE_THISCALL_WRAPPER(basic_istream_char_ignore, 12)
7635 basic_istream_char* __thiscall basic_istream_char_ignore(basic_istream_char *this, streamsize count, int delim)
7637 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7638 int ch = (unsigned char)delim;
7639 unsigned int state;
7641 TRACE("(%p %Id %d)\n", this, count, delim);
7643 this->count = 0;
7645 if(basic_istream_char_sentry_create(this, TRUE)) {
7646 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7647 state = IOSTATE_goodbit;
7649 while(count > 0) {
7650 ch = basic_streambuf_char_sbumpc(strbuf);
7652 if(ch==EOF) {
7653 state = IOSTATE_eofbit;
7654 break;
7657 if(ch==delim)
7658 break;
7660 this->count++;
7661 if(count != INT_MAX)
7662 count--;
7664 }else
7665 state = IOSTATE_failbit;
7666 basic_istream_char_sentry_destroy(this);
7668 basic_ios_char_setstate(base, state);
7669 return this;
7672 /* ?ws@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@1@AAV21@@Z */
7673 /* ?ws@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
7674 basic_istream_char* __cdecl ws_basic_istream_char(basic_istream_char *istream)
7676 basic_ios_char *base = basic_istream_char_get_basic_ios(istream);
7677 int ch = '\n';
7679 TRACE("(%p)\n", istream);
7681 if(basic_istream_char_sentry_create(istream, TRUE)) {
7682 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7683 const ctype_char *ctype = ctype_char_use_facet(IOS_LOCALE(strbuf));
7685 for(ch = basic_streambuf_char_sgetc(strbuf); ctype_char_is_ch(ctype, _SPACE, ch);
7686 ch = basic_streambuf_char_snextc(strbuf)) {
7687 if(ch == EOF)
7688 break;
7691 basic_istream_char_sentry_destroy(istream);
7693 if(ch == EOF)
7694 basic_ios_char_setstate(base, IOSTATE_eofbit);
7695 return istream;
7698 /* ?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
7699 /* ?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
7700 DEFINE_THISCALL_WRAPPER(basic_istream_char_peek, 4)
7701 int __thiscall basic_istream_char_peek(basic_istream_char *this)
7703 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7704 int ret = EOF;
7706 TRACE("(%p)\n", this);
7708 this->count = 0;
7710 if(basic_istream_char_sentry_create(this, TRUE))
7711 ret = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base));
7712 basic_istream_char_sentry_destroy(this);
7714 if (ret == EOF)
7715 basic_ios_char_setstate(base, IOSTATE_eofbit);
7717 return ret;
7720 /* ?_Read_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADIH@Z */
7721 /* ?_Read_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_K_J@Z */
7722 DEFINE_THISCALL_WRAPPER(basic_istream_char__Read_s, 16)
7723 basic_istream_char* __thiscall basic_istream_char__Read_s(basic_istream_char *this, char *str, size_t size, streamsize count)
7725 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7726 IOSB_iostate state = IOSTATE_goodbit;
7728 TRACE("(%p %p %Iu %Id)\n", this, str, size, count);
7730 if(basic_istream_char_sentry_create(this, TRUE)) {
7731 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7733 this->count = basic_streambuf_char__Sgetn_s(strbuf, str, size, count);
7734 if(this->count != count)
7735 state |= IOSTATE_failbit | IOSTATE_eofbit;
7736 }else {
7737 this->count = 0;
7739 basic_istream_char_sentry_destroy(this);
7741 basic_ios_char_setstate(base, state);
7742 return this;
7745 /* ?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
7746 /* ?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
7747 DEFINE_THISCALL_WRAPPER(basic_istream_char_read, 12)
7748 basic_istream_char* __thiscall basic_istream_char_read(basic_istream_char *this, char *str, streamsize count)
7750 return basic_istream_char__Read_s(this, str, -1, count);
7753 /* ?_Readsome_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHPADIH@Z */
7754 /* ?_Readsome_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_K_J@Z */
7755 DEFINE_THISCALL_WRAPPER(basic_istream_char__Readsome_s, 16)
7756 streamsize __thiscall basic_istream_char__Readsome_s(basic_istream_char *this, char *str, size_t size, streamsize count)
7758 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7759 IOSB_iostate state = IOSTATE_goodbit;
7761 TRACE("(%p %p %Iu %Id)\n", this, str, size, count);
7763 this->count = 0;
7765 if(basic_istream_char_sentry_create(this, TRUE)) {
7766 streamsize avail = basic_streambuf_char_in_avail(basic_ios_char_rdbuf_get(base));
7767 if(avail > count)
7768 avail = count;
7770 if(avail == -1)
7771 state |= IOSTATE_eofbit;
7772 else if(avail > 0)
7773 basic_istream_char__Read_s(this, str, size, avail);
7774 }else {
7775 state |= IOSTATE_failbit;
7777 basic_istream_char_sentry_destroy(this);
7779 basic_ios_char_setstate(base, state);
7780 return this->count;
7783 /* ?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHPADH@Z */
7784 /* ?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z */
7785 DEFINE_THISCALL_WRAPPER(basic_istream_char_readsome, 12)
7786 streamsize __thiscall basic_istream_char_readsome(basic_istream_char *this, char *str, streamsize count)
7788 return basic_istream_char__Readsome_s(this, str, count, count);
7791 /* ?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z */
7792 /* ?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z */
7793 DEFINE_THISCALL_WRAPPER(basic_istream_char_putback, 8)
7794 basic_istream_char* __thiscall basic_istream_char_putback(basic_istream_char *this, char ch)
7796 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7797 IOSB_iostate state = IOSTATE_goodbit;
7799 TRACE("(%p %c)\n", this, ch);
7801 this->count = 0;
7803 if(basic_istream_char_sentry_create(this, TRUE)) {
7804 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7806 if(!ios_base_good(&base->base))
7807 state |= IOSTATE_failbit;
7808 else if(!strbuf || basic_streambuf_char_sputbackc(strbuf, ch)==EOF)
7809 state |= IOSTATE_badbit;
7811 basic_istream_char_sentry_destroy(this);
7813 basic_ios_char_setstate(base, state);
7814 return this;
7817 /* ?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ */
7818 /* ?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ */
7819 DEFINE_THISCALL_WRAPPER(basic_istream_char_unget, 4)
7820 basic_istream_char* __thiscall basic_istream_char_unget(basic_istream_char *this)
7822 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7823 IOSB_iostate state = IOSTATE_goodbit;
7825 TRACE("(%p)\n", this);
7827 this->count = 0;
7829 if(basic_istream_char_sentry_create(this, TRUE)) {
7830 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7832 if(!ios_base_good(&base->base))
7833 state |= IOSTATE_failbit;
7834 else if(!strbuf || basic_streambuf_char_sungetc(strbuf)==EOF)
7835 state |= IOSTATE_badbit;
7837 basic_istream_char_sentry_destroy(this);
7839 basic_ios_char_setstate(base, state);
7840 return this;
7843 /* ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
7844 /* ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
7845 DEFINE_THISCALL_WRAPPER(basic_istream_char_sync, 4)
7846 int __thiscall basic_istream_char_sync(basic_istream_char *this)
7848 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7849 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7851 TRACE("(%p)\n", this);
7853 if(!strbuf)
7854 return -1;
7856 if(basic_istream_char_sentry_create(this, TRUE)) {
7857 if(basic_streambuf_char_pubsync(strbuf) != -1) {
7858 basic_istream_char_sentry_destroy(this);
7859 return 0;
7862 basic_istream_char_sentry_destroy(this);
7864 basic_ios_char_setstate(base, IOSTATE_badbit);
7865 return -1;
7868 /* ?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
7869 /* ?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
7870 DEFINE_THISCALL_WRAPPER(basic_istream_char_tellg, 8)
7871 fpos_int* __thiscall basic_istream_char_tellg(basic_istream_char *this, fpos_int *ret)
7873 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7875 TRACE("(%p %p)\n", this, ret);
7877 if(ios_base_fail(&base->base)) {
7878 ret->off = -1;
7879 ret->pos = 0;
7880 ret->state = 0;
7881 return ret;
7884 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base),
7885 ret, 0, SEEKDIR_cur, OPENMODE_in);
7887 return ret;
7890 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@JW4seekdir@ios_base@2@@Z */
7891 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JW4seekdir@ios_base@2@@Z */
7892 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@JH@Z */
7893 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
7894 DEFINE_THISCALL_WRAPPER(basic_istream_char_seekg, 12)
7895 basic_istream_char* __thiscall basic_istream_char_seekg(basic_istream_char *this, streamoff off, int dir)
7897 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7899 TRACE("(%p %Id %d)\n", this, off, dir);
7901 if(!ios_base_fail(&base->base)) {
7902 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7903 fpos_int ret;
7905 basic_streambuf_char_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in);
7908 return this;
7911 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
7912 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
7913 DEFINE_THISCALL_WRAPPER(basic_istream_char_seekg_fpos, 28)
7914 basic_istream_char* __thiscall basic_istream_char_seekg_fpos(basic_istream_char *this, fpos_int pos)
7916 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7918 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos));
7920 if(!ios_base_fail(&base->base)) {
7921 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7922 fpos_int ret;
7924 basic_streambuf_char_pubseekpos(strbuf, &ret, pos, OPENMODE_in);
7927 return this;
7930 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAF@Z */
7931 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAF@Z */
7932 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_short, 8)
7933 basic_istream_char* __thiscall basic_istream_char_read_short(basic_istream_char *this, short *v)
7935 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7936 int state = IOSTATE_goodbit;
7938 TRACE("(%p %p)\n", this, v);
7940 if(basic_istream_char_sentry_create(this, FALSE)) {
7941 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7942 const num_get *numget = num_get_char_use_facet(IOS_LOCALE(strbuf));
7943 istreambuf_iterator_char first={0}, last={0};
7944 LONG tmp;
7946 first.strbuf = strbuf;
7947 num_get_char_get_long(numget, &last, first, last, &base->base, &state, &tmp);
7949 if(!(state&IOSTATE_failbit) && tmp==(LONG)((short)tmp))
7950 *v = tmp;
7951 else
7952 state |= IOSTATE_failbit;
7954 basic_istream_char_sentry_destroy(this);
7956 basic_ios_char_setstate(base, state);
7957 return this;
7960 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAG@Z */
7961 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAG@Z */
7962 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ushort, 8)
7963 basic_istream_char* __thiscall basic_istream_char_read_ushort(basic_istream_char *this, unsigned short *v)
7965 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7966 int state = IOSTATE_goodbit;
7968 TRACE("(%p %p)\n", this, v);
7970 if(basic_istream_char_sentry_create(this, FALSE)) {
7971 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7972 const num_get *numget = num_get_char_use_facet(IOS_LOCALE(strbuf));
7973 istreambuf_iterator_char first={0}, last={0};
7975 first.strbuf = strbuf;
7976 num_get_char_get_ushort(numget, &last, first, last, &base->base, &state, v);
7978 basic_istream_char_sentry_destroy(this);
7980 basic_ios_char_setstate(base, state);
7981 return this;
7984 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z */
7985 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAH@Z */
7986 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_int, 8)
7987 basic_istream_char* __thiscall basic_istream_char_read_int(basic_istream_char *this, int *v)
7989 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
7990 int state = IOSTATE_goodbit;
7992 TRACE("(%p %p)\n", this, v);
7994 if(basic_istream_char_sentry_create(this, FALSE)) {
7995 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
7996 const num_get *numget = num_get_char_use_facet(IOS_LOCALE(strbuf));
7997 istreambuf_iterator_char first={0}, last={0};
7999 first.strbuf = strbuf;
8000 num_get_char_get_long(numget, &last, first, last, &base->base, &state, (LONG*)v);
8002 basic_istream_char_sentry_destroy(this);
8004 basic_ios_char_setstate(base, state);
8005 return this;
8008 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAI@Z */
8009 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAI@Z */
8010 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_uint, 8)
8011 basic_istream_char* __thiscall basic_istream_char_read_uint(basic_istream_char *this, unsigned int *v)
8013 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8014 int state = IOSTATE_goodbit;
8016 TRACE("(%p %p)\n", this, v);
8018 if(basic_istream_char_sentry_create(this, FALSE)) {
8019 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8020 const num_get *numget = num_get_char_use_facet(IOS_LOCALE(strbuf));
8021 istreambuf_iterator_char first={0}, last={0};
8023 first.strbuf = strbuf;
8024 num_get_char_get_uint(numget, &last, first, last, &base->base, &state, v);
8026 basic_istream_char_sentry_destroy(this);
8028 basic_ios_char_setstate(base, state);
8029 return this;
8032 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAJ@Z */
8033 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAJ@Z */
8034 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_long, 8)
8035 basic_istream_char* __thiscall basic_istream_char_read_long(basic_istream_char *this, LONG *v)
8037 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8038 int state = IOSTATE_goodbit;
8040 TRACE("(%p %p)\n", this, v);
8042 if(basic_istream_char_sentry_create(this, FALSE)) {
8043 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8044 const num_get *numget = num_get_char_use_facet(IOS_LOCALE(strbuf));
8045 istreambuf_iterator_char first={0}, last={0};
8047 first.strbuf = strbuf;
8048 num_get_char_get_long(numget, &last, first, last, &base->base, &state, v);
8050 basic_istream_char_sentry_destroy(this);
8052 basic_ios_char_setstate(base, state);
8053 return this;
8056 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAK@Z */
8057 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAK@Z */
8058 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ulong, 8)
8059 basic_istream_char* __thiscall basic_istream_char_read_ulong(basic_istream_char *this, ULONG *v)
8061 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8062 int state = IOSTATE_goodbit;
8064 TRACE("(%p %p)\n", this, v);
8066 if(basic_istream_char_sentry_create(this, FALSE)) {
8067 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8068 const num_get *numget = num_get_char_use_facet(IOS_LOCALE(strbuf));
8069 istreambuf_iterator_char first={0}, last={0};
8071 first.strbuf = strbuf;
8072 num_get_char_get_ulong(numget, &last, first, last, &base->base, &state, v);
8074 basic_istream_char_sentry_destroy(this);
8076 basic_ios_char_setstate(base, state);
8077 return this;
8080 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAM@Z */
8081 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAM@Z */
8082 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_float, 8)
8083 basic_istream_char* __thiscall basic_istream_char_read_float(basic_istream_char *this, float *v)
8085 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8086 int state = IOSTATE_goodbit;
8088 TRACE("(%p %p)\n", this, v);
8090 if(basic_istream_char_sentry_create(this, FALSE)) {
8091 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8092 const num_get *numget = num_get_char_use_facet(IOS_LOCALE(strbuf));
8093 istreambuf_iterator_char first={0}, last={0};
8095 first.strbuf = strbuf;
8096 num_get_char_get_float(numget, &last, first, last, &base->base, &state, v);
8098 basic_istream_char_sentry_destroy(this);
8100 basic_ios_char_setstate(base, state);
8101 return this;
8104 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAN@Z */
8105 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAN@Z */
8106 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_double, 8)
8107 basic_istream_char* __thiscall basic_istream_char_read_double(basic_istream_char *this, double *v)
8109 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8110 int state = IOSTATE_goodbit;
8112 TRACE("(%p %p)\n", this, v);
8114 if(basic_istream_char_sentry_create(this, FALSE)) {
8115 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8116 const num_get *numget = num_get_char_use_facet(IOS_LOCALE(strbuf));
8117 istreambuf_iterator_char first={0}, last={0};
8119 first.strbuf = strbuf;
8120 num_get_char_get_double(numget, &last, first, last, &base->base, &state, v);
8122 basic_istream_char_sentry_destroy(this);
8124 basic_ios_char_setstate(base, state);
8125 return this;
8128 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAO@Z */
8129 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAO@Z */
8130 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ldouble, 8)
8131 basic_istream_char* __thiscall basic_istream_char_read_ldouble(basic_istream_char *this, double *v)
8133 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8134 int state = IOSTATE_goodbit;
8136 TRACE("(%p %p)\n", this, v);
8138 if(basic_istream_char_sentry_create(this, FALSE)) {
8139 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8140 const num_get *numget = num_get_char_use_facet(IOS_LOCALE(strbuf));
8141 istreambuf_iterator_char first={0}, last={0};
8143 first.strbuf = strbuf;
8144 num_get_char_get_ldouble(numget, &last, first, last, &base->base, &state, v);
8146 basic_istream_char_sentry_destroy(this);
8148 basic_ios_char_setstate(base, state);
8149 return this;
8152 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAPAX@Z */
8153 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
8154 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ptr, 8)
8155 basic_istream_char* __thiscall basic_istream_char_read_ptr(basic_istream_char *this, void **v)
8157 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8158 int state = IOSTATE_goodbit;
8160 TRACE("(%p %p)\n", this, v);
8162 if(basic_istream_char_sentry_create(this, FALSE)) {
8163 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8164 const num_get *numget = num_get_char_use_facet(IOS_LOCALE(strbuf));
8165 istreambuf_iterator_char first={0}, last={0};
8167 first.strbuf = strbuf;
8168 num_get_char_get_void(numget, &last, first, last, &base->base, &state, v);
8170 basic_istream_char_sentry_destroy(this);
8172 basic_ios_char_setstate(base, state);
8173 return this;
8176 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_J@Z */
8177 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_J@Z */
8178 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_int64, 8)
8179 basic_istream_char* __thiscall basic_istream_char_read_int64(basic_istream_char *this, __int64 *v)
8181 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8182 int state = IOSTATE_goodbit;
8184 TRACE("(%p %p)\n", this, v);
8186 if(basic_istream_char_sentry_create(this, FALSE)) {
8187 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8188 const num_get *numget = num_get_char_use_facet(IOS_LOCALE(strbuf));
8189 istreambuf_iterator_char first={0}, last={0};
8191 first.strbuf = strbuf;
8192 num_get_char_get_int64(numget, &last, first, last, &base->base, &state, v);
8194 basic_istream_char_sentry_destroy(this);
8196 basic_ios_char_setstate(base, state);
8197 return this;
8200 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_K@Z */
8201 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_K@Z */
8202 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_uint64, 8)
8203 basic_istream_char* __thiscall basic_istream_char_read_uint64(basic_istream_char *this, unsigned __int64 *v)
8205 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8206 int state = IOSTATE_goodbit;
8208 TRACE("(%p %p)\n", this, v);
8210 if(basic_istream_char_sentry_create(this, FALSE)) {
8211 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8212 const num_get *numget = num_get_char_use_facet(IOS_LOCALE(strbuf));
8213 istreambuf_iterator_char first={0}, last={0};
8215 first.strbuf = strbuf;
8216 num_get_char_get_uint64(numget, &last, first, last, &base->base, &state, v);
8218 basic_istream_char_sentry_destroy(this);
8220 basic_ios_char_setstate(base, state);
8221 return this;
8224 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_N@Z */
8225 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_N@Z */
8226 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_bool, 8)
8227 basic_istream_char* __thiscall basic_istream_char_read_bool(basic_istream_char *this, bool *v)
8229 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8230 int state = IOSTATE_goodbit;
8232 TRACE("(%p %p)\n", this, v);
8234 if(basic_istream_char_sentry_create(this, FALSE)) {
8235 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8236 const num_get *numget = num_get_char_use_facet(IOS_LOCALE(strbuf));
8237 istreambuf_iterator_char first={0}, last={0};
8239 first.strbuf = strbuf;
8240 num_get_char_get_bool(numget, &last, first, last, &base->base, &state, v);
8242 basic_istream_char_sentry_destroy(this);
8244 basic_ios_char_setstate(base, state);
8245 return this;
8248 /* ??$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 */
8249 /* ??$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 */
8250 basic_istream_char* __cdecl basic_istream_char_getline_bstr_delim(
8251 basic_istream_char *istream, basic_string_char *str, char delim)
8253 basic_ios_char *base = basic_istream_char_get_basic_ios(istream);
8254 IOSB_iostate state = IOSTATE_goodbit;
8255 int c = (unsigned char)delim;
8257 TRACE("(%p %p %s)\n", istream, str, debugstr_an(&delim, 1));
8259 MSVCP_basic_string_char_clear(str);
8260 if(basic_istream_char_sentry_create(istream, TRUE)) {
8261 basic_streambuf_char *strbuf = basic_ios_char_rdbuf_get(base);
8263 c = basic_streambuf_char_sgetc(strbuf);
8264 for(; c!=(unsigned char)delim && c!=EOF; c = basic_streambuf_char_snextc(strbuf))
8265 MSVCP_basic_string_char_append_ch(str, c);
8266 if(c==EOF) state |= IOSTATE_eofbit;
8267 else if(c==(unsigned char)delim) basic_streambuf_char_sbumpc(strbuf);
8269 if(!MSVCP_basic_string_char_length(str) && c!=(unsigned char)delim) state |= IOSTATE_failbit;
8271 basic_istream_char_sentry_destroy(istream);
8273 basic_ios_char_setstate(basic_istream_char_get_basic_ios(istream), state);
8274 return istream;
8277 /* ??$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 */
8278 /* ??$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 */
8279 basic_istream_char* __cdecl basic_istream_char_getline_bstr(
8280 basic_istream_char *istream, basic_string_char *str)
8282 return basic_istream_char_getline_bstr_delim(istream, str, '\n');
8285 /* ??$?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 */
8286 /* ??$?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 */
8287 basic_istream_char* __cdecl basic_istream_char_read_bstr(
8288 basic_istream_char *istream, basic_string_char *str)
8290 basic_ios_char *base = basic_istream_char_get_basic_ios(istream);
8291 IOSB_iostate state = IOSTATE_failbit;
8292 int c = '\n';
8294 TRACE("(%p %p)\n", istream, str);
8296 if(basic_istream_char_sentry_create(istream, FALSE)) {
8297 const ctype_char *ctype = ctype_char_use_facet(IOS_LOCALE(base->strbuf));
8298 size_t count = ios_base_width_get(&base->base);
8300 if(!count)
8301 count = -1;
8303 MSVCP_basic_string_char_clear(str);
8305 for(c = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base));
8306 c!=EOF && !ctype_char_is_ch(ctype, _SPACE|_BLANK, c) && count>0;
8307 c = basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base)), count--) {
8308 state = IOSTATE_goodbit;
8309 MSVCP_basic_string_char_append_ch(str, c);
8312 basic_istream_char_sentry_destroy(istream);
8314 ios_base_width_set(&base->base, 0);
8315 basic_ios_char_setstate(base, state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8316 return istream;
8319 /* ??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z */
8320 /* ??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAD@Z */
8321 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAC@Z */
8322 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAC@Z */
8323 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAE@Z */
8324 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAE@Z */
8325 basic_istream_char* __cdecl basic_istream_char_read_str(basic_istream_char *istream, char *str)
8327 basic_ios_char *base = basic_istream_char_get_basic_ios(istream);
8328 IOSB_iostate state = IOSTATE_failbit;
8329 int c = '\n';
8331 TRACE("(%p %p)\n", istream, str);
8333 if(basic_istream_char_sentry_create(istream, FALSE)) {
8334 const ctype_char *ctype = ctype_char_use_facet(IOS_LOCALE(base->strbuf));
8335 size_t count = ios_base_width_get(&base->base)-1;
8337 for(c = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base));
8338 c!=EOF && !ctype_char_is_ch(ctype, _SPACE|_BLANK, c) && count>0;
8339 c = basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base)), count--) {
8340 state = IOSTATE_goodbit;
8341 *str++ = c;
8344 basic_istream_char_sentry_destroy(istream);
8346 *str = 0;
8347 ios_base_width_set(&base->base, 0);
8348 basic_ios_char_setstate(base, state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8349 return istream;
8352 /* ??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAD@Z */
8353 /* ??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAD@Z */
8354 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAC@Z */
8355 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAC@Z */
8356 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAE@Z */
8357 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAE@Z */
8358 basic_istream_char* __cdecl basic_istream_char_read_ch(basic_istream_char *istream, char *ch)
8360 IOSB_iostate state = IOSTATE_failbit;
8361 int c = 0;
8363 TRACE("(%p %p)\n", istream, ch);
8365 if(basic_istream_char_sentry_create(istream, FALSE)) {
8366 c = basic_streambuf_char_sbumpc(basic_ios_char_rdbuf_get(
8367 basic_istream_char_get_basic_ios(istream)));
8368 if(c != EOF) {
8369 state = IOSTATE_goodbit;
8370 *ch = c;
8373 basic_istream_char_sentry_destroy(istream);
8375 basic_ios_char_setstate(basic_istream_char_get_basic_ios(istream),
8376 state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8377 return istream;
8380 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
8381 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
8382 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_streambuf, 8)
8383 basic_istream_char* __thiscall basic_istream_char_read_streambuf(
8384 basic_istream_char *this, basic_streambuf_char *streambuf)
8386 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8387 IOSB_iostate state = IOSTATE_failbit;
8388 int c = '\n';
8390 TRACE("(%p %p)\n", this, streambuf);
8392 if(basic_istream_char_sentry_create(this, FALSE)) {
8393 for(c = basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base)); c!=EOF;
8394 c = basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base))) {
8395 state = IOSTATE_goodbit;
8396 if(basic_streambuf_char_sputc(streambuf, c) == EOF)
8397 break;
8400 basic_istream_char_sentry_destroy(this);
8402 basic_ios_char_setstate(base, state | (c==EOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8403 return this;
8406 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
8407 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
8408 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func, 8)
8409 basic_istream_char* __thiscall basic_istream_char_read_func(basic_istream_char *this,
8410 basic_istream_char* (__cdecl *pfunc)(basic_istream_char*))
8412 TRACE("(%p %p)\n", this, pfunc);
8413 pfunc(this);
8414 return this;
8417 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@DU?$char_traits@D@std@@@1@AAV21@@Z@Z */
8418 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z */
8419 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func_basic_ios, 8)
8420 basic_istream_char* __thiscall basic_istream_char_read_func_basic_ios(basic_istream_char *this,
8421 basic_ios_char* (__cdecl *pfunc)(basic_ios_char*))
8423 TRACE("(%p %p)\n", this, pfunc);
8424 pfunc(basic_istream_char_get_basic_ios(this));
8425 return this;
8428 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
8429 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
8430 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func_ios_base, 8)
8431 basic_istream_char* __thiscall basic_istream_char_read_func_ios_base(basic_istream_char *this,
8432 ios_base* (__cdecl *pfunc)(ios_base*))
8434 TRACE("(%p %p)\n", this, pfunc);
8435 pfunc(&basic_istream_char_get_basic_ios(this)->base);
8436 return this;
8439 /* ??$?5MDU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@M@0@@Z */
8440 /* ??$?5MDU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@M@0@@Z */
8441 basic_istream_char* __cdecl basic_istream_char_read_complex_float(basic_istream_char *this, complex_float *v)
8443 float r;
8444 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8446 TRACE("(%p %p)\n", this, v);
8448 ws_basic_istream_char(this);
8449 if(basic_istream_char_peek(this) == '(') {
8450 char c;
8451 basic_istream_char_get(this);
8452 basic_istream_char_read_float(this, &r);
8454 if(ios_base_fail(&base->base))
8455 return this;
8457 ws_basic_istream_char(this);
8458 c = basic_istream_char_peek(this);
8459 if(c == ',') {
8460 float i;
8461 basic_istream_char_get(this);
8462 basic_istream_char_read_float(this, &i);
8464 if(ios_base_fail(&base->base))
8465 return this;
8467 ws_basic_istream_char(this);
8468 c = basic_istream_char_peek(this);
8469 if(c == ')') { /* supported format: (real, imag) */
8470 basic_istream_char_get(this);
8471 v->real = r;
8472 v->imag = i;
8473 }else {
8474 basic_ios_char_setstate(base, IOSTATE_failbit);
8475 return this;
8477 }else if(c == ')') { /* supported format: (real) */
8478 basic_istream_char_get(this);
8479 v->real = r;
8480 v->imag = 0;
8481 }else {
8482 basic_ios_char_setstate(base, IOSTATE_failbit);
8483 return this;
8485 }else { /* supported format: real */
8486 basic_istream_char_read_float(this, &r);
8488 if(ios_base_fail(&base->base))
8489 return this;
8491 v->real = r;
8492 v->imag = 0;
8495 return this;
8498 /* ??$?5NDU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@N@0@@Z */
8499 /* ??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@N@0@@Z */
8500 basic_istream_char* __cdecl basic_istream_char_read_complex_double(basic_istream_char *this, complex_double *v)
8502 double r;
8503 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8505 TRACE("(%p %p)\n", this, v);
8507 ws_basic_istream_char(this);
8508 if(basic_istream_char_peek(this) == '(') {
8509 char c;
8510 basic_istream_char_get(this);
8511 basic_istream_char_read_double(this, &r);
8513 if(ios_base_fail(&base->base))
8514 return this;
8516 ws_basic_istream_char(this);
8517 c = basic_istream_char_peek(this);
8518 if(c == ',') {
8519 double i;
8520 basic_istream_char_get(this);
8521 basic_istream_char_read_double(this, &i);
8523 if(ios_base_fail(&base->base))
8524 return this;
8526 ws_basic_istream_char(this);
8527 c = basic_istream_char_peek(this);
8528 if(c == ')') { /* supported format: (real, imag) */
8529 basic_istream_char_get(this);
8530 v->real = r;
8531 v->imag = i;
8532 }else {
8533 basic_ios_char_setstate(base, IOSTATE_failbit);
8534 return this;
8536 }else if(c == ')') { /* supported format: (real) */
8537 basic_istream_char_get(this);
8538 v->real = r;
8539 v->imag = 0;
8540 }else {
8541 basic_ios_char_setstate(base, IOSTATE_failbit);
8542 return this;
8544 }else { /* supported format: real */
8545 basic_istream_char_read_double(this, &r);
8547 if(ios_base_fail(&base->base))
8548 return this;
8550 v->real = r;
8551 v->imag = 0;
8554 return this;
8557 /* ??$?5ODU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$complex@O@0@@Z */
8558 /* ??$?5ODU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$complex@O@0@@Z */
8559 basic_istream_char* __cdecl basic_istream_char_read_complex_ldouble(basic_istream_char *this, complex_double *v)
8561 double r;
8562 basic_ios_char *base = basic_istream_char_get_basic_ios(this);
8564 TRACE("(%p %p)\n", this, v);
8566 ws_basic_istream_char(this);
8567 if(basic_istream_char_peek(this) == '(') {
8568 char c;
8569 basic_istream_char_get(this);
8570 basic_istream_char_read_ldouble(this, &r);
8572 if(ios_base_fail(&base->base))
8573 return this;
8575 ws_basic_istream_char(this);
8576 c = basic_istream_char_peek(this);
8577 if(c == ',') {
8578 double i;
8579 basic_istream_char_get(this);
8580 basic_istream_char_read_ldouble(this, &i);
8582 if(ios_base_fail(&base->base))
8583 return this;
8585 ws_basic_istream_char(this);
8586 c = basic_istream_char_peek(this);
8587 if(c == ')') { /* supported format: (real, imag) */
8588 basic_istream_char_get(this);
8589 v->real = r;
8590 v->imag = i;
8591 }else {
8592 basic_ios_char_setstate(base, IOSTATE_failbit);
8593 return this;
8595 }else if(c == ')') { /* supported format: (real) */
8596 basic_istream_char_get(this);
8597 v->real = r;
8598 v->imag = 0;
8599 }else {
8600 basic_ios_char_setstate(base, IOSTATE_failbit);
8601 return this;
8603 }else { /* supported format: real */
8604 basic_istream_char_read_ldouble(this, &r);
8606 if(ios_base_fail(&base->base))
8607 return this;
8609 v->real = r;
8610 v->imag = 0;
8613 return this;
8616 /* ?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXAAV12@@Z */
8617 /* ?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z */
8618 DEFINE_THISCALL_WRAPPER(basic_istream_char_swap, 8)
8619 void __thiscall basic_istream_char_swap(basic_istream_char *this, basic_istream_char *r)
8621 TRACE("(%p %p)\n", this, r);
8623 if(this == r)
8624 return;
8626 basic_ios_char_swap(basic_istream_char_get_basic_ios(this),
8627 basic_istream_char_get_basic_ios(r));
8628 this->count ^= r->count;
8629 r->count ^= this->count;
8630 this->count ^= r->count;
8633 /* Caution: basic_istream uses virtual inheritance. */
8634 static inline basic_ios_wchar* basic_istream_wchar_get_basic_ios(basic_istream_wchar *this)
8636 return (basic_ios_wchar*)((char*)this+this->vbtable[1]);
8639 static inline basic_ios_wchar* basic_istream_wchar_to_basic_ios(basic_istream_wchar *ptr)
8641 return (basic_ios_wchar*)((char*)ptr+basic_istream_wchar_vbtable[1]);
8644 static inline basic_istream_wchar* basic_istream_wchar_from_basic_ios(basic_ios_wchar *ptr)
8646 return (basic_istream_wchar*)((char*)ptr-basic_istream_wchar_vbtable[1]);
8649 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z */
8650 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z */
8651 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ctor_init, 20)
8652 basic_istream_wchar* __thiscall basic_istream_wchar_ctor_init(basic_istream_wchar *this,
8653 basic_streambuf_wchar *strbuf, bool isstd, bool noinit, bool virt_init)
8655 basic_ios_wchar *base;
8657 TRACE("(%p %p %d %d %d)\n", this, strbuf, isstd, noinit, virt_init);
8659 if(virt_init) {
8660 this->vbtable = basic_istream_wchar_vbtable;
8661 base = basic_istream_wchar_get_basic_ios(this);
8662 basic_ios_wchar_ctor(base);
8663 }else {
8664 base = basic_istream_wchar_get_basic_ios(this);
8667 base->base.vtable = &basic_istream_wchar_vtable;
8668 this->count = 0;
8669 if(!noinit)
8670 basic_ios_wchar_init(base, strbuf, isstd);
8671 return this;
8674 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z */
8675 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z */
8676 DEFINE_THISCALL_WRAPPER(basic_istream_short_ctor_init, 20)
8677 basic_istream_wchar* __thiscall basic_istream_short_ctor_init(basic_istream_wchar *this,
8678 basic_streambuf_wchar *strbuf, bool isstd, bool noinit, bool virt_init)
8680 basic_istream_wchar_ctor_init(this, strbuf, isstd, noinit, virt_init);
8681 basic_istream_wchar_get_basic_ios(this)->base.vtable = &basic_istream_short_vtable;
8682 return this;
8685 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
8686 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
8687 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ctor, 16)
8688 basic_istream_wchar* __thiscall basic_istream_wchar_ctor(basic_istream_wchar *this,
8689 basic_streambuf_wchar *strbuf, bool isstd, bool virt_init)
8691 return basic_istream_wchar_ctor_init(this, strbuf, isstd, FALSE, virt_init);
8694 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
8695 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
8696 DEFINE_THISCALL_WRAPPER(basic_istream_short_ctor, 16)
8697 basic_istream_wchar* __thiscall basic_istream_short_ctor(basic_istream_wchar *this,
8698 basic_streambuf_wchar *strbuf, bool isstd, bool virt_init)
8700 return basic_istream_short_ctor_init(this, strbuf, isstd, FALSE, virt_init);
8703 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@@Z */
8704 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
8705 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ctor_uninitialized, 12)
8706 basic_istream_wchar* __thiscall basic_istream_wchar_ctor_uninitialized(
8707 basic_istream_wchar *this, int uninitialized, bool virt_init)
8709 basic_ios_wchar *base;
8711 TRACE("(%p %d %d)\n", this, uninitialized, virt_init);
8713 if(virt_init) {
8714 this->vbtable = basic_istream_wchar_vbtable;
8715 base = basic_istream_wchar_get_basic_ios(this);
8716 basic_ios_wchar_ctor(base);
8717 }else {
8718 base = basic_istream_wchar_get_basic_ios(this);
8721 base->base.vtable = &basic_istream_wchar_vtable;
8722 ios_base_Addstd(&base->base);
8723 return this;
8726 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */
8727 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
8728 DEFINE_THISCALL_WRAPPER(basic_istream_short_ctor_uninitialized, 12)
8729 basic_istream_wchar* __thiscall basic_istream_short_ctor_uninitialized(
8730 basic_istream_wchar *this, int uninitialized, bool virt_init)
8732 basic_istream_wchar_ctor_uninitialized(this, uninitialized, virt_init);
8733 basic_istream_wchar_get_basic_ios(this)->base.vtable = &basic_istream_short_vtable;
8734 return this;
8737 /* ??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
8738 /* ??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
8739 /* ??1?$basic_istream@GU?$char_traits@G@std@@@std@@UAE@XZ */
8740 /* ??1?$basic_istream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
8741 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_dtor, 4)
8742 void __thiscall basic_istream_wchar_dtor(basic_ios_wchar *base)
8744 basic_istream_wchar *this = basic_istream_wchar_from_basic_ios(base);
8746 /* don't destroy virtual base here */
8747 TRACE("(%p)\n", this);
8750 /* ??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
8751 /* ??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
8752 /* ??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXXZ */
8753 /* ??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
8754 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_vbase_dtor, 4)
8755 void __thiscall basic_istream_wchar_vbase_dtor(basic_istream_wchar *this)
8757 TRACE("(%p)\n", this);
8758 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(this));
8759 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(this));
8762 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_vector_dtor, 8)
8763 basic_istream_wchar* __thiscall basic_istream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
8765 basic_istream_wchar *this = basic_istream_wchar_from_basic_ios(base);
8767 TRACE("(%p %x)\n", this, flags);
8769 if(flags & 2) {
8770 /* we have an array, with the number of elements stored before the first object */
8771 INT_PTR i, *ptr = (INT_PTR *)this-1;
8773 for(i=*ptr-1; i>=0; i--)
8774 basic_istream_wchar_vbase_dtor(this+i);
8775 operator_delete(ptr);
8776 } else {
8777 basic_istream_wchar_vbase_dtor(this);
8778 if(flags & 1)
8779 operator_delete(this);
8782 return this;
8785 /* ?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE_N_N@Z */
8786 /* ?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z */
8787 /* ?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE_N_N@Z */
8788 /* ?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z */
8789 DEFINE_THISCALL_WRAPPER(basic_istream_wchar__Ipfx, 8)
8790 bool __thiscall basic_istream_wchar__Ipfx(basic_istream_wchar *this, bool noskip)
8792 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8794 TRACE("(%p %d)\n", this, noskip);
8796 if(ios_base_good(&base->base)) {
8797 if(basic_ios_wchar_tie_get(base))
8798 basic_ostream_wchar_flush(basic_ios_wchar_tie_get(base));
8800 if(!noskip && (ios_base_flags_get(&base->base) & FMTFLAG_skipws)) {
8801 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8802 const ctype_wchar *ctype = ctype_wchar_use_facet(IOS_LOCALE(base->strbuf));
8803 int ch;
8805 for(ch = basic_streambuf_wchar_sgetc(strbuf); ;
8806 ch = basic_streambuf_wchar_snextc(strbuf)) {
8807 if(ch==WEOF || !ctype_wchar_is_ch(ctype, _SPACE|_BLANK, ch))
8808 break;
8813 if(!ios_base_good(&base->base)) {
8814 basic_ios_wchar_setstate(base, IOSTATE_failbit);
8815 return FALSE;
8817 return TRUE;
8820 /* ?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE_N_N@Z */
8821 /* ?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z */
8822 /* ?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE_N_N@Z */
8823 /* ?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z */
8824 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ipfx, 8)
8825 bool __thiscall basic_istream_wchar_ipfx(basic_istream_wchar *this, bool noskip)
8827 return basic_istream_wchar__Ipfx(this, noskip);
8830 /* ?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
8831 /* ?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
8832 /* ?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXXZ */
8833 /* ?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
8834 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_isfx, 4)
8835 void __thiscall basic_istream_wchar_isfx(basic_istream_wchar *this)
8837 TRACE("(%p)\n", this);
8840 static BOOL basic_istream_wchar_sentry_create(basic_istream_wchar *istr, bool noskip)
8842 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istr);
8844 if(basic_ios_wchar_rdbuf_get(base))
8845 basic_streambuf_wchar__Lock(base->strbuf);
8847 return basic_istream_wchar_ipfx(istr, noskip);
8850 static void basic_istream_wchar_sentry_destroy(basic_istream_wchar *istr)
8852 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istr);
8854 if(basic_ios_wchar_rdbuf_get(base))
8855 basic_streambuf_wchar__Unlock(base->strbuf);
8858 /* ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QBEHXZ */
8859 /* ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEBA_JXZ */
8860 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QBEHXZ */
8861 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QEBA_JXZ */
8862 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QBA_JXZ */
8863 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QBE_JXZ */
8864 /* ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QBA_JXZ */
8865 /* ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QBE_JXZ */
8866 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_gcount, 4)
8867 streamsize __thiscall basic_istream_wchar_gcount(const basic_istream_wchar *this)
8869 TRACE("(%p)\n", this);
8870 return this->count;
8873 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
8874 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
8875 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEGXZ */
8876 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ */
8877 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get, 4)
8878 unsigned short __thiscall basic_istream_wchar_get(basic_istream_wchar *this)
8880 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8881 int ret;
8883 TRACE("(%p)\n", this);
8885 this->count = 0;
8887 if(!basic_istream_wchar_sentry_create(this, TRUE)) {
8888 basic_istream_wchar_sentry_destroy(this);
8889 return WEOF;
8892 ret = basic_streambuf_wchar_sbumpc(basic_ios_wchar_rdbuf_get(base));
8893 basic_istream_wchar_sentry_destroy(this);
8894 if(ret == WEOF)
8895 basic_ios_wchar_setstate(base, IOSTATE_eofbit|IOSTATE_failbit);
8896 else
8897 this->count++;
8899 return ret;
8902 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AA_W@Z */
8903 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEA_W@Z */
8904 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAG@Z */
8905 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAG@Z */
8906 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_ch, 8)
8907 basic_istream_wchar* __thiscall basic_istream_wchar_get_ch(basic_istream_wchar *this, wchar_t *ch)
8909 unsigned short ret;
8911 TRACE("(%p %p)\n", this, ch);
8913 ret = basic_istream_wchar_get(this);
8914 if(ret != WEOF)
8915 *ch = (wchar_t)ret;
8916 return this;
8919 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH_W@Z */
8920 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z */
8921 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGHG@Z */
8922 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z */
8923 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_str_delim, 16)
8924 basic_istream_wchar* __thiscall basic_istream_wchar_get_str_delim(basic_istream_wchar *this, wchar_t *str, streamsize count, wchar_t delim)
8926 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8927 unsigned short ch = delim;
8929 TRACE("(%p %p %Id %s)\n", this, str, count, debugstr_wn(&delim, 1));
8931 this->count = 0;
8933 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8934 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
8936 for(ch = basic_streambuf_wchar_sgetc(strbuf); count>1;
8937 ch = basic_streambuf_wchar_snextc(strbuf)) {
8938 if(ch==WEOF || ch==delim)
8939 break;
8941 *str++ = ch;
8942 this->count++;
8943 count--;
8946 basic_istream_wchar_sentry_destroy(this);
8948 basic_ios_wchar_setstate(base, (!this->count ? IOSTATE_failbit : IOSTATE_goodbit) |
8949 (ch==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8950 if(count > 0)
8951 *str = 0;
8952 return this;
8955 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
8956 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
8957 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
8958 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
8959 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_str, 12)
8960 basic_istream_wchar* __thiscall basic_istream_wchar_get_str(basic_istream_wchar *this, wchar_t *str, streamsize count)
8962 return basic_istream_wchar_get_str_delim(this, str, count, '\n');
8965 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z */
8966 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z */
8967 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAV?$basic_streambuf@GU?$char_traits@G@std@@@2@G@Z */
8968 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@G@Z */
8969 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_streambuf_delim, 12)
8970 basic_istream_wchar* __thiscall basic_istream_wchar_get_streambuf_delim(basic_istream_wchar *this, basic_streambuf_wchar *strbuf, wchar_t delim)
8972 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
8973 unsigned short ch = delim;
8975 TRACE("(%p %p %s)\n", this, strbuf, debugstr_wn(&delim, 1));
8977 this->count = 0;
8979 if(basic_istream_wchar_sentry_create(this, TRUE)) {
8980 basic_streambuf_wchar *strbuf_read = basic_ios_wchar_rdbuf_get(base);
8982 for(ch = basic_streambuf_wchar_sgetc(strbuf_read); ;
8983 ch = basic_streambuf_wchar_snextc(strbuf_read)) {
8984 if(ch==WEOF || ch==delim)
8985 break;
8987 if(basic_streambuf_wchar_sputc(strbuf, ch) == WEOF)
8988 break;
8989 this->count++;
8992 basic_istream_wchar_sentry_destroy(this);
8994 basic_ios_wchar_setstate(base, (!this->count ? IOSTATE_failbit : IOSTATE_goodbit) |
8995 (ch==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
8996 return this;
8999 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z */
9000 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z */
9001 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z */
9002 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z */
9003 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_streambuf, 8)
9004 basic_istream_wchar* __thiscall basic_istream_wchar_get_streambuf(basic_istream_wchar *this, basic_streambuf_wchar *strbuf)
9006 return basic_istream_wchar_get_streambuf_delim(this, strbuf, '\n');
9009 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH_W@Z */
9010 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z */
9011 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGHG@Z */
9012 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z */
9013 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_getline_delim, 16)
9014 basic_istream_wchar* __thiscall basic_istream_wchar_getline_delim(basic_istream_wchar *this, wchar_t *str, streamsize count, wchar_t delim)
9016 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9017 unsigned short ch = delim;
9019 TRACE("(%p %p %Id %s)\n", this, str, count, debugstr_wn(&delim, 1));
9021 this->count = 0;
9023 if(basic_istream_wchar_sentry_create(this, TRUE) && count>0) {
9024 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9026 while(count > 1) {
9027 ch = basic_streambuf_wchar_sbumpc(strbuf);
9029 if(ch==WEOF || ch==delim)
9030 break;
9032 *str++ = ch;
9033 this->count++;
9034 count--;
9037 if(ch == delim)
9038 this->count++;
9039 else if(ch != WEOF) {
9040 ch = basic_streambuf_wchar_sgetc(strbuf);
9042 if(ch == delim) {
9043 basic_streambuf_wchar__Gninc(strbuf);
9044 this->count++;
9048 basic_istream_wchar_sentry_destroy(this);
9050 basic_ios_wchar_setstate(base, (ch==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit) |
9051 (!this->count || (ch!=delim && ch!=WEOF) ? IOSTATE_failbit : IOSTATE_goodbit));
9052 if(count > 0)
9053 *str = 0;
9054 return this;
9057 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
9058 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
9059 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
9060 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
9061 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_getline, 12)
9062 basic_istream_wchar* __thiscall basic_istream_wchar_getline(basic_istream_wchar *this, wchar_t *str, streamsize count)
9064 return basic_istream_wchar_getline_delim(this, str, count, '\n');
9067 /* ?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@HG@Z */
9068 /* ?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JG@Z */
9069 /* ?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@HG@Z */
9070 /* ?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JG@Z */
9071 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ignore, 12)
9072 basic_istream_wchar* __thiscall basic_istream_wchar_ignore(basic_istream_wchar *this, streamsize count, unsigned short delim)
9074 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9075 unsigned short ch = delim;
9076 unsigned int state;
9078 TRACE("(%p %Id %d)\n", this, count, delim);
9080 this->count = 0;
9082 if(basic_istream_wchar_sentry_create(this, TRUE)) {
9083 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9084 state = IOSTATE_goodbit;
9086 while(count > 0) {
9087 ch = basic_streambuf_wchar_sbumpc(strbuf);
9089 if(ch==WEOF) {
9090 state = IOSTATE_eofbit;
9091 break;
9094 if(ch==delim)
9095 break;
9097 this->count++;
9098 if(count != INT_MAX)
9099 count--;
9101 }else
9102 state = IOSTATE_failbit;
9103 basic_istream_wchar_sentry_destroy(this);
9105 basic_ios_wchar_setstate(base, state);
9106 return this;
9109 /* ?ws@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
9110 /* ?ws@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
9111 /* ?ws@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@1@AAV21@@Z */
9112 /* ?ws@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
9113 basic_istream_wchar* __cdecl ws_basic_istream_wchar(basic_istream_wchar *istream)
9115 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istream);
9116 unsigned short ch = '\n';
9118 TRACE("(%p)\n", istream);
9120 if(basic_istream_wchar_sentry_create(istream, TRUE)) {
9121 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9122 const ctype_wchar *ctype = ctype_wchar_use_facet(IOS_LOCALE(strbuf));
9124 for(ch = basic_streambuf_wchar_sgetc(strbuf); ctype_wchar_is_ch(ctype, _SPACE, ch);
9125 ch = basic_streambuf_wchar_snextc(strbuf)) {
9126 if(ch == WEOF)
9127 break;
9130 basic_istream_wchar_sentry_destroy(istream);
9132 if(ch == WEOF)
9133 basic_ios_wchar_setstate(base, IOSTATE_eofbit);
9134 return istream;
9137 /* ?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
9138 /* ?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
9139 /* ?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEGXZ */
9140 /* ?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ */
9141 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_peek, 4)
9142 unsigned short __thiscall basic_istream_wchar_peek(basic_istream_wchar *this)
9144 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9145 unsigned short ret = WEOF;
9147 TRACE("(%p)\n", this);
9149 this->count = 0;
9151 if(basic_istream_wchar_sentry_create(this, TRUE))
9152 ret = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base));
9153 basic_istream_wchar_sentry_destroy(this);
9155 if (ret == WEOF)
9156 basic_ios_wchar_setstate(base, IOSTATE_eofbit);
9158 return ret;
9161 /* ?_Read_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WIH@Z */
9162 /* ?_Read_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_K_J@Z */
9163 /* ?_Read_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGIH@Z */
9164 /* ?_Read_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_K_J@Z */
9165 DEFINE_THISCALL_WRAPPER(basic_istream_wchar__Read_s, 16)
9166 basic_istream_wchar* __thiscall basic_istream_wchar__Read_s(basic_istream_wchar *this, wchar_t *str, size_t size, streamsize count)
9168 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9169 IOSB_iostate state = IOSTATE_goodbit;
9171 TRACE("(%p %p %Iu %Id)\n", this, str, size, count);
9173 if(basic_istream_wchar_sentry_create(this, TRUE)) {
9174 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9176 this->count = basic_streambuf_wchar__Sgetn_s(strbuf, str, size, count);
9177 if(this->count != count)
9178 state |= IOSTATE_failbit | IOSTATE_eofbit;
9179 }else {
9180 this->count = 0;
9182 basic_istream_wchar_sentry_destroy(this);
9184 basic_ios_wchar_setstate(base, state);
9185 return this;
9188 /* ?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
9189 /* ?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
9190 /* ?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
9191 /* ?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
9192 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read, 12)
9193 basic_istream_wchar* __thiscall basic_istream_wchar_read(basic_istream_wchar *this, wchar_t *str, streamsize count)
9195 return basic_istream_wchar__Read_s(this, str, -1, count);
9198 /* ?_Readsome_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHPA_WIH@Z */
9199 /* ?_Readsome_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_K_J@Z */
9200 /* ?_Readsome_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHPAGIH@Z */
9201 /* ?_Readsome_s@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_K_J@Z */
9202 DEFINE_THISCALL_WRAPPER(basic_istream_wchar__Readsome_s, 16)
9203 streamsize __thiscall basic_istream_wchar__Readsome_s(basic_istream_wchar *this, wchar_t *str, size_t size, streamsize count)
9205 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9206 IOSB_iostate state = IOSTATE_goodbit;
9208 TRACE("(%p %p %Iu %Id)\n", this, str, size, count);
9210 this->count = 0;
9212 if(basic_istream_wchar_sentry_create(this, TRUE)) {
9213 streamsize avail = basic_streambuf_wchar_in_avail(basic_ios_wchar_rdbuf_get(base));
9214 if(avail > count)
9215 avail = count;
9217 if(avail == -1)
9218 state |= IOSTATE_eofbit;
9219 else if(avail > 0)
9220 basic_istream_wchar__Read_s(this, str, size, avail);
9221 }else {
9222 state |= IOSTATE_failbit;
9224 basic_istream_wchar_sentry_destroy(this);
9226 basic_ios_wchar_setstate(base, state);
9227 return this->count;
9230 /* ?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHPA_WH@Z */
9231 /* ?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z */
9232 /* ?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHPAGH@Z */
9233 /* ?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z */
9234 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_readsome, 12)
9235 streamsize __thiscall basic_istream_wchar_readsome(basic_istream_wchar *this, wchar_t *str, streamsize count)
9237 return basic_istream_wchar__Readsome_s(this, str, count, count);
9240 /* ?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@_W@Z */
9241 /* ?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z */
9242 /* ?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@G@Z */
9243 /* ?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z */
9244 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_putback, 8)
9245 basic_istream_wchar* __thiscall basic_istream_wchar_putback(basic_istream_wchar *this, wchar_t ch)
9247 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9248 IOSB_iostate state = IOSTATE_goodbit;
9250 TRACE("(%p %c)\n", this, ch);
9252 this->count = 0;
9254 if(basic_istream_wchar_sentry_create(this, TRUE)) {
9255 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9257 if(!ios_base_good(&base->base))
9258 state |= IOSTATE_failbit;
9259 else if(!strbuf || basic_streambuf_wchar_sputbackc(strbuf, ch)==WEOF)
9260 state |= IOSTATE_badbit;
9262 basic_istream_wchar_sentry_destroy(this);
9264 basic_ios_wchar_setstate(base, state);
9265 return this;
9268 /* ?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ */
9269 /* ?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ */
9270 /* ?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@XZ */
9271 /* ?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ */
9272 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_unget, 4)
9273 basic_istream_wchar* __thiscall basic_istream_wchar_unget(basic_istream_wchar *this)
9275 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9276 IOSB_iostate state = IOSTATE_goodbit;
9278 TRACE("(%p)\n", this);
9280 this->count = 0;
9282 if(basic_istream_wchar_sentry_create(this, TRUE)) {
9283 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9285 if(!ios_base_good(&base->base))
9286 state |= IOSTATE_failbit;
9287 else if(!strbuf || basic_streambuf_wchar_sungetc(strbuf)==WEOF)
9288 state |= IOSTATE_badbit;
9290 basic_istream_wchar_sentry_destroy(this);
9292 basic_ios_wchar_setstate(base, state);
9293 return this;
9296 /* ?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
9297 /* ?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAHXZ */
9298 /* ?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHXZ */
9299 /* ?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAHXZ */
9300 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_sync, 4)
9301 int __thiscall basic_istream_wchar_sync(basic_istream_wchar *this)
9303 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9304 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9306 TRACE("(%p)\n", this);
9308 if(!strbuf)
9309 return -1;
9311 if(basic_istream_wchar_sentry_create(this, TRUE)) {
9312 if(basic_streambuf_wchar_pubsync(strbuf) != -1) {
9313 basic_istream_wchar_sentry_destroy(this);
9314 return 0;
9317 basic_istream_wchar_sentry_destroy(this);
9319 basic_ios_wchar_setstate(base, IOSTATE_badbit);
9320 return -1;
9323 /* ?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@XZ */
9324 /* ?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
9325 /* ?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@XZ */
9326 /* ?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
9327 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_tellg, 8)
9328 fpos_int* __thiscall basic_istream_wchar_tellg(basic_istream_wchar *this, fpos_int *ret)
9330 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9332 TRACE("(%p %p)\n", this, ret);
9334 if(ios_base_fail(&base->base)) {
9335 ret->off = -1;
9336 ret->pos = 0;
9337 ret->state = 0;
9338 return ret;
9341 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base),
9342 ret, 0, SEEKDIR_cur, OPENMODE_in);
9344 return ret;
9347 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@JW4seekdir@ios_base@2@@Z */
9348 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JW4seekdir@ios_base@2@@Z */
9349 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@JH@Z */
9350 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z */
9351 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@JH@Z */
9352 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z */
9353 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_seekg, 12)
9354 basic_istream_wchar* __thiscall basic_istream_wchar_seekg(basic_istream_wchar *this, streamoff off, int dir)
9356 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9358 TRACE("(%p %Id %d)\n", this, off, dir);
9360 if(!ios_base_fail(&base->base)) {
9361 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9362 fpos_int ret;
9364 basic_streambuf_wchar_pubseekoff(strbuf, &ret, off, dir, OPENMODE_in);
9367 return this;
9370 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
9371 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
9372 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
9373 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
9374 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_seekg_fpos, 28)
9375 basic_istream_wchar* __thiscall basic_istream_wchar_seekg_fpos(basic_istream_wchar *this, fpos_int pos)
9377 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9379 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos));
9381 if(!ios_base_fail(&base->base)) {
9382 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9383 fpos_int ret;
9385 basic_streambuf_wchar_pubseekpos(strbuf, &ret, pos, OPENMODE_in);
9388 return this;
9391 static basic_istream_wchar* basic_istream_read_short(basic_istream_wchar *this, short *v, const num_get *numget)
9393 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9394 int state = IOSTATE_goodbit;
9396 TRACE("(%p %p)\n", this, v);
9398 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9399 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9400 istreambuf_iterator_wchar first={0}, last={0};
9401 LONG tmp;
9403 first.strbuf = strbuf;
9404 num_get_wchar_get_long(numget, &last, first, last, &base->base, &state, &tmp);
9406 if(!(state&IOSTATE_failbit) && tmp==(LONG)((short)tmp))
9407 *v = tmp;
9408 else
9409 state |= IOSTATE_failbit;
9411 basic_istream_wchar_sentry_destroy(this);
9413 basic_ios_wchar_setstate(base, state);
9414 return this;
9417 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAF@Z */
9418 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAF@Z */
9419 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_short, 8)
9420 basic_istream_wchar* __thiscall basic_istream_wchar_read_short(basic_istream_wchar *this, short *v)
9422 return basic_istream_read_short(this, v, num_get_wchar_use_facet(
9423 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9426 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAF@Z */
9427 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAF@Z */
9428 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_short, 8)
9429 basic_istream_wchar* __thiscall basic_istream_short_read_short(basic_istream_wchar *this, short *v)
9431 return basic_istream_read_short(this, v, num_get_short_use_facet(
9432 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9435 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAG@Z */
9436 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAG@Z */
9437 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ushort, 8)
9438 basic_istream_wchar* __thiscall basic_istream_wchar_read_ushort(basic_istream_wchar *this, unsigned short *v)
9440 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9441 int state = IOSTATE_goodbit;
9443 TRACE("(%p %p)\n", this, v);
9445 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9446 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9447 const num_get *numget = num_get_wchar_use_facet(IOS_LOCALE(strbuf));
9448 istreambuf_iterator_wchar first={0}, last={0};
9450 first.strbuf = strbuf;
9451 num_get_wchar_get_ushort(numget, &last, first, last, &base->base, &state, v);
9453 basic_istream_wchar_sentry_destroy(this);
9455 basic_ios_wchar_setstate(base, state);
9456 return this;
9459 static basic_istream_wchar* basic_istream_read_int(basic_istream_wchar *this, int *v, const num_get *numget)
9461 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9462 int state = IOSTATE_goodbit;
9464 TRACE("(%p %p)\n", this, v);
9466 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9467 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9468 istreambuf_iterator_wchar first={0}, last={0};
9470 first.strbuf = strbuf;
9471 num_get_wchar_get_long(numget, &last, first, last, &base->base, &state, (LONG*)v);
9473 basic_istream_wchar_sentry_destroy(this);
9475 basic_ios_wchar_setstate(base, state);
9476 return this;
9479 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAH@Z */
9480 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAH@Z */
9481 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_int, 8)
9482 basic_istream_wchar* __thiscall basic_istream_wchar_read_int(basic_istream_wchar *this, int *v)
9484 return basic_istream_read_int(this, v, num_get_wchar_use_facet(
9485 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9488 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAH@Z */
9489 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAH@Z */
9490 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_int, 8)
9491 basic_istream_wchar* __thiscall basic_istream_short_read_int(basic_istream_wchar *this, int *v)
9493 return basic_istream_read_int(this, v, num_get_short_use_facet(
9494 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9497 static basic_istream_wchar* basic_istream_read_uint(basic_istream_wchar *this, unsigned int *v, const num_get *numget)
9499 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9500 int state = IOSTATE_goodbit;
9502 TRACE("(%p %p)\n", this, v);
9504 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9505 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9506 istreambuf_iterator_wchar first={0}, last={0};
9508 first.strbuf = strbuf;
9509 num_get_wchar_get_uint(numget, &last, first, last, &base->base, &state, v);
9511 basic_istream_wchar_sentry_destroy(this);
9513 basic_ios_wchar_setstate(base, state);
9514 return this;
9517 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAI@Z */
9518 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAI@Z */
9519 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_uint, 8)
9520 basic_istream_wchar* __thiscall basic_istream_wchar_read_uint(basic_istream_wchar *this, unsigned int *v)
9522 return basic_istream_read_uint(this, v, num_get_wchar_use_facet(
9523 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9526 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAI@Z */
9527 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAI@Z */
9528 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_uint, 8)
9529 basic_istream_wchar* __thiscall basic_istream_short_read_uint(basic_istream_wchar *this, unsigned int *v)
9531 return basic_istream_read_uint(this, v, num_get_short_use_facet(
9532 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9535 static basic_istream_wchar* basic_istream_read_long(basic_istream_wchar *this, LONG *v, const num_get *numget)
9537 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9538 int state = IOSTATE_goodbit;
9540 TRACE("(%p %p)\n", this, v);
9542 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9543 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9544 istreambuf_iterator_wchar first={0}, last={0};
9546 first.strbuf = strbuf;
9547 num_get_wchar_get_long(numget, &last, first, last, &base->base, &state, v);
9549 basic_istream_wchar_sentry_destroy(this);
9551 basic_ios_wchar_setstate(base, state);
9552 return this;
9555 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAJ@Z */
9556 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAJ@Z */
9557 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_long, 8)
9558 basic_istream_wchar* __thiscall basic_istream_wchar_read_long(basic_istream_wchar *this, LONG *v)
9560 return basic_istream_read_long(this, v, num_get_wchar_use_facet(
9561 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9564 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAJ@Z */
9565 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAJ@Z */
9566 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_long, 8)
9567 basic_istream_wchar* __thiscall basic_istream_short_read_long(basic_istream_wchar *this, LONG *v)
9569 return basic_istream_read_long(this, v, num_get_short_use_facet(
9570 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9573 static basic_istream_wchar* basic_istream_read_ulong(basic_istream_wchar *this, ULONG *v, const num_get *numget)
9575 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9576 int state = IOSTATE_goodbit;
9578 TRACE("(%p %p)\n", this, v);
9580 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9581 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9582 istreambuf_iterator_wchar first={0}, last={0};
9584 first.strbuf = strbuf;
9585 num_get_wchar_get_ulong(numget, &last, first, last, &base->base, &state, v);
9587 basic_istream_wchar_sentry_destroy(this);
9589 basic_ios_wchar_setstate(base, state);
9590 return this;
9593 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAK@Z */
9594 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAK@Z */
9595 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ulong, 8)
9596 basic_istream_wchar* __thiscall basic_istream_wchar_read_ulong(basic_istream_wchar *this, ULONG *v)
9598 return basic_istream_read_ulong(this, v, num_get_wchar_use_facet(
9599 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9602 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAK@Z */
9603 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAK@Z */
9604 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ulong, 8)
9605 basic_istream_wchar* __thiscall basic_istream_short_read_ulong(basic_istream_wchar *this, ULONG *v)
9607 return basic_istream_read_ulong(this, v, num_get_short_use_facet(
9608 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9611 static basic_istream_wchar* basic_istream_read_float(basic_istream_wchar *this, float *v, const num_get *numget)
9613 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9614 int state = IOSTATE_goodbit;
9616 TRACE("(%p %p)\n", this, v);
9618 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9619 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9620 istreambuf_iterator_wchar first={0}, last={0};
9622 first.strbuf = strbuf;
9623 num_get_wchar_get_float(numget, &last, first, last, &base->base, &state, v);
9625 basic_istream_wchar_sentry_destroy(this);
9627 basic_ios_wchar_setstate(base, state);
9628 return this;
9631 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAM@Z */
9632 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAM@Z */
9633 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_float, 8)
9634 basic_istream_wchar* __thiscall basic_istream_wchar_read_float(basic_istream_wchar *this, float *v)
9636 return basic_istream_read_float(this, v, num_get_wchar_use_facet(
9637 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9640 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAM@Z */
9641 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAM@Z */
9642 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_float, 8)
9643 basic_istream_wchar* __thiscall basic_istream_short_read_float(basic_istream_wchar *this, float *v)
9645 return basic_istream_read_float(this, v, num_get_short_use_facet(
9646 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9649 static basic_istream_wchar* basic_istream_read_double(basic_istream_wchar *this, double *v, const num_get *numget)
9651 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9652 int state = IOSTATE_goodbit;
9654 TRACE("(%p %p)\n", this, v);
9656 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9657 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9658 istreambuf_iterator_wchar first={0}, last={0};
9660 first.strbuf = strbuf;
9661 num_get_wchar_get_double(numget, &last, first, last, &base->base, &state, v);
9663 basic_istream_wchar_sentry_destroy(this);
9665 basic_ios_wchar_setstate(base, state);
9666 return this;
9669 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAN@Z */
9670 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAN@Z */
9671 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_double, 8)
9672 basic_istream_wchar* __thiscall basic_istream_wchar_read_double(basic_istream_wchar *this, double *v)
9674 return basic_istream_read_double(this, v, num_get_wchar_use_facet(
9675 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9678 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAN@Z */
9679 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAN@Z */
9680 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_double, 8)
9681 basic_istream_wchar* __thiscall basic_istream_short_read_double(basic_istream_wchar *this, double *v)
9683 return basic_istream_read_double(this, v, num_get_short_use_facet(
9684 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9687 static basic_istream_wchar* basic_istream_read_ldouble(basic_istream_wchar *this, double *v, const num_get *numget)
9689 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9690 int state = IOSTATE_goodbit;
9692 TRACE("(%p %p)\n", this, v);
9694 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9695 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9696 istreambuf_iterator_wchar first={0}, last={0};
9698 first.strbuf = strbuf;
9699 num_get_wchar_get_ldouble(numget, &last, first, last, &base->base, &state, v);
9701 basic_istream_wchar_sentry_destroy(this);
9703 basic_ios_wchar_setstate(base, state);
9704 return this;
9707 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAO@Z */
9708 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAO@Z */
9709 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ldouble, 8)
9710 basic_istream_wchar* __thiscall basic_istream_wchar_read_ldouble(basic_istream_wchar *this, double *v)
9712 return basic_istream_read_ldouble(this, v, num_get_wchar_use_facet(
9713 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9716 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAO@Z */
9717 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAO@Z */
9718 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ldouble, 8)
9719 basic_istream_wchar* __thiscall basic_istream_short_read_ldouble(basic_istream_wchar *this, double *v)
9721 return basic_istream_read_ldouble(this, v, num_get_short_use_facet(
9722 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9725 static basic_istream_wchar* basic_istream_read_ptr(basic_istream_wchar *this, void **v, const num_get *numget)
9727 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9728 int state = IOSTATE_goodbit;
9730 TRACE("(%p %p)\n", this, v);
9732 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9733 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9734 istreambuf_iterator_wchar first={0}, last={0};
9736 first.strbuf = strbuf;
9737 num_get_wchar_get_void(numget, &last, first, last, &base->base, &state, v);
9739 basic_istream_wchar_sentry_destroy(this);
9741 basic_ios_wchar_setstate(base, state);
9742 return this;
9745 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAPAX@Z */
9746 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
9747 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ptr, 8)
9748 basic_istream_wchar* __thiscall basic_istream_wchar_read_ptr(basic_istream_wchar *this, void **v)
9750 return basic_istream_read_ptr(this, v, num_get_wchar_use_facet(
9751 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9754 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAPAX@Z */
9755 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
9756 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ptr, 8)
9757 basic_istream_wchar* __thiscall basic_istream_short_read_ptr(basic_istream_wchar *this, void **v)
9759 return basic_istream_read_ptr(this, v, num_get_short_use_facet(
9760 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9763 static basic_istream_wchar* basic_istream_read_int64(basic_istream_wchar *this, __int64 *v, const num_get *numget)
9765 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9766 int state = IOSTATE_goodbit;
9768 TRACE("(%p %p)\n", this, v);
9770 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9771 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9772 istreambuf_iterator_wchar first={0}, last={0};
9774 first.strbuf = strbuf;
9775 num_get_wchar_get_int64(numget, &last, first, last, &base->base, &state, v);
9777 basic_istream_wchar_sentry_destroy(this);
9779 basic_ios_wchar_setstate(base, state);
9780 return this;
9783 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_J@Z */
9784 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_J@Z */
9785 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_int64, 8)
9786 basic_istream_wchar* __thiscall basic_istream_wchar_read_int64(basic_istream_wchar *this, __int64 *v)
9788 return basic_istream_read_int64(this, v, num_get_wchar_use_facet(
9789 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9792 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_J@Z */
9793 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_J@Z */
9794 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_int64, 8)
9795 basic_istream_wchar* __thiscall basic_istream_short_read_int64(basic_istream_wchar *this, __int64 *v)
9797 return basic_istream_read_int64(this, v, num_get_short_use_facet(
9798 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9801 static basic_istream_wchar* basic_istream_read_uint64(basic_istream_wchar *this, unsigned __int64 *v, const num_get *numget)
9803 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9804 int state = IOSTATE_goodbit;
9806 TRACE("(%p %p)\n", this, v);
9808 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9809 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9810 istreambuf_iterator_wchar first={0}, last={0};
9812 first.strbuf = strbuf;
9813 num_get_wchar_get_uint64(numget, &last, first, last, &base->base, &state, v);
9815 basic_istream_wchar_sentry_destroy(this);
9817 basic_ios_wchar_setstate(base, state);
9818 return this;
9821 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_K@Z */
9822 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_K@Z */
9823 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_uint64, 8)
9824 basic_istream_wchar* __thiscall basic_istream_wchar_read_uint64(basic_istream_wchar *this, unsigned __int64 *v)
9826 return basic_istream_read_uint64(this, v, num_get_wchar_use_facet(
9827 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9830 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_K@Z */
9831 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_K@Z */
9832 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_uint64, 8)
9833 basic_istream_wchar* __thiscall basic_istream_short_read_uint64(basic_istream_wchar *this, unsigned __int64 *v)
9835 return basic_istream_read_uint64(this, v, num_get_short_use_facet(
9836 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9839 static basic_istream_wchar* basic_istream_read_bool(basic_istream_wchar *this, bool *v, const num_get *numget)
9841 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
9842 int state = IOSTATE_goodbit;
9844 TRACE("(%p %p)\n", this, v);
9846 if(basic_istream_wchar_sentry_create(this, FALSE)) {
9847 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9848 istreambuf_iterator_wchar first={0}, last={0};
9850 first.strbuf = strbuf;
9851 num_get_wchar_get_bool(numget, &last, first, last, &base->base, &state, v);
9853 basic_istream_wchar_sentry_destroy(this);
9855 basic_ios_wchar_setstate(base, state);
9856 return this;
9859 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_N@Z */
9860 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_N@Z */
9861 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_bool, 8)
9862 basic_istream_wchar* __thiscall basic_istream_wchar_read_bool(basic_istream_wchar *this, bool *v)
9864 return basic_istream_read_bool(this, v, num_get_wchar_use_facet(
9865 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9868 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_N@Z */
9869 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_N@Z */
9870 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_bool, 8)
9871 basic_istream_wchar* __thiscall basic_istream_short_read_bool(basic_istream_wchar *this, bool *v)
9873 return basic_istream_read_bool(this, v, num_get_short_use_facet(
9874 IOS_LOCALE(basic_istream_wchar_get_basic_ios(this)->strbuf)));
9877 /* ??$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 */
9878 /* ??$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 */
9879 /* ??$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 */
9880 /* ??$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 */
9881 basic_istream_wchar* __cdecl basic_istream_wchar_getline_bstr_delim(
9882 basic_istream_wchar *istream, basic_string_wchar *str, wchar_t delim)
9884 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istream);
9885 IOSB_iostate state = IOSTATE_goodbit;
9886 int c = delim;
9888 TRACE("(%p %p %s)\n", istream, str, debugstr_wn(&delim, 1));
9890 MSVCP_basic_string_wchar_clear(str);
9891 if(basic_istream_wchar_sentry_create(istream, TRUE)) {
9892 basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base);
9894 c = basic_streambuf_wchar_sgetc(strbuf);
9895 for(; c!=delim && c!=WEOF; c = basic_streambuf_wchar_snextc(strbuf))
9896 MSVCP_basic_string_wchar_append_ch(str, c);
9897 if(c==delim) basic_streambuf_wchar_sbumpc(strbuf);
9898 else if(c==WEOF) state |= IOSTATE_eofbit;
9900 if(!MSVCP_basic_string_wchar_length(str) && c!=delim) state |= IOSTATE_failbit;
9902 basic_istream_wchar_sentry_destroy(istream);
9904 basic_ios_wchar_setstate(basic_istream_wchar_get_basic_ios(istream), state);
9905 return istream;
9908 /* ??$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 */
9909 /* ??$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 */
9910 /* ??$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 */
9911 /* ??$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 */
9912 basic_istream_wchar* __cdecl basic_istream_wchar_getline_bstr(
9913 basic_istream_wchar *istream, basic_string_wchar *str)
9915 return basic_istream_wchar_getline_bstr_delim(istream, str, '\n');
9918 static basic_istream_wchar* basic_istream_read_bstr(basic_istream_wchar *istream,
9919 basic_string_wchar *str, const ctype_wchar *ctype)
9921 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istream);
9922 IOSB_iostate state = IOSTATE_failbit;
9923 int c = '\n';
9925 TRACE("(%p %p)\n", istream, str);
9927 if(basic_istream_wchar_sentry_create(istream, FALSE)) {
9928 size_t count = ios_base_width_get(&base->base);
9930 if(!count)
9931 count = -1;
9933 MSVCP_basic_string_wchar_clear(str);
9935 for(c = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base));
9936 c!=WEOF && !ctype_wchar_is_ch(ctype, _SPACE|_BLANK, c) && count>0;
9937 c = basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base)), count--) {
9938 state = IOSTATE_goodbit;
9939 MSVCP_basic_string_wchar_append_ch(str, c);
9942 basic_istream_wchar_sentry_destroy(istream);
9944 ios_base_width_set(&base->base, 0);
9945 basic_ios_wchar_setstate(base, state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
9946 return istream;
9949 /* ??$?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 */
9950 /* ??$?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 */
9951 basic_istream_wchar* __cdecl basic_istream_wchar_read_bstr(
9952 basic_istream_wchar *istream, basic_string_wchar *str)
9954 return basic_istream_read_bstr(istream, str, ctype_wchar_use_facet(
9955 IOS_LOCALE(basic_istream_wchar_get_basic_ios(istream)->strbuf)));
9958 /* ??$?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 */
9959 /* ??$?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 */
9960 basic_istream_wchar* __cdecl basic_istream_short_read_bstr(
9961 basic_istream_wchar *istream, basic_string_wchar *str)
9963 return basic_istream_read_bstr(istream, str, ctype_short_use_facet(
9964 IOS_LOCALE(basic_istream_wchar_get_basic_ios(istream)->strbuf)));
9967 static basic_istream_wchar* basic_istream_read_str(basic_istream_wchar *istream, wchar_t *str, const ctype_wchar *ctype)
9969 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(istream);
9970 IOSB_iostate state = IOSTATE_failbit;
9971 unsigned short c = '\n';
9973 TRACE("(%p %p)\n", istream, str);
9975 if(basic_istream_wchar_sentry_create(istream, FALSE)) {
9976 size_t count = ios_base_width_get(&base->base)-1;
9978 for(c = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base));
9979 c!=WEOF && !ctype_wchar_is_ch(ctype, _SPACE|_BLANK, c) && count>0;
9980 c = basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base)), count--) {
9981 state = IOSTATE_goodbit;
9982 *str++ = c;
9985 basic_istream_wchar_sentry_destroy(istream);
9987 *str = 0;
9988 ios_base_width_set(&base->base, 0);
9989 basic_ios_wchar_setstate(base, state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
9990 return istream;
9993 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@PA_W@Z */
9994 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@PEA_W@Z */
9995 basic_istream_wchar* __cdecl basic_istream_wchar_read_str(basic_istream_wchar *istream, wchar_t *str)
9997 return basic_istream_read_str(istream, str, ctype_wchar_use_facet(
9998 IOS_LOCALE(basic_istream_wchar_get_basic_ios(istream)->strbuf)));
10001 /* ??$?5GU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@PAG@Z */
10002 /* ??$?5GU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@PEAG@Z */
10003 basic_istream_wchar* __cdecl basic_istream_short_read_str(basic_istream_wchar *istream, wchar_t *str)
10005 return basic_istream_read_str(istream, str, ctype_short_use_facet(
10006 IOS_LOCALE(basic_istream_wchar_get_basic_ios(istream)->strbuf)));
10009 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AA_W@Z */
10010 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEA_W@Z */
10011 /* ??$?5GU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAG@Z */
10012 /* ??$?5GU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAG@Z */
10013 basic_istream_wchar* __cdecl basic_istream_wchar_read_ch(basic_istream_wchar *istream, wchar_t *ch)
10015 IOSB_iostate state = IOSTATE_failbit;
10016 unsigned short c = 0;
10018 TRACE("(%p %p)\n", istream, ch);
10020 if(basic_istream_wchar_sentry_create(istream, FALSE)) {
10021 c = basic_streambuf_wchar_sbumpc(basic_ios_wchar_rdbuf_get(
10022 basic_istream_wchar_get_basic_ios(istream)));
10023 if(c != WEOF) {
10024 state = IOSTATE_goodbit;
10025 *ch = c;
10028 basic_istream_wchar_sentry_destroy(istream);
10030 basic_ios_wchar_setstate(basic_istream_wchar_get_basic_ios(istream),
10031 state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
10032 return istream;
10035 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
10036 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
10037 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
10038 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
10039 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_streambuf, 8)
10040 basic_istream_wchar* __thiscall basic_istream_wchar_read_streambuf(
10041 basic_istream_wchar *this, basic_streambuf_wchar *streambuf)
10043 basic_ios_wchar *base = basic_istream_wchar_get_basic_ios(this);
10044 IOSB_iostate state = IOSTATE_failbit;
10045 unsigned short c = '\n';
10047 TRACE("(%p %p)\n", this, streambuf);
10049 if(basic_istream_wchar_sentry_create(this, FALSE)) {
10050 for(c = basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base)); c!=WEOF;
10051 c = basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base))) {
10052 state = IOSTATE_goodbit;
10053 if(basic_streambuf_wchar_sputc(streambuf, c) == WEOF)
10054 break;
10057 basic_istream_wchar_sentry_destroy(this);
10059 basic_ios_wchar_setstate(base, state | (c==WEOF ? IOSTATE_eofbit : IOSTATE_goodbit));
10060 return this;
10063 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
10064 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
10065 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
10066 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
10067 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func, 8)
10068 basic_istream_wchar* __thiscall basic_istream_wchar_read_func(basic_istream_wchar *this,
10069 basic_istream_wchar* (__cdecl *pfunc)(basic_istream_wchar*))
10071 TRACE("(%p %p)\n", this, pfunc);
10072 pfunc(this);
10073 return this;
10076 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AAV21@@Z@Z */
10077 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z */
10078 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@GU?$char_traits@G@std@@@1@AAV21@@Z@Z */
10079 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z */
10080 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func_basic_ios, 8)
10081 basic_istream_wchar* __thiscall basic_istream_wchar_read_func_basic_ios(basic_istream_wchar *this,
10082 basic_ios_wchar* (__cdecl *pfunc)(basic_ios_wchar*))
10084 TRACE("(%p %p)\n", this, pfunc);
10085 pfunc(basic_istream_wchar_get_basic_ios(this));
10086 return this;
10089 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
10090 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
10091 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
10092 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
10093 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_func_ios_base, 8)
10094 basic_istream_wchar* __thiscall basic_istream_wchar_read_func_ios_base(
10095 basic_istream_wchar *this, ios_base* (__cdecl *pfunc)(ios_base*))
10097 TRACE("(%p %p)\n", this, pfunc);
10098 pfunc(&basic_istream_wchar_get_basic_ios(this)->base);
10099 return this;
10102 /* ?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXAAV12@@Z */
10103 /* ?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z */
10104 /* ?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXAAV12@@Z */
10105 /* ?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z */
10106 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_swap, 8)
10107 void __thiscall basic_istream_wchar_swap(basic_istream_wchar *this, basic_istream_wchar *r)
10109 TRACE("(%p %p)\n", this, r);
10111 if(this == r)
10112 return;
10114 basic_ios_wchar_swap(basic_istream_wchar_get_basic_ios(this),
10115 basic_istream_wchar_get_basic_ios(r));
10116 this->count ^= r->count;
10117 r->count ^= this->count;
10118 this->count ^= r->count;
10121 static inline basic_ios_char* basic_iostream_char_to_basic_ios(basic_iostream_char *ptr)
10123 return (basic_ios_char*)((char*)ptr+basic_iostream_char_vbtable1[1]);
10126 static inline basic_iostream_char* basic_iostream_char_from_basic_ios(basic_ios_char *ptr)
10128 return (basic_iostream_char*)((char*)ptr-basic_iostream_char_vbtable1[1]);
10131 /* ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
10132 /* ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
10133 DEFINE_THISCALL_WRAPPER(basic_iostream_char_ctor, 12)
10134 basic_iostream_char* __thiscall basic_iostream_char_ctor(basic_iostream_char *this, basic_streambuf_char *strbuf, bool virt_init)
10136 basic_ios_char *basic_ios;
10138 TRACE("(%p %p %d)\n", this, strbuf, virt_init);
10140 if(virt_init) {
10141 this->base1.vbtable = basic_iostream_char_vbtable1;
10142 this->base2.vbtable = basic_iostream_char_vbtable2;
10143 basic_ios = basic_istream_char_get_basic_ios(&this->base1);
10144 basic_ios_char_ctor(basic_ios);
10145 }else {
10146 basic_ios = basic_istream_char_get_basic_ios(&this->base1);
10149 basic_ios->base.vtable = &basic_iostream_char_vtable;
10151 basic_istream_char_ctor(&this->base1, strbuf, FALSE, FALSE);
10152 basic_ostream_char_ctor(&this->base2, NULL, FALSE, FALSE, FALSE);
10153 return this;
10156 /* ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
10157 /* ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
10158 DEFINE_THISCALL_WRAPPER(basic_iostream_char_dtor, 4)
10159 void __thiscall basic_iostream_char_dtor(basic_ios_char *base)
10161 basic_iostream_char *this = basic_iostream_char_from_basic_ios(base);
10163 TRACE("(%p)\n", this);
10164 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base2));
10165 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base1));
10168 /* ??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10169 /* ??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10170 DEFINE_THISCALL_WRAPPER(basic_iostream_char_vbase_dtor, 4)
10171 void __thiscall basic_iostream_char_vbase_dtor(basic_iostream_char *this)
10173 TRACE("(%p)\n", this);
10174 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(this));
10175 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base1));
10178 DEFINE_THISCALL_WRAPPER(basic_iostream_char_vector_dtor, 8)
10179 basic_iostream_char* __thiscall basic_iostream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
10181 basic_iostream_char *this = basic_iostream_char_from_basic_ios(base);
10183 TRACE("(%p %x)\n", this, flags);
10185 if(flags & 2) {
10186 /* we have an array, with the number of elements stored before the first object */
10187 INT_PTR i, *ptr = (INT_PTR *)this-1;
10189 for(i=*ptr-1; i>=0; i--)
10190 basic_iostream_char_vbase_dtor(this+i);
10191 operator_delete(ptr);
10192 } else {
10193 basic_iostream_char_vbase_dtor(this);
10194 if(flags & 1)
10195 operator_delete(this);
10198 return this;
10201 /* ?swap@?$basic_iostream@DU?$char_traits@D@std@@@std@@QAEXAAV12@@Z */
10202 /* ?swap@?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z */
10203 DEFINE_THISCALL_WRAPPER(basic_iostream_char_swap, 8)
10204 void __thiscall basic_iostream_char_swap(basic_iostream_char *this, basic_iostream_char *r)
10206 TRACE("(%p %p)\n", this, r);
10208 if(this == r)
10209 return;
10211 basic_ios_char_swap(basic_istream_char_get_basic_ios(&this->base1),
10212 basic_istream_char_get_basic_ios(&r->base1));
10215 static inline basic_ios_wchar* basic_iostream_wchar_to_basic_ios(basic_iostream_wchar *ptr)
10217 return (basic_ios_wchar*)((char*)ptr+basic_iostream_wchar_vbtable1[1]);
10220 static inline basic_iostream_wchar* basic_iostream_wchar_from_basic_ios(basic_ios_wchar *ptr)
10222 return (basic_iostream_wchar*)((char*)ptr-basic_iostream_wchar_vbtable1[1]);
10225 /* ??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
10226 /* ??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
10227 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_ctor, 12)
10228 basic_iostream_wchar* __thiscall basic_iostream_wchar_ctor(basic_iostream_wchar *this,
10229 basic_streambuf_wchar *strbuf, bool virt_init)
10231 basic_ios_wchar *basic_ios;
10233 TRACE("(%p %p %d)\n", this, strbuf, virt_init);
10235 if(virt_init) {
10236 this->base1.vbtable = basic_iostream_wchar_vbtable1;
10237 this->base2.vbtable = basic_iostream_wchar_vbtable2;
10238 basic_ios = basic_istream_wchar_get_basic_ios(&this->base1);
10239 basic_ios_wchar_ctor(basic_ios);
10240 }else {
10241 basic_ios = basic_istream_wchar_get_basic_ios(&this->base1);
10244 basic_istream_wchar_ctor(&this->base1, strbuf, FALSE, FALSE);
10245 basic_ostream_short_ctor(&this->base2, NULL, FALSE, FALSE, FALSE);
10247 basic_ios->base.vtable = &basic_iostream_wchar_vtable;
10248 return this;
10251 /* ??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
10252 /* ??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
10253 DEFINE_THISCALL_WRAPPER(basic_iostream_short_ctor, 12)
10254 basic_iostream_wchar* __thiscall basic_iostream_short_ctor(basic_iostream_wchar *this,
10255 basic_streambuf_wchar *strbuf, bool virt_init)
10257 basic_iostream_wchar_ctor(this, strbuf, virt_init);
10258 basic_istream_wchar_get_basic_ios(&this->base1)->base.vtable = &basic_iostream_short_vtable;
10259 return this;
10262 /* ??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
10263 /* ??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
10264 /* ??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UAE@XZ */
10265 /* ??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
10266 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_dtor, 4)
10267 void __thiscall basic_iostream_wchar_dtor(basic_ios_wchar *base)
10269 basic_iostream_wchar *this = basic_iostream_wchar_from_basic_ios(base);
10271 TRACE("(%p)\n", this);
10272 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base2));
10273 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base1));
10276 /* ??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10277 /* ??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10278 /* ??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10279 /* ??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10280 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_vbase_dtor, 4)
10281 void __thiscall basic_iostream_wchar_vbase_dtor(basic_iostream_wchar *this)
10283 TRACE("(%p)\n", this);
10284 basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(this));
10285 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base1));
10288 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_vector_dtor, 8)
10289 basic_iostream_wchar* __thiscall basic_iostream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
10291 basic_iostream_wchar *this = basic_iostream_wchar_from_basic_ios(base);
10293 TRACE("(%p %x)\n", this, flags);
10295 if(flags & 2) {
10296 /* we have an array, with the number of elements stored before the first object */
10297 INT_PTR i, *ptr = (INT_PTR *)this-1;
10299 for(i=*ptr-1; i>=0; i--)
10300 basic_iostream_wchar_vbase_dtor(this+i);
10301 operator_delete(ptr);
10302 } else {
10303 basic_iostream_wchar_vbase_dtor(this);
10304 if(flags & 1)
10305 operator_delete(this);
10308 return this;
10311 /* ?swap@?$basic_iostream@GU?$char_traits@G@std@@@std@@QAEXAAV12@@Z */
10312 /* ?swap@?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z */
10313 /* ?swap@?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAEXAAV12@@Z */
10314 /* ?swap@?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z */
10315 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_swap, 8)
10316 void __thiscall basic_iostream_wchar_swap(basic_iostream_wchar *this, basic_iostream_wchar *r)
10318 TRACE("(%p %p)\n", this, r);
10320 if(this == r)
10321 return;
10323 basic_ios_wchar_swap(basic_istream_wchar_get_basic_ios(&this->base1),
10324 basic_istream_wchar_get_basic_ios(&r->base1));
10327 static inline basic_ios_char* basic_ofstream_char_to_basic_ios(basic_ofstream_char *ptr)
10329 return (basic_ios_char*)((char*)ptr+basic_ofstream_char_vbtable[1]);
10332 static inline basic_ofstream_char* basic_ofstream_char_from_basic_ios(basic_ios_char *ptr)
10334 return (basic_ofstream_char*)((char*)ptr-basic_ofstream_char_vbtable[1]);
10337 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
10338 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
10339 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor, 8)
10340 basic_ofstream_char* __thiscall basic_ofstream_char_ctor(basic_ofstream_char *this, bool virt_init)
10342 basic_ios_char *basic_ios;
10344 TRACE("(%p %d)\n", this, virt_init);
10346 if(virt_init) {
10347 this->base.vbtable = basic_ofstream_char_vbtable;
10348 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10349 basic_ios_char_ctor(basic_ios);
10350 }else {
10351 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10354 basic_filebuf_char_ctor(&this->filebuf);
10355 basic_ostream_char_ctor(&this->base, &this->filebuf.base, FALSE, TRUE, FALSE);
10356 basic_ios->base.vtable = &basic_ofstream_char_vtable;
10357 return this;
10360 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
10361 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10362 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_file, 12)
10363 basic_ofstream_char* __thiscall basic_ofstream_char_ctor_file(
10364 basic_ofstream_char *this, FILE *file, bool virt_init)
10366 basic_ios_char *basic_ios;
10368 TRACE("(%p %p %d)\n", this, file, virt_init);
10370 if(virt_init) {
10371 this->base.vbtable = basic_ofstream_char_vbtable;
10372 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10373 basic_ios_char_ctor(basic_ios);
10374 }else {
10375 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10378 basic_filebuf_char_ctor_file(&this->filebuf, file);
10379 basic_ostream_char_ctor(&this->base, &this->filebuf.base, FALSE, TRUE, FALSE);
10380 basic_ios->base.vtable = &basic_ofstream_char_vtable;
10381 return this;
10384 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@ABV01@@Z */
10385 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@AEBV01@@Z */
10386 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_copy_ctor, 12)
10387 basic_ofstream_char* __thiscall basic_ofstream_char_copy_ctor(basic_ofstream_char *this,
10388 basic_ofstream_char *copy, bool virt_init)
10390 TRACE("(%p %p %d)\n", this, copy, virt_init);
10391 return basic_ofstream_char_ctor_file(this, copy->filebuf.file, virt_init);
10394 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z */
10395 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDH@Z */
10396 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_name, 16)
10397 basic_ofstream_char* __thiscall basic_ofstream_char_ctor_name(basic_ofstream_char *this,
10398 const char *name, int mode, bool virt_init)
10400 TRACE("(%p %s %d %d)\n", this, name, mode, virt_init);
10402 basic_ofstream_char_ctor(this, virt_init);
10404 if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_out, _SH_DENYNO)) {
10405 basic_ios_char *basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10406 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10408 return this;
10411 /* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
10412 /* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
10413 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_dtor, 4)
10414 void __thiscall basic_ofstream_char_dtor(basic_ios_char *base)
10416 basic_ofstream_char *this = basic_ofstream_char_from_basic_ios(base);
10418 TRACE("(%p)\n", this);
10420 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base));
10421 basic_filebuf_char_dtor(&this->filebuf);
10424 /* ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10425 /* ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10426 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_vbase_dtor, 4)
10427 void __thiscall basic_ofstream_char_vbase_dtor(basic_ofstream_char *this)
10429 TRACE("(%p)\n", this);
10431 basic_ofstream_char_dtor(basic_ofstream_char_to_basic_ios(this));
10432 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base));
10435 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_vector_dtor, 8)
10436 basic_ofstream_char* __thiscall basic_ofstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
10438 basic_ofstream_char *this = basic_ofstream_char_from_basic_ios(base);
10440 TRACE("(%p %x)\n", this, flags);
10442 if(flags & 2) {
10443 /* we have an array, with the number of elements stored before the first object */
10444 INT_PTR i, *ptr = (INT_PTR *)this-1;
10446 for(i=*ptr-1; i>=0; i--)
10447 basic_ofstream_char_vbase_dtor(this+i);
10448 operator_delete(ptr);
10449 } else {
10450 basic_ofstream_char_vbase_dtor(this);
10451 if(flags & 1)
10452 operator_delete(this);
10455 return this;
10458 /* ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10459 /* ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10460 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_close, 4)
10461 void __thiscall basic_ofstream_char_close(basic_ofstream_char *this)
10463 TRACE("(%p)\n", this);
10465 if(!basic_filebuf_char_close(&this->filebuf)) {
10466 basic_ios_char *basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10467 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10471 /* ?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
10472 /* ?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
10473 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_is_open, 4)
10474 bool __thiscall basic_ofstream_char_is_open(const basic_ofstream_char *this)
10476 TRACE("(%p)\n", this);
10477 return basic_filebuf_char_is_open(&this->filebuf);
10480 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDH@Z */
10481 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDH@Z */
10482 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open, 12)
10483 void __thiscall basic_ofstream_char_open(basic_ofstream_char *this,
10484 const char *name, int mode)
10486 TRACE("(%p %s %d)\n", this, name, mode);
10488 if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_out, _SH_DENYNO)) {
10489 basic_ios_char *basic_ios = basic_ostream_char_get_basic_ios(&this->base);
10490 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10494 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDF@Z */
10495 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDF@Z */
10496 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open_old, 12)
10497 void __thiscall basic_ofstream_char_open_old(basic_ofstream_char *this,
10498 const char *name, short mode)
10500 basic_ofstream_char_open(this, name, mode);
10503 /* ?rdbuf@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10504 /* ?rdbuf@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10505 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_rdbuf, 4)
10506 basic_filebuf_char* __thiscall basic_ofstream_char_rdbuf(const basic_ofstream_char *this)
10508 TRACE("(%p)\n", this);
10509 return (basic_filebuf_char*)&this->filebuf;
10512 static inline basic_ios_wchar* basic_ofstream_wchar_to_basic_ios(basic_ofstream_wchar *ptr)
10514 return (basic_ios_wchar*)((char*)ptr+basic_ofstream_wchar_vbtable[1]);
10517 static inline basic_ofstream_wchar* basic_ofstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
10519 return (basic_ofstream_wchar*)((char*)ptr-basic_ofstream_wchar_vbtable[1]);
10522 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
10523 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
10524 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor, 8)
10525 basic_ofstream_wchar* __thiscall basic_ofstream_wchar_ctor(basic_ofstream_wchar *this, bool virt_init)
10527 basic_ios_wchar *basic_ios;
10529 TRACE("(%p %d)\n", this, virt_init);
10531 if(virt_init) {
10532 this->base.vbtable = basic_ofstream_wchar_vbtable;
10533 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10534 basic_ios_wchar_ctor(basic_ios);
10535 }else {
10536 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10539 basic_filebuf_wchar_ctor(&this->filebuf);
10540 basic_ostream_short_ctor(&this->base, &this->filebuf.base, FALSE, TRUE, FALSE);
10541 basic_ios->base.vtable = &basic_ofstream_wchar_vtable;
10542 return this;
10545 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
10546 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
10547 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor, 8)
10548 basic_ofstream_wchar* __thiscall basic_ofstream_short_ctor(basic_ofstream_wchar *this, bool virt_init)
10550 basic_ofstream_wchar_ctor(this, virt_init);
10551 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &basic_ofstream_short_vtable;
10552 return this;
10555 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
10556 /* ??0?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10557 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_ctor_file, 12)
10558 basic_ofstream_wchar* __thiscall basic_ofstream_wchar_ctor_file(
10559 basic_ofstream_wchar *this, FILE *file, bool virt_init)
10561 basic_ios_wchar *basic_ios;
10563 TRACE("(%p %p %d)\n", this, file, virt_init);
10565 if(virt_init) {
10566 this->base.vbtable = basic_ofstream_wchar_vbtable;
10567 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10568 basic_ios_wchar_ctor(basic_ios);
10569 }else {
10570 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10573 basic_filebuf_wchar_ctor_file(&this->filebuf, file);
10574 basic_ostream_short_ctor(&this->base, &this->filebuf.base, FALSE, TRUE, FALSE);
10575 basic_ios->base.vtable = &basic_ofstream_wchar_vtable;
10576 return this;
10579 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
10580 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10581 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor_file, 12)
10582 basic_ofstream_wchar* __thiscall basic_ofstream_short_ctor_file(
10583 basic_ofstream_wchar *this, FILE *file, bool virt_init)
10585 basic_ofstream_wchar_ctor_file(this, file, virt_init);
10586 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &basic_ofstream_short_vtable;
10587 return this;
10590 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@ABV01@@Z */
10591 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@AEBV01@@Z */
10592 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_copy_ctor, 12)
10593 basic_ofstream_wchar* __thiscall basic_ofstream_short_copy_ctor(basic_ofstream_wchar *this,
10594 basic_ofstream_wchar *copy, bool virt_init)
10596 TRACE("(%p %p %d)\n", this, copy, virt_init);
10597 return basic_ofstream_short_ctor_file(this, copy->filebuf.file, virt_init);
10600 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PBDH@Z */
10601 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDH@Z */
10602 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor_name, 16)
10603 basic_ofstream_wchar* __thiscall basic_ofstream_short_ctor_name(basic_ofstream_wchar *this,
10604 const char *name, int mode, bool virt_init)
10606 TRACE("(%p %s %d %d)\n", this, name, mode, virt_init);
10608 basic_ofstream_short_ctor(this, virt_init);
10610 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_out, _SH_DENYNO)) {
10611 basic_ios_wchar *basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10612 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10614 return this;
10617 /* ??1?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
10618 /* ??1?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
10619 /* ??1?$basic_ofstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
10620 /* ??1?$basic_ofstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
10621 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_dtor, 4)
10622 void __thiscall basic_ofstream_wchar_dtor(basic_ios_wchar *base)
10624 basic_ofstream_wchar *this = basic_ofstream_wchar_from_basic_ios(base);
10626 TRACE("(%p)\n", this);
10628 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base));
10629 basic_filebuf_wchar_dtor(&this->filebuf);
10632 /* ??_D?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10633 /* ??_D?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10634 /* ??_D?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10635 /* ??_D?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10636 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_vbase_dtor, 4)
10637 void __thiscall basic_ofstream_wchar_vbase_dtor(basic_ofstream_wchar *this)
10639 TRACE("(%p)\n", this);
10641 basic_ofstream_wchar_dtor(basic_ofstream_wchar_to_basic_ios(this));
10642 basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(&this->base));
10645 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_vector_dtor, 8)
10646 basic_ofstream_wchar* __thiscall basic_ofstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
10648 basic_ofstream_wchar *this = basic_ofstream_wchar_from_basic_ios(base);
10650 TRACE("(%p %x)\n", this, flags);
10652 if(flags & 2) {
10653 /* we have an array, with the number of elements stored before the first object */
10654 INT_PTR i, *ptr = (INT_PTR *)this-1;
10656 for(i=*ptr-1; i>=0; i--)
10657 basic_ofstream_wchar_vbase_dtor(this+i);
10658 operator_delete(ptr);
10659 } else {
10660 basic_ofstream_wchar_vbase_dtor(this);
10661 if(flags & 1)
10662 operator_delete(this);
10665 return this;
10668 /* ?close@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
10669 /* ?close@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
10670 /* ?close@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
10671 /* ?close@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
10672 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_close, 4)
10673 void __thiscall basic_ofstream_wchar_close(basic_ofstream_wchar *this)
10675 TRACE("(%p)\n", this);
10677 if(!basic_filebuf_wchar_close(&this->filebuf)) {
10678 basic_ios_wchar *basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10679 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10683 /* ?is_open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
10684 /* ?is_open@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
10685 /* ?is_open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
10686 /* ?is_open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
10687 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_is_open, 4)
10688 bool __thiscall basic_ofstream_wchar_is_open(const basic_ofstream_wchar *this)
10690 TRACE("(%p)\n", this);
10691 return basic_filebuf_wchar_is_open(&this->filebuf);
10694 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBDH@Z */
10695 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDH@Z */
10696 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_open, 12)
10697 void __thiscall basic_ofstream_wchar_open(basic_ofstream_wchar *this,
10698 const char *name, int mode)
10700 TRACE("(%p %s %d)\n", this, name, mode);
10702 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_out, _SH_DENYNO)) {
10703 basic_ios_wchar *basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
10704 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
10708 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBDF@Z */
10709 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDF@Z */
10710 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_open_old, 12)
10711 void __thiscall basic_ofstream_wchar_open_old(basic_ofstream_wchar *this,
10712 const char *name, int mode)
10714 basic_ofstream_wchar_open(this, name, mode);
10717 /* ?rdbuf@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10718 /* ?rdbuf@?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
10719 /* ?rdbuf@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10720 /* ?rdbuf@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
10721 DEFINE_THISCALL_WRAPPER(basic_ofstream_wchar_rdbuf, 4)
10722 basic_filebuf_wchar* __thiscall basic_ofstream_wchar_rdbuf(const basic_ofstream_wchar *this)
10724 TRACE("(%p)\n", this);
10725 return (basic_filebuf_wchar*)&this->filebuf;
10728 static inline basic_ios_char* basic_ifstream_char_to_basic_ios(basic_ifstream_char *ptr)
10730 return (basic_ios_char*)((char*)ptr+basic_ifstream_char_vbtable[1]);
10733 static inline basic_ifstream_char* basic_ifstream_char_from_basic_ios(basic_ios_char *ptr)
10735 return (basic_ifstream_char*)((char*)ptr-basic_ifstream_char_vbtable[1]);
10738 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
10739 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
10740 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor, 8)
10741 basic_ifstream_char* __thiscall basic_ifstream_char_ctor(basic_ifstream_char *this, bool virt_init)
10743 basic_ios_char *basic_ios;
10745 TRACE("(%p %d)\n", this, virt_init);
10747 if(virt_init) {
10748 this->base.vbtable = basic_ifstream_char_vbtable;
10749 basic_ios = basic_istream_char_get_basic_ios(&this->base);
10750 basic_ios_char_ctor(basic_ios);
10751 }else {
10752 basic_ios = basic_istream_char_get_basic_ios(&this->base);
10755 basic_filebuf_char_ctor(&this->filebuf);
10756 basic_istream_char_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10757 basic_ios->base.vtable = &basic_ifstream_char_vtable;
10758 return this;
10761 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
10762 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10763 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_file, 12)
10764 basic_ifstream_char* __thiscall basic_ifstream_char_ctor_file(
10765 basic_ifstream_char *this, FILE *file, bool virt_init)
10767 basic_ios_char *basic_ios;
10769 TRACE("(%p %p %d)\n", this, file, virt_init);
10771 if(virt_init) {
10772 this->base.vbtable = basic_ifstream_char_vbtable;
10773 basic_ios = basic_istream_char_get_basic_ios(&this->base);
10774 basic_ios_char_ctor(basic_ios);
10775 }else {
10776 basic_ios = basic_istream_char_get_basic_ios(&this->base);
10779 basic_filebuf_char_ctor_file(&this->filebuf, file);
10780 basic_istream_char_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10781 basic_ios->base.vtable = &basic_ifstream_char_vtable;
10782 return this;
10785 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@ABV01@@Z */
10786 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@AEBV01@@Z */
10787 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_copy_ctor, 12)
10788 basic_ifstream_char* __thiscall basic_ifstream_char_copy_ctor(basic_ifstream_char *this,
10789 const basic_ifstream_char *copy, bool virt_init)
10791 TRACE("(%p %p %d)\n", this, copy, virt_init);
10792 return basic_ifstream_char_ctor_file(this, copy->filebuf.file, virt_init);
10795 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z */
10796 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDH@Z */
10797 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_name, 16)
10798 basic_ifstream_char* __thiscall basic_ifstream_char_ctor_name(basic_ifstream_char *this,
10799 const char *name, int mode, bool virt_init)
10801 TRACE("(%p %s %d %d)\n", this, name, mode, virt_init);
10803 basic_ifstream_char_ctor(this, virt_init);
10805 if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_in, _SH_DENYNO)) {
10806 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base);
10807 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10809 return this;
10812 /* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
10813 /* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
10814 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_dtor, 4)
10815 void __thiscall basic_ifstream_char_dtor(basic_ios_char *base)
10817 basic_ifstream_char *this = basic_ifstream_char_from_basic_ios(base);
10819 TRACE("(%p)\n", this);
10821 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base));
10822 basic_filebuf_char_dtor(&this->filebuf);
10825 /* ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10826 /* ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10827 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_vbase_dtor, 4)
10828 void __thiscall basic_ifstream_char_vbase_dtor(basic_ifstream_char *this)
10830 TRACE("(%p)\n", this);
10832 basic_ifstream_char_dtor(basic_ifstream_char_to_basic_ios(this));
10833 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base));
10836 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_vector_dtor, 8)
10837 basic_ifstream_char* __thiscall basic_ifstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
10839 basic_ifstream_char *this = basic_ifstream_char_from_basic_ios(base);
10841 TRACE("(%p %x)\n", this, flags);
10843 if(flags & 2) {
10844 /* we have an array, with the number of elements stored before the first object */
10845 INT_PTR i, *ptr = (INT_PTR *)this-1;
10847 for(i=*ptr-1; i>=0; i--)
10848 basic_ifstream_char_vbase_dtor(this+i);
10849 operator_delete(ptr);
10850 } else {
10851 basic_ifstream_char_vbase_dtor(this);
10852 if(flags & 1)
10853 operator_delete(this);
10856 return this;
10859 /* ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
10860 /* ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
10861 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_close, 4)
10862 void __thiscall basic_ifstream_char_close(basic_ifstream_char *this)
10864 TRACE("(%p)\n", this);
10866 if(!basic_filebuf_char_close(&this->filebuf)) {
10867 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base);
10868 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10872 /* ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
10873 /* ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
10874 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_is_open, 4)
10875 bool __thiscall basic_ifstream_char_is_open(const basic_ifstream_char *this)
10877 TRACE("(%p)\n", this);
10878 return basic_filebuf_char_is_open(&this->filebuf);
10881 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDH@Z */
10882 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDH@Z */
10883 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open, 12)
10884 void __thiscall basic_ifstream_char_open(basic_ifstream_char *this,
10885 const char *name, int mode)
10887 TRACE("(%p %s %d)\n", this, name, mode);
10889 if(!basic_filebuf_char_open(&this->filebuf, name, mode|OPENMODE_in, _SH_DENYNO)) {
10890 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base);
10891 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
10895 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDF@Z */
10896 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDF@Z */
10897 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open_old, 12)
10898 void __thiscall basic_ifstream_char_open_old(basic_ifstream_char *this,
10899 const char *name, short mode)
10901 basic_ifstream_char_open(this, name, mode);
10904 /* ?rdbuf@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10905 /* ?rdbuf@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
10906 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_rdbuf, 4)
10907 basic_filebuf_char* __thiscall basic_ifstream_char_rdbuf(const basic_ifstream_char *this)
10909 TRACE("(%p)\n", this);
10910 return (basic_filebuf_char*)&this->filebuf;
10913 static inline basic_ios_wchar* basic_ifstream_wchar_to_basic_ios(basic_ifstream_wchar *ptr)
10915 return (basic_ios_wchar*)((char*)ptr+basic_ifstream_wchar_vbtable[1]);
10918 static inline basic_ifstream_wchar* basic_ifstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
10920 return (basic_ifstream_wchar*)((char*)ptr-basic_ifstream_wchar_vbtable[1]);
10923 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
10924 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
10925 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor, 8)
10926 basic_ifstream_wchar* __thiscall basic_ifstream_wchar_ctor(basic_ifstream_wchar *this, bool virt_init)
10928 basic_ios_wchar *basic_ios;
10930 TRACE("(%p %d)\n", this, virt_init);
10932 if(virt_init) {
10933 this->base.vbtable = basic_ifstream_wchar_vbtable;
10934 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10935 basic_ios_wchar_ctor(basic_ios);
10936 }else {
10937 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10940 basic_filebuf_wchar_ctor(&this->filebuf);
10941 basic_istream_wchar_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10942 basic_ios->base.vtable = &basic_ifstream_wchar_vtable;
10943 return this;
10946 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
10947 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
10948 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor, 8)
10949 basic_ifstream_wchar* __thiscall basic_ifstream_short_ctor(basic_ifstream_wchar *this, bool virt_init)
10951 basic_ifstream_wchar_ctor(this, virt_init);
10952 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &basic_ifstream_short_vtable;
10953 return this;
10956 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
10957 /* ??0?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10958 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_ctor_file, 12)
10959 basic_ifstream_wchar* __thiscall basic_ifstream_wchar_ctor_file(
10960 basic_ifstream_wchar *this, FILE *file, bool virt_init)
10962 basic_ios_wchar *basic_ios;
10964 TRACE("(%p %p %d)\n", this, file, virt_init);
10966 if(virt_init) {
10967 this->base.vbtable = basic_ifstream_wchar_vbtable;
10968 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10969 basic_ios_wchar_ctor(basic_ios);
10970 }else {
10971 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
10974 basic_filebuf_wchar_ctor_file(&this->filebuf, file);
10975 basic_istream_wchar_ctor(&this->base, &this->filebuf.base, FALSE, FALSE);
10976 basic_ios->base.vtable = &basic_ifstream_wchar_vtable;
10977 return this;
10980 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
10981 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
10982 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor_file, 12)
10983 basic_ifstream_wchar* __thiscall basic_ifstream_short_ctor_file(
10984 basic_ifstream_wchar *this, FILE *file, bool virt_init)
10986 basic_ifstream_wchar_ctor_file(this, file, virt_init);
10987 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &basic_ifstream_short_vtable;
10988 return this;
10991 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@ABV01@@Z */
10992 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@AEBV01@@Z */
10993 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_copy_ctor, 12)
10994 basic_ifstream_wchar* __thiscall basic_ifstream_short_copy_ctor(basic_ifstream_wchar *this,
10995 basic_ifstream_wchar *copy, bool virt_init)
10997 TRACE("(%p %p %d)\n", this, copy, virt_init);
10998 return basic_ifstream_short_ctor_file(this, copy->filebuf.file, virt_init);
11001 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PBDH@Z */
11002 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDH@Z */
11003 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor_name, 16)
11004 basic_ifstream_wchar* __thiscall basic_ifstream_short_ctor_name(basic_ifstream_wchar *this,
11005 const char *name, int mode, bool virt_init)
11007 TRACE("(%p %s %d %d)\n", this, name, mode, virt_init);
11009 basic_ifstream_short_ctor(this, virt_init);
11011 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_in, _SH_DENYNO)) {
11012 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
11013 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
11015 return this;
11018 /* ??1?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
11019 /* ??1?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
11020 /* ??1?$basic_ifstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
11021 /* ??1?$basic_ifstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
11022 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_dtor, 4)
11023 void __thiscall basic_ifstream_wchar_dtor(basic_ios_wchar *base)
11025 basic_ifstream_wchar *this = basic_ifstream_wchar_from_basic_ios(base);
11027 TRACE("(%p)\n", this);
11029 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base));
11030 basic_filebuf_wchar_dtor(&this->filebuf);
11033 /* ??_D?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
11034 /* ??_D?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
11035 /* ??_D?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
11036 /* ??_D?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
11037 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_vbase_dtor, 4)
11038 void __thiscall basic_ifstream_wchar_vbase_dtor(basic_ifstream_wchar *this)
11040 TRACE("(%p)\n", this);
11042 basic_ifstream_wchar_dtor(basic_ifstream_wchar_to_basic_ios(this));
11043 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base));
11046 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_vector_dtor, 8)
11047 basic_ifstream_wchar* __thiscall basic_ifstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
11049 basic_ifstream_wchar *this = basic_ifstream_wchar_from_basic_ios(base);
11051 TRACE("(%p %x)\n", this, flags);
11053 if(flags & 2) {
11054 /* we have an array, with the number of elements stored before the first object */
11055 INT_PTR i, *ptr = (INT_PTR *)this-1;
11057 for(i=*ptr-1; i>=0; i--)
11058 basic_ifstream_wchar_vbase_dtor(this+i);
11059 operator_delete(ptr);
11060 } else {
11061 basic_ifstream_wchar_vbase_dtor(this);
11062 if(flags & 1)
11063 operator_delete(this);
11066 return this;
11069 /* ?close@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
11070 /* ?close@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
11071 /* ?close@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
11072 /* ?close@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
11073 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_close, 4)
11074 void __thiscall basic_ifstream_wchar_close(basic_ifstream_wchar *this)
11076 TRACE("(%p)\n", this);
11078 if(!basic_filebuf_wchar_close(&this->filebuf)) {
11079 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
11080 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
11084 /* ?is_open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
11085 /* ?is_open@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
11086 /* ?is_open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
11087 /* ?is_open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
11088 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_is_open, 4)
11089 bool __thiscall basic_ifstream_wchar_is_open(const basic_ifstream_wchar *this)
11091 TRACE("(%p)\n", this);
11092 return basic_filebuf_wchar_is_open(&this->filebuf);
11095 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBDH@Z */
11096 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDH@Z */
11097 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_open, 12)
11098 void __thiscall basic_ifstream_wchar_open(basic_ifstream_wchar *this,
11099 const char *name, int mode)
11101 TRACE("(%p %s %d)\n", this, name, mode);
11103 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode|OPENMODE_in, _SH_DENYNO)) {
11104 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
11105 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
11109 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBDF@Z */
11110 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDF@Z */
11111 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_open_old, 12)
11112 void __thiscall basic_ifstream_wchar_open_old(basic_ifstream_wchar *this,
11113 const char *name, short mode)
11115 basic_ifstream_wchar_open(this, name, mode);
11118 /* ?rdbuf@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
11119 /* ?rdbuf@?$basic_ifstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
11120 /* ?rdbuf@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
11121 /* ?rdbuf@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
11122 DEFINE_THISCALL_WRAPPER(basic_ifstream_wchar_rdbuf, 4)
11123 basic_filebuf_wchar* __thiscall basic_ifstream_wchar_rdbuf(const basic_ifstream_wchar *this)
11125 TRACE("(%p)\n", this);
11126 return (basic_filebuf_wchar*)&this->filebuf;
11129 static inline basic_ios_char* basic_fstream_char_to_basic_ios(basic_fstream_char *ptr)
11131 return (basic_ios_char*)((char*)ptr+basic_fstream_char_vbtable1[1]);
11134 static inline basic_fstream_char* basic_fstream_char_from_basic_ios(basic_ios_char *ptr)
11136 return (basic_fstream_char*)((char*)ptr-basic_fstream_char_vbtable1[1]);
11139 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
11140 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
11141 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor, 8)
11142 basic_fstream_char* __thiscall basic_fstream_char_ctor(basic_fstream_char *this, bool virt_init)
11144 basic_ios_char *basic_ios;
11146 TRACE("(%p %d)\n", this, virt_init);
11148 if(virt_init) {
11149 this->base.base1.vbtable = basic_fstream_char_vbtable1;
11150 this->base.base2.vbtable = basic_fstream_char_vbtable2;
11151 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11152 basic_ios_char_ctor(basic_ios);
11153 }else {
11154 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11157 basic_filebuf_char_ctor(&this->filebuf);
11158 basic_iostream_char_ctor(&this->base, &this->filebuf.base, FALSE);
11159 basic_ios->base.vtable = &basic_fstream_char_vtable;
11160 return this;
11163 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
11164 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
11165 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_file, 12)
11166 basic_fstream_char* __thiscall basic_fstream_char_ctor_file(basic_fstream_char *this,
11167 FILE *file, bool virt_init)
11169 basic_ios_char *basic_ios;
11171 TRACE("(%p %p %d)\n", this, file, virt_init);
11173 if(virt_init) {
11174 this->base.base1.vbtable = basic_fstream_char_vbtable1;
11175 this->base.base2.vbtable = basic_fstream_char_vbtable2;
11176 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11177 basic_ios_char_ctor(basic_ios);
11178 }else {
11179 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11182 basic_filebuf_char_ctor_file(&this->filebuf, file);
11183 basic_iostream_char_ctor(&this->base, &this->filebuf.base, FALSE);
11184 basic_ios->base.vtable = &basic_fstream_char_vtable;
11185 return this;
11188 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@ABV01@@Z */
11189 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@AEBV01@@Z */
11190 DEFINE_THISCALL_WRAPPER(basic_fstream_char_copy_ctor, 12)
11191 basic_fstream_char* __thiscall basic_fstream_char_copy_ctor(basic_fstream_char *this,
11192 basic_fstream_char *copy, bool virt_init)
11194 TRACE("(%p %p %d)\n", this, copy, virt_init);
11195 return basic_fstream_char_ctor_file(this, copy->filebuf.file, virt_init);
11198 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z */
11199 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDH@Z */
11200 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_name, 16)
11201 basic_fstream_char* __thiscall basic_fstream_char_ctor_name(basic_fstream_char *this,
11202 const char *name, int mode, bool virt_init)
11204 TRACE("(%p %s %d %d)\n", this, name, mode, virt_init);
11206 basic_fstream_char_ctor(this, virt_init);
11208 if(!basic_filebuf_char_open(&this->filebuf, name, mode, _SH_DENYNO)) {
11209 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11210 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
11212 return this;
11215 /* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
11216 /* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
11217 DEFINE_THISCALL_WRAPPER(basic_fstream_char_dtor, 4)
11218 void __thiscall basic_fstream_char_dtor(basic_ios_char *base)
11220 basic_fstream_char *this = basic_fstream_char_from_basic_ios(base);
11222 TRACE("(%p)\n", this);
11224 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base));
11225 basic_filebuf_char_dtor(&this->filebuf);
11228 /* ??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
11229 /* ??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
11230 DEFINE_THISCALL_WRAPPER(basic_fstream_char_vbase_dtor, 4)
11231 void __thiscall basic_fstream_char_vbase_dtor(basic_fstream_char *this)
11233 TRACE("(%p)\n", this);
11235 basic_fstream_char_dtor(basic_fstream_char_to_basic_ios(this));
11236 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base.base1));
11239 DEFINE_THISCALL_WRAPPER(basic_fstream_char_vector_dtor, 8)
11240 basic_fstream_char* __thiscall basic_fstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
11242 basic_fstream_char *this = basic_fstream_char_from_basic_ios(base);
11244 TRACE("(%p %x)\n", this, flags);
11246 if(flags & 2) {
11247 /* we have an array, with the number of elements stored before the first object */
11248 INT_PTR i, *ptr = (INT_PTR *)this-1;
11250 for(i=*ptr-1; i>=0; i--)
11251 basic_fstream_char_vbase_dtor(this+i);
11252 operator_delete(ptr);
11253 } else {
11254 basic_fstream_char_vbase_dtor(this);
11255 if(flags & 1)
11256 operator_delete(this);
11259 return this;
11262 /* ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
11263 /* ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
11264 DEFINE_THISCALL_WRAPPER(basic_fstream_char_close, 4)
11265 void __thiscall basic_fstream_char_close(basic_fstream_char *this)
11267 TRACE("(%p)\n", this);
11269 if(!basic_filebuf_char_close(&this->filebuf)) {
11270 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11271 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
11275 /* ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
11276 /* ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
11277 DEFINE_THISCALL_WRAPPER(basic_fstream_char_is_open, 4)
11278 bool __thiscall basic_fstream_char_is_open(const basic_fstream_char *this)
11280 TRACE("(%p)\n", this);
11281 return basic_filebuf_char_is_open(&this->filebuf);
11284 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDH@Z */
11285 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDH@Z */
11286 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open, 12)
11287 void __thiscall basic_fstream_char_open(basic_fstream_char *this,
11288 const char *name, int mode)
11290 TRACE("(%p %s %d)\n", this, name, mode);
11292 if(!basic_filebuf_char_open(&this->filebuf, name, mode, _SH_DENYNO)) {
11293 basic_ios_char *basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
11294 basic_ios_char_setstate(basic_ios, IOSTATE_failbit);
11298 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDF@Z */
11299 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDF@Z */
11300 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open_old, 12)
11301 void __thiscall basic_fstream_char_open_old(basic_fstream_char *this,
11302 const char *name, int mode)
11304 basic_fstream_char_open(this, name, mode);
11307 /* ?rdbuf@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
11308 /* ?rdbuf@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
11309 DEFINE_THISCALL_WRAPPER(basic_fstream_char_rdbuf, 4)
11310 basic_filebuf_char* __thiscall basic_fstream_char_rdbuf(const basic_fstream_char *this)
11312 TRACE("(%p)\n", this);
11313 return (basic_filebuf_char*)&this->filebuf;
11316 static inline basic_ios_wchar* basic_fstream_wchar_to_basic_ios(basic_fstream_wchar *ptr)
11318 return (basic_ios_wchar*)((char*)ptr+basic_fstream_wchar_vbtable1[1]);
11321 static inline basic_fstream_wchar* basic_fstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
11323 return (basic_fstream_wchar*)((char*)ptr-basic_fstream_wchar_vbtable1[1]);
11326 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@XZ */
11327 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@XZ */
11328 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor, 8)
11329 basic_fstream_wchar* __thiscall basic_fstream_wchar_ctor(basic_fstream_wchar *this, bool virt_init)
11331 basic_ios_wchar *basic_ios;
11333 TRACE("(%p %d)\n", this, virt_init);
11335 if(virt_init) {
11336 this->base.base1.vbtable = basic_fstream_wchar_vbtable1;
11337 this->base.base2.vbtable = basic_fstream_wchar_vbtable2;
11338 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11339 basic_ios_wchar_ctor(basic_ios);
11340 }else {
11341 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11344 basic_filebuf_wchar_ctor(&this->filebuf);
11345 basic_iostream_wchar_ctor(&this->base, &this->filebuf.base, FALSE);
11346 basic_ios->base.vtable = &basic_fstream_wchar_vtable;
11347 return this;
11350 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
11351 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
11352 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor, 8)
11353 basic_fstream_wchar* __thiscall basic_fstream_short_ctor(basic_fstream_wchar *this, bool virt_init)
11355 basic_fstream_wchar_ctor(this, virt_init);
11356 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &basic_fstream_short_vtable;
11357 return this;
11360 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PAU_iobuf@@@Z */
11361 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAU_iobuf@@@Z */
11362 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_ctor_file, 12)
11363 basic_fstream_wchar* __thiscall basic_fstream_wchar_ctor_file(basic_fstream_wchar *this,
11364 FILE *file, bool virt_init)
11366 basic_ios_wchar *basic_ios;
11368 TRACE("(%p %p %d)\n", this, file, virt_init);
11370 if(virt_init) {
11371 this->base.base1.vbtable = basic_fstream_wchar_vbtable1;
11372 this->base.base2.vbtable = basic_fstream_wchar_vbtable2;
11373 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11374 basic_ios_wchar_ctor(basic_ios);
11375 }else {
11376 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11379 basic_filebuf_wchar_ctor_file(&this->filebuf, file);
11380 basic_iostream_wchar_ctor(&this->base, &this->filebuf.base, FALSE);
11381 basic_ios->base.vtable = &basic_fstream_wchar_vtable;
11382 return this;
11385 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
11386 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
11387 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor_file, 12)
11388 basic_fstream_wchar* __thiscall basic_fstream_short_ctor_file(basic_fstream_wchar *this,
11389 FILE *file, bool virt_init)
11391 basic_fstream_wchar_ctor_file(this, file, virt_init);
11392 basic_istream_wchar_get_basic_ios(&this->base.base1)->base.vtable = &basic_fstream_short_vtable;
11393 return this;
11396 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@ABV01@@Z */
11397 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@AEBV01@@Z */
11398 DEFINE_THISCALL_WRAPPER(basic_fstream_short_copy_ctor, 12)
11399 basic_fstream_wchar* __thiscall basic_fstream_short_copy_ctor(basic_fstream_wchar *this,
11400 basic_fstream_wchar *copy, bool virt_init)
11402 TRACE("(%p %p %d)\n", this, copy, virt_init);
11403 return basic_fstream_short_ctor_file(this, copy->filebuf.file, virt_init);
11406 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAE@PB_WHH@Z */
11407 /* ??0?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAA@PEB_WHH@Z */
11408 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor_name, 16)
11409 basic_fstream_wchar* __thiscall basic_fstream_short_ctor_name(basic_fstream_wchar *this,
11410 const char *name, int mode, bool virt_init)
11412 TRACE("(%p %s %d %d)\n", this, name, mode, virt_init);
11414 basic_fstream_short_ctor(this, virt_init);
11416 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode, _SH_DENYNO)) {
11417 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11418 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
11420 return this;
11423 /* ??1?$basic_fstream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
11424 /* ??1?$basic_fstream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
11425 /* ??1?$basic_fstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
11426 /* ??1?$basic_fstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
11427 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_dtor, 4)
11428 void __thiscall basic_fstream_wchar_dtor(basic_ios_wchar *base)
11430 basic_fstream_wchar *this = basic_fstream_wchar_from_basic_ios(base);
11432 TRACE("(%p)\n", this);
11434 basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(&this->base));
11435 basic_filebuf_wchar_dtor(&this->filebuf);
11438 /* ??_D?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
11439 /* ??_D?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
11440 /* ??_D?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
11441 /* ??_D?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
11442 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_vbase_dtor, 4)
11443 void __thiscall basic_fstream_wchar_vbase_dtor(basic_fstream_wchar *this)
11445 TRACE("(%p)\n", this);
11447 basic_fstream_wchar_dtor(basic_fstream_wchar_to_basic_ios(this));
11448 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base.base1));
11451 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_vector_dtor, 8)
11452 basic_fstream_wchar* __thiscall basic_fstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
11454 basic_fstream_wchar *this = basic_fstream_wchar_from_basic_ios(base);
11456 TRACE("(%p %x)\n", this, flags);
11458 if(flags & 2) {
11459 /* we have an array, with the number of elements stored before the first object */
11460 INT_PTR i, *ptr = (INT_PTR *)this-1;
11462 for(i=*ptr-1; i>=0; i--)
11463 basic_fstream_wchar_vbase_dtor(this+i);
11464 operator_delete(ptr);
11465 } else {
11466 basic_fstream_wchar_vbase_dtor(this);
11467 if(flags & 1)
11468 operator_delete(this);
11471 return this;
11474 /* ?close@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
11475 /* ?close@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
11476 /* ?close@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
11477 /* ?close@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
11478 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_close, 4)
11479 void __thiscall basic_fstream_wchar_close(basic_fstream_wchar *this)
11481 TRACE("(%p)\n", this);
11483 if(!basic_filebuf_wchar_close(&this->filebuf)) {
11484 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11485 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
11489 /* ?is_open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QBE_NXZ */
11490 /* ?is_open@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEBA_NXZ */
11491 /* ?is_open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
11492 /* ?is_open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
11493 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_is_open, 4)
11494 bool __thiscall basic_fstream_wchar_is_open(const basic_fstream_wchar *this)
11496 TRACE("(%p)\n", this);
11497 return basic_filebuf_wchar_is_open(&this->filebuf);
11500 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDH@Z */
11501 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDH@Z */
11502 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_open, 12)
11503 void __thiscall basic_fstream_wchar_open(basic_fstream_wchar *this,
11504 const char *name, int mode)
11506 TRACE("(%p %s %d)\n", this, name, mode);
11508 if(!basic_filebuf_wchar_open(&this->filebuf, name, mode, _SH_DENYNO)) {
11509 basic_ios_wchar *basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
11510 basic_ios_wchar_setstate(basic_ios, IOSTATE_failbit);
11514 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDF@Z */
11515 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDF@Z */
11516 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_open_old, 12)
11517 void __thiscall basic_fstream_wchar_open_old(basic_fstream_wchar *this,
11518 const char *name, int mode)
11520 basic_fstream_wchar_open(this, name, mode);
11523 /* ?rdbuf@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
11524 /* ?rdbuf@?$basic_fstream@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_filebuf@_WU?$char_traits@_W@std@@@2@XZ */
11525 /* ?rdbuf@?$basic_fstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
11526 /* ?rdbuf@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
11527 DEFINE_THISCALL_WRAPPER(basic_fstream_wchar_rdbuf, 4)
11528 basic_filebuf_wchar* __thiscall basic_fstream_wchar_rdbuf(const basic_fstream_wchar *this)
11530 TRACE("(%p)\n", this);
11531 return (basic_filebuf_wchar*)&this->filebuf;
11534 static inline basic_ios_char* basic_ostringstream_char_to_basic_ios(basic_ostringstream_char *ptr)
11536 return (basic_ios_char*)((char*)ptr+basic_ostringstream_char_vbtable[1]);
11539 static inline basic_ostringstream_char* basic_ostringstream_char_from_basic_ios(basic_ios_char *ptr)
11541 return (basic_ostringstream_char*)((char*)ptr-basic_ostringstream_char_vbtable[1]);
11544 /* ??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 */
11545 /* ??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 */
11546 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_str, 16)
11547 basic_ostringstream_char* __thiscall basic_ostringstream_char_ctor_str(basic_ostringstream_char *this,
11548 const basic_string_char *str, int mode, bool virt_init)
11550 basic_ios_char *basic_ios;
11552 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11554 if(virt_init) {
11555 this->base.vbtable = basic_ostringstream_char_vbtable;
11556 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
11557 basic_ios_char_ctor(basic_ios);
11558 }else {
11559 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
11562 basic_stringbuf_char_ctor_str(&this->strbuf, str, mode|OPENMODE_out);
11563 basic_ostream_char_ctor(&this->base, &this->strbuf.base, FALSE, TRUE, FALSE);
11564 basic_ios->base.vtable = &basic_ostringstream_char_vtable;
11565 return this;
11568 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
11569 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
11570 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_mode, 12)
11571 basic_ostringstream_char* __thiscall basic_ostringstream_char_ctor_mode(
11572 basic_ostringstream_char *this, int mode, bool virt_init)
11574 basic_ios_char *basic_ios;
11576 TRACE("(%p %d %d)\n", this, mode, virt_init);
11578 if(virt_init) {
11579 this->base.vbtable = basic_ostringstream_char_vbtable;
11580 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
11581 basic_ios_char_ctor(basic_ios);
11582 }else {
11583 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
11586 basic_stringbuf_char_ctor_mode(&this->strbuf, mode|OPENMODE_out);
11587 basic_ostream_char_ctor(&this->base, &this->strbuf.base, FALSE, TRUE, FALSE);
11588 basic_ios->base.vtable = &basic_ostringstream_char_vtable;
11589 return this;
11592 /* ??_F?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11593 /* ??_F?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11594 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor, 4)
11595 basic_ostringstream_char* __thiscall basic_ostringstream_char_ctor(
11596 basic_ostringstream_char *this)
11598 return basic_ostringstream_char_ctor_mode(this, 0, TRUE);
11601 /* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
11602 /* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
11603 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_dtor, 4)
11604 void __thiscall basic_ostringstream_char_dtor(basic_ios_char *base)
11606 basic_ostringstream_char *this = basic_ostringstream_char_from_basic_ios(base);
11608 TRACE("(%p)\n", this);
11610 basic_stringbuf_char_dtor(&this->strbuf);
11611 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base));
11614 /* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11615 /* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11616 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_vbase_dtor, 4)
11617 void __thiscall basic_ostringstream_char_vbase_dtor(basic_ostringstream_char *this)
11619 TRACE("(%p)\n", this);
11621 basic_ostringstream_char_dtor(basic_ostringstream_char_to_basic_ios(this));
11622 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base));
11625 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_vector_dtor, 8)
11626 basic_ostringstream_char* __thiscall basic_ostringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
11628 basic_ostringstream_char *this = basic_ostringstream_char_from_basic_ios(base);
11630 TRACE("(%p %x)\n", this, flags);
11632 if(flags & 2) {
11633 /* we have an array, with the number of elements stored before the first object */
11634 INT_PTR i, *ptr = (INT_PTR *)this-1;
11636 for(i=*ptr-1; i>=0; i--)
11637 basic_ostringstream_char_vbase_dtor(this+i);
11638 operator_delete(ptr);
11639 } else {
11640 basic_ostringstream_char_vbase_dtor(this);
11641 if(flags & 1)
11642 operator_delete(this);
11645 return this;
11648 /* ?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 */
11649 /* ?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 */
11650 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_rdbuf, 4)
11651 basic_stringbuf_char* __thiscall basic_ostringstream_char_rdbuf(const basic_ostringstream_char *this)
11653 TRACE("(%p)\n", this);
11654 return (basic_stringbuf_char*)&this->strbuf;
11657 /* ?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 */
11658 /* ?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 */
11659 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_str_set, 8)
11660 void __thiscall basic_ostringstream_char_str_set(basic_ostringstream_char *this, const basic_string_char *str)
11662 TRACE("(%p %p)\n", this, str);
11663 basic_stringbuf_char_str_set(&this->strbuf, str);
11666 /* ?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 */
11667 /* ?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 */
11668 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_str_get, 8)
11669 basic_string_char* __thiscall basic_ostringstream_char_str_get(const basic_ostringstream_char *this, basic_string_char *ret)
11671 TRACE("(%p %p)\n", this, ret);
11672 return basic_stringbuf_char_str_get(&this->strbuf, ret);
11675 static inline basic_ios_wchar* basic_ostringstream_wchar_to_basic_ios(basic_ostringstream_wchar *ptr)
11677 return (basic_ios_wchar*)((char*)ptr+basic_ostringstream_wchar_vbtable[1]);
11680 static inline basic_ostringstream_wchar* basic_ostringstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
11682 return (basic_ostringstream_wchar*)((char*)ptr-basic_ostringstream_wchar_vbtable[1]);
11685 /* ??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 */
11686 /* ??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 */
11687 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor_str, 16)
11688 basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_ctor_str(basic_ostringstream_wchar *this,
11689 const basic_string_wchar *str, int mode, bool virt_init)
11691 basic_ios_wchar *basic_ios;
11693 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11695 if(virt_init) {
11696 this->base.vbtable = basic_ostringstream_wchar_vbtable;
11697 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
11698 basic_ios_wchar_ctor(basic_ios);
11699 }else {
11700 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
11703 basic_stringbuf_wchar_ctor_str(&this->strbuf, str, mode|OPENMODE_out);
11704 basic_ostream_short_ctor(&this->base, &this->strbuf.base, FALSE, TRUE, FALSE);
11705 basic_ios->base.vtable = &basic_ostringstream_wchar_vtable;
11706 return this;
11709 /* ??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 */
11710 /* ??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 */
11711 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor_str, 16)
11712 basic_ostringstream_wchar* __thiscall basic_ostringstream_short_ctor_str(basic_ostringstream_wchar *this,
11713 const basic_string_wchar *str, int mode, bool virt_init)
11715 basic_ostringstream_wchar_ctor_str(this, str, mode, virt_init);
11716 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &basic_ostringstream_short_vtable;
11717 return this;
11720 /* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
11721 /* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
11722 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor_mode, 12)
11723 basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_ctor_mode(
11724 basic_ostringstream_wchar *this, int mode, bool virt_init)
11726 basic_ios_wchar *basic_ios;
11728 TRACE("(%p %d %d)\n", this, mode, virt_init);
11730 if(virt_init) {
11731 this->base.vbtable = basic_ostringstream_wchar_vbtable;
11732 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
11733 basic_ios_wchar_ctor(basic_ios);
11734 }else {
11735 basic_ios = basic_ostream_wchar_get_basic_ios(&this->base);
11738 basic_stringbuf_wchar_ctor_mode(&this->strbuf, mode|OPENMODE_out);
11739 basic_ostream_short_ctor(&this->base, &this->strbuf.base, FALSE, TRUE, FALSE);
11740 basic_ios->base.vtable = &basic_ostringstream_wchar_vtable;
11741 return this;
11744 /* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
11745 /* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
11746 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor_mode, 12)
11747 basic_ostringstream_wchar* __thiscall basic_ostringstream_short_ctor_mode(
11748 basic_ostringstream_wchar *this, int mode, bool virt_init)
11750 basic_ostringstream_wchar_ctor_mode(this, mode, virt_init);
11751 basic_ostream_wchar_get_basic_ios(&this->base)->base.vtable = &basic_ostringstream_short_vtable;
11752 return this;
11755 /* ??_F?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11756 /* ??_F?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11757 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor, 4)
11758 basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_ctor(
11759 basic_ostringstream_wchar *this)
11761 return basic_ostringstream_wchar_ctor_mode(this, 0, TRUE);
11764 /* ??_F?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11765 /* ??_F?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11766 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor, 4)
11767 basic_ostringstream_wchar* __thiscall basic_ostringstream_short_ctor(
11768 basic_ostringstream_wchar *this)
11770 return basic_ostringstream_short_ctor_mode(this, 0, TRUE);
11773 /* ??1?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
11774 /* ??1?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
11775 /* ??1?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
11776 /* ??1?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
11777 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_dtor, 4)
11778 void __thiscall basic_ostringstream_wchar_dtor(basic_ios_wchar *base)
11780 basic_ostringstream_wchar *this = basic_ostringstream_wchar_from_basic_ios(base);
11782 TRACE("(%p)\n", this);
11784 basic_stringbuf_wchar_dtor(&this->strbuf);
11785 basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base));
11788 /* ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
11789 /* ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
11790 /* ??_D?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
11791 /* ??_D?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
11792 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_vbase_dtor, 4)
11793 void __thiscall basic_ostringstream_wchar_vbase_dtor(basic_ostringstream_wchar *this)
11795 TRACE("(%p)\n", this);
11797 basic_ostringstream_wchar_dtor(basic_ostringstream_wchar_to_basic_ios(this));
11798 basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(&this->base));
11801 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_vector_dtor, 8)
11802 basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
11804 basic_ostringstream_wchar *this = basic_ostringstream_wchar_from_basic_ios(base);
11806 TRACE("(%p %x)\n", this, flags);
11808 if(flags & 2) {
11809 /* we have an array, with the number of elements stored before the first object */
11810 INT_PTR i, *ptr = (INT_PTR *)this-1;
11812 for(i=*ptr-1; i>=0; i--)
11813 basic_ostringstream_wchar_vbase_dtor(this+i);
11814 operator_delete(ptr);
11815 } else {
11816 basic_ostringstream_wchar_vbase_dtor(this);
11817 if(flags & 1)
11818 operator_delete(this);
11821 return this;
11824 /* ?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 */
11825 /* ?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 */
11826 /* ?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 */
11827 /* ?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 */
11828 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_rdbuf, 4)
11829 basic_stringbuf_wchar* __thiscall basic_ostringstream_wchar_rdbuf(const basic_ostringstream_wchar *this)
11831 TRACE("(%p)\n", this);
11832 return (basic_stringbuf_wchar*)&this->strbuf;
11835 /* ?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 */
11836 /* ?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 */
11837 /* ?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 */
11838 /* ?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 */
11839 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_str_set, 8)
11840 void __thiscall basic_ostringstream_wchar_str_set(basic_ostringstream_wchar *this, const basic_string_wchar *str)
11842 TRACE("(%p %p)\n", this, str);
11843 basic_stringbuf_wchar_str_set(&this->strbuf, str);
11846 /* ?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 */
11847 /* ?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 */
11848 /* ?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 */
11849 /* ?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 */
11850 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_str_get, 8)
11851 basic_string_wchar* __thiscall basic_ostringstream_wchar_str_get(const basic_ostringstream_wchar *this, basic_string_wchar *ret)
11853 TRACE("(%p %p)\n", this, ret);
11854 return basic_stringbuf_wchar_str_get(&this->strbuf, ret);
11857 static inline basic_ios_char* basic_istringstream_char_to_basic_ios(basic_istringstream_char *ptr)
11859 return (basic_ios_char*)((char*)ptr+basic_istringstream_char_vbtable[1]);
11862 static inline basic_istringstream_char* basic_istringstream_char_from_basic_ios(basic_ios_char *ptr)
11864 return (basic_istringstream_char*)((char*)ptr-basic_istringstream_char_vbtable[1]);
11867 /* ??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 */
11868 /* ??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 */
11869 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_str, 16)
11870 basic_istringstream_char* __thiscall basic_istringstream_char_ctor_str(basic_istringstream_char *this,
11871 const basic_string_char *str, int mode, bool virt_init)
11873 basic_ios_char *basic_ios;
11875 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
11877 if(virt_init) {
11878 this->base.vbtable = basic_istringstream_char_vbtable;
11879 basic_ios = basic_istream_char_get_basic_ios(&this->base);
11880 basic_ios_char_ctor(basic_ios);
11881 }else {
11882 basic_ios = basic_istream_char_get_basic_ios(&this->base);
11885 basic_stringbuf_char_ctor_str(&this->strbuf, str, mode|OPENMODE_in);
11886 basic_istream_char_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11887 basic_ios->base.vtable = &basic_istringstream_char_vtable;
11888 return this;
11891 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
11892 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
11893 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_mode, 12)
11894 basic_istringstream_char* __thiscall basic_istringstream_char_ctor_mode(
11895 basic_istringstream_char *this, int mode, bool virt_init)
11897 basic_ios_char *basic_ios;
11899 TRACE("(%p %d %d)\n", this, mode, virt_init);
11901 if(virt_init) {
11902 this->base.vbtable = basic_istringstream_char_vbtable;
11903 basic_ios = basic_istream_char_get_basic_ios(&this->base);
11904 basic_ios_char_ctor(basic_ios);
11905 }else {
11906 basic_ios = basic_istream_char_get_basic_ios(&this->base);
11909 basic_stringbuf_char_ctor_mode(&this->strbuf, mode|OPENMODE_in);
11910 basic_istream_char_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
11911 basic_ios->base.vtable = &basic_istringstream_char_vtable;
11912 return this;
11915 /* ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11916 /* ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11917 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor, 4)
11918 basic_istringstream_char* __thiscall basic_istringstream_char_ctor(
11919 basic_istringstream_char *this)
11921 return basic_istringstream_char_ctor_mode(this, 0, TRUE);
11924 /* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
11925 /* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
11926 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_dtor, 4)
11927 void __thiscall basic_istringstream_char_dtor(basic_ios_char *base)
11929 basic_istringstream_char *this = basic_istringstream_char_from_basic_ios(base);
11931 TRACE("(%p)\n", this);
11933 basic_stringbuf_char_dtor(&this->strbuf);
11934 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base));
11937 /* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
11938 /* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
11939 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_vbase_dtor, 4)
11940 void __thiscall basic_istringstream_char_vbase_dtor(basic_istringstream_char *this)
11942 TRACE("(%p)\n", this);
11944 basic_istringstream_char_dtor(basic_istringstream_char_to_basic_ios(this));
11945 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base));
11948 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_vector_dtor, 8)
11949 basic_istringstream_char* __thiscall basic_istringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
11951 basic_istringstream_char *this = basic_istringstream_char_from_basic_ios(base);
11953 TRACE("(%p %x)\n", this, flags);
11955 if(flags & 2) {
11956 /* we have an array, with the number of elements stored before the first object */
11957 INT_PTR i, *ptr = (INT_PTR *)this-1;
11959 for(i=*ptr-1; i>=0; i--)
11960 basic_istringstream_char_vbase_dtor(this+i);
11961 operator_delete(ptr);
11962 } else {
11963 basic_istringstream_char_vbase_dtor(this);
11964 if(flags & 1)
11965 operator_delete(this);
11968 return this;
11971 /* ?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 */
11972 /* ?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 */
11973 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_rdbuf, 4)
11974 basic_stringbuf_char* __thiscall basic_istringstream_char_rdbuf(const basic_istringstream_char *this)
11976 TRACE("(%p)\n", this);
11977 return (basic_stringbuf_char*)&this->strbuf;
11980 /* ?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 */
11981 /* ?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 */
11982 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_str_set, 8)
11983 void __thiscall basic_istringstream_char_str_set(basic_istringstream_char *this, const basic_string_char *str)
11985 TRACE("(%p %p)\n", this, str);
11986 basic_stringbuf_char_str_set(&this->strbuf, str);
11989 /* ?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 */
11990 /* ?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 */
11991 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_str_get, 8)
11992 basic_string_char* __thiscall basic_istringstream_char_str_get(const basic_istringstream_char *this, basic_string_char *ret)
11994 TRACE("(%p %p)\n", this, ret);
11995 return basic_stringbuf_char_str_get(&this->strbuf, ret);
11998 static inline basic_ios_wchar* basic_istringstream_wchar_to_basic_ios(basic_istringstream_wchar *ptr)
12000 return (basic_ios_wchar*)((char*)ptr+basic_istringstream_wchar_vbtable[1]);
12003 static inline basic_istringstream_wchar* basic_istringstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
12005 return (basic_istringstream_wchar*)((char*)ptr-basic_istringstream_wchar_vbtable[1]);
12008 /* ??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 */
12009 /* ??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 */
12010 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor_str, 16)
12011 basic_istringstream_wchar* __thiscall basic_istringstream_wchar_ctor_str(basic_istringstream_wchar *this,
12012 const basic_string_wchar *str, int mode, bool virt_init)
12014 basic_ios_wchar *basic_ios;
12016 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
12018 if(virt_init) {
12019 this->base.vbtable = basic_istringstream_wchar_vbtable;
12020 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
12021 basic_ios_wchar_ctor(basic_ios);
12022 }else {
12023 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
12026 basic_stringbuf_wchar_ctor_str(&this->strbuf, str, mode|OPENMODE_in);
12027 basic_istream_wchar_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
12028 basic_ios->base.vtable = &basic_istringstream_wchar_vtable;
12029 return this;
12032 /* ??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 */
12033 /* ??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 */
12034 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor_str, 16)
12035 basic_istringstream_wchar* __thiscall basic_istringstream_short_ctor_str(basic_istringstream_wchar *this,
12036 const basic_string_wchar *str, int mode, bool virt_init)
12038 basic_istringstream_wchar_ctor_str(this, str, mode, virt_init);
12039 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &basic_istringstream_short_vtable;
12040 return this;
12043 /* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
12044 /* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
12045 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor_mode, 12)
12046 basic_istringstream_wchar* __thiscall basic_istringstream_wchar_ctor_mode(
12047 basic_istringstream_wchar *this, int mode, bool virt_init)
12049 basic_ios_wchar *basic_ios;
12051 TRACE("(%p %d %d)\n", this, mode, virt_init);
12053 if(virt_init) {
12054 this->base.vbtable = basic_istringstream_wchar_vbtable;
12055 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
12056 basic_ios_wchar_ctor(basic_ios);
12057 }else {
12058 basic_ios = basic_istream_wchar_get_basic_ios(&this->base);
12061 basic_stringbuf_wchar_ctor_mode(&this->strbuf, mode|OPENMODE_in);
12062 basic_istream_wchar_ctor(&this->base, &this->strbuf.base, FALSE, FALSE);
12063 basic_ios->base.vtable = &basic_istringstream_wchar_vtable;
12064 return this;
12067 /* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
12068 /* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
12069 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor_mode, 12)
12070 basic_istringstream_wchar* __thiscall basic_istringstream_short_ctor_mode(
12071 basic_istringstream_wchar *this, int mode, bool virt_init)
12073 basic_istringstream_wchar_ctor_mode(this, mode, virt_init);
12074 basic_istream_wchar_get_basic_ios(&this->base)->base.vtable = &basic_istringstream_short_vtable;
12075 return this;
12078 /* ??_F?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
12079 /* ??_F?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
12080 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor, 4)
12081 basic_istringstream_wchar* __thiscall basic_istringstream_wchar_ctor(
12082 basic_istringstream_wchar *this)
12084 return basic_istringstream_wchar_ctor_mode(this, 0, TRUE);
12087 /* ??_F?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
12088 /* ??_F?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
12089 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor, 4)
12090 basic_istringstream_wchar* __thiscall basic_istringstream_short_ctor(
12091 basic_istringstream_wchar *this)
12093 return basic_istringstream_short_ctor_mode(this, 0, TRUE);
12096 /* ??1?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
12097 /* ??1?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
12098 /* ??1?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
12099 /* ??1?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
12100 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_dtor, 4)
12101 void __thiscall basic_istringstream_wchar_dtor(basic_ios_wchar *base)
12103 basic_istringstream_wchar *this = basic_istringstream_wchar_from_basic_ios(base);
12105 TRACE("(%p)\n", this);
12107 basic_stringbuf_wchar_dtor(&this->strbuf);
12108 basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base));
12111 /* ??_D?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
12112 /* ??_D?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
12113 /* ??_D?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
12114 /* ??_D?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
12115 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_vbase_dtor, 4)
12116 void __thiscall basic_istringstream_wchar_vbase_dtor(basic_istringstream_wchar *this)
12118 TRACE("(%p)\n", this);
12120 basic_istringstream_wchar_dtor(basic_istringstream_wchar_to_basic_ios(this));
12121 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base));
12124 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_vector_dtor, 8)
12125 basic_istringstream_wchar* __thiscall basic_istringstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
12127 basic_istringstream_wchar *this = basic_istringstream_wchar_from_basic_ios(base);
12129 TRACE("(%p %x)\n", this, flags);
12131 if(flags & 2) {
12132 /* we have an array, with the number of elements stored before the first object */
12133 INT_PTR i, *ptr = (INT_PTR *)this-1;
12135 for(i=*ptr-1; i>=0; i--)
12136 basic_istringstream_wchar_vbase_dtor(this+i);
12137 operator_delete(ptr);
12138 } else {
12139 basic_istringstream_wchar_vbase_dtor(this);
12140 if(flags & 1)
12141 operator_delete(this);
12144 return this;
12147 /* ?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 */
12148 /* ?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 */
12149 /* ?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 */
12150 /* ?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 */
12151 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_rdbuf, 4)
12152 basic_stringbuf_wchar* __thiscall basic_istringstream_wchar_rdbuf(const basic_istringstream_wchar *this)
12154 TRACE("(%p)\n", this);
12155 return (basic_stringbuf_wchar*)&this->strbuf;
12158 /* ?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 */
12159 /* ?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 */
12160 /* ?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 */
12161 /* ?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 */
12162 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_str_set, 8)
12163 void __thiscall basic_istringstream_wchar_str_set(basic_istringstream_wchar *this, const basic_string_wchar *str)
12165 TRACE("(%p %p)\n", this, str);
12166 basic_stringbuf_wchar_str_set(&this->strbuf, str);
12169 /* ?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 */
12170 /* ?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 */
12171 /* ?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 */
12172 /* ?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 */
12173 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_str_get, 8)
12174 basic_string_wchar* __thiscall basic_istringstream_wchar_str_get(const basic_istringstream_wchar *this, basic_string_wchar *ret)
12176 TRACE("(%p %p)\n", this, ret);
12177 return basic_stringbuf_wchar_str_get(&this->strbuf, ret);
12180 static inline basic_ios_char* basic_stringstream_char_to_basic_ios(basic_stringstream_char *ptr)
12182 return (basic_ios_char*)((char*)ptr+basic_stringstream_char_vbtable1[1]);
12185 static inline basic_stringstream_char* basic_stringstream_char_from_basic_ios(basic_ios_char *ptr)
12187 return (basic_stringstream_char*)((char*)ptr-basic_stringstream_char_vbtable1[1]);
12190 /* ??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 */
12191 /* ??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 */
12192 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_str, 16)
12193 basic_stringstream_char* __thiscall basic_stringstream_char_ctor_str(basic_stringstream_char *this,
12194 const basic_string_char *str, int mode, bool virt_init)
12196 basic_ios_char *basic_ios;
12198 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
12200 if(virt_init) {
12201 this->base.base1.vbtable = basic_stringstream_char_vbtable1;
12202 this->base.base2.vbtable = basic_stringstream_char_vbtable2;
12203 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
12204 basic_ios_char_ctor(basic_ios);
12205 }else {
12206 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
12209 basic_stringbuf_char_ctor_str(&this->strbuf, str, mode);
12210 basic_iostream_char_ctor(&this->base, &this->strbuf.base, FALSE);
12211 basic_ios->base.vtable = &basic_stringstream_char_vtable;
12212 return this;
12215 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
12216 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
12217 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_mode, 12)
12218 basic_stringstream_char* __thiscall basic_stringstream_char_ctor_mode(
12219 basic_stringstream_char *this, int mode, bool virt_init)
12221 basic_ios_char *basic_ios;
12223 TRACE("(%p %d %d)\n", this, mode, virt_init);
12225 if(virt_init) {
12226 this->base.base1.vbtable = basic_stringstream_char_vbtable1;
12227 this->base.base2.vbtable = basic_stringstream_char_vbtable2;
12228 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
12229 basic_ios_char_ctor(basic_ios);
12230 }else {
12231 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
12234 basic_stringbuf_char_ctor_mode(&this->strbuf, mode);
12235 basic_iostream_char_ctor(&this->base, &this->strbuf.base, FALSE);
12236 basic_ios->base.vtable = &basic_stringstream_char_vtable;
12237 return this;
12240 /* ??_F?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
12241 /* ??_F?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
12242 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor, 4)
12243 basic_stringstream_char* __thiscall basic_stringstream_char_ctor(
12244 basic_stringstream_char *this)
12246 return basic_stringstream_char_ctor_mode(
12247 this, OPENMODE_out|OPENMODE_in, TRUE);
12250 /* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
12251 /* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
12252 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_dtor, 4)
12253 void __thiscall basic_stringstream_char_dtor(basic_ios_char *base)
12255 basic_stringstream_char *this = basic_stringstream_char_from_basic_ios(base);
12257 TRACE("(%p)\n", this);
12259 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base));
12260 basic_stringbuf_char_dtor(&this->strbuf);
12263 /* ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
12264 /* ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
12265 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_vbase_dtor, 4)
12266 void __thiscall basic_stringstream_char_vbase_dtor(basic_stringstream_char *this)
12268 TRACE("(%p)\n", this);
12270 basic_stringstream_char_dtor(basic_stringstream_char_to_basic_ios(this));
12271 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base.base1));
12274 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_vector_dtor, 8)
12275 basic_stringstream_char* __thiscall basic_stringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
12277 basic_stringstream_char *this = basic_stringstream_char_from_basic_ios(base);
12279 TRACE("(%p %x)\n", this, flags);
12281 if(flags & 2) {
12282 /* we have an array, with the number of elements stored before the first object */
12283 INT_PTR i, *ptr = (INT_PTR *)this-1;
12285 for(i=*ptr-1; i>=0; i--)
12286 basic_stringstream_char_vbase_dtor(this+i);
12287 operator_delete(ptr);
12288 } else {
12289 basic_stringstream_char_vbase_dtor(this);
12290 if(flags & 1)
12291 operator_delete(this);
12294 return this;
12297 /* ?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 */
12298 /* ?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 */
12299 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_rdbuf, 4)
12300 basic_stringbuf_char* __thiscall basic_stringstream_char_rdbuf(const basic_stringstream_char *this)
12302 TRACE("(%p)\n", this);
12303 return (basic_stringbuf_char*)&this->strbuf;
12306 /* ?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 */
12307 /* ?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 */
12308 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_str_set, 8)
12309 void __thiscall basic_stringstream_char_str_set(basic_stringstream_char *this, const basic_string_char *str)
12311 TRACE("(%p %p)\n", this, str);
12312 basic_stringbuf_char_str_set(&this->strbuf, str);
12315 /* ?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 */
12316 /* ?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 */
12317 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_str_get, 8)
12318 basic_string_char* __thiscall basic_stringstream_char_str_get(const basic_stringstream_char *this, basic_string_char *ret)
12320 TRACE("(%p %p)\n", this, ret);
12321 return basic_stringbuf_char_str_get(&this->strbuf, ret);
12324 static inline basic_ios_wchar* basic_stringstream_short_to_basic_ios(basic_stringstream_wchar *ptr)
12326 return (basic_ios_wchar*)((char*)ptr+basic_stringstream_short_vbtable1[1]);
12329 static inline basic_stringstream_wchar* basic_stringstream_short_from_basic_ios(basic_ios_wchar *ptr)
12331 return (basic_stringstream_wchar*)((char*)ptr-basic_stringstream_short_vbtable1[1]);
12334 /* ??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 */
12335 /* ??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 */
12336 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor_str, 16)
12337 basic_stringstream_wchar* __thiscall basic_stringstream_short_ctor_str(basic_stringstream_wchar *this,
12338 const basic_string_wchar *str, int mode, bool virt_init)
12340 basic_ios_wchar *basic_ios;
12342 TRACE("(%p %p %d %d)\n", this, str, mode, virt_init);
12344 if(virt_init) {
12345 this->base.base1.vbtable = basic_stringstream_short_vbtable1;
12346 this->base.base2.vbtable = basic_stringstream_short_vbtable2;
12347 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
12348 basic_ios_short_ctor(basic_ios);
12349 }else {
12350 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
12353 basic_stringbuf_short_ctor_str(&this->strbuf, str, mode);
12354 basic_iostream_short_ctor(&this->base, &this->strbuf.base, FALSE);
12355 basic_ios->base.vtable = &basic_stringstream_short_vtable;
12356 return this;
12359 /* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
12360 /* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
12361 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor_mode, 12)
12362 basic_stringstream_wchar* __thiscall basic_stringstream_short_ctor_mode(
12363 basic_stringstream_wchar *this, int mode, bool virt_init)
12365 basic_ios_wchar *basic_ios;
12367 TRACE("(%p %d %d)\n", this, mode, virt_init);
12369 if(virt_init) {
12370 this->base.base1.vbtable = basic_stringstream_short_vbtable1;
12371 this->base.base2.vbtable = basic_stringstream_short_vbtable2;
12372 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
12373 basic_ios_short_ctor(basic_ios);
12374 }else {
12375 basic_ios = basic_istream_wchar_get_basic_ios(&this->base.base1);
12378 basic_stringbuf_short_ctor_mode(&this->strbuf, mode);
12379 basic_iostream_short_ctor(&this->base, &this->strbuf.base, FALSE);
12380 basic_ios->base.vtable = &basic_stringstream_short_vtable;
12381 return this;
12384 /* ??_F?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
12385 /* ??_F?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
12386 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor, 4)
12387 basic_stringstream_wchar* __thiscall basic_stringstream_short_ctor(
12388 basic_stringstream_wchar *this)
12390 return basic_stringstream_short_ctor_mode(
12391 this, OPENMODE_out|OPENMODE_in, TRUE);
12394 /* ??1?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
12395 /* ??1?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
12396 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_dtor, 4)
12397 void __thiscall basic_stringstream_short_dtor(basic_ios_wchar *base)
12399 basic_stringstream_wchar *this = basic_stringstream_short_from_basic_ios(base);
12401 TRACE("(%p)\n", this);
12403 basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(&this->base));
12404 basic_stringbuf_wchar_dtor(&this->strbuf);
12407 /* ??_D?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
12408 /* ??_D?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
12409 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_vbase_dtor, 4)
12410 void __thiscall basic_stringstream_short_vbase_dtor(basic_stringstream_wchar *this)
12412 TRACE("(%p)\n", this);
12414 basic_stringstream_short_dtor(basic_stringstream_short_to_basic_ios(this));
12415 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base.base1));
12418 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_vector_dtor, 8)
12419 basic_stringstream_wchar* __thiscall basic_stringstream_short_vector_dtor(basic_ios_wchar *base, unsigned int flags)
12421 basic_stringstream_wchar *this = basic_stringstream_short_from_basic_ios(base);
12423 TRACE("(%p %x)\n", this, flags);
12425 if(flags & 2) {
12426 /* we have an array, with the number of elements stored before the first object */
12427 INT_PTR i, *ptr = (INT_PTR *)this-1;
12429 for(i=*ptr-1; i>=0; i--)
12430 basic_stringstream_short_vbase_dtor(this+i);
12431 operator_delete(ptr);
12432 } else {
12433 basic_stringstream_short_vbase_dtor(this);
12434 if(flags & 1)
12435 operator_delete(this);
12438 return this;
12441 /* ?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 */
12442 /* ?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 */
12443 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_rdbuf, 4)
12444 basic_stringbuf_wchar* __thiscall basic_stringstream_short_rdbuf(const basic_stringstream_wchar *this)
12446 TRACE("(%p)\n", this);
12447 return (basic_stringbuf_wchar*)&this->strbuf;
12450 /* ?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 */
12451 /* ?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 */
12452 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_str_set, 8)
12453 void __thiscall basic_stringstream_short_str_set(basic_stringstream_wchar *this, const basic_string_wchar *str)
12455 TRACE("(%p %p)\n", this, str);
12456 basic_stringbuf_wchar_str_set(&this->strbuf, str);
12459 /* ?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 */
12460 /* ?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 */
12461 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_str_get, 8)
12462 basic_string_wchar* __thiscall basic_stringstream_short_str_get(const basic_stringstream_wchar *this, basic_string_wchar *ret)
12464 TRACE("(%p %p)\n", this, ret);
12465 return basic_stringbuf_wchar_str_get(&this->strbuf, ret);
12468 /* ?_Init@strstreambuf@std@@IAEXHPAD0H@Z */
12469 /* ?_Init@strstreambuf@std@@IEAAX_JPEAD1H@Z */
12470 DEFINE_THISCALL_WRAPPER(strstreambuf__Init, 20)
12471 void __thiscall strstreambuf__Init(strstreambuf *this, streamsize len, char *g, char *p, int mode)
12473 TRACE("(%p %Id %p %p %d)\n", this, len, g, p, mode);
12475 this->minsize = 32;
12476 this->endsave = NULL;
12477 this->strmode = mode;
12478 this->palloc = NULL;
12479 this->pfree = NULL;
12481 if(!g) {
12482 this->strmode |= STRSTATE_Dynamic;
12483 if(len > this->minsize)
12484 this->minsize = len;
12485 this->seekhigh = NULL;
12486 return;
12489 if(len < 0)
12490 len = INT_MAX;
12491 else if(!len)
12492 len = strlen(g);
12494 this->seekhigh = g+len;
12495 basic_streambuf_char_setg(&this->base, g, g, p ? p : this->seekhigh);
12496 if(p)
12497 basic_streambuf_char_setp(&this->base, p, this->seekhigh);
12500 /* ??0strstreambuf@std@@QAE@PACH0@Z */
12501 /* ??0strstreambuf@std@@QEAA@PEAC_J0@Z */
12502 /* ??0strstreambuf@std@@QAE@PADH0@Z */
12503 /* ??0strstreambuf@std@@QEAA@PEAD_J0@Z */
12504 /* ??0strstreambuf@std@@QAE@PAEH0@Z */
12505 /* ??0strstreambuf@std@@QEAA@PEAE_J0@Z */
12506 DEFINE_THISCALL_WRAPPER(strstreambuf_ctor_get_put, 16)
12507 strstreambuf* __thiscall strstreambuf_ctor_get_put(strstreambuf *this, char *g, streamsize len, char *p)
12509 TRACE("(%p %p %Id %p)\n", this, g, len, p);
12511 basic_streambuf_char_ctor(&this->base);
12512 this->base.vtable = &strstreambuf_vtable;
12514 strstreambuf__Init(this, len, g, p, 0);
12515 return this;
12518 /* ??0strstreambuf@std@@QAE@H@Z */
12519 /* ??0strstreambuf@std@@QEAA@_J@Z */
12520 DEFINE_THISCALL_WRAPPER(strstreambuf_ctor_len, 8)
12521 strstreambuf* __thiscall strstreambuf_ctor_len(strstreambuf *this, streamsize len)
12523 return strstreambuf_ctor_get_put(this, NULL, len, NULL);
12526 /* ??0strstreambuf@std@@QAE@P6APAXI@ZP6AXPAX@Z@Z */
12527 /* ??0strstreambuf@std@@QEAA@P6APEAX_K@ZP6AXPEAX@Z@Z */
12528 DEFINE_THISCALL_WRAPPER(strstreambuf_ctor_alloc, 12)
12529 strstreambuf* __thiscall strstreambuf_ctor_alloc(strstreambuf *this, void* (__cdecl *palloc)(size_t), void (__cdecl *pfree)(void*))
12531 TRACE("(%p %p %p)\n", this, palloc, pfree);
12533 strstreambuf_ctor_get_put(this, NULL, 0, NULL);
12534 this->palloc = palloc;
12535 this->pfree = pfree;
12536 return this;
12539 /* ??0strstreambuf@std@@QAE@PBCH@Z */
12540 /* ??0strstreambuf@std@@QEAA@PEBC_J@Z */
12541 /* ??0strstreambuf@std@@QAE@PBDH@Z */
12542 /* ??0strstreambuf@std@@QEAA@PEBD_J@Z */
12543 /* ??0strstreambuf@std@@QAE@PBEH@Z */
12544 /* ??0strstreambuf@std@@QEAA@PEBE_J@Z */
12545 DEFINE_THISCALL_WRAPPER(strstreambuf_ctor_get, 12)
12546 strstreambuf* __thiscall strstreambuf_ctor_get(strstreambuf *this, const char *g, streamsize len)
12548 TRACE("(%p %p %Id)\n", this, g, len);
12550 strstreambuf_ctor_get_put(this, (char*)g, len, NULL);
12551 this->strmode |= STRSTATE_Constant;
12552 return this;
12555 /* ??_Fstrstreambuf@std@@QAEXXZ */
12556 /* ??_Fstrstreambuf@std@@QEAAXXZ */
12557 DEFINE_THISCALL_WRAPPER(strstreambuf_ctor, 4)
12558 strstreambuf* __thiscall strstreambuf_ctor(strstreambuf *this)
12560 return strstreambuf_ctor_get_put(this, NULL, 0, NULL);
12563 /* ?_Tidy@strstreambuf@std@@IAEXXZ */
12564 /* ?_Tidy@strstreambuf@std@@IEAAXXZ */
12565 DEFINE_THISCALL_WRAPPER(strstreambuf__Tidy, 4)
12566 void __thiscall strstreambuf__Tidy(strstreambuf *this)
12568 TRACE("(%p)\n", this);
12570 if((this->strmode & STRSTATE_Allocated) && !(this->strmode & STRSTATE_Frozen)) {
12571 if(this->pfree)
12572 this->pfree(basic_streambuf_char_eback(&this->base));
12573 else
12574 operator_delete(basic_streambuf_char_eback(&this->base));
12577 this->endsave = NULL;
12578 this->seekhigh = NULL;
12579 this->strmode &= ~(STRSTATE_Allocated | STRSTATE_Frozen);
12580 basic_streambuf_char_setg(&this->base, NULL, NULL, NULL);
12581 basic_streambuf_char_setp(&this->base, NULL, NULL);
12584 /* ??1strstreambuf@std@@UAE@XZ */
12585 /* ??1strstreambuf@std@@UEAA@XZ */
12586 DEFINE_THISCALL_WRAPPER(strstreambuf_dtor, 4)
12587 void __thiscall strstreambuf_dtor(strstreambuf *this)
12589 TRACE("(%p)\n", this);
12591 strstreambuf__Tidy(this);
12592 basic_streambuf_char_dtor(&this->base);
12595 DEFINE_THISCALL_WRAPPER(strstreambuf_vector_dtor, 8)
12596 strstreambuf* __thiscall strstreambuf_vector_dtor(strstreambuf *this, unsigned int flags)
12598 TRACE("(%p %x)\n", this, flags);
12599 if(flags & 2) {
12600 /* we have an array, with the number of elements stored before the first object */
12601 INT_PTR i, *ptr = (INT_PTR *)this-1;
12603 for(i=*ptr-1; i>=0; i--)
12604 strstreambuf_dtor(this+i);
12605 operator_delete(ptr);
12606 } else {
12607 strstreambuf_dtor(this);
12608 if(flags & 1)
12609 operator_delete(this);
12612 return this;
12615 /* ?freeze@strstreambuf@std@@QAEX_N@Z */
12616 /* ?freeze@strstreambuf@std@@QEAAX_N@Z */
12617 DEFINE_THISCALL_WRAPPER(strstreambuf_freeze, 8)
12618 void __thiscall strstreambuf_freeze(strstreambuf *this, bool freeze)
12620 TRACE("(%p %d)\n", this, freeze);
12622 if(!freeze == !(this->strmode & STRSTATE_Frozen))
12623 return;
12625 if(freeze) {
12626 this->strmode |= STRSTATE_Frozen;
12627 this->endsave = basic_streambuf_char_epptr(&this->base);
12628 basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base),
12629 basic_streambuf_char_pptr(&this->base), basic_streambuf_char_eback(&this->base));
12630 }else {
12631 this->strmode &= ~STRSTATE_Frozen;
12632 basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base),
12633 basic_streambuf_char_pptr(&this->base), this->endsave);
12637 /* ?str@strstreambuf@std@@QAEPADXZ */
12638 /* ?str@strstreambuf@std@@QEAAPEADXZ */
12639 DEFINE_THISCALL_WRAPPER(strstreambuf_str, 4)
12640 char* __thiscall strstreambuf_str(strstreambuf *this)
12642 TRACE("(%p)\n", this);
12644 strstreambuf_freeze(this, TRUE);
12645 return basic_streambuf_char_gptr(&this->base);
12648 /* ?pcount@strstreambuf@std@@QBEHXZ */
12649 /* ?pcount@strstreambuf@std@@QEBA_JXZ */
12650 DEFINE_THISCALL_WRAPPER(strstreambuf_pcount, 4)
12651 streamsize __thiscall strstreambuf_pcount(const strstreambuf *this)
12653 char *ppos = basic_streambuf_char_pptr(&this->base);
12655 TRACE("(%p)\n", this);
12657 return ppos ? ppos-basic_streambuf_char_pbase(&this->base) : 0;
12660 /* ?overflow@strstreambuf@std@@MAEHH@Z */
12661 /* ?overflow@strstreambuf@std@@MEAAHH@Z */
12662 DEFINE_THISCALL_WRAPPER(strstreambuf_overflow, 8)
12663 int __thiscall strstreambuf_overflow(strstreambuf *this, int c)
12665 size_t old_size, size;
12666 char *ptr, *buf;
12668 TRACE("(%p %d)\n", this, c);
12670 if(c == EOF)
12671 return !EOF;
12673 if(this->strmode & STRSTATE_Frozen)
12674 return EOF;
12676 ptr = basic_streambuf_char_pptr(&this->base);
12677 if(ptr && ptr<basic_streambuf_char_epptr(&this->base))
12678 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = c);
12680 if(!(this->strmode & STRSTATE_Dynamic) || (this->strmode & STRSTATE_Constant))
12681 return EOF;
12683 ptr = basic_streambuf_char_eback(&this->base);
12684 old_size = ptr ? basic_streambuf_char_epptr(&this->base) - ptr : 0;
12686 size = old_size + old_size/2;
12687 if(size < this->minsize)
12688 size = this->minsize;
12690 if(this->palloc)
12691 buf = this->palloc(size);
12692 else
12693 buf = operator_new(size);
12694 if(!buf)
12695 return EOF;
12697 memcpy(buf, ptr, old_size);
12698 if(this->strmode & STRSTATE_Allocated) {
12699 if(this->pfree)
12700 this->pfree(ptr);
12701 else
12702 operator_delete(ptr);
12705 this->strmode |= STRSTATE_Allocated;
12706 if(!old_size) {
12707 this->seekhigh = buf;
12708 basic_streambuf_char_setp(&this->base, buf, buf+size);
12709 basic_streambuf_char_setg(&this->base, buf, buf, buf);
12710 }else {
12711 this->seekhigh = this->seekhigh-ptr+buf;
12712 basic_streambuf_char_setp_next(&this->base, basic_streambuf_char_pbase(&this->base)-ptr+buf,
12713 basic_streambuf_char_pptr(&this->base)-ptr+buf, buf+size);
12714 basic_streambuf_char_setg(&this->base, buf, basic_streambuf_char_gptr(&this->base)-ptr+buf,
12715 basic_streambuf_char_pptr(&this->base));
12718 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base) = c);
12721 /* ?pbackfail@strstreambuf@std@@MAEHH@Z */
12722 /* ?pbackfail@strstreambuf@std@@MEAAHH@Z */
12723 DEFINE_THISCALL_WRAPPER(strstreambuf_pbackfail, 8)
12724 int __thiscall strstreambuf_pbackfail(strstreambuf *this, int c)
12726 char *ptr = basic_streambuf_char_gptr(&this->base);
12728 TRACE("(%p %d)\n", this, c);
12730 if(ptr<=basic_streambuf_char_eback(&this->base)
12731 || ((this->strmode & STRSTATE_Constant) && c!=ptr[-1]))
12732 return EOF;
12734 basic_streambuf_char_gbump(&this->base, -1);
12735 if(c == EOF)
12736 return !EOF;
12737 if(this->strmode & STRSTATE_Constant)
12738 return (unsigned char)c;
12740 return (unsigned char)(ptr[0] = c);
12743 /* ?seekoff@strstreambuf@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
12744 /* ?seekoff@strstreambuf@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
12745 /* ?seekoff@strstreambuf@std@@MAE?AV?$fpos@H@2@JHH@Z */
12746 /* ?seekoff@strstreambuf@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
12747 DEFINE_THISCALL_WRAPPER(strstreambuf_seekoff, 20)
12748 fpos_int* __thiscall strstreambuf_seekoff(strstreambuf *this, fpos_int *ret, streamoff off, int way, int mode)
12750 char *eback = basic_streambuf_char_eback(&this->base);
12751 char *pptr = basic_streambuf_char_pptr(&this->base);
12752 char *gptr = basic_streambuf_char_gptr(&this->base);
12754 TRACE("(%p %p %Id %d %d)\n", this, ret, off, way, mode);
12756 ret->off = 0;
12757 ret->state = 0;
12759 if(pptr > this->seekhigh)
12760 this->seekhigh = pptr;
12762 if((mode & OPENMODE_in) && gptr) {
12763 if(way==SEEKDIR_cur && !(mode & OPENMODE_out))
12764 off += gptr-eback;
12765 else if(way == SEEKDIR_end)
12766 off += this->seekhigh-eback;
12767 else if(way != SEEKDIR_beg)
12768 off = -1;
12770 if(off<0 || off>this->seekhigh-eback) {
12771 off = -1;
12772 }else {
12773 basic_streambuf_char_gbump(&this->base, eback-gptr+off);
12774 if((mode & OPENMODE_out) && pptr) {
12775 basic_streambuf_char_setp_next(&this->base, eback,
12776 gptr, basic_streambuf_char_epptr(&this->base));
12779 }else if((mode & OPENMODE_out) && pptr) {
12780 if(way == SEEKDIR_cur)
12781 off += pptr-eback;
12782 else if(way == SEEKDIR_end)
12783 off += this->seekhigh-eback;
12784 else if(way != SEEKDIR_beg)
12785 off = -1;
12787 if(off<0 || off>this->seekhigh-eback)
12788 off = -1;
12789 else
12790 basic_streambuf_char_pbump(&this->base, eback-pptr+off);
12791 }else {
12792 off = -1;
12795 ret->pos = off;
12796 return ret;
12799 /* ?seekpos@strstreambuf@std@@MAE?AV?$fpos@H@2@V32@H@Z */
12800 /* ?seekpos@strstreambuf@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
12801 DEFINE_THISCALL_WRAPPER(strstreambuf_seekpos, 36)
12802 fpos_int* __thiscall strstreambuf_seekpos(strstreambuf *this, fpos_int *ret, fpos_int pos, int mode)
12804 TRACE("(%p %p %s %d)\n", this, ret, debugstr_fpos_int(&pos), mode);
12806 if(pos.off==-1 && pos.pos==0 && pos.state==0) {
12807 *ret = pos;
12808 return ret;
12811 return strstreambuf_seekoff(this, ret, pos.pos+pos.off, SEEKDIR_beg, mode);
12814 /* ?underflow@strstreambuf@std@@MAEHXZ */
12815 /* ?underflow@strstreambuf@std@@MEAAHXZ */
12816 DEFINE_THISCALL_WRAPPER(strstreambuf_underflow, 4)
12817 int __thiscall strstreambuf_underflow(strstreambuf *this)
12819 char *gptr = basic_streambuf_char_gptr(&this->base);
12820 char *pptr;
12822 TRACE("(%p)\n", this);
12824 if(!gptr)
12825 return EOF;
12827 if(gptr < basic_streambuf_char_egptr(&this->base))
12828 return (unsigned char)(*gptr);
12830 pptr = basic_streambuf_char_gptr(&this->base);
12831 if(pptr > this->seekhigh)
12832 this->seekhigh = pptr;
12834 if(this->seekhigh <= gptr)
12835 return EOF;
12837 basic_streambuf_char_setg(&this->base, basic_streambuf_char_eback(&this->base),
12838 gptr, this->seekhigh);
12839 return (unsigned char)(*gptr);
12842 static inline basic_ios_char* ostrstream_to_basic_ios(ostrstream *ptr)
12844 return (basic_ios_char*)((char*)ptr+ostrstream_vbtable[1]);
12847 static inline ostrstream* ostrstream_from_basic_ios(basic_ios_char *ptr)
12849 return (ostrstream*)((char*)ptr-ostrstream_vbtable[1]);
12852 /* ??0ostrstream@std@@QAE@PADHH@Z */
12853 DEFINE_THISCALL_WRAPPER(ostrstream_ctor, 20)
12854 ostrstream* __thiscall ostrstream_ctor(ostrstream *this, char *buf, streamsize size, int mode, bool virt_init)
12856 basic_ios_char *basic_ios;
12858 TRACE("(%p %p %Id %d %d)\n", this, buf, size, mode, virt_init);
12860 if(virt_init) {
12861 this->base.vbtable = ostrstream_vbtable;
12862 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
12863 basic_ios_char_ctor(basic_ios);
12864 }else {
12865 basic_ios = basic_ostream_char_get_basic_ios(&this->base);
12868 strstreambuf_ctor_get_put(&this->buf, buf, size,
12869 buf && (mode & OPENMODE_app) ? buf+strlen(buf) : buf);
12870 basic_ostream_char_ctor(&this->base, &this->buf.base, FALSE, TRUE, FALSE);
12871 basic_ios->base.vtable = &ostrstream_vtable;
12872 return this;
12875 /* ??1ostrstream@std@@UAE@XZ */
12876 /* ??1ostrstream@std@@UEAA@XZ */
12877 DEFINE_THISCALL_WRAPPER(ostrstream_dtor, 4)
12878 void __thiscall ostrstream_dtor(basic_ios_char *base)
12880 ostrstream *this = ostrstream_from_basic_ios(base);
12882 TRACE("(%p)\n", this);
12884 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base));
12885 strstreambuf_dtor(&this->buf);
12888 static void ostrstream_vbase_dtor(ostrstream *this)
12890 TRACE("(%p)\n", this);
12892 ostrstream_dtor(ostrstream_to_basic_ios(this));
12893 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base));
12896 DEFINE_THISCALL_WRAPPER(ostrstream_vector_dtor, 8)
12897 ostrstream* __thiscall ostrstream_vector_dtor(basic_ios_char *base, unsigned int flags)
12899 ostrstream *this = ostrstream_from_basic_ios(base);
12901 TRACE("(%p %x)\n", this, flags);
12903 if(flags & 2) {
12904 /* we have an array, with the number of elements stored before the first object */
12905 INT_PTR i, *ptr = (INT_PTR *)this-1;
12907 for(i=*ptr-1; i>=0; i--)
12908 ostrstream_vbase_dtor(this+i);
12909 operator_delete(ptr);
12910 } else {
12911 ostrstream_vbase_dtor(this);
12912 if(flags & 1)
12913 operator_delete(this);
12916 return this;
12919 static inline istrstream* istrstream_from_basic_ios(basic_ios_char *ptr)
12921 return (istrstream*)((char*)ptr-istrstream_vbtable[1]);
12924 /* ??1istrstream@std@@UAE@XZ */
12925 /* ??1istrstream@std@@UEAA@XZ */
12926 DEFINE_THISCALL_WRAPPER(istrstream_dtor, 4)
12927 void __thiscall istrstream_dtor(basic_ios_char *base)
12929 istrstream *this = istrstream_from_basic_ios(base);
12931 TRACE("(%p)\n", this);
12933 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base));
12934 strstreambuf_dtor(&this->buf);
12937 static inline basic_ios_char* strstream_to_basic_ios(strstream *ptr)
12939 return (basic_ios_char*)((char*)ptr+strstream_vbtable1[1]);
12942 static inline strstream* strstream_from_basic_ios(basic_ios_char *ptr)
12944 return (strstream*)((char*)ptr-strstream_vbtable1[1]);
12947 /* ??$?6MDU?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$complex@M@0@@Z */
12948 /* ??$?6MDU?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBV?$complex@M@0@@Z */
12949 basic_ostream_char* __cdecl basic_ostream_char_print_complex_float(basic_ostream_char *ostr, const complex_float *val)
12951 struct {
12952 basic_ostringstream_char obj;
12953 basic_ios_char vbase;
12954 } oss;
12955 ios_base *ostringstream_ios_base, *ostream_ios_base;
12956 locale loc;
12957 basic_string_char str;
12958 basic_ostringstream_char_ctor(&oss.obj);
12959 ostringstream_ios_base = &oss.vbase.base;
12960 ostream_ios_base = &basic_ostream_char_get_basic_ios(ostr)->base;
12961 TRACE("(%p %p)\n", ostr, val);
12963 ios_base_imbue(ostringstream_ios_base, &loc, IOS_LOCALE(ostream_ios_base));
12964 locale_dtor(&loc);
12965 ios_base_precision_set(ostringstream_ios_base, ios_base_precision_get(ostream_ios_base));
12966 ios_base_flags_set(ostringstream_ios_base, ios_base_flags_get(ostream_ios_base));
12968 basic_ostream_char_print_ch(&oss.obj.base, '(');
12969 basic_ostream_char_print_float(&oss.obj.base, val->real);
12970 basic_ostream_char_print_ch(&oss.obj.base, ',');
12971 basic_ostream_char_print_float(&oss.obj.base, val->imag);
12972 basic_ostream_char_print_ch(&oss.obj.base, ')');
12974 basic_ostringstream_char_str_get(&oss.obj, &str);
12975 basic_ostringstream_char_dtor(&oss.vbase);
12976 basic_ostream_char_print_bstr(ostr, &str);
12977 MSVCP_basic_string_char_dtor(&str);
12978 return ostr;
12981 /* ??$?6NDU?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$complex@N@0@@Z */
12982 /* ??$?6NDU?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBV?$complex@N@0@@Z */
12983 basic_ostream_char* __cdecl basic_ostream_char_print_complex_double(basic_ostream_char *ostr, const complex_double *val)
12985 struct {
12986 basic_ostringstream_char obj;
12987 basic_ios_char vbase;
12988 } oss;
12989 ios_base *ostringstream_ios_base, *ostream_ios_base;
12990 locale loc;
12991 basic_string_char str;
12992 basic_ostringstream_char_ctor(&oss.obj);
12993 ostringstream_ios_base = &oss.vbase.base;
12994 ostream_ios_base = &basic_ostream_char_get_basic_ios(ostr)->base;
12995 TRACE("(%p %p)\n", ostr, val);
12997 ios_base_imbue(ostringstream_ios_base, &loc, IOS_LOCALE(ostream_ios_base));
12998 locale_dtor(&loc);
12999 ios_base_precision_set(ostringstream_ios_base, ios_base_precision_get(ostream_ios_base));
13000 ios_base_flags_set(ostringstream_ios_base, ios_base_flags_get(ostream_ios_base));
13002 basic_ostream_char_print_ch(&oss.obj.base, '(');
13003 basic_ostream_char_print_double(&oss.obj.base, val->real);
13004 basic_ostream_char_print_ch(&oss.obj.base, ',');
13005 basic_ostream_char_print_double(&oss.obj.base, val->imag);
13006 basic_ostream_char_print_ch(&oss.obj.base, ')');
13008 basic_ostringstream_char_str_get(&oss.obj, &str);
13009 basic_ostringstream_char_dtor(&oss.vbase);
13010 basic_ostream_char_print_bstr(ostr, &str);
13011 MSVCP_basic_string_char_dtor(&str);
13012 return ostr;
13015 /* ??$?6odu?$char_traits@d@std@@@std@@yaaav?$basic_ostream@du?$char_traits@d@std@@@0@aav10@abv?$complex@o@0@@Z */
13016 /* ??$?6ODU?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBV?$complex@O@0@@Z */
13017 basic_ostream_char* __cdecl basic_ostream_char_print_complex_ldouble(basic_ostream_char *ostr, const complex_double *val)
13019 struct {
13020 basic_ostringstream_char obj;
13021 basic_ios_char vbase;
13022 } oss;
13023 ios_base *ostringstream_ios_base, *ostream_ios_base;
13024 locale loc;
13025 basic_string_char str;
13026 basic_ostringstream_char_ctor(&oss.obj);
13027 ostringstream_ios_base = &oss.vbase.base;
13028 ostream_ios_base = &basic_ostream_char_get_basic_ios(ostr)->base;
13029 TRACE("(%p %p)\n", ostr, val);
13031 ios_base_imbue(ostringstream_ios_base, &loc, IOS_LOCALE(ostream_ios_base));
13032 locale_dtor(&loc);
13033 ios_base_precision_set(ostringstream_ios_base, ios_base_precision_get(ostream_ios_base));
13034 ios_base_flags_set(ostringstream_ios_base, ios_base_flags_get(ostream_ios_base));
13036 basic_ostream_char_print_ch(&oss.obj.base, '(');
13037 basic_ostream_char_print_ldouble(&oss.obj.base, val->real);
13038 basic_ostream_char_print_ch(&oss.obj.base, ',');
13039 basic_ostream_char_print_ldouble(&oss.obj.base, val->imag);
13040 basic_ostream_char_print_ch(&oss.obj.base, ')');
13042 basic_ostringstream_char_str_get(&oss.obj, &str);
13043 basic_ostringstream_char_dtor(&oss.vbase);
13044 basic_ostream_char_print_bstr(ostr, &str);
13045 MSVCP_basic_string_char_dtor(&str);
13046 return ostr;
13049 /* ??0strstream@std@@QAE@PADHH@Z */
13050 /* ??0strstream@std@@QEAA@PEAD_JH@Z */
13051 DEFINE_THISCALL_WRAPPER(strstream_ctor, 20)
13052 strstream* __thiscall strstream_ctor(strstream *this, char *buf, streamsize size, int mode, bool virt_init)
13054 basic_ios_char *basic_ios;
13056 TRACE("(%p %p %Id %d %d)\n", this, buf, size, mode, virt_init);
13058 if(virt_init) {
13059 this->base.base1.vbtable = strstream_vbtable1;
13060 this->base.base2.vbtable = strstream_vbtable2;
13061 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
13062 basic_ios_char_ctor(basic_ios);
13063 }else {
13064 basic_ios = basic_istream_char_get_basic_ios(&this->base.base1);
13067 strstreambuf_ctor_get_put(&this->buf, buf, size,
13068 buf && (mode & OPENMODE_app) ? buf+strlen(buf) : buf);
13069 basic_iostream_char_ctor(&this->base, &this->buf.base, FALSE);
13070 basic_ios->base.vtable = &strstream_vtable;
13071 return this;
13074 /* ??1strstream@std@@UAE@XZ */
13075 /* ??1strstream@std@@UEAA@XZ */
13076 DEFINE_THISCALL_WRAPPER(strstream_dtor, 4)
13077 void __thiscall strstream_dtor(basic_ios_char *base)
13079 strstream *this = strstream_from_basic_ios(base);
13081 TRACE("(%p)\n", this);
13083 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base));
13084 strstreambuf_dtor(&this->buf);
13087 static void strstream_vbase_dtor(strstream *this)
13089 TRACE("(%p)\n", this);
13091 strstream_dtor(strstream_to_basic_ios(this));
13092 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base.base1));
13095 DEFINE_THISCALL_WRAPPER(strstream_vector_dtor, 8)
13096 strstream* __thiscall strstream_vector_dtor(basic_ios_char *base, unsigned int flags)
13098 strstream *this = strstream_from_basic_ios(base);
13100 TRACE("(%p %x)\n", this, flags);
13102 if(flags & 2) {
13103 /* we have an array, with the number of elements stored before the first object */
13104 INT_PTR i, *ptr = (INT_PTR *)this-1;
13106 for(i=*ptr-1; i>=0; i--)
13107 strstream_vbase_dtor(this+i);
13108 operator_delete(ptr);
13109 } else {
13110 strstream_vbase_dtor(this);
13111 if(flags & 1)
13112 operator_delete(this);
13115 return this;
13118 static void __cdecl setprecision_func(ios_base *base, streamsize prec)
13120 ios_base_precision_set(base, prec);
13123 /* ?setprecision@std@@YA?AU?$_Smanip@H@1@H@Z */
13124 /* ?setprecision@std@@YA?AU?$_Smanip@_J@1@_J@Z */
13125 manip_streamsize* __cdecl setprecision(manip_streamsize *ret, streamsize prec)
13127 TRACE("(%p %Id)\n", ret, prec);
13129 ret->pfunc = setprecision_func;
13130 ret->arg = prec;
13131 return ret;
13134 static void __cdecl setw_func(ios_base *base, streamsize width)
13136 ios_base_width_set(base, width);
13139 /* ?setw@std@@YA?AU?$_Smanip@H@1@H@Z */
13140 /* ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z */
13141 manip_streamsize* __cdecl setw(manip_streamsize *ret, streamsize width)
13143 TRACE("(%p %Id)\n", ret, width);
13145 ret->pfunc = setw_func;
13146 ret->arg = width;
13147 return ret;
13150 static void __cdecl resetioflags_func(ios_base *base, int mask)
13152 ios_base_setf_mask(base, 0, mask);
13155 /* ?resetiosflags@std@@YA?AU?$_Smanip@H@1@H@Z */
13156 manip_int* __cdecl resetiosflags(manip_int *ret, int mask)
13158 TRACE("(%p %d)\n", ret, mask);
13160 ret->pfunc = resetioflags_func;
13161 ret->arg = mask;
13162 return ret;
13165 static void __cdecl setiosflags_func(ios_base *base, int mask)
13167 ios_base_setf_mask(base, FMTFLAG_mask, mask);
13170 /* ?setiosflags@std@@YA?AU?$_Smanip@H@1@H@Z */
13171 manip_int* __cdecl setiosflags(manip_int *ret, int mask)
13173 TRACE("(%p %d)\n", ret, mask);
13175 ret->pfunc = setiosflags_func;
13176 ret->arg = mask;
13177 return ret;
13180 static void __cdecl setbase_func(ios_base *base, int set_base)
13182 if(set_base == 10)
13183 set_base = FMTFLAG_dec;
13184 else if(set_base == 8)
13185 set_base = FMTFLAG_oct;
13186 else if(set_base == 16)
13187 set_base = FMTFLAG_hex;
13188 else
13189 set_base = 0;
13191 ios_base_setf_mask(base, set_base, FMTFLAG_basefield);
13194 /* ?setbase@std@@YA?AU?$_Smanip@H@1@H@Z */
13195 manip_int* __cdecl setbase(manip_int *ret, int base)
13197 TRACE("(%p %d)\n", ret, base);
13199 ret->pfunc = setbase_func;
13200 ret->arg = base;
13201 return ret;
13204 static basic_filebuf_char filebuf_char_stdin;
13205 /* ?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A */
13206 struct {
13207 basic_istream_char obj;
13208 basic_ios_char vbase;
13209 } cin = { { 0 } };
13210 /* ?_Ptr_cin@std@@3PAV?$basic_istream@DU?$char_traits@D@std@@@1@A */
13211 /* ?_Ptr_cin@std@@3PEAV?$basic_istream@DU?$char_traits@D@std@@@1@EA */
13212 basic_istream_char *_Ptr_cin = &cin.obj;
13214 static basic_filebuf_wchar filebuf_short_stdin;
13215 /* ?wcin@std@@3V?$basic_istream@GU?$char_traits@G@std@@@1@A */
13216 struct {
13217 basic_istream_wchar obj;
13218 basic_ios_wchar vbase;
13219 } ucin = { { 0 } };
13220 /* ?_Ptr_wcin@std@@3PAV?$basic_istream@GU?$char_traits@G@std@@@1@A */
13221 /* ?_Ptr_wcin@std@@3PEAV?$basic_istream@GU?$char_traits@G@std@@@1@EA */
13222 basic_istream_wchar *_Ptr_ucin = &ucin.obj;
13224 static basic_filebuf_wchar filebuf_wchar_stdin;
13225 /* ?wcin@std@@3V?$basic_istream@_WU?$char_traits@_W@std@@@1@A */
13226 struct {
13227 basic_istream_wchar obj;
13228 basic_ios_wchar vbase;
13229 } wcin = { { 0 } };
13230 /* ?_Ptr_wcin@std@@3PAV?$basic_istream@_WU?$char_traits@_W@std@@@1@A */
13231 /* ?_Ptr_wcin@std@@3PEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@EA */
13232 basic_istream_wchar *_Ptr_wcin = &wcin.obj;
13234 static basic_filebuf_char filebuf_char_stdout;
13235 /* ?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
13236 struct {
13237 basic_ostream_char obj;
13238 basic_ios_char vbase;
13239 } cout = { { 0 } };
13240 /* ?_Ptr_cout@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
13241 /* ?_Ptr_cout@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
13242 basic_ostream_char *_Ptr_cout = &cout.obj;
13244 static basic_filebuf_wchar filebuf_short_stdout;
13245 /* ?wcout@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
13246 struct {
13247 basic_ostream_wchar obj;
13248 basic_ios_wchar vbase;
13249 } ucout = { { 0 } };
13250 /* ?_Ptr_wcout@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
13251 /* ?_Ptr_wcout@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
13252 basic_ostream_wchar *_Ptr_ucout = &ucout.obj;
13254 static basic_filebuf_wchar filebuf_wchar_stdout;
13255 /* ?wcout@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
13256 struct {
13257 basic_ostream_wchar obj;
13258 basic_ios_wchar vbase;
13259 } wcout = { { 0 } };
13260 /* ?_Ptr_wcout@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
13261 /* ?_Ptr_wcout@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
13262 basic_ostream_wchar *_Ptr_wcout = &wcout.obj;
13264 static basic_filebuf_char filebuf_char_stderr;
13265 /* ?cerr@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
13266 struct {
13267 basic_ostream_char obj;
13268 basic_ios_char vbase;
13269 } cerr = { { 0 } };
13270 /* ?_Ptr_cerr@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
13271 /* ?_Ptr_cerr@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
13272 basic_ostream_char *_Ptr_cerr = &cerr.obj;
13274 static basic_filebuf_wchar filebuf_short_stderr;
13275 /* ?wcerr@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
13276 struct {
13277 basic_ostream_wchar obj;
13278 basic_ios_wchar vbase;
13279 } ucerr = { { 0 } };
13280 /* ?_Ptr_wcerr@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
13281 /* ?_Ptr_wcerr@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
13282 basic_ostream_wchar *_Ptr_ucerr = &ucerr.obj;
13284 static basic_filebuf_wchar filebuf_wchar_stderr;
13285 /* ?wcerr@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
13286 struct {
13287 basic_ostream_wchar obj;
13288 basic_ios_wchar vbase;
13289 } wcerr = { { 0 } };
13290 /* ?_Ptr_wcerr@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
13291 /* ?_Ptr_wcerr@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
13292 basic_ostream_wchar *_Ptr_wcerr = &wcerr.obj;
13294 static basic_filebuf_char filebuf_char_log;
13295 /* ?clog@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
13296 struct {
13297 basic_ostream_char obj;
13298 basic_ios_char vbase;
13299 } MSVCP_clog = { { 0 } };
13300 /* ?_Ptr_clog@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
13301 /* ?_Ptr_clog@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
13302 basic_ostream_char *_Ptr_clog = &MSVCP_clog.obj;
13304 static basic_filebuf_wchar filebuf_short_log;
13305 /* ?wclog@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
13306 struct {
13307 basic_ostream_wchar obj;
13308 basic_ios_wchar vbase;
13309 } uclog = { { 0 } };
13310 /* ?_Ptr_wclog@std@@3PAV?$basic_ostream@GU?$char_traits@G@std@@@1@A */
13311 /* ?_Ptr_wclog@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA */
13312 basic_ostream_wchar *_Ptr_uclog = &uclog.obj;
13314 static basic_filebuf_wchar filebuf_wchar_log;
13315 /* ?wclog@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
13316 struct {
13317 basic_ostream_wchar obj;
13318 basic_ios_wchar vbase;
13319 } wclog = { { 0 } };
13320 /* ?_Ptr_wclog@std@@3PAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@A */
13321 /* ?_Ptr_wclog@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
13322 basic_ostream_wchar *_Ptr_wclog = &wclog.obj;
13324 /* ?_Init_cnt@Init@ios_base@std@@0HA */
13325 int ios_base_Init__Init_cnt = -1;
13327 /* ?_Init_cnt_func@Init@ios_base@std@@CAAAHXZ */
13328 /* ?_Init_cnt_func@Init@ios_base@std@@CAAEAHXZ */
13329 int* __cdecl ios_base_Init__Init_cnt_func(void)
13331 return &ios_base_Init__Init_cnt;
13334 /* ?_Init_ctor@Init@ios_base@std@@CAXPAV123@@Z */
13335 /* ?_Init_ctor@Init@ios_base@std@@CAXPEAV123@@Z */
13336 void __cdecl ios_base_Init__Init_ctor(void *this)
13338 TRACE("(%p)\n", this);
13340 if(ios_base_Init__Init_cnt < 0)
13341 ios_base_Init__Init_cnt = 1;
13342 else
13343 ios_base_Init__Init_cnt++;
13346 /* ??0Init@ios_base@std@@QAE@XZ */
13347 /* ??0Init@ios_base@std@@QEAA@XZ */
13348 DEFINE_THISCALL_WRAPPER(ios_base_Init_ctor, 4)
13349 void* __thiscall ios_base_Init_ctor(void *this)
13351 ios_base_Init__Init_ctor(this);
13352 return this;
13355 /* ?_Init_dtor@Init@ios_base@std@@CAXPAV123@@Z */
13356 /* ?_Init_dtor@Init@ios_base@std@@CAXPEAV123@@Z */
13357 void __cdecl ios_base_Init__Init_dtor(void *this)
13359 TRACE("(%p)\n", this);
13361 ios_base_Init__Init_cnt--;
13362 if(!ios_base_Init__Init_cnt) {
13363 basic_ostream_char_flush(&cout.obj);
13364 basic_ostream_char_flush(&cerr.obj);
13365 basic_ostream_char_flush(&MSVCP_clog.obj);
13369 /* ??1Init@ios_base@std@@QAE@XZ */
13370 /* ??1Init@ios_base@std@@QEAA@XZ */
13371 DEFINE_THISCALL_WRAPPER(ios_base_Init_dtor, 4)
13372 void __thiscall ios_base_Init_dtor(void *this)
13374 ios_base_Init__Init_dtor(this);
13377 /* ??4Init@ios_base@std@@QAEAAV012@ABV012@@Z */
13378 /* ??4Init@ios_base@std@@QEAAAEAV012@AEBV012@@Z */
13379 DEFINE_THISCALL_WRAPPER(ios_base_Init_op_assign, 8)
13380 void* __thiscall ios_base_Init_op_assign(void *this, void *rhs)
13382 TRACE("(%p %p)\n", this, rhs);
13383 return this;
13386 /* ?_Init_cnt@_Winit@std@@0HA */
13387 int _Winit__Init_cnt = -1;
13389 /* ??0_Winit@std@@QAE@XZ */
13390 /* ??0_Winit@std@@QEAA@XZ */
13391 DEFINE_THISCALL_WRAPPER(_Winit_ctor, 4)
13392 void* __thiscall _Winit_ctor(void *this)
13394 TRACE("(%p)\n", this);
13396 if(_Winit__Init_cnt < 0)
13397 _Winit__Init_cnt = 1;
13398 else
13399 _Winit__Init_cnt++;
13401 return this;
13404 /* ??1_Winit@std@@QAE@XZ */
13405 /* ??1_Winit@std@@QAE@XZ */
13406 DEFINE_THISCALL_WRAPPER(_Winit_dtor, 4)
13407 void __thiscall _Winit_dtor(void *this)
13409 TRACE("(%p)\n", this);
13411 _Winit__Init_cnt--;
13412 if(!_Winit__Init_cnt) {
13413 basic_ostream_wchar_flush(&wcout.obj);
13414 basic_ostream_wchar_flush(&wcerr.obj);
13415 basic_ostream_wchar_flush(&wclog.obj);
13419 /* ??4_Winit@std@@QAEAAV01@ABV01@@Z */
13420 /* ??4_Winit@std@@QEAAAEAV01@AEBV01@@Z */
13421 DEFINE_THISCALL_WRAPPER(_Winit_op_assign, 8)
13422 void* __thiscall _Winit_op_assign(void *this, void *rhs)
13424 TRACE("(%p %p)\n", this, rhs);
13425 return this;
13428 void init_io(void *base)
13430 #ifdef __x86_64__
13431 init_iosb_rtti(base);
13432 init_ios_base_rtti(base);
13433 init_basic_ios_char_rtti(base);
13434 init_basic_ios_wchar_rtti(base);
13435 init_basic_ios_short_rtti(base);
13436 init_basic_streambuf_char_rtti(base);
13437 init_basic_streambuf_wchar_rtti(base);
13438 init_basic_streambuf_short_rtti(base);
13439 init_basic_filebuf_char_rtti(base);
13440 init_basic_filebuf_wchar_rtti(base);
13441 init_basic_filebuf_short_rtti(base);
13442 init_basic_stringbuf_char_rtti(base);
13443 init_basic_stringbuf_wchar_rtti(base);
13444 init_basic_stringbuf_short_rtti(base);
13445 init_basic_ostream_char_rtti(base);
13446 init_basic_ostream_wchar_rtti(base);
13447 init_basic_ostream_short_rtti(base);
13448 init_basic_istream_char_rtti(base);
13449 init_basic_istream_wchar_rtti(base);
13450 init_basic_istream_short_rtti(base);
13451 init_basic_iostream_char_rtti(base);
13452 init_basic_iostream_wchar_rtti(base);
13453 init_basic_iostream_short_rtti(base);
13454 init_basic_ofstream_char_rtti(base);
13455 init_basic_ofstream_wchar_rtti(base);
13456 init_basic_ofstream_short_rtti(base);
13457 init_basic_ifstream_char_rtti(base);
13458 init_basic_ifstream_wchar_rtti(base);
13459 init_basic_ifstream_short_rtti(base);
13460 init_basic_fstream_char_rtti(base);
13461 init_basic_fstream_wchar_rtti(base);
13462 init_basic_fstream_short_rtti(base);
13463 init_basic_ostringstream_char_rtti(base);
13464 init_basic_ostringstream_wchar_rtti(base);
13465 init_basic_ostringstream_short_rtti(base);
13466 init_basic_istringstream_char_rtti(base);
13467 init_basic_istringstream_wchar_rtti(base);
13468 init_basic_istringstream_short_rtti(base);
13469 init_basic_stringstream_char_rtti(base);
13470 init_basic_stringstream_short_rtti(base);
13471 init_strstreambuf_rtti(base);
13472 init_strstream_rtti(base);
13473 init_ostrstream_rtti(base);
13474 #endif
13476 basic_filebuf_char_ctor_file(&filebuf_char_stdin, stdin);
13477 basic_istream_char_ctor(&cin.obj, &filebuf_char_stdin.base, FALSE/*FIXME*/, TRUE);
13479 basic_filebuf_short_ctor_file(&filebuf_short_stdin, stdin);
13480 basic_istream_short_ctor(&ucin.obj, &filebuf_short_stdin.base, FALSE/*FIXME*/, TRUE);
13482 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stdin, stdin);
13483 basic_istream_wchar_ctor(&wcin.obj, &filebuf_wchar_stdin.base, FALSE/*FIXME*/, TRUE);
13485 basic_filebuf_char_ctor_file(&filebuf_char_stdout, stdout);
13486 basic_ostream_char_ctor(&cout.obj, &filebuf_char_stdout.base, FALSE/*FIXME*/, TRUE, TRUE);
13488 basic_filebuf_short_ctor_file(&filebuf_short_stdout, stdout);
13489 basic_ostream_short_ctor(&ucout.obj, &filebuf_short_stdout.base, FALSE/*FIXME*/, TRUE, TRUE);
13491 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stdout, stdout);
13492 basic_ostream_short_ctor(&wcout.obj, &filebuf_wchar_stdout.base, FALSE/*FIXME*/, TRUE, TRUE);
13494 basic_filebuf_char_ctor_file(&filebuf_char_stderr, stderr);
13495 basic_ostream_char_ctor(&cerr.obj, &filebuf_char_stderr.base, FALSE/*FIXME*/, TRUE, TRUE);
13497 basic_filebuf_short_ctor_file(&filebuf_short_stderr, stderr);
13498 basic_ostream_short_ctor(&ucerr.obj, &filebuf_short_stderr.base, FALSE/*FIXME*/, TRUE, TRUE);
13500 basic_filebuf_wchar_ctor_file(&filebuf_wchar_stderr, stderr);
13501 basic_ostream_short_ctor(&wcerr.obj, &filebuf_wchar_stderr.base, FALSE/*FIXME*/, TRUE, TRUE);
13503 basic_filebuf_char_ctor_file(&filebuf_char_log, stderr);
13504 basic_ostream_char_ctor(&MSVCP_clog.obj, &filebuf_char_log.base, FALSE/*FIXME*/, TRUE, TRUE);
13506 basic_filebuf_short_ctor_file(&filebuf_short_log, stderr);
13507 basic_ostream_short_ctor(&uclog.obj, &filebuf_short_log.base, FALSE/*FIXME*/, TRUE, TRUE);
13509 basic_filebuf_wchar_ctor_file(&filebuf_wchar_log, stderr);
13510 basic_ostream_short_ctor(&wclog.obj, &filebuf_wchar_log.base, FALSE/*FIXME*/, TRUE, TRUE);
13513 void free_io(void)
13515 basic_istream_char_vbase_dtor(&cin.obj);
13516 basic_filebuf_char_dtor(&filebuf_char_stdin);
13518 basic_istream_wchar_vbase_dtor(&ucin.obj);
13519 basic_filebuf_wchar_dtor(&filebuf_short_stdin);
13521 basic_istream_wchar_vbase_dtor(&wcin.obj);
13522 basic_filebuf_wchar_dtor(&filebuf_wchar_stdin);
13524 basic_ostream_char_vbase_dtor(&cout.obj);
13525 basic_filebuf_char_dtor(&filebuf_char_stdout);
13527 basic_ostream_wchar_vbase_dtor(&ucout.obj);
13528 basic_filebuf_wchar_dtor(&filebuf_short_stdout);
13530 basic_ostream_wchar_vbase_dtor(&wcout.obj);
13531 basic_filebuf_wchar_dtor(&filebuf_wchar_stdout);
13533 basic_ostream_char_vbase_dtor(&cerr.obj);
13534 basic_filebuf_char_dtor(&filebuf_char_stderr);
13536 basic_ostream_wchar_vbase_dtor(&ucerr.obj);
13537 basic_filebuf_wchar_dtor(&filebuf_short_stderr);
13539 basic_ostream_wchar_vbase_dtor(&wcerr.obj);
13540 basic_filebuf_wchar_dtor(&filebuf_wchar_stderr);
13542 basic_ostream_char_vbase_dtor(&MSVCP_clog.obj);
13543 basic_filebuf_char_dtor(&filebuf_char_log);
13545 basic_ostream_wchar_vbase_dtor(&uclog.obj);
13546 basic_filebuf_wchar_dtor(&filebuf_short_log);
13548 basic_ostream_wchar_vbase_dtor(&wclog.obj);
13549 basic_filebuf_wchar_dtor(&filebuf_wchar_log);