msvcp90: Added partial basic_ios<char> implementation.
[wine/multimedia.git] / dlls / msvcp90 / ios.c
blob4e7a513ddfde400aa3761fb0291fe9b122779d69
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
19 #include "config.h"
21 #include <stdarg.h>
22 #include <stdio.h>
24 #include "msvcp90.h"
25 #include "windef.h"
26 #include "winbase.h"
27 #include "wine/debug.h"
28 WINE_DEFAULT_DEBUG_CHANNEL(msvcp90);
30 typedef enum {
31 IOSTATE_goodbit = 0x00,
32 IOSTATE_eofbit = 0x01,
33 IOSTATE_failbit = 0x02,
34 IOSTATE_badbit = 0x04,
35 IOSTATE__Hardfail = 0x10,
36 IOSTATE_mask = 0x17
37 } IOSB_iostate;
39 typedef enum {
40 FMTFLAG_skipws = 0x0001,
41 FMTFLAG_unitbuf = 0x0002,
42 FMTFLAG_uppercase = 0x0004,
43 FMTFLAG_showbase = 0x0008,
44 FMTFLAG_showpoint = 0x0010,
45 FMTFLAG_showpos = 0x0020,
46 FMTFLAG_left = 0x0040,
47 FMTFLAG_right = 0x0080,
48 FMTFLAG_internal = 0x0100,
49 FMTFLAG_dec = 0x0200,
50 FMTFLAG_oct = 0x0400,
51 FMTFLAG_hex = 0x0800,
52 FMTFLAG_scientific = 0x1000,
53 FMTFLAG_fixed = 0x2000,
54 FMTFLAG_hexfloat = 0x3000,
55 FMTFLAG_boolalpha = 0x4000,
56 FMTFLAG_stdio = 0x8000,
57 FMTFLAG_adjustfield = FMTFLAG_left|FMTFLAG_right|FMTFLAG_internal,
58 FMTFLAG_basefield = FMTFLAG_dec|FMTFLAG_oct|FMTFLAG_hex,
59 FMTFLAG_floadfield = FMTFLAG_scientific|FMTFLAG_fixed,
60 FMTFLAG_mask = 0xffff
61 } IOSB_fmtflags;
63 typedef struct _iosarray {
64 struct _iosarray *next;
65 int index;
66 int long_val;
67 void *ptr_val;
68 } IOS_BASE_iosarray;
70 typedef enum {
71 EVENT_erase_event,
72 EVENT_imbue_event,
73 EVENT_copyfmt_event
74 } IOS_BASE_event;
76 struct _ios_base;
77 typedef void (CDECL *IOS_BASE_event_callback)(IOS_BASE_event, struct _ios_base*, int);
78 typedef struct _fnarray {
79 struct _fnarray *next;
80 int index;
81 IOS_BASE_event_callback event_handler;
82 } IOS_BASE_fnarray;
84 /* ?_Index@ios_base@std@@0HA */
85 int ios_base_Index = 0;
86 /* ?_Sync@ios_base@std@@0_NA */
87 MSVCP_bool ios_base_Sync = FALSE;
89 typedef struct _ios_base {
90 const vtable_ptr *vtable;
91 MSVCP_size_t stdstr;
92 IOSB_iostate state;
93 IOSB_iostate except;
94 IOSB_fmtflags fmtfl;
95 MSVCP_size_t prec;
96 MSVCP_size_t wide;
97 IOS_BASE_iosarray *arr;
98 IOS_BASE_fnarray *calls;
99 locale *loc;
100 } ios_base;
102 typedef struct {
103 streamoff off;
104 __int64 DECLSPEC_ALIGN(8) pos;
105 int state;
106 } fpos_int;
108 static inline const char* debugstr_fpos_int(fpos_int *fpos)
110 return wine_dbg_sprintf("fpos(%lu %s %d)", fpos->off, wine_dbgstr_longlong(fpos->pos), fpos->state);
113 typedef struct {
114 const vtable_ptr *vtable;
115 mutex lock;
116 char *rbuf;
117 char *wbuf;
118 char **prbuf;
119 char **pwbuf;
120 char *rpos;
121 char *wpos;
122 char **prpos;
123 char **pwpos;
124 int rsize;
125 int wsize;
126 int *prsize;
127 int *pwsize;
128 locale *loc;
129 } basic_streambuf_char;
131 typedef struct {
132 const vtable_ptr *vtable;
133 mutex lock;
134 wchar_t *rbuf;
135 wchar_t *wbuf;
136 wchar_t **prbuf;
137 wchar_t **pwbuf;
138 wchar_t *rpos;
139 wchar_t *wpos;
140 wchar_t **prpos;
141 wchar_t **pwpos;
142 int rsize;
143 int wsize;
144 int *prsize;
145 int *pwsize;
146 locale *loc;
147 } basic_streambuf_wchar;
149 typedef struct {
150 ios_base base;
151 basic_streambuf_char *strbuf;
152 struct _basic_ostream_char *stream;
153 char fillch;
154 } basic_ios_char;
156 typedef struct {
157 ios_base child;
158 /*basic_streambuf_wchar*/void *strbuf;
159 /*basic_ostream_wchar*/void *stream;
160 char fillch;
161 } basic_ios_wchar;
163 typedef struct _basic_ostream_char {
164 const int *vbtable;
165 basic_ios_char base;
166 } basic_ostream_char;
168 extern const vtable_ptr MSVCP_iosb_vtable;
170 /* ??_7ios_base@std@@6B@ */
171 extern const vtable_ptr MSVCP_ios_base_vtable;
173 /* ??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@ */
174 extern const vtable_ptr MSVCP_basic_ios_char_vtable;
176 /* ??_7?$basic_ios@_WU?$char_traits@_W@std@@@std@@6B@ */
177 extern const vtable_ptr MSVCP_basic_ios_wchar_vtable;
179 /* ??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@ */
180 extern const vtable_ptr MSVCP_basic_streambuf_char_vtable;
182 /* ??_7?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@6B@ */
183 extern const vtable_ptr MSVCP_basic_streambuf_wchar_vtable;
185 /* ??_7?$basic_streambuf@GU?$char_traits@G@std@@@std@@6B@ */
186 extern const vtable_ptr MSVCP_basic_streambuf_short_vtable;
188 /* ??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@ */
189 extern const vtable_ptr MSVCP_basic_ostream_char_vtable;
191 DEFINE_RTTI_DATA(iosb, 0, 0, NULL, NULL, NULL, ".?AV?$_Iosb@H@std@@");
192 DEFINE_RTTI_DATA(ios_base, 0, 1, &iosb_rtti_base_descriptor, NULL, NULL, ".?AV?$_Iosb@H@std@@");
193 DEFINE_RTTI_DATA(basic_ios_char, 0, 2, &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
194 NULL, ".?AV?$basic_ios@DU?$char_traits@D@std@@@std@@");
195 DEFINE_RTTI_DATA(basic_ios_wchar, 0, 2, &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
196 NULL, ".?AV?$basic_ios@_WU?$char_traits@_W@std@@@std@@");
197 DEFINE_RTTI_DATA(basic_streambuf_char, 0, 0, NULL, NULL, NULL,
198 ".?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@");
199 DEFINE_RTTI_DATA(basic_streambuf_wchar, 0, 0, NULL, NULL, NULL,
200 ".?AV?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@");
201 DEFINE_RTTI_DATA(basic_streambuf_short, 0, 0, NULL, NULL, NULL,
202 ".?AV?$basic_streambuf@GU?$char_traits@G@std@@@std@@");
203 DEFINE_RTTI_DATA(basic_ostream_char, 4, 3, &basic_ios_char_rtti_base_descriptor, &ios_base_rtti_base_descriptor,
204 &iosb_rtti_base_descriptor, ".?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@");
206 #ifndef __GNUC__
207 void __asm_dummy_vtables(void) {
208 #endif
209 __ASM_VTABLE(iosb, "");
210 __ASM_VTABLE(ios_base, "");
211 __ASM_VTABLE(basic_ios_char, "");
212 __ASM_VTABLE(basic_ios_wchar, "");
213 __ASM_VTABLE(basic_streambuf_char,
214 VTABLE_ADD_FUNC(basic_streambuf_char_overflow)
215 VTABLE_ADD_FUNC(basic_streambuf_char_pbackfail)
216 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
217 VTABLE_ADD_FUNC(basic_streambuf_char_underflow)
218 VTABLE_ADD_FUNC(basic_streambuf_char_uflow)
219 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
220 VTABLE_ADD_FUNC(basic_streambuf_char__Xsgetn_s)
221 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
222 VTABLE_ADD_FUNC(basic_streambuf_char_seekoff)
223 VTABLE_ADD_FUNC(basic_streambuf_char_seekpos)
224 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf)
225 VTABLE_ADD_FUNC(basic_streambuf_char_sync)
226 VTABLE_ADD_FUNC(basic_streambuf_char_imbue));
227 __ASM_VTABLE(basic_streambuf_wchar,
228 VTABLE_ADD_FUNC(basic_streambuf_wchar_overflow)
229 VTABLE_ADD_FUNC(basic_streambuf_wchar_pbackfail)
230 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
231 VTABLE_ADD_FUNC(basic_streambuf_wchar_underflow)
232 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
233 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
234 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s)
235 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
236 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff)
237 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos)
238 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
239 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
240 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
241 __ASM_VTABLE(basic_streambuf_short,
242 VTABLE_ADD_FUNC(basic_streambuf_wchar_overflow)
243 VTABLE_ADD_FUNC(basic_streambuf_wchar_pbackfail)
244 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
245 VTABLE_ADD_FUNC(basic_streambuf_wchar_underflow)
246 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
247 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
248 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s)
249 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
250 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff)
251 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos)
252 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
253 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
254 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
255 __ASM_VTABLE(basic_ostream_char, "");
256 #ifndef __GNUC__
258 #endif
260 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
261 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
262 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp_next, 16)
263 void __thiscall basic_streambuf_char_setp_next(basic_streambuf_char *this, char *first, char *next, char *last)
265 TRACE("(%p %p %p %p)\n", this, first, next, last);
267 this->wbuf = first;
268 this->wpos = next;
269 this->wsize = last-next;
272 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z */
273 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z */
274 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp, 12)
275 void __thiscall basic_streambuf_char_setp(basic_streambuf_char *this, char *first, char *last)
277 basic_streambuf_char_setp_next(this, first, first, last);
280 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
281 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
282 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setg, 16)
283 void __thiscall basic_streambuf_char_setg(basic_streambuf_char *this, char *first, char *next, char *last)
285 TRACE("(%p %p %p %p)\n", this, first, next, last);
287 this->rbuf = first;
288 this->rpos = next;
289 this->rsize = last-next;
292 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ */
293 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ */
294 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init_empty, 4)
295 void __thiscall basic_streambuf_char__Init_empty(basic_streambuf_char *this)
297 TRACE("(%p)\n", this);
299 this->prbuf = &this->rbuf;
300 this->pwbuf = &this->wbuf;
301 this->prpos = &this->rpos;
302 this->pwpos = &this->wpos;
303 this->prsize = &this->rsize;
304 this->pwsize = &this->wsize;
306 basic_streambuf_char_setp(this, NULL, NULL);
307 basic_streambuf_char_setg(this, NULL, NULL, NULL);
310 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@W4_Uninitialized@1@@Z */
311 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
312 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor_uninitialized, 8)
313 basic_streambuf_char* __thiscall basic_streambuf_char_ctor_uninitialized(basic_streambuf_char *this, int uninitialized)
315 TRACE("(%p %d)\n", this, uninitialized);
316 this->vtable = &MSVCP_basic_streambuf_char_vtable;
317 mutex_ctor(&this->lock);
318 return this;
321 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ */
322 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ */
323 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor, 4)
324 basic_streambuf_char* __thiscall basic_streambuf_char_ctor(basic_streambuf_char *this)
326 TRACE("(%p)\n", this);
328 this->vtable = &MSVCP_basic_streambuf_char_vtable;
329 mutex_ctor(&this->lock);
330 this->loc = MSVCRT_operator_new(sizeof(locale));
331 locale_ctor(this->loc);
332 basic_streambuf_char__Init_empty(this);
334 return this;
337 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
338 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
339 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_dtor, 4)
340 void __thiscall basic_streambuf_char_dtor(basic_streambuf_char *this)
342 TRACE("(%p)\n", this);
344 mutex_dtor(&this->lock);
345 locale_dtor(this->loc);
346 MSVCRT_operator_delete(this->loc);
349 DEFINE_THISCALL_WRAPPER(MSVCP_basic_streambuf_char_vector_dtor, 8)
350 basic_streambuf_char* __thiscall MSVCP_basic_streambuf_char_vector_dtor(basic_streambuf_char *this, unsigned int flags)
352 TRACE("(%p %x)\n", this, flags);
353 if(flags & 2) {
354 /* we have an array, with the number of elements stored before the first object */
355 int i, *ptr = (int *)this-1;
357 for(i=*ptr-1; i>=0; i--)
358 basic_streambuf_char_dtor(this+i);
359 MSVCRT_operator_delete(ptr);
360 } else {
361 basic_streambuf_char_dtor(this);
362 if(flags & 1)
363 MSVCRT_operator_delete(this);
366 return this;
369 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
370 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
371 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gnavail, 4)
372 streamsize __thiscall basic_streambuf_char__Gnavail(const basic_streambuf_char *this)
374 TRACE("(%p)\n", this);
375 return *this->prpos ? *this->prsize : 0;
378 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
379 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
380 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gndec, 4)
381 char* __thiscall basic_streambuf_char__Gndec(basic_streambuf_char *this)
383 TRACE("(%p)\n", this);
384 (*this->prsize)++;
385 (*this->prpos)--;
386 return *this->prpos;
389 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
390 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
391 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gninc, 4)
392 char* __thiscall basic_streambuf_char__Gninc(basic_streambuf_char *this)
394 TRACE("(%p)\n", this);
395 (*this->prsize)--;
396 return (*this->prpos)++;
399 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
400 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
401 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gnpreinc, 4)
402 char* __thiscall basic_streambuf_char__Gnpreinc(basic_streambuf_char *this)
404 TRACE("(%p)\n", this);
405 (*this->prsize)--;
406 (*this->prpos)++;
407 return *this->prpos;
410 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z */
411 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAPEAD0PEAH001@Z */
412 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init, 28)
413 void __thiscall basic_streambuf_char__Init(basic_streambuf_char *this, char **gf, char **gn, int *gc, char **pf, char **pn, int *pc)
415 TRACE("(%p %p %p %p %p %p %p)\n", this, gf, gn, gc, pf, pn, pc);
417 this->prbuf = gf;
418 this->pwbuf = pf;
419 this->prpos = gn;
420 this->pwpos = pn;
421 this->prsize = gc;
422 this->pwsize = pc;
425 /* ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
426 /* ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
427 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Lock, 4)
428 void __thiscall basic_streambuf_char__Lock(basic_streambuf_char *this)
430 TRACE("(%p)\n", this);
431 mutex_lock(&this->lock);
434 /* ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
435 /* ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
436 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Pnavail, 4)
437 streamsize __thiscall basic_streambuf_char__Pnavail(const basic_streambuf_char *this)
439 TRACE("(%p)\n", this);
440 return *this->pwpos ? *this->pwsize : 0;
443 /* ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
444 /* ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
445 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Pninc, 4)
446 char* __thiscall basic_streambuf_char__Pninc(basic_streambuf_char *this)
448 TRACE("(%p)\n", this);
449 (*this->pwsize)--;
450 return (*this->pwpos)++;
453 /* ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
454 /* ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
455 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_underflow, 4)
456 #define call_basic_streambuf_char_underflow(this) CALL_VTBL_FUNC(this, 16, \
457 int, (basic_streambuf_char*), (this))
458 int __thiscall basic_streambuf_char_underflow(basic_streambuf_char *this)
460 TRACE("(%p)\n", this);
461 return EOF;
464 /* ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
465 /* ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
466 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_uflow, 4)
467 #define call_basic_streambuf_char_uflow(this) CALL_VTBL_FUNC(this, 20, \
468 int, (basic_streambuf_char*), (this))
469 int __thiscall basic_streambuf_char_uflow(basic_streambuf_char *this)
471 int ret;
473 TRACE("(%p)\n", this);
475 if(call_basic_streambuf_char_underflow(this)==EOF)
476 return EOF;
478 ret = **this->prpos;
479 (*this->prsize)--;
480 (*this->prpos)++;
481 return ret;
484 /* ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADIH@Z */
485 /* ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_K_J@Z */
486 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Xsgetn_s, 16)
487 #define call_basic_streambuf_char__Xsgetn_s(this, ptr, size, count) CALL_VTBL_FUNC(this, 28, \
488 streamsize, (basic_streambuf_char*, char*, MSVCP_size_t, streamsize), (this, ptr, size, count))
489 streamsize __thiscall basic_streambuf_char__Xsgetn_s(basic_streambuf_char *this, char *ptr, MSVCP_size_t size, streamsize count)
491 streamsize copied, chunk;
493 TRACE("(%p %p %lu %lu)\n", this, ptr, size, count);
495 for(copied=0; copied<count && size;) {
496 chunk = basic_streambuf_char__Gnavail(this);
497 if(chunk > count-copied)
498 chunk = count-copied;
500 if(chunk) {
501 memcpy_s(ptr+copied, size, *this->prpos, chunk);
502 *this->prpos += chunk;
503 *this->prsize -= chunk;
504 copied += chunk;
505 size -= chunk;
506 }else if((ptr[copied] = call_basic_streambuf_char_uflow(this)) != EOF) {
507 copied++;
508 size--;
509 }else {
510 break;
514 return copied;
517 /* ?_Sgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADIH@Z */
518 /* ?_Sgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_K_J@Z */
519 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Sgetn_s, 16)
520 streamsize __thiscall basic_streambuf_char__Sgetn_s(basic_streambuf_char *this, char *ptr, MSVCP_size_t size, streamsize count)
522 TRACE("(%p %p %lu %lu)\n", this, ptr, size, count);
523 return call_basic_streambuf_char__Xsgetn_s(this, ptr, size, count);
526 /* ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
527 /* ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
528 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Unlock, 4)
529 void __thiscall basic_streambuf_char__Unlock(basic_streambuf_char *this)
531 TRACE("(%p)\n", this);
532 mutex_unlock(&this->lock);
535 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
536 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
537 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_eback, 4)
538 char* __thiscall basic_streambuf_char_eback(const basic_streambuf_char *this)
540 TRACE("(%p)\n", this);
541 return *this->prbuf;
544 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
545 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
546 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gptr, 4)
547 char* __thiscall basic_streambuf_char_gptr(const basic_streambuf_char *this)
549 TRACE("(%p)\n", this);
550 return *this->prpos;
553 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
554 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
555 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_egptr, 4)
556 char* __thiscall basic_streambuf_char_egptr(const basic_streambuf_char *this)
558 TRACE("(%p)\n", this);
559 return *this->prpos+*this->prsize;
562 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
563 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
564 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_epptr, 4)
565 char* __thiscall basic_streambuf_char_epptr(const basic_streambuf_char *this)
567 TRACE("(%p)\n", this);
568 return *this->pwpos+*this->pwsize;
571 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
572 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
573 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gbump, 8)
574 void __thiscall basic_streambuf_char_gbump(basic_streambuf_char *this, int off)
576 TRACE("(%p %d)\n", this, off);
577 *this->prpos += off;
578 *this->prsize -= off;
581 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ */
582 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?AVlocale@2@XZ */
583 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_getloc, 8)
584 locale* __thiscall basic_streambuf_char_getloc(const basic_streambuf_char *this, locale *ret)
586 TRACE("(%p)\n", this);
587 return locale_copy_ctor(ret, this->loc);
590 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z */
591 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z */
592 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_imbue, 8)
593 #define call_basic_streambuf_char_imbue(this, loc) CALL_VTBL_FUNC(this, 52, \
594 void, (basic_streambuf_char*, const locale*), (this, loc))
595 void __thiscall basic_streambuf_char_imbue(basic_streambuf_char *this, const locale *loc)
597 TRACE("(%p %p)\n", this, loc);
600 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
601 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
602 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_overflow, 8)
603 #define call_basic_streambuf_char_overflow(this, ch) CALL_VTBL_FUNC(this, 4, \
604 int, (basic_streambuf_char*, int), (this, ch))
605 int __thiscall basic_streambuf_char_overflow(basic_streambuf_char *this, int ch)
607 TRACE("(%p %d)\n", this, ch);
608 return EOF;
611 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
612 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
613 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbackfail, 8)
614 #define call_basic_streambuf_char_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, \
615 int, (basic_streambuf_char*, int), (this, ch))
616 int __thiscall basic_streambuf_char_pbackfail(basic_streambuf_char *this, int ch)
618 TRACE("(%p %d)\n", this, ch);
619 return EOF;
622 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
623 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
624 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbase, 4)
625 char* __thiscall basic_streambuf_char_pbase(const basic_streambuf_char *this)
627 TRACE("(%p)\n", this);
628 return *this->pwbuf;
631 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
632 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
633 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbump, 8)
634 void __thiscall basic_streambuf_char_pbump(basic_streambuf_char *this, int off)
636 TRACE("(%p %d)\n", this, off);
637 *this->pwpos += off;
638 *this->pwsize -= off;
641 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
642 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
643 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pptr, 4)
644 char* __thiscall basic_streambuf_char_pptr(const basic_streambuf_char *this)
646 TRACE("(%p)\n", this);
647 return *this->pwpos;
650 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
651 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
652 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubimbue, 12)
653 locale* __thiscall basic_streambuf_char_pubimbue(basic_streambuf_char *this, locale *ret, const locale *loc)
655 TRACE("(%p %p)\n", this, loc);
656 memcpy(ret, this->loc, sizeof(locale));
657 call_basic_streambuf_char_imbue(this, loc);
658 locale_copy_ctor(this->loc, loc);
659 return ret;
662 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
663 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
664 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekoff, 20)
665 #define call_basic_streambuf_char_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 36, \
666 fpos_int*, (basic_streambuf_char*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
667 fpos_int* __thiscall basic_streambuf_char_seekoff(basic_streambuf_char *this,
668 fpos_int *ret, streamoff off, int way, int mode)
670 TRACE("(%p %lu %d %d)\n", this, off, way, mode);
671 ret->off = 0;
672 ret->pos = -1;
673 ret->state = 0;
674 return ret;
677 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
678 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
679 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff, 20)
680 fpos_int* __thiscall basic_streambuf_char_pubseekoff(basic_streambuf_char *this,
681 fpos_int *ret, streamoff off, int way, int mode)
683 TRACE("(%p %lu %d %d)\n", this, off, way, mode);
684 return call_basic_streambuf_char_seekoff(this, ret, off, way, mode);
687 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
688 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
689 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff_old, 20)
690 fpos_int* __thiscall basic_streambuf_char_pubseekoff_old(basic_streambuf_char *this,
691 fpos_int *ret, streamoff off, unsigned int way, unsigned int mode)
693 TRACE("(%p %lu %d %d)\n", this, off, way, mode);
694 return basic_streambuf_char_pubseekoff(this, ret, off, way, mode);
697 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
698 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
699 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekpos, 36)
700 #define call_basic_streambuf_char_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 40, \
701 fpos_int*, (basic_streambuf_char*, fpos_int*, fpos_int, int), (this, ret, pos, mode))
702 fpos_int* __thiscall basic_streambuf_char_seekpos(basic_streambuf_char *this,
703 fpos_int *ret, fpos_int pos, int mode)
705 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
706 ret->off = 0;
707 ret->pos = -1;
708 ret->state = 0;
709 return ret;
712 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
713 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
714 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos, 36)
715 fpos_int* __thiscall basic_streambuf_char_pubseekpos(basic_streambuf_char *this,
716 fpos_int *ret, fpos_int pos, int mode)
718 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
719 return call_basic_streambuf_char_seekpos(this, ret, pos, mode);
722 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
723 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
724 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos_old, 36)
725 fpos_int* __thiscall basic_streambuf_char_pubseekpos_old(basic_streambuf_char *this,
726 fpos_int *ret, fpos_int pos, unsigned int mode)
728 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
729 return basic_streambuf_char_pubseekpos(this, ret, pos, mode);
732 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z */
733 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@PEAD_J@Z */
734 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setbuf, 12)
735 #define call_basic_streambuf_char_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 44, \
736 basic_streambuf_char*, (basic_streambuf_char*, char*, streamsize), (this, buf, count))
737 basic_streambuf_char* __thiscall basic_streambuf_char_setbuf(basic_streambuf_char *this, char *buf, streamsize count)
739 TRACE("(%p %p %lu)\n", this, buf, count);
740 return this;
743 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PADH@Z */
744 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEAD_J@Z */
745 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsetbuf, 12)
746 basic_streambuf_char* __thiscall basic_streambuf_char_pubsetbuf(basic_streambuf_char *this, char *buf, streamsize count)
748 TRACE("(%p %p %lu)\n", this, buf, count);
749 return call_basic_streambuf_char_setbuf(this, buf, count);
752 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
753 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
754 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sync, 4)
755 #define call_basic_streambuf_char_sync(this) CALL_VTBL_FUNC(this, 48, \
756 int, (basic_streambuf_char*), (this))
757 int __thiscall basic_streambuf_char_sync(basic_streambuf_char *this)
759 TRACE("(%p)\n", this);
760 return 0;
763 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
764 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
765 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsync, 4)
766 int __thiscall basic_streambuf_char_pubsync(basic_streambuf_char *this)
768 TRACE("(%p)\n", this);
769 return call_basic_streambuf_char_sync(this);
772 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADH@Z */
773 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z */
774 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetn, 12)
775 streamsize __thiscall basic_streambuf_char_sgetn(basic_streambuf_char *this, char *ptr, streamsize count)
777 TRACE("(%p %p %lu)\n", this, ptr, count);
778 return call_basic_streambuf_char__Xsgetn_s(this, ptr, -1, count);
781 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
782 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ */
783 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_showmanyc, 4)
784 #define call_basic_streambuf_char_showmanyc(this) CALL_VTBL_FUNC(this, 12, \
785 streamsize, (basic_streambuf_char*), (this))
786 streamsize __thiscall basic_streambuf_char_showmanyc(basic_streambuf_char *this)
788 TRACE("(%p)\n", this);
789 return 0;
792 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
793 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JXZ */
794 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_in_avail, 4)
795 streamsize __thiscall basic_streambuf_char_in_avail(basic_streambuf_char *this)
797 streamsize ret;
799 TRACE("(%p)\n", this);
801 ret = basic_streambuf_char__Gnavail(this);
802 return ret ? ret : call_basic_streambuf_char_showmanyc(this);
805 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
806 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
807 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputbackc, 8)
808 int __thiscall basic_streambuf_char_sputbackc(basic_streambuf_char *this, char ch)
810 TRACE("(%p %d)\n", this, ch);
811 if(*this->prpos && *this->prpos>*this->prbuf && (*this->prpos)[-1]==ch) {
812 (*this->prsize)++;
813 (*this->prpos)--;
814 return ch;
817 return call_basic_streambuf_char_pbackfail(this, ch);
820 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
821 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
822 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputc, 8)
823 int __thiscall basic_streambuf_char_sputc(basic_streambuf_char *this, char ch)
825 TRACE("(%p %d)\n", this, ch);
826 return basic_streambuf_char__Pnavail(this) ?
827 (*basic_streambuf_char__Pninc(this) = ch) :
828 call_basic_streambuf_char_overflow(this, ch);
831 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
832 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
833 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sungetc, 4)
834 int __thiscall basic_streambuf_char_sungetc(basic_streambuf_char *this)
836 TRACE("(%p)\n", this);
837 if(*this->prpos && *this->prpos>*this->prbuf) {
838 (*this->prsize)++;
839 (*this->prpos)--;
840 return **this->prpos;
843 return call_basic_streambuf_char_pbackfail(this, EOF);
846 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
847 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
848 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_stossc, 4)
849 void __thiscall basic_streambuf_char_stossc(basic_streambuf_char *this)
851 TRACE("(%p)\n", this);
852 if(basic_streambuf_char__Gnavail(this))
853 basic_streambuf_char__Gninc(this);
854 else
855 call_basic_streambuf_char_uflow(this);
858 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
859 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
860 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sbumpc, 4)
861 int __thiscall basic_streambuf_char_sbumpc(basic_streambuf_char *this)
863 TRACE("(%p)\n", this);
864 return basic_streambuf_char__Gnavail(this) ?
865 *basic_streambuf_char__Gninc(this) : call_basic_streambuf_char_uflow(this);
868 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
869 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
870 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetc, 4)
871 int __thiscall basic_streambuf_char_sgetc(basic_streambuf_char *this)
873 TRACE("(%p)\n", this);
874 return basic_streambuf_char__Gnavail(this) ?
875 *basic_streambuf_char_gptr(this) : call_basic_streambuf_char_underflow(this);
878 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
879 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
880 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_snextc, 4)
881 int __thiscall basic_streambuf_char_snextc(basic_streambuf_char *this)
883 TRACE("(%p)\n", this);
885 if(basic_streambuf_char__Gnavail(this) > 1)
886 return *basic_streambuf_char__Gnpreinc(this);
887 return basic_streambuf_char_sbumpc(this)==EOF ?
888 EOF : basic_streambuf_char_sgetc(this);
891 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z */
892 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z */
893 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsgetn, 12)
894 #define call_basic_streambuf_char_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, \
895 streamsize, (basic_streambuf_char*, char*, streamsize), (this, ptr, count))
896 streamsize __thiscall basic_streambuf_char_xsgetn(basic_streambuf_char *this, char *ptr, streamsize count)
898 TRACE("(%p %p %lu)\n", this, ptr, count);
899 return call_basic_streambuf_char__Xsgetn_s(this, ptr, -1, count);
902 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z */
903 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z */
904 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsputn, 12)
905 #define call_basic_streambuf_char_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 32, \
906 streamsize, (basic_streambuf_char*, const char*, streamsize), (this, ptr, count))
907 streamsize __thiscall basic_streambuf_char_xsputn(basic_streambuf_char *this, const char *ptr, streamsize count)
909 streamsize copied, chunk;
911 TRACE("(%p %p %lu)\n", this, ptr, count);
913 for(copied=0; copied<count;) {
914 chunk = basic_streambuf_char__Pnavail(this);
915 if(chunk > count-copied)
916 chunk = count-copied;
918 if(chunk) {
919 memcpy(*this->pwpos, ptr+copied, chunk);
920 *this->pwpos += chunk;
921 *this->pwsize -= chunk;
922 copied += chunk;
923 }else if(call_basic_streambuf_char_overflow(this, ptr[copied]) != EOF) {
924 copied++;
925 }else {
926 break;
930 return copied;
933 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z */
934 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@Z */
935 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputn, 12)
936 streamsize __thiscall basic_streambuf_char_sputn(basic_streambuf_char *this, const char *ptr, streamsize count)
938 TRACE("(%p %p %lu)\n", this, ptr, count);
939 return call_basic_streambuf_char_xsputn(this, ptr, count);
942 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z */
943 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z */
944 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG00@Z */
945 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z */
946 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setp_next, 16)
947 void __thiscall basic_streambuf_wchar_setp_next(basic_streambuf_wchar *this, wchar_t *first, wchar_t *next, wchar_t *last)
949 TRACE("(%p %p %p %p)\n", this, first, next, last);
951 this->wbuf = first;
952 this->wpos = next;
953 this->wsize = last-next;
956 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W0@Z */
957 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W0@Z */
958 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG0@Z */
959 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG0@Z */
960 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setp, 12)
961 void __thiscall basic_streambuf_wchar_setp(basic_streambuf_wchar *this, wchar_t *first, wchar_t *last)
963 basic_streambuf_wchar_setp_next(this, first, first, last);
966 /* ?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z */
967 /* ?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z */
968 /* ?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG00@Z */
969 /* ?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z */
970 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setg, 16)
971 void __thiscall basic_streambuf_wchar_setg(basic_streambuf_wchar *this, wchar_t *first, wchar_t *next, wchar_t *last)
973 TRACE("(%p %p %p %p)\n", this, first, next, last);
975 this->rbuf = first;
976 this->rpos = next;
977 this->rsize = last-next;
980 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXXZ */
981 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXXZ */
982 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXXZ */
983 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXXZ */
984 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init_empty, 4)
985 void __thiscall basic_streambuf_wchar__Init_empty(basic_streambuf_wchar *this)
987 TRACE("(%p)\n", this);
989 this->prbuf = &this->rbuf;
990 this->pwbuf = &this->wbuf;
991 this->prpos = &this->rpos;
992 this->pwpos = &this->wpos;
993 this->prsize = &this->rsize;
994 this->pwsize = &this->wsize;
996 basic_streambuf_wchar_setp(this, NULL, NULL);
997 basic_streambuf_wchar_setg(this, NULL, NULL, NULL);
1000 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAE@W4_Uninitialized@1@@Z */
1001 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
1002 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_ctor_uninitialized, 8)
1003 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_ctor_uninitialized(basic_streambuf_wchar *this, int uninitialized)
1005 TRACE("(%p %d)\n", this, uninitialized);
1006 this->vtable = &MSVCP_basic_streambuf_wchar_vtable;
1007 mutex_ctor(&this->lock);
1008 return this;
1011 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@W4_Uninitialized@1@@Z */
1012 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
1013 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor_uninitialized, 8)
1014 basic_streambuf_wchar* __thiscall basic_streambuf_short_ctor_uninitialized(basic_streambuf_wchar *this, int uninitialized)
1016 TRACE("(%p %d)\n", this, uninitialized);
1017 basic_streambuf_wchar_ctor_uninitialized(this, uninitialized);
1018 this->vtable = &MSVCP_basic_streambuf_short_vtable;
1019 return this;
1022 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
1023 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
1024 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_ctor, 4)
1025 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_ctor(basic_streambuf_wchar *this)
1027 TRACE("(%p)\n", this);
1029 this->vtable = &MSVCP_basic_streambuf_wchar_vtable;
1030 mutex_ctor(&this->lock);
1031 this->loc = MSVCRT_operator_new(sizeof(locale));
1032 locale_ctor(this->loc);
1033 basic_streambuf_wchar__Init_empty(this);
1035 return this;
1038 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@XZ */
1039 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@XZ */
1040 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor, 4)
1041 basic_streambuf_wchar* __thiscall basic_streambuf_short_ctor(basic_streambuf_wchar *this)
1043 TRACE("(%p)\n", this);
1044 basic_streambuf_wchar_ctor(this);
1045 this->vtable = &MSVCP_basic_streambuf_short_vtable;
1046 return this;
1049 /* ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
1050 /* ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
1051 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UAE@XZ */
1052 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */
1053 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_dtor, 4)
1054 void __thiscall basic_streambuf_wchar_dtor(basic_streambuf_wchar *this)
1056 TRACE("(%p)\n", this);
1058 mutex_dtor(&this->lock);
1059 locale_dtor(this->loc);
1060 MSVCRT_operator_delete(this->loc);
1063 DEFINE_THISCALL_WRAPPER(MSVCP_basic_streambuf_wchar_vector_dtor, 8)
1064 basic_streambuf_wchar* __thiscall MSVCP_basic_streambuf_wchar_vector_dtor(basic_streambuf_wchar *this, unsigned int flags)
1066 TRACE("(%p %x)\n", this, flags);
1067 if(flags & 2) {
1068 /* we have an array, with the number of elements stored before the first object */
1069 int i, *ptr = (int *)this-1;
1071 for(i=*ptr-1; i>=0; i--)
1072 basic_streambuf_wchar_dtor(this+i);
1073 MSVCRT_operator_delete(ptr);
1074 } else {
1075 basic_streambuf_wchar_dtor(this);
1076 if(flags & 1)
1077 MSVCRT_operator_delete(this);
1080 return this;
1083 DEFINE_THISCALL_WRAPPER(MSVCP_basic_streambuf_short_vector_dtor, 8)
1084 basic_streambuf_wchar* __thiscall MSVCP_basic_streambuf_short_vector_dtor(basic_streambuf_wchar *this, unsigned int flags)
1086 TRACE("(%p %x)\n", this, flags);
1087 return MSVCP_basic_streambuf_wchar_vector_dtor(this, flags);
1090 /* ?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEHXZ */
1091 /* ?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ */
1092 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
1093 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
1094 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gnavail, 4)
1095 streamsize __thiscall basic_streambuf_wchar__Gnavail(const basic_streambuf_wchar *this)
1097 TRACE("(%p)\n", this);
1098 return *this->prpos ? *this->prsize : 0;
1101 /* ?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1102 /* ?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1103 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1104 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1105 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gndec, 4)
1106 wchar_t* __thiscall basic_streambuf_wchar__Gndec(basic_streambuf_wchar *this)
1108 TRACE("(%p)\n", this);
1109 (*this->prsize)++;
1110 (*this->prpos)--;
1111 return *this->prpos;
1114 /* ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1115 /* ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1116 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1117 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1118 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gninc, 4)
1119 wchar_t* __thiscall basic_streambuf_wchar__Gninc(basic_streambuf_wchar *this)
1121 TRACE("(%p)\n", this);
1122 (*this->prsize)--;
1123 return (*this->prpos)++;
1126 /* ?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1127 /* ?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1128 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1129 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1130 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gnpreinc, 4)
1131 wchar_t* __thiscall basic_streambuf_wchar__Gnpreinc(basic_streambuf_wchar *this)
1133 TRACE("(%p)\n", this);
1134 (*this->prsize)--;
1135 (*this->prpos)++;
1136 return *this->prpos;
1139 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPAPA_W0PAH001@Z */
1140 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAPEA_W0PEAH001@Z */
1141 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAPAG0PAH001@Z */
1142 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAPEAG0PEAH001@Z */
1143 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init, 28)
1144 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)
1146 TRACE("(%p %p %p %p %p %p %p)\n", this, gf, gn, gc, pf, pn, pc);
1148 this->prbuf = gf;
1149 this->pwbuf = pf;
1150 this->prpos = gn;
1151 this->pwpos = pn;
1152 this->prsize = gc;
1153 this->pwsize = pc;
1156 /* ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1157 /* ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1158 /* ?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1159 /* ?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1160 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Lock, 4)
1161 void __thiscall basic_streambuf_wchar__Lock(basic_streambuf_wchar *this)
1163 TRACE("(%p)\n", this);
1164 mutex_lock(&this->lock);
1167 /* ?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEHXZ */
1168 /* ?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ */
1169 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
1170 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
1171 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Pnavail, 4)
1172 streamsize __thiscall basic_streambuf_wchar__Pnavail(const basic_streambuf_wchar *this)
1174 TRACE("(%p)\n", this);
1175 return *this->pwpos ? *this->pwsize : 0;
1178 /* ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1179 /* ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1180 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1181 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1182 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Pninc, 4)
1183 wchar_t* __thiscall basic_streambuf_wchar__Pninc(basic_streambuf_wchar *this)
1185 TRACE("(%p)\n", this);
1186 (*this->pwsize)--;
1187 return (*this->pwpos)++;
1190 /* ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
1191 /* ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
1192 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
1193 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
1194 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_underflow, 4)
1195 #define call_basic_streambuf_wchar_underflow(this) CALL_VTBL_FUNC(this, 16, \
1196 unsigned short, (basic_streambuf_wchar*), (this))
1197 unsigned short __thiscall basic_streambuf_wchar_underflow(basic_streambuf_wchar *this)
1199 TRACE("(%p)\n", this);
1200 return WEOF;
1203 /* ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
1204 /* ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
1205 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
1206 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
1207 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_uflow, 4)
1208 #define call_basic_streambuf_wchar_uflow(this) CALL_VTBL_FUNC(this, 20, \
1209 unsigned short, (basic_streambuf_wchar*), (this))
1210 unsigned short __thiscall basic_streambuf_wchar_uflow(basic_streambuf_wchar *this)
1212 int ret;
1214 TRACE("(%p)\n", this);
1216 if(call_basic_streambuf_wchar_underflow(this)==WEOF)
1217 return WEOF;
1219 ret = **this->prpos;
1220 (*this->prsize)--;
1221 (*this->prpos)++;
1222 return ret;
1225 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WIH@Z */
1226 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_K_J@Z */
1227 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGIH@Z */
1228 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_K_J@Z */
1229 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Xsgetn_s, 16)
1230 #define call_basic_streambuf_wchar__Xsgetn_s(this, ptr, size, count) CALL_VTBL_FUNC(this, 28, \
1231 streamsize, (basic_streambuf_wchar*, wchar_t*, MSVCP_size_t, streamsize), (this, ptr, size, count))
1232 streamsize __thiscall basic_streambuf_wchar__Xsgetn_s(basic_streambuf_wchar *this, wchar_t *ptr, MSVCP_size_t size, streamsize count)
1234 streamsize copied, chunk;
1236 TRACE("(%p %p %lu %lu)\n", this, ptr, size, count);
1238 for(copied=0; copied<count && size;) {
1239 chunk = basic_streambuf_wchar__Gnavail(this);
1240 if(chunk > count-copied)
1241 chunk = count-copied;
1243 if(chunk) {
1244 memcpy_s(ptr+copied, size, *this->prpos, chunk);
1245 *this->prpos += chunk;
1246 *this->prsize -= chunk;
1247 copied += chunk;
1248 size -= chunk;
1249 }else if((ptr[copied] = call_basic_streambuf_wchar_uflow(this)) != WEOF) {
1250 copied++;
1251 size--;
1252 }else {
1253 break;
1257 return copied;
1260 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPA_WIH@Z */
1261 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_K_J@Z */
1262 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGIH@Z */
1263 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_K_J@Z */
1264 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Sgetn_s, 16)
1265 streamsize __thiscall basic_streambuf_wchar__Sgetn_s(basic_streambuf_wchar *this, wchar_t *ptr, MSVCP_size_t size, streamsize count)
1267 TRACE("(%p %p %lu %lu)\n", this, ptr, size, count);
1268 return call_basic_streambuf_wchar__Xsgetn_s(this, ptr, size, count);
1271 /* ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1272 /* ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1273 /* ?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1274 /* ?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1275 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Unlock, 4)
1276 void __thiscall basic_streambuf_wchar__Unlock(basic_streambuf_wchar *this)
1278 TRACE("(%p)\n", this);
1279 mutex_unlock(&this->lock);
1282 /* ?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1283 /* ?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1284 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1285 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1286 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_eback, 4)
1287 wchar_t* __thiscall basic_streambuf_wchar_eback(const basic_streambuf_wchar *this)
1289 TRACE("(%p)\n", this);
1290 return *this->prbuf;
1293 /* ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1294 /* ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1295 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1296 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1297 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gptr, 4)
1298 wchar_t* __thiscall basic_streambuf_wchar_gptr(const basic_streambuf_wchar *this)
1300 TRACE("(%p)\n", this);
1301 return *this->prpos;
1304 /* ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1305 /* ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1306 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1307 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1308 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_egptr, 4)
1309 wchar_t* __thiscall basic_streambuf_wchar_egptr(const basic_streambuf_wchar *this)
1311 TRACE("(%p)\n", this);
1312 return *this->prpos+*this->prsize;
1315 /* ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1316 /* ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1317 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1318 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1319 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_epptr, 4)
1320 wchar_t* __thiscall basic_streambuf_wchar_epptr(const basic_streambuf_wchar *this)
1322 TRACE("(%p)\n", this);
1323 return *this->pwpos+*this->pwsize;
1326 /* ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z */
1327 /* ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z */
1328 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
1329 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
1330 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gbump, 8)
1331 void __thiscall basic_streambuf_wchar_gbump(basic_streambuf_wchar *this, int off)
1333 TRACE("(%p %d)\n", this, off);
1334 *this->prpos += off;
1335 *this->prsize -= off;
1338 /* ?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QBE?AVlocale@2@XZ */
1339 /* ?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEBA?AVlocale@2@XZ */
1340 /* ?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QBE?AVlocale@2@XZ */
1341 /* ?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEBA?AVlocale@2@XZ */
1342 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_getloc, 8)
1343 locale* __thiscall basic_streambuf_wchar_getloc(const basic_streambuf_wchar *this, locale *ret)
1345 TRACE("(%p)\n", this);
1346 return locale_copy_ctor(ret, this->loc);
1349 /* ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z */
1350 /* ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z */
1351 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEXABVlocale@2@@Z */
1352 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z */
1353 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_imbue, 8)
1354 #define call_basic_streambuf_wchar_imbue(this, loc) CALL_VTBL_FUNC(this, 52, \
1355 void, (basic_streambuf_wchar*, const locale*), (this, loc))
1356 void __thiscall basic_streambuf_wchar_imbue(basic_streambuf_wchar *this, const locale *loc)
1358 TRACE("(%p %p)\n", this, loc);
1361 /* ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
1362 /* ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
1363 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
1364 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
1365 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_overflow, 8)
1366 #define call_basic_streambuf_wchar_overflow(this, ch) CALL_VTBL_FUNC(this, 4, \
1367 unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
1368 unsigned short __thiscall basic_streambuf_wchar_overflow(basic_streambuf_wchar *this, unsigned short ch)
1370 TRACE("(%p %d)\n", this, ch);
1371 return WEOF;
1374 /* ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
1375 /* ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
1376 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
1377 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
1378 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbackfail, 8)
1379 #define call_basic_streambuf_wchar_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, \
1380 unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
1381 unsigned short __thiscall basic_streambuf_wchar_pbackfail(basic_streambuf_wchar *this, unsigned short ch)
1383 TRACE("(%p %d)\n", this, ch);
1384 return WEOF;
1387 /* ?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1388 /* ?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1389 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1390 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1391 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbase, 4)
1392 wchar_t* __thiscall basic_streambuf_wchar_pbase(const basic_streambuf_wchar *this)
1394 TRACE("(%p)\n", this);
1395 return *this->pwbuf;
1398 /* ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z */
1399 /* ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z */
1400 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
1401 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
1402 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbump, 8)
1403 void __thiscall basic_streambuf_wchar_pbump(basic_streambuf_wchar *this, int off)
1405 TRACE("(%p %d)\n", this, off);
1406 *this->pwpos += off;
1407 *this->pwsize -= off;
1410 /* ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1411 /* ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1412 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1413 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1414 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pptr, 4)
1415 wchar_t* __thiscall basic_streambuf_wchar_pptr(const basic_streambuf_wchar *this)
1417 TRACE("(%p)\n", this);
1418 return *this->pwpos;
1421 /* ?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
1422 /* ?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
1423 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
1424 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
1425 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubimbue, 12)
1426 locale* __thiscall basic_streambuf_wchar_pubimbue(basic_streambuf_wchar *this, locale *ret, const locale *loc)
1428 TRACE("(%p %p)\n", this, loc);
1429 memcpy(ret, this->loc, sizeof(locale));
1430 call_basic_streambuf_wchar_imbue(this, loc);
1431 locale_copy_ctor(this->loc, loc);
1432 return ret;
1435 /* ?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
1436 /* ?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
1437 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
1438 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
1439 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekoff, 20)
1440 #define call_basic_streambuf_wchar_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 36, \
1441 fpos_int*, (basic_streambuf_wchar*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
1442 fpos_int* __thiscall basic_streambuf_wchar_seekoff(basic_streambuf_wchar *this,
1443 fpos_int *ret, streamoff off, int way, int mode)
1445 TRACE("(%p %lu %d %d)\n", this, off, way, mode);
1446 ret->off = 0;
1447 ret->pos = -1;
1448 ret->state = 0;
1449 return ret;
1452 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
1453 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
1454 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
1455 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
1456 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff, 20)
1457 fpos_int* __thiscall basic_streambuf_wchar_pubseekoff(basic_streambuf_wchar *this,
1458 fpos_int *ret, streamoff off, int way, int mode)
1460 TRACE("(%p %lu %d %d)\n", this, off, way, mode);
1461 return call_basic_streambuf_wchar_seekoff(this, ret, off, way, mode);
1464 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
1465 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
1466 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
1467 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
1468 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff_old, 20)
1469 fpos_int* __thiscall basic_streambuf_wchar_pubseekoff_old(basic_streambuf_wchar *this,
1470 fpos_int *ret, streamoff off, unsigned int way, unsigned int mode)
1472 TRACE("(%p %lu %d %d)\n", this, off, way, mode);
1473 return basic_streambuf_wchar_pubseekoff(this, ret, off, way, mode);
1476 /* ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
1477 /* ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
1478 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
1479 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
1480 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekpos, 36)
1481 #define call_basic_streambuf_wchar_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 40, \
1482 fpos_int*, (basic_streambuf_wchar*, fpos_int*, fpos_int, int), (this, ret, pos, mode))
1483 fpos_int* __thiscall basic_streambuf_wchar_seekpos(basic_streambuf_wchar *this,
1484 fpos_int *ret, fpos_int pos, int mode)
1486 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
1487 ret->off = 0;
1488 ret->pos = -1;
1489 ret->state = 0;
1490 return ret;
1493 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
1494 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
1495 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
1496 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
1497 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekpos, 36)
1498 fpos_int* __thiscall basic_streambuf_wchar_pubseekpos(basic_streambuf_wchar *this,
1499 fpos_int *ret, fpos_int pos, int mode)
1501 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
1502 return call_basic_streambuf_wchar_seekpos(this, ret, pos, mode);
1505 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
1506 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
1507 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
1508 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
1509 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekpos_old, 36)
1510 fpos_int* __thiscall basic_streambuf_wchar_pubseekpos_old(basic_streambuf_wchar *this,
1511 fpos_int *ret, fpos_int pos, unsigned int mode)
1513 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
1514 return basic_streambuf_wchar_pubseekpos(this, ret, pos, mode);
1517 /* ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEPAV12@PA_WH@Z */
1518 /* ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV12@PEA_W_J@Z */
1519 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEPAV12@PAGH@Z */
1520 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAPEAV12@PEAG_J@Z */
1521 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setbuf, 12)
1522 #define call_basic_streambuf_wchar_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 44, \
1523 basic_streambuf_wchar*, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, buf, count))
1524 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_setbuf(basic_streambuf_wchar *this, wchar_t *buf, streamsize count)
1526 TRACE("(%p %p %lu)\n", this, buf, count);
1527 return this;
1530 /* ?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PA_WH@Z */
1531 /* ?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEA_W_J@Z */
1532 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PAGH@Z */
1533 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEAG_J@Z */
1534 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsetbuf, 12)
1535 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_pubsetbuf(basic_streambuf_wchar *this, wchar_t *buf, streamsize count)
1537 TRACE("(%p %p %lu)\n", this, buf, count);
1538 return call_basic_streambuf_wchar_setbuf(this, buf, count);
1541 /* ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
1542 /* ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ */
1543 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
1544 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAHXZ */
1545 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sync, 4)
1546 #define call_basic_streambuf_wchar_sync(this) CALL_VTBL_FUNC(this, 48, \
1547 int, (basic_streambuf_wchar*), (this))
1548 int __thiscall basic_streambuf_wchar_sync(basic_streambuf_wchar *this)
1550 TRACE("(%p)\n", this);
1551 return 0;
1554 /* ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
1555 /* ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAHXZ */
1556 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
1557 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHXZ */
1558 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsync, 4)
1559 int __thiscall basic_streambuf_wchar_pubsync(basic_streambuf_wchar *this)
1561 TRACE("(%p)\n", this);
1562 return call_basic_streambuf_wchar_sync(this);
1565 /* ?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPA_WH@Z */
1566 /* ?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z */
1567 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGH@Z */
1568 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z */
1569 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetn, 12)
1570 streamsize __thiscall basic_streambuf_wchar_sgetn(basic_streambuf_wchar *this, wchar_t *ptr, streamsize count)
1572 TRACE("(%p %p %lu)\n", this, ptr, count);
1573 return call_basic_streambuf_wchar__Xsgetn_s(this, ptr, -1, count);
1576 /* ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
1577 /* ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JXZ */
1578 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
1579 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JXZ */
1580 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_showmanyc, 4)
1581 #define call_basic_streambuf_wchar_showmanyc(this) CALL_VTBL_FUNC(this, 12, \
1582 streamsize, (basic_streambuf_wchar*), (this))
1583 streamsize __thiscall basic_streambuf_wchar_showmanyc(basic_streambuf_wchar *this)
1585 TRACE("(%p)\n", this);
1586 return 0;
1589 /* ?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
1590 /* ?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JXZ */
1591 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
1592 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JXZ */
1593 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_in_avail, 4)
1594 streamsize __thiscall basic_streambuf_wchar_in_avail(basic_streambuf_wchar *this)
1596 streamsize ret;
1598 TRACE("(%p)\n", this);
1600 ret = basic_streambuf_wchar__Gnavail(this);
1601 return ret ? ret : call_basic_streambuf_wchar_showmanyc(this);
1604 /* ?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z */
1605 /* ?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z */
1606 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
1607 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z */
1608 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputbackc, 8)
1609 unsigned short __thiscall basic_streambuf_wchar_sputbackc(basic_streambuf_wchar *this, wchar_t ch)
1611 TRACE("(%p %d)\n", this, ch);
1612 if(*this->prpos && *this->prpos>*this->prbuf && (*this->prpos)[-1]==ch) {
1613 (*this->prsize)++;
1614 (*this->prpos)--;
1615 return ch;
1618 return call_basic_streambuf_wchar_pbackfail(this, ch);
1621 /* ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z */
1622 /* ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z */
1623 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
1624 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHG@Z */
1625 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputc, 8)
1626 unsigned short __thiscall basic_streambuf_wchar_sputc(basic_streambuf_wchar *this, wchar_t ch)
1628 TRACE("(%p %d)\n", this, ch);
1629 return basic_streambuf_wchar__Pnavail(this) ?
1630 (*basic_streambuf_wchar__Pninc(this) = ch) :
1631 call_basic_streambuf_wchar_overflow(this, ch);
1634 /* ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
1635 /* ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
1636 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
1637 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
1638 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sungetc, 4)
1639 unsigned short __thiscall basic_streambuf_wchar_sungetc(basic_streambuf_wchar *this)
1641 TRACE("(%p)\n", this);
1642 if(*this->prpos && *this->prpos>*this->prbuf) {
1643 (*this->prsize)++;
1644 (*this->prpos)--;
1645 return **this->prpos;
1648 return call_basic_streambuf_wchar_pbackfail(this, WEOF);
1651 /* ?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1652 /* ?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1653 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1654 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1655 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_stossc, 4)
1656 void __thiscall basic_streambuf_wchar_stossc(basic_streambuf_wchar *this)
1658 TRACE("(%p)\n", this);
1659 if(basic_streambuf_wchar__Gnavail(this))
1660 basic_streambuf_wchar__Gninc(this);
1661 else
1662 call_basic_streambuf_wchar_uflow(this);
1665 /* ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
1666 /* ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
1667 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
1668 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
1669 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sbumpc, 4)
1670 unsigned short __thiscall basic_streambuf_wchar_sbumpc(basic_streambuf_wchar *this)
1672 TRACE("(%p)\n", this);
1673 return basic_streambuf_wchar__Gnavail(this) ?
1674 *basic_streambuf_wchar__Gninc(this) : call_basic_streambuf_wchar_uflow(this);
1677 /* ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
1678 /* ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
1679 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
1680 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
1681 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetc, 4)
1682 unsigned short __thiscall basic_streambuf_wchar_sgetc(basic_streambuf_wchar *this)
1684 TRACE("(%p)\n", this);
1685 return basic_streambuf_wchar__Gnavail(this) ?
1686 *basic_streambuf_wchar_gptr(this) : call_basic_streambuf_wchar_underflow(this);
1689 /* ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
1690 /* ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
1691 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
1692 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
1693 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_snextc, 4)
1694 unsigned short __thiscall basic_streambuf_wchar_snextc(basic_streambuf_wchar *this)
1696 TRACE("(%p)\n", this);
1698 if(basic_streambuf_wchar__Gnavail(this) > 1)
1699 return *basic_streambuf_wchar__Gnpreinc(this);
1700 return basic_streambuf_wchar_sbumpc(this)==WEOF ?
1701 WEOF : basic_streambuf_wchar_sgetc(this);
1704 /* ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WH@Z */
1705 /* ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_J@Z */
1706 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGH@Z */
1707 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_J@Z */
1708 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsgetn, 12)
1709 #define call_basic_streambuf_wchar_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, \
1710 streamsize, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, ptr, count))
1711 streamsize __thiscall basic_streambuf_wchar_xsgetn(basic_streambuf_wchar *this, wchar_t *ptr, streamsize count)
1713 TRACE("(%p %p %lu)\n", this, ptr, count);
1714 return call_basic_streambuf_wchar__Xsgetn_s(this, ptr, -1, count);
1717 /* ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPB_WH@Z */
1718 /* ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEB_W_J@Z */
1719 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPBGH@Z */
1720 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEBG_J@Z */
1721 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsputn, 12)
1722 #define call_basic_streambuf_wchar_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 32, \
1723 streamsize, (basic_streambuf_wchar*, const wchar_t*, streamsize), (this, ptr, count))
1724 streamsize __thiscall basic_streambuf_wchar_xsputn(basic_streambuf_wchar *this, const wchar_t *ptr, streamsize count)
1726 streamsize copied, chunk;
1728 TRACE("(%p %p %lu)\n", this, ptr, count);
1730 for(copied=0; copied<count;) {
1731 chunk = basic_streambuf_wchar__Pnavail(this);
1732 if(chunk > count-copied)
1733 chunk = count-copied;
1735 if(chunk) {
1736 memcpy(*this->pwpos, ptr+copied, chunk);
1737 *this->pwpos += chunk;
1738 *this->pwsize -= chunk;
1739 copied += chunk;
1740 }else if(call_basic_streambuf_wchar_overflow(this, ptr[copied]) != WEOF) {
1741 copied++;
1742 }else {
1743 break;
1747 return copied;
1750 /* ?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPB_WH@Z */
1751 /* ?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEB_W_J@Z */
1752 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPBGH@Z */
1753 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEBG_J@Z */
1754 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputn, 12)
1755 streamsize __thiscall basic_streambuf_wchar_sputn(basic_streambuf_wchar *this, const wchar_t *ptr, streamsize count)
1757 TRACE("(%p %p %lu)\n", this, ptr, count);
1758 return call_basic_streambuf_wchar_xsputn(this, ptr, count);
1761 /* ??0ios_base@std@@IAE@XZ */
1762 /* ??0ios_base@std@@IEAA@XZ */
1763 DEFINE_THISCALL_WRAPPER(ios_base_ctor, 4)
1764 ios_base* __thiscall ios_base_ctor(ios_base *this)
1766 TRACE("(%p)\n", this);
1767 this->vtable = &MSVCP_ios_base_vtable;
1768 return this;
1771 /* ??0ios_base@std@@QAE@ABV01@@Z */
1772 /* ??0ios_base@std@@QEAA@AEBV01@@Z */
1773 DEFINE_THISCALL_WRAPPER(ios_base_copy_ctor, 8)
1774 ios_base* __thiscall ios_base_copy_ctor(ios_base *this, const ios_base *copy)
1776 TRACE("(%p %p)\n", this, copy);
1777 *this = *copy;
1778 this->vtable = &MSVCP_ios_base_vtable;
1779 return this;
1782 /* ?_Callfns@ios_base@std@@AAEXW4event@12@@Z */
1783 /* ?_Callfns@ios_base@std@@AEAAXW4event@12@@Z */
1784 DEFINE_THISCALL_WRAPPER(ios_base_Callfns, 8)
1785 void __thiscall ios_base_Callfns(ios_base *this, IOS_BASE_event event)
1787 IOS_BASE_fnarray *cur;
1789 TRACE("(%p %x)\n", this, event);
1791 for(cur=this->calls; cur; cur=cur->next)
1792 cur->event_handler(event, this, cur->index);
1795 /* ?_Tidy@ios_base@std@@AAAXXZ */
1796 /* ?_Tidy@ios_base@std@@AEAAXXZ */
1797 void CDECL ios_base_Tidy(ios_base *this)
1799 IOS_BASE_iosarray *arr_cur, *arr_next;
1800 IOS_BASE_fnarray *event_cur, *event_next;
1802 TRACE("(%p)\n", this);
1804 ios_base_Callfns(this, EVENT_erase_event);
1806 for(arr_cur=this->arr; arr_cur; arr_cur=arr_next) {
1807 arr_next = arr_cur->next;
1808 MSVCRT_operator_delete(arr_cur);
1810 this->arr = NULL;
1812 for(event_cur=this->calls; event_cur; event_cur=event_next) {
1813 event_next = event_cur->next;
1814 MSVCRT_operator_delete(event_cur);
1816 this->calls = NULL;
1819 /* ?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z */
1820 /* ?_Ios_base_dtor@ios_base@std@@CAXPEAV12@@Z */
1821 void CDECL ios_base_Ios_base_dtor(ios_base *obj)
1823 TRACE("(%p)\n", obj);
1824 if(obj->loc) {
1825 locale_dtor(obj->loc);
1826 MSVCRT_operator_delete(obj->loc);
1828 ios_base_Tidy(obj);
1831 /* ??1ios_base@std@@UAE@XZ */
1832 /* ??1ios_base@std@@UEAA@XZ */
1833 DEFINE_THISCALL_WRAPPER(ios_base_dtor, 4)
1834 void __thiscall ios_base_dtor(ios_base *this)
1836 ios_base_Ios_base_dtor(this);
1839 DEFINE_THISCALL_WRAPPER(MSVCP_ios_base_vector_dtor, 8)
1840 ios_base* __thiscall MSVCP_ios_base_vector_dtor(ios_base *this, unsigned int flags)
1842 TRACE("(%p %x)\n", this, flags);
1843 if(flags & 2) {
1844 /* we have an array, with the number of elements stored before the first object */
1845 int i, *ptr = (int *)this-1;
1847 for(i=*ptr-1; i>=0; i--)
1848 ios_base_dtor(this+i);
1849 MSVCRT_operator_delete(ptr);
1850 } else {
1851 ios_base_dtor(this);
1852 if(flags & 1)
1853 MSVCRT_operator_delete(this);
1856 return this;
1859 DEFINE_THISCALL_WRAPPER(MSVCP_iosb_vector_dtor, 8)
1860 void* __thiscall MSVCP_iosb_vector_dtor(void *this, unsigned int flags)
1862 TRACE("(%p %x)\n", this, flags);
1863 if(flags & 2) {
1864 int *ptr = (int *)this-1;
1865 MSVCRT_operator_delete(ptr);
1866 } else {
1867 if(flags & 1)
1868 MSVCRT_operator_delete(this);
1871 return this;
1874 /* ?_Findarr@ios_base@std@@AAEAAU_Iosarray@12@H@Z */
1875 /* ?_Findarr@ios_base@std@@AEAAAEAU_Iosarray@12@H@Z */
1876 DEFINE_THISCALL_WRAPPER(ios_base_Findarr, 8)
1877 IOS_BASE_iosarray* __thiscall ios_base_Findarr(ios_base *this, int index)
1879 IOS_BASE_iosarray *p;
1881 TRACE("(%p %d)\n", this, index);
1883 for(p=this->arr; p; p=p->next) {
1884 if(p->index == index)
1885 return p;
1888 for(p=this->arr; p; p=p->next) {
1889 if(!p->long_val && !p->ptr_val) {
1890 p->index = index;
1891 return p;
1895 p = MSVCRT_operator_new(sizeof(IOS_BASE_iosarray));
1896 p->next = this->arr;
1897 p->index = index;
1898 p->long_val = 0;
1899 p->ptr_val = NULL;
1900 this->arr = p;
1901 return p;
1904 /* ?iword@ios_base@std@@QAEAAJH@Z */
1905 /* ?iword@ios_base@std@@QEAAAEAJH@Z */
1906 DEFINE_THISCALL_WRAPPER(ios_base_iword, 8)
1907 LONG* __thiscall ios_base_iword(ios_base *this, int index)
1909 TRACE("(%p %d)\n", this, index);
1910 return &ios_base_Findarr(this, index)->long_val;
1913 /* ?pword@ios_base@std@@QAEAAPAXH@Z */
1914 /* ?pword@ios_base@std@@QEAAAEAPEAXH@Z */
1915 DEFINE_THISCALL_WRAPPER(ios_base_pword, 8)
1916 void** __thiscall ios_base_pword(ios_base *this, int index)
1918 TRACE("(%p %d)\n", this, index);
1919 return &ios_base_Findarr(this, index)->ptr_val;
1922 /* ?register_callback@ios_base@std@@QAEXP6AXW4event@12@AAV12@H@ZH@Z */
1923 /* ?register_callback@ios_base@std@@QEAAXP6AXW4event@12@AEAV12@H@ZH@Z */
1924 DEFINE_THISCALL_WRAPPER(ios_base_register_callback, 12)
1925 void __thiscall ios_base_register_callback(ios_base *this, IOS_BASE_event_callback callback, int index)
1927 IOS_BASE_fnarray *event;
1929 TRACE("(%p %p %d)\n", this, callback, index);
1931 event = MSVCRT_operator_new(sizeof(IOS_BASE_fnarray));
1932 event->next = this->calls;
1933 event->index = index;
1934 event->event_handler = callback;
1935 this->calls = event;
1938 /* ?clear@ios_base@std@@QAEXH_N@Z */
1939 /* ?clear@ios_base@std@@QEAAXH_N@Z */
1940 DEFINE_THISCALL_WRAPPER(ios_base_clear_reraise, 12)
1941 void __thiscall ios_base_clear_reraise(ios_base *this, IOSB_iostate state, MSVCP_bool reraise)
1943 TRACE("(%p %x %x)\n", this, state, reraise);
1945 this->state = state & IOSTATE_mask;
1946 if(!(this->state & this->except))
1947 return;
1949 if(reraise)
1950 throw_exception(EXCEPTION_RERAISE, NULL);
1951 else if(this->state & this->except & IOSTATE_eofbit)
1952 throw_exception(EXCEPTION_FAILURE, "eofbit is set");
1953 else if(this->state & this->except & IOSTATE_failbit)
1954 throw_exception(EXCEPTION_FAILURE, "failbit is set");
1955 else if(this->state & this->except & IOSTATE_badbit)
1956 throw_exception(EXCEPTION_FAILURE, "badbit is set");
1957 else if(this->state & this->except & IOSTATE__Hardfail)
1958 throw_exception(EXCEPTION_FAILURE, "_Hardfail is set");
1961 /* ?clear@ios_base@std@@QAEXH@Z */
1962 /* ?clear@ios_base@std@@QEAAXH@Z */
1963 DEFINE_THISCALL_WRAPPER(ios_base_clear, 8)
1964 void __thiscall ios_base_clear(ios_base *this, IOSB_iostate state)
1966 ios_base_clear_reraise(this, state, FALSE);
1969 /* ?clear@ios_base@std@@QAEXI@Z */
1970 /* ?clear@ios_base@std@@QEAAXI@Z */
1971 DEFINE_THISCALL_WRAPPER(ios_base_clear_unsigned, 8)
1972 void __thiscall ios_base_clear_unsigned(ios_base *this, unsigned int state)
1974 ios_base_clear_reraise(this, (IOSB_iostate)state, FALSE);
1977 /* ?exceptions@ios_base@std@@QAEXH@Z */
1978 /* ?exceptions@ios_base@std@@QEAAXH@Z */
1979 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_set, 8)
1980 void __thiscall ios_base_exceptions_set(ios_base *this, IOSB_iostate state)
1982 TRACE("(%p %x)\n", this, state);
1983 this->except = state & IOSTATE_mask;
1984 ios_base_clear(this, this->state);
1987 /* ?exceptions@ios_base@std@@QAEXI@Z */
1988 /* ?exceptions@ios_base@std@@QEAAXI@Z */
1989 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_set_unsigned, 8)
1990 void __thiscall ios_base_exceptions_set_unsigned(ios_base *this, unsigned int state)
1992 TRACE("(%p %x)\n", this, state);
1993 ios_base_exceptions_set(this, state);
1996 /* ?exceptions@ios_base@std@@QBEHXZ */
1997 /* ?exceptions@ios_base@std@@QEBAHXZ */
1998 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_get, 4)
1999 IOSB_iostate __thiscall ios_base_exceptions_get(ios_base *this)
2001 TRACE("(%p)\n", this);
2002 return this->except;
2005 /* ?copyfmt@ios_base@std@@QAEAAV12@ABV12@@Z */
2006 /* ?copyfmt@ios_base@std@@QEAAAEAV12@AEBV12@@Z */
2007 DEFINE_THISCALL_WRAPPER(ios_base_copyfmt, 8)
2008 ios_base* __thiscall ios_base_copyfmt(ios_base *this, const ios_base *rhs)
2010 TRACE("(%p %p)\n", this, rhs);
2012 if(this != rhs) {
2013 IOS_BASE_iosarray *arr_cur;
2014 IOS_BASE_fnarray *event_cur;
2016 ios_base_Tidy(this);
2018 for(arr_cur=rhs->arr; arr_cur; arr_cur=arr_cur->next) {
2019 if(arr_cur->long_val)
2020 *ios_base_iword(this, arr_cur->index) = arr_cur->long_val;
2021 if(arr_cur->ptr_val)
2022 *ios_base_pword(this, arr_cur->index) = arr_cur->ptr_val;
2024 this->stdstr = rhs->stdstr;
2025 this->fmtfl = rhs->fmtfl;
2026 this->prec = rhs->prec;
2027 this->wide = rhs->wide;
2028 locale_operator_assign(this->loc, rhs->loc);
2030 for(event_cur=rhs->calls; event_cur; event_cur=event_cur->next)
2031 ios_base_register_callback(this, event_cur->event_handler, event_cur->index);
2033 ios_base_Callfns(this, EVENT_copyfmt_event);
2034 ios_base_exceptions_set(this, rhs->except);
2037 return this;
2040 /* ??4ios_base@std@@QAEAAV01@ABV01@@Z */
2041 /* ??4ios_base@std@@QEAAAEAV01@AEBV01@@Z */
2042 DEFINE_THISCALL_WRAPPER(ios_base_assign, 8)
2043 ios_base* __thiscall ios_base_assign(ios_base *this, const ios_base *right)
2045 TRACE("(%p %p)\n", this, right);
2047 if(this != right) {
2048 this->state = right->state;
2049 ios_base_copyfmt(this, right);
2052 return this;
2055 /* ?fail@ios_base@std@@QBE_NXZ */
2056 /* ?fail@ios_base@std@@QEBA_NXZ */
2057 DEFINE_THISCALL_WRAPPER(ios_base_fail, 4)
2058 MSVCP_bool __thiscall ios_base_fail(const ios_base *this)
2060 TRACE("(%p)\n", this);
2061 return (this->state & (IOSTATE_failbit|IOSTATE_badbit)) != 0;
2064 /* ??7ios_base@std@@QBE_NXZ */
2065 /* ??7ios_base@std@@QEBA_NXZ */
2066 DEFINE_THISCALL_WRAPPER(ios_base_op_succ, 4)
2067 MSVCP_bool __thiscall ios_base_op_succ(const ios_base *this)
2069 TRACE("(%p)\n", this);
2070 return ios_base_fail(this);
2073 /* ??Bios_base@std@@QBEPAXXZ */
2074 /* ??Bios_base@std@@QEBAPEAXXZ */
2075 DEFINE_THISCALL_WRAPPER(ios_base_op_fail, 4)
2076 void* __thiscall ios_base_op_fail(const ios_base *this)
2078 TRACE("(%p)\n", this);
2079 return ios_base_fail(this) ? NULL : (void*)this;
2082 /* ?_Addstd@ios_base@std@@SAXPAV12@@Z */
2083 /* ?_Addstd@ios_base@std@@SAXPEAV12@@Z */
2084 void CDECL ios_base_Addstd(ios_base *add)
2086 FIXME("(%p) stub\n", add);
2089 /* ?_Index_func@ios_base@std@@CAAAHXZ */
2090 /* ?_Index_func@ios_base@std@@CAAEAHXZ */
2091 int* CDECL ios_base_Index_func(void)
2093 TRACE("\n");
2094 return &ios_base_Index;
2097 /* ?_Init@ios_base@std@@IAEXXZ */
2098 /* ?_Init@ios_base@std@@IEAAXXZ */
2099 DEFINE_THISCALL_WRAPPER(ios_base_Init, 4)
2100 void __thiscall ios_base_Init(ios_base *this)
2102 TRACE("(%p)\n", this);
2104 this->stdstr = 0;
2105 this->state = this->except = IOSTATE_goodbit;
2106 this->fmtfl = FMTFLAG_skipws | FMTFLAG_dec;
2107 this->prec = 6;
2108 this->wide = ' ';
2109 this->arr = NULL;
2110 this->calls = NULL;
2111 this->loc = MSVCRT_operator_new(sizeof(locale));
2112 locale_ctor(this->loc);
2115 /* ?_Sync_func@ios_base@std@@CAAA_NXZ */
2116 /* ?_Sync_func@ios_base@std@@CAAEA_NXZ */
2117 MSVCP_bool* CDECL ios_base_Sync_func(void)
2119 TRACE("\n");
2120 return &ios_base_Sync;
2123 /* ?bad@ios_base@std@@QBE_NXZ */
2124 /* ?bad@ios_base@std@@QEBA_NXZ */
2125 DEFINE_THISCALL_WRAPPER(ios_base_bad, 4)
2126 MSVCP_bool __thiscall ios_base_bad(const ios_base *this)
2128 TRACE("(%p)\n", this);
2129 return (this->state & IOSTATE_badbit) != 0;
2132 /* ?eof@ios_base@std@@QBE_NXZ */
2133 /* ?eof@ios_base@std@@QEBA_NXZ */
2134 DEFINE_THISCALL_WRAPPER(ios_base_eof, 4)
2135 MSVCP_bool __thiscall ios_base_eof(const ios_base *this)
2137 TRACE("(%p)\n", this);
2138 return (this->state & IOSTATE_eofbit) != 0;
2141 /* ?flags@ios_base@std@@QAEHH@Z */
2142 /* ?flags@ios_base@std@@QEAAHH@Z */
2143 DEFINE_THISCALL_WRAPPER(ios_base_flags_set, 8)
2144 IOSB_fmtflags __thiscall ios_base_flags_set(ios_base *this, IOSB_fmtflags flags)
2146 IOSB_fmtflags ret = this->fmtfl;
2148 TRACE("(%p %x)\n", this, flags);
2150 this->fmtfl = flags & FMTFLAG_mask;
2151 return ret;
2154 /* ?flags@ios_base@std@@QBEHXZ */
2155 /* ?flags@ios_base@std@@QEBAHXZ */
2156 DEFINE_THISCALL_WRAPPER(ios_base_flags_get, 4)
2157 IOSB_fmtflags __thiscall ios_base_flags_get(const ios_base *this)
2159 TRACE("(%p)\n", this);
2160 return this->fmtfl;
2163 /* ?getloc@ios_base@std@@QBE?AVlocale@2@XZ */
2164 /* ?getloc@ios_base@std@@QEBA?AVlocale@2@XZ */
2165 DEFINE_THISCALL_WRAPPER(ios_base_getloc, 8)
2166 locale* __thiscall ios_base_getloc(const ios_base *this, locale *ret)
2168 TRACE("(%p)\n", this);
2169 return locale_copy_ctor(ret, this->loc);
2172 /* ?good@ios_base@std@@QBE_NXZ */
2173 /* ?good@ios_base@std@@QEBA_NXZ */
2174 DEFINE_THISCALL_WRAPPER(ios_base_good, 4)
2175 MSVCP_bool __thiscall ios_base_good(const ios_base *this)
2177 TRACE("(%p)\n", this);
2178 return this->state == IOSTATE_goodbit;
2181 /* ?imbue@ios_base@std@@QAE?AVlocale@2@ABV32@@Z */
2182 /* ?imbue@ios_base@std@@QEAA?AVlocale@2@AEBV32@@Z */
2183 DEFINE_THISCALL_WRAPPER(ios_base_imbue, 12)
2184 locale* __thiscall ios_base_imbue(ios_base *this, locale *ret, const locale *loc)
2186 TRACE("(%p %p)\n", this, loc);
2187 *ret = *this->loc;
2188 locale_copy_ctor(this->loc, loc);
2189 return ret;
2192 /* ?precision@ios_base@std@@QAEHH@Z */
2193 /* ?precision@ios_base@std@@QEAA_J_J@Z */
2194 DEFINE_THISCALL_WRAPPER(ios_base_precision_set, 8)
2195 MSVCP_size_t __thiscall ios_base_precision_set(ios_base *this, MSVCP_size_t precision)
2197 MSVCP_size_t ret = this->prec;
2199 TRACE("(%p %lu)\n", this, precision);
2201 this->prec = precision;
2202 return ret;
2205 /* ?precision@ios_base@std@@QBEHXZ */
2206 /* ?precision@ios_base@std@@QEBA_JXZ */
2207 DEFINE_THISCALL_WRAPPER(ios_base_precision_get, 4)
2208 MSVCP_size_t __thiscall ios_base_precision_get(const ios_base *this)
2210 TRACE("(%p)\n", this);
2211 return this->prec;
2214 /* ?rdstate@ios_base@std@@QBEHXZ */
2215 /* ?rdstate@ios_base@std@@QEBAHXZ */
2216 DEFINE_THISCALL_WRAPPER(ios_base_rdstate, 4)
2217 IOSB_iostate __thiscall ios_base_rdstate(const ios_base *this)
2219 TRACE("(%p)\n", this);
2220 return this->state;
2223 /* ?setf@ios_base@std@@QAEHHH@Z */
2224 /* ?setf@ios_base@std@@QEAAHHH@Z */
2225 DEFINE_THISCALL_WRAPPER(ios_base_setf_mask, 12)
2226 IOSB_fmtflags __thiscall ios_base_setf_mask(ios_base *this, IOSB_fmtflags flags, IOSB_fmtflags mask)
2228 IOSB_fmtflags ret = this->fmtfl;
2230 TRACE("(%p %x %x)\n", this, flags, mask);
2232 this->fmtfl = (this->fmtfl & (~mask)) | (flags & mask & FMTFLAG_mask);
2233 return ret;
2236 /* ?setf@ios_base@std@@QAEHH@Z */
2237 /* ?setf@ios_base@std@@QEAAHH@Z */
2238 DEFINE_THISCALL_WRAPPER(ios_base_setf, 8)
2239 IOSB_fmtflags __thiscall ios_base_setf(ios_base *this, IOSB_fmtflags flags)
2241 return ios_base_setf_mask(this, flags, ~0);
2244 /* ?setstate@ios_base@std@@QAEXH_N@Z */
2245 /* ?setstate@ios_base@std@@QEAAXH_N@Z */
2246 DEFINE_THISCALL_WRAPPER(ios_base_setstate_reraise, 12)
2247 void __thiscall ios_base_setstate_reraise(ios_base *this, IOSB_iostate state, MSVCP_bool reraise)
2249 TRACE("(%p %x %x)\n", this, state, reraise);
2251 if(state != IOSTATE_goodbit)
2252 ios_base_clear_reraise(this, this->state | state, reraise);
2255 /* ?setstate@ios_base@std@@QAEXH@Z */
2256 /* ?setstate@ios_base@std@@QEAAXH@Z */
2257 DEFINE_THISCALL_WRAPPER(ios_base_setstate, 8)
2258 void __thiscall ios_base_setstate(ios_base *this, IOSB_iostate state)
2260 ios_base_setstate_reraise(this, state, FALSE);
2263 /* ?setstate@ios_base@std@@QAEXI@Z */
2264 /* ?setstate@ios_base@std@@QEAAXI@Z */
2265 DEFINE_THISCALL_WRAPPER(ios_base_setstate_unsigned, 8)
2266 void __thiscall ios_base_setstate_unsigned(ios_base *this, unsigned int state)
2268 ios_base_setstate_reraise(this, (IOSB_iostate)state, FALSE);
2271 /* ?sync_with_stdio@ios_base@std@@SA_N_N@Z */
2272 MSVCP_bool CDECL ios_base_sync_with_stdio(MSVCP_bool sync)
2274 _Lockit lock;
2275 MSVCP_bool ret;
2277 TRACE("(%x)\n", sync);
2279 _Lockit_ctor_locktype(&lock, _LOCK_STREAM);
2280 ret = ios_base_Sync;
2281 ios_base_Sync = sync;
2282 _Lockit_dtor(&lock);
2283 return ret;
2286 /* ?unsetf@ios_base@std@@QAEXH@Z */
2287 /* ?unsetf@ios_base@std@@QEAAXH@Z */
2288 DEFINE_THISCALL_WRAPPER(ios_base_unsetf, 8)
2289 void __thiscall ios_base_unsetf(ios_base *this, IOSB_fmtflags flags)
2291 TRACE("(%p %x)\n", this, flags);
2292 this->fmtfl &= ~flags;
2295 /* ?width@ios_base@std@@QAEHH@Z */
2296 /* ?width@ios_base@std@@QEAA_J_J@Z */
2297 DEFINE_THISCALL_WRAPPER(ios_base_width_set, 8)
2298 MSVCP_size_t __thiscall ios_base_width_set(ios_base *this, MSVCP_size_t width)
2300 MSVCP_size_t ret = this->wide;
2302 TRACE("(%p %lu)\n", this, width);
2304 this->wide = width;
2305 return ret;
2308 /* ?width@ios_base@std@@QBEHXZ */
2309 /* ?width@ios_base@std@@QEBA_JXZ */
2310 DEFINE_THISCALL_WRAPPER(ios_base_width_get, 4)
2311 MSVCP_size_t __thiscall ios_base_width_get(ios_base *this)
2313 TRACE("(%p)\n", this);
2314 return this->wide;
2317 /* ?xalloc@ios_base@std@@SAHXZ */
2318 int CDECL ios_base_xalloc(void)
2320 _Lockit lock;
2321 int ret;
2323 TRACE("\n");
2325 _Lockit_ctor_locktype(&lock, _LOCK_STREAM);
2326 ret = ios_base_Index++;
2327 _Lockit_dtor(&lock);
2328 return ret;
2331 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ */
2332 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ */
2333 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor, 4)
2334 basic_ios_char* __thiscall basic_ios_char_ctor(basic_ios_char *this)
2336 TRACE("(%p)\n", this);
2338 ios_base_ctor(&this->base);
2339 this->base.vtable = &MSVCP_basic_ios_char_vtable;
2340 return this;
2343 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
2344 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
2345 DEFINE_THISCALL_WRAPPER(basic_ios_char_init, 12)
2346 void __thiscall basic_ios_char_init(basic_ios_char *this, basic_streambuf_char *streambuf, MSVCP_bool isstd)
2348 TRACE("(%p %p %x)\n", this, streambuf, isstd);
2349 ios_base_Init(&this->base);
2350 this->strbuf = streambuf;
2351 this->stream = NULL;
2352 this->fillch = ' ';
2354 if(!streambuf)
2355 ios_base_setstate(&this->base, IOSTATE_badbit);
2357 if(isstd)
2358 FIXME("standard streams not handled yet\n");
2361 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
2362 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
2363 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor_streambuf, 8)
2364 basic_ios_char* __thiscall basic_ios_char_ctor_streambuf(basic_ios_char *this, basic_streambuf_char *strbuf)
2366 TRACE("(%p %p)\n", this, strbuf);
2368 basic_ios_char_ctor(this);
2369 basic_ios_char_init(this, strbuf, FALSE);
2370 return this;
2373 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ */
2374 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ */
2375 DEFINE_THISCALL_WRAPPER(basic_ios_char_dtor, 4)
2376 void __thiscall basic_ios_char_dtor(basic_ios_char *this)
2378 TRACE("(%p)\n", this);
2379 ios_base_dtor(&this->base);
2382 DEFINE_THISCALL_WRAPPER(MSVCP_basic_ios_char_vector_dtor, 8)
2383 basic_ios_char* __thiscall MSVCP_basic_ios_char_vector_dtor(basic_ios_char *this, unsigned int flags)
2385 TRACE("(%p %x) stub\n", this, flags);
2386 if(flags & 2) {
2387 /* we have an array, with the number of elements stored before the first object */
2388 int i, *ptr = (int *)this-1;
2390 for(i=*ptr-1; i>=0; i--)
2391 basic_ios_char_dtor(this+i);
2392 MSVCRT_operator_delete(ptr);
2393 } else {
2394 basic_ios_char_dtor(this);
2395 if(flags & 1)
2396 MSVCRT_operator_delete(this);
2399 return this;
2402 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
2403 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
2404 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear_reraise, 12)
2405 void __thiscall basic_ios_char_clear_reraise(basic_ios_char *this, IOSB_iostate state, MSVCP_bool reraise)
2407 TRACE("(%p %x %x)\n", this, state, reraise);
2408 ios_base_clear_reraise(&this->base, state | (this->strbuf ? IOSTATE_goodbit : IOSTATE_badbit), reraise);
2411 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
2412 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
2413 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear, 8)
2414 void __thiscall basic_ios_char_clear(basic_ios_char *this, unsigned int state)
2416 basic_ios_char_clear_reraise(this, (IOSB_iostate)state, FALSE);
2419 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEAAV12@ABV12@@Z */
2420 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEBV12@@Z */
2421 DEFINE_THISCALL_WRAPPER(basic_ios_char_copyfmt, 8)
2422 basic_ios_char* __thiscall basic_ios_char_copyfmt(basic_ios_char *this, basic_ios_char *copy)
2424 TRACE("(%p %p)\n", this, copy);
2425 if(this == copy)
2426 return this;
2428 this->stream = copy->stream;
2429 this->fillch = copy->fillch;
2430 ios_base_copyfmt(&this->base, &copy->base);
2431 return this;
2434 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEDD@Z */
2435 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z */
2436 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_set, 8)
2437 char __thiscall basic_ios_char_fill_set(basic_ios_char *this, char fill)
2439 char ret = this->fillch;
2441 TRACE("(%p %c)\n", this, fill);
2443 this->fillch = fill;
2444 return ret;
2447 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ */
2448 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ */
2449 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_get, 4)
2450 char __thiscall basic_ios_char_fill_get(basic_ios_char *this)
2452 TRACE("(%p)\n", this);
2453 return this->fillch;
2456 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
2457 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
2458 DEFINE_THISCALL_WRAPPER(basic_ios_char_imbue, 12)
2459 locale *__thiscall basic_ios_char_imbue(basic_ios_char *this, locale *ret, const locale *loc)
2461 TRACE("(%p %p %p)\n", this, ret, loc);
2463 if(this->strbuf)
2464 return basic_streambuf_char_pubimbue(this->strbuf, ret, loc);
2466 locale_copy_ctor(ret, loc);
2467 return ret;
2470 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDDD@Z */
2471 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADDD@Z */
2472 DEFINE_THISCALL_WRAPPER(basic_ios_char_narrow, 12)
2473 char __thiscall basic_ios_char_narrow(basic_ios_char *this, char ch, char def)
2475 FIXME("(%p %c %c) stub\n", this, ch, def);
2476 return def;
2479 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PAV32@@Z */
2480 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAV32@@Z */
2481 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_set, 8)
2482 basic_streambuf_char* __thiscall basic_ios_char_rdbuf_set(basic_ios_char *this, basic_streambuf_char *streambuf)
2484 basic_streambuf_char *ret = this->strbuf;
2486 TRACE("(%p %p)\n", this, streambuf);
2488 this->strbuf = streambuf;
2489 basic_ios_char_clear(this, IOSTATE_goodbit);
2490 return ret;
2493 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
2494 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
2495 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_get, 4)
2496 basic_streambuf_char* __thiscall basic_ios_char_rdbuf_get(const basic_ios_char *this)
2498 TRACE("(%p)\n", this);
2499 return this->strbuf;
2502 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
2503 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
2504 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate_reraise, 12)
2505 void __thiscall basic_ios_char_setstate_reraise(basic_ios_char *this, IOSB_iostate state, MSVCP_bool reraise)
2507 TRACE("(%p %x %x)\n", this, state, reraise);
2509 if(state != IOSTATE_goodbit)
2510 basic_ios_char_clear_reraise(this, this->base.state | state, reraise);
2513 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
2514 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
2515 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate, 8)
2516 void __thiscall basic_ios_char_setstate(basic_ios_char *this, unsigned int state)
2518 basic_ios_char_setstate_reraise(this, (IOSB_iostate)state, FALSE);
2521 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@PAV32@@Z */
2522 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@PEAV32@@Z */
2523 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_set, 8)
2524 basic_ostream_char* __thiscall basic_ios_char_tie_set(basic_ios_char *this, basic_ostream_char *ostream)
2526 basic_ostream_char *ret = this->stream;
2528 TRACE("(%p %p)\n", this, ostream);
2530 this->stream = ostream;
2531 return ret;
2534 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
2535 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
2536 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_get, 4)
2537 basic_ostream_char* __thiscall basic_ios_char_tie_get(const basic_ios_char *this)
2539 TRACE("(%p)\n", this);
2540 return this->stream;
2543 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z */
2544 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z */
2545 DEFINE_THISCALL_WRAPPER(basic_ios_char_widen, 8)
2546 char __thiscall basic_ios_char_widen(basic_ios_char *this, char ch)
2548 FIXME("(%p %c) stub\n", this, ch);
2549 return 0;
2553 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
2554 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
2555 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_ctor, 4)
2556 basic_ios_wchar* __thiscall basic_ios_wchar_ctor(basic_ios_wchar *this)
2558 FIXME("(%p) stub\n", this);
2559 return NULL;
2562 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
2563 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
2564 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_copy_ctor, 8)
2565 basic_ios_wchar* __thiscall basic_ios_wchar_copy_ctor(basic_ios_wchar *this, const basic_ios_wchar *copy)
2567 FIXME("(%p %p) stub\n", this, copy);
2568 return NULL;
2571 /* ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
2572 /* ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
2573 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_dtor, 4)
2574 void __thiscall basic_ios_wchar_dtor(basic_ios_wchar *this)
2576 FIXME("(%p) stub\n", this);
2579 DEFINE_THISCALL_WRAPPER(MSVCP_basic_ios_wchar_vector_dtor, 8)
2580 basic_ios_wchar* __thiscall MSVCP_basic_ios_wchar_vector_dtor(basic_ios_wchar *this, unsigned int flags)
2582 TRACE("(%p %x) stub\n", this, flags);
2583 if(flags & 2) {
2584 /* we have an array, with the number of elements stored before the first object */
2585 int i, *ptr = (int *)this-1;
2587 for(i=*ptr-1; i>=0; i--)
2588 basic_ios_wchar_dtor(this+i);
2589 MSVCRT_operator_delete(ptr);
2590 } else {
2591 basic_ios_wchar_dtor(this);
2592 if(flags & 1)
2593 MSVCRT_operator_delete(this);
2596 return this;
2599 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z */
2600 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z */
2601 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_clear_reraise, 12)
2602 void __thiscall basic_ios_wchar_clear_reraise(basic_ios_wchar *this, IOSB_iostate state, MSVCP_bool reraise)
2604 FIXME("(%p %x %x) stub\n", this, state, reraise);
2607 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXI@Z */
2608 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z */
2609 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_clear, 8)
2610 void __thiscall basic_ios_wchar_clear(basic_ios_wchar *this, unsigned int state)
2612 basic_ios_wchar_clear_reraise(this, (IOSB_iostate)state, FALSE);
2615 /* ?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEAAV12@ABV12@@Z */
2616 /* ?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEBV12@@Z */
2617 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_copyfmt, 8)
2618 basic_ios_wchar* __thiscall basic_ios_wchar_copyfmt(basic_ios_wchar *this, basic_ios_wchar *copy)
2620 FIXME("(%p %p) stub\n", this, copy);
2621 return NULL;
2624 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE_W_W@Z */
2625 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA_W_W@Z */
2626 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_fill_set, 8)
2627 wchar_t __thiscall basic_ios_wchar_fill_set(basic_ios_wchar *this, wchar_t fill)
2629 FIXME("(%p %c) stub\n", this, fill);
2630 return 0;
2633 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WXZ */
2634 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WXZ */
2635 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_fill_get, 4)
2636 wchar_t __thiscall basic_ios_wchar_fill_get(basic_ios_wchar *this)
2638 FIXME("(%p) stub\n", this);
2639 return 0;
2642 /* ?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
2643 /* ?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
2644 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_imbue, 12)
2645 locale *__thiscall basic_ios_wchar_imbue(basic_ios_wchar *this, locale *ret, const locale *loc)
2647 FIXME("(%p %p %p) stub\n", this, ret, loc);
2648 return ret;
2651 /* ?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAEXPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z */
2652 /* ?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z */
2653 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_init, 12)
2654 void __thiscall basic_ios_wchar_init(basic_ios_wchar *this, /*basic_streambuf_wchar*/void *streambuf, MSVCP_bool isstd)
2656 FIXME("(%p %p %x) stub\n", this, streambuf, isstd);
2659 /* ?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBED_WD@Z */
2660 /* ?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAD_WD@Z */
2661 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_narrow, 12)
2662 char __thiscall basic_ios_wchar_narrow(basic_ios_wchar *this, wchar_t ch, char def)
2664 FIXME("(%p %c %c) stub\n", this, ch, def);
2665 return def;
2668 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PAV32@@Z */
2669 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEAV32@@Z */
2670 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_rdbuf_set, 8)
2671 /*basic_streambuf_wchar*/void* __thiscall basic_ios_wchar_rdbuf_set(basic_ios_wchar *this, /*basic_streambuf_wchar*/void *streambuf)
2673 FIXME("(%p %p) stub\n", this, streambuf);
2674 return NULL;
2677 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ */
2678 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ */
2679 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_rdbuf_get, 4)
2680 /*basic_streambuf_wchar*/void* __thiscall basic_ios_wchar_rdbuf_get(const basic_ios_wchar *this)
2682 FIXME("(%p) stub\n", this);
2683 return NULL;
2686 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z */
2687 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z */
2688 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_setstate_reraise, 12)
2689 void __thiscall basic_ios_wchar_setstate_reraise(basic_ios_wchar *this, IOSB_iostate state, MSVCP_bool reraise)
2691 FIXME("(%p %x %x) stub\n", this, state, reraise);
2694 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXI@Z */
2695 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z */
2696 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_setstate, 8)
2697 void __thiscall basic_ios_wchar_setstate(basic_ios_wchar *this, IOSB_iostate state)
2699 basic_ios_wchar_setstate_reraise(this, state, FALSE);
2702 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PAV32@@Z */
2703 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PEAV32@@Z */
2704 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_tie_set, 8)
2705 /*basic_ostream_wchar*/void* __thiscall basic_ios_wchar_tie_set(basic_ios_wchar *this, /*basic_ostream_wchar*/void *ostream)
2707 FIXME("(%p %p) stub\n", this, ostream);
2708 return NULL;
2711 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ */
2712 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ */
2713 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_tie_get, 4)
2714 /*basic_ostream_wchar*/void* __thiscall basic_ios_wchar_tie_get(const basic_ios_wchar *this)
2716 FIXME("(%p)\n", this);
2717 return NULL;
2720 /* ?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WD@Z */
2721 /* ?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WD@Z */
2722 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_widen, 8)
2723 wchar_t __thiscall basic_ios_wchar_widen(basic_ios_wchar *this, char ch)
2725 FIXME("(%p %c)\n", this, ch);
2726 return 0;
2729 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
2730 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
2731 DEFINE_THISCALL_WRAPPER(basic_ostream_char_ctor, 12)
2732 basic_ostream_char* __thiscall basic_ostream_char_ctor(basic_ostream_char *this, basic_streambuf_char *strbuf, MSVCP_bool isstd)
2734 FIXME("(%p %p %d) stub\n", this, strbuf, isstd);
2735 return NULL;
2738 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@_N@Z */
2739 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z */
2740 DEFINE_THISCALL_WRAPPER(basic_ostream_char_uninitialized, 12)
2741 basic_ostream_char* __thiscall basic_ostream_char_uninitialized(basic_ostream_char *this, int uninitialized, MSVCP_bool addstd)
2743 FIXME("(%p %d %x) stub\n", this, uninitialized, addstd);
2744 return NULL;
2747 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
2748 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
2749 DEFINE_THISCALL_WRAPPER(basic_ostream_char_dtor, 4)
2750 void __thiscall basic_ostream_char_dtor(basic_ostream_char *this)
2752 FIXME("(%p) stub\n", this);
2755 DEFINE_THISCALL_WRAPPER(MSVCP_basic_ostream_char_vector_dtor, 8)
2756 basic_ostream_char* __thiscall MSVCP_basic_ostream_char_vector_dtor(basic_ostream_char *this, unsigned int flags)
2758 TRACE("(%p %x) stub\n", this, flags);
2759 if(flags & 2) {
2760 /* we have an array, with the number of elements stored before the first object */
2761 int i, *ptr = (int *)this-1;
2763 for(i=*ptr-1; i>=0; i--)
2764 basic_ostream_char_dtor(this+i);
2765 MSVCRT_operator_delete(ptr);
2766 } else {
2767 basic_ostream_char_dtor(this);
2768 if(flags & 1)
2769 MSVCRT_operator_delete(this);
2772 return this;
2775 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@F@Z */
2776 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@F@Z */
2777 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_short, 8)
2778 basic_ostream_char* __thiscall basic_ostream_char_print_short(basic_ostream_char *this, short val)
2780 FIXME("(%p %d) stub\n", this, val);
2781 return NULL;
2784 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@G@Z */
2785 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@G@Z */
2786 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ushort, 8)
2787 basic_ostream_char* __thiscall basic_ostream_char_print_ushort(basic_ostream_char *this, unsigned short val)
2789 FIXME("(%p %d) stub\n", this, val);
2790 return NULL;
2793 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@H@Z */
2794 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z */
2795 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int, 8)
2796 basic_ostream_char* __thiscall basic_ostream_char_print_int(basic_ostream_char *this, int val)
2798 FIXME("(%p %d) stub\n", this, val);
2799 return NULL;
2802 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@I@Z */
2803 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@I@Z */
2804 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint, 8)
2805 basic_ostream_char* __thiscall basic_ostream_char_print_uint(basic_ostream_char *this, unsigned int val)
2807 FIXME("(%p %d) stub\n", this, val);
2808 return NULL;
2811 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@J@Z */
2812 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@J@Z */
2813 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_long, 8)
2814 basic_ostream_char* __thiscall basic_ostream_char_print_long(basic_ostream_char *this, LONG val)
2816 FIXME("(%p %d) stub\n", this, val);
2817 return NULL;
2820 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@K@Z */
2821 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@K@Z */
2822 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ulong, 8)
2823 basic_ostream_char* __thiscall basic_ostream_char_print_ulong(basic_ostream_char *this, ULONG val)
2825 FIXME("(%p %d) stub\n", this, val);
2826 return NULL;
2829 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@M@Z */
2830 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z */
2831 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_float, 8)
2832 basic_ostream_char* __thiscall basic_ostream_char_print_float(basic_ostream_char *this, float val)
2834 FIXME("(%p %f) stub\n", this, val);
2835 return NULL;
2838 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@N@Z */
2839 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z */
2840 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_double, 12)
2841 basic_ostream_char* __thiscall basic_ostream_char_print_double(basic_ostream_char *this, double val)
2843 FIXME("(%p %lf) stub\n", this, val);
2844 return NULL;
2847 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
2848 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
2849 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_streambuf, 8)
2850 basic_ostream_char* __thiscall basic_ostream_char_print_streambuf(basic_ostream_char *this, basic_streambuf_char *val)
2852 FIXME("(%p %p) stub\n", this, val);
2853 return NULL;
2856 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PBX@Z */
2857 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEBX@Z */
2858 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ptr, 8)
2859 basic_ostream_char* __thiscall basic_ostream_char_print_ptr(basic_ostream_char *this, const void *val)
2861 FIXME("(%p %p) stub\n", this, val);
2862 return NULL;
2865 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_J@Z */
2866 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_J@Z */
2867 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int64, 12)
2868 basic_ostream_char* __thiscall basic_ostream_char_print_int64(basic_ostream_char *this, __int64 val)
2870 FIXME("(%p) stub\n", this);
2871 return NULL;
2874 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_K@Z */
2875 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z */
2876 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint64, 12)
2877 basic_ostream_char* __thiscall basic_ostream_char_print_uint64(basic_ostream_char *this, unsigned __int64 val)
2879 FIXME("(%p) stub\n", this);
2880 return NULL;
2883 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_N@Z */
2884 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_N@Z */
2885 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_bool, 8)
2886 basic_ostream_char* __thiscall basic_ostream_char_print_bool(basic_ostream_char *this, MSVCP_bool val)
2888 FIXME("(%p %x) stub\n", this, val);
2889 return NULL;
2892 /* ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
2893 /* ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
2894 DEFINE_THISCALL_WRAPPER(basic_ostream_char__Osfx, 4)
2895 void __thiscall basic_ostream_char__Osfx(basic_ostream_char *this)
2897 FIXME("(%p) stub\n", this);
2900 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ */
2901 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ */
2902 DEFINE_THISCALL_WRAPPER(basic_ostream_char_flush, 4)
2903 basic_ostream_char* __thiscall basic_ostream_char_flush(basic_ostream_char *this)
2905 FIXME("(%p) stub\n", this);
2906 return NULL;
2909 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE_NXZ */
2910 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA_NXZ */
2911 DEFINE_THISCALL_WRAPPER(basic_ostream_char_opfx, 4)
2912 MSVCP_bool __thiscall basic_ostream_char_opfx(basic_ostream_char *this)
2914 FIXME("(%p) stub\n", this);
2915 return 0;
2918 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
2919 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
2920 DEFINE_THISCALL_WRAPPER(basic_ostream_char_osfx, 4)
2921 void __thiscall basic_ostream_char_osfx(basic_ostream_char *this)
2923 FIXME("(%p) stub\n", this);
2926 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z */
2927 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z */
2928 DEFINE_THISCALL_WRAPPER(basic_ostream_char_put, 8)
2929 basic_ostream_char* __thiscall basic_ostream_char_put(basic_ostream_char *this, char ch)
2931 FIXME("(%p %c) stub\n", this, ch);
2932 return NULL;
2935 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@JH@Z */
2936 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
2937 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp, 12)
2938 basic_ostream_char* __thiscall basic_ostream_char_seekp(basic_ostream_char *this, streamoff off, int way)
2940 FIXME("(%p %lu %d) stub\n", this, off, way);
2941 return NULL;
2944 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
2945 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
2946 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp_fpos, 28)
2947 basic_ostream_char* __thiscall basic_ostream_char_seekp_fpos(basic_ostream_char *this, fpos_int pos)
2949 FIXME("(%p %s) stub\n", this, debugstr_fpos_int(&pos));
2950 return NULL;
2953 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
2954 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
2955 DEFINE_THISCALL_WRAPPER(basic_ostream_char_tellp, 8)
2956 fpos_int* __thiscall basic_ostream_char_tellp(basic_ostream_char *this, fpos_int *ret)
2958 FIXME("(%p) stub\n", this);
2959 return ret;
2962 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@PBDH@Z */
2963 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z */
2964 DEFINE_THISCALL_WRAPPER(basic_ostream_char_write, 12)
2965 basic_ostream_char* __thiscall basic_ostream_char_write(basic_ostream_char *this, const char *str, streamsize count)
2967 FIXME("(%p %s %lu) stub\n", this, debugstr_a(str), count);
2968 return NULL;