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
27 #include "wine/debug.h"
28 WINE_DEFAULT_DEBUG_CHANNEL(msvcp90);
31 IOSTATE_goodbit = 0x00,
32 IOSTATE_eofbit = 0x01,
33 IOSTATE_failbit = 0x02,
34 IOSTATE_badbit = 0x04,
35 IOSTATE__Hardfail = 0x10,
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,
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,
63 typedef struct _iosarray {
64 struct _iosarray *next;
77 typedef void (CDECL *IOS_BASE_event_callback)(IOS_BASE_event, struct _ios_base*, int);
78 typedef struct _fnarray {
79 struct _fnarray *next;
81 IOS_BASE_event_callback event_handler;
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;
97 IOS_BASE_iosarray *arr;
98 IOS_BASE_fnarray *calls;
104 __int64 DECLSPEC_ALIGN(8) pos;
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);
114 const vtable_ptr *vtable;
129 } basic_streambuf_char;
132 const vtable_ptr *vtable;
147 } basic_streambuf_wchar;
151 basic_streambuf_char *strbuf;
152 struct _basic_ostream_char *stream;
158 basic_streambuf_wchar *strbuf;
159 struct _basic_ostream_wchar *stream;
163 typedef struct _basic_ostream_char {
166 } basic_ostream_char;
168 typedef struct _basic_ostream_wchar {
171 } basic_ostream_wchar;
173 extern const vtable_ptr MSVCP_iosb_vtable;
175 /* ??_7ios_base@std@@6B@ */
176 extern const vtable_ptr MSVCP_ios_base_vtable;
178 /* ??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@ */
179 extern const vtable_ptr MSVCP_basic_ios_char_vtable;
181 /* ??_7?$basic_ios@_WU?$char_traits@_W@std@@@std@@6B@ */
182 extern const vtable_ptr MSVCP_basic_ios_wchar_vtable;
184 /* ??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@ */
185 extern const vtable_ptr MSVCP_basic_streambuf_char_vtable;
187 /* ??_7?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@6B@ */
188 extern const vtable_ptr MSVCP_basic_streambuf_wchar_vtable;
190 /* ??_7?$basic_streambuf@GU?$char_traits@G@std@@@std@@6B@ */
191 extern const vtable_ptr MSVCP_basic_streambuf_short_vtable;
193 /* ??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@ */
194 extern const vtable_ptr MSVCP_basic_ostream_char_vtable;
196 DEFINE_RTTI_DATA(iosb, 0, 0, NULL, NULL, NULL, ".?AV?$_Iosb@H@std@@");
197 DEFINE_RTTI_DATA(ios_base, 0, 1, &iosb_rtti_base_descriptor, NULL, NULL, ".?AV?$_Iosb@H@std@@");
198 DEFINE_RTTI_DATA(basic_ios_char, 0, 2, &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
199 NULL, ".?AV?$basic_ios@DU?$char_traits@D@std@@@std@@");
200 DEFINE_RTTI_DATA(basic_ios_wchar, 0, 2, &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor,
201 NULL, ".?AV?$basic_ios@_WU?$char_traits@_W@std@@@std@@");
202 DEFINE_RTTI_DATA(basic_streambuf_char, 0, 0, NULL, NULL, NULL,
203 ".?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@");
204 DEFINE_RTTI_DATA(basic_streambuf_wchar, 0, 0, NULL, NULL, NULL,
205 ".?AV?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@");
206 DEFINE_RTTI_DATA(basic_streambuf_short, 0, 0, NULL, NULL, NULL,
207 ".?AV?$basic_streambuf@GU?$char_traits@G@std@@@std@@");
208 DEFINE_RTTI_DATA(basic_ostream_char, 4, 3, &basic_ios_char_rtti_base_descriptor, &ios_base_rtti_base_descriptor,
209 &iosb_rtti_base_descriptor, ".?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@");
212 void __asm_dummy_vtables(void) {
214 __ASM_VTABLE(iosb, "");
215 __ASM_VTABLE(ios_base, "");
216 __ASM_VTABLE(basic_ios_char, "");
217 __ASM_VTABLE(basic_ios_wchar, "");
218 __ASM_VTABLE(basic_streambuf_char,
219 VTABLE_ADD_FUNC(basic_streambuf_char_overflow)
220 VTABLE_ADD_FUNC(basic_streambuf_char_pbackfail)
221 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc)
222 VTABLE_ADD_FUNC(basic_streambuf_char_underflow)
223 VTABLE_ADD_FUNC(basic_streambuf_char_uflow)
224 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn)
225 VTABLE_ADD_FUNC(basic_streambuf_char__Xsgetn_s)
226 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn)
227 VTABLE_ADD_FUNC(basic_streambuf_char_seekoff)
228 VTABLE_ADD_FUNC(basic_streambuf_char_seekpos)
229 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf)
230 VTABLE_ADD_FUNC(basic_streambuf_char_sync)
231 VTABLE_ADD_FUNC(basic_streambuf_char_imbue));
232 __ASM_VTABLE(basic_streambuf_wchar,
233 VTABLE_ADD_FUNC(basic_streambuf_wchar_overflow)
234 VTABLE_ADD_FUNC(basic_streambuf_wchar_pbackfail)
235 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
236 VTABLE_ADD_FUNC(basic_streambuf_wchar_underflow)
237 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
238 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
239 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s)
240 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
241 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff)
242 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos)
243 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
244 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
245 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
246 __ASM_VTABLE(basic_streambuf_short,
247 VTABLE_ADD_FUNC(basic_streambuf_wchar_overflow)
248 VTABLE_ADD_FUNC(basic_streambuf_wchar_pbackfail)
249 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc)
250 VTABLE_ADD_FUNC(basic_streambuf_wchar_underflow)
251 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow)
252 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn)
253 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s)
254 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn)
255 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff)
256 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos)
257 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf)
258 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync)
259 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue));
260 __ASM_VTABLE(basic_ostream_char, "");
265 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
266 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
267 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp_next, 16)
268 void __thiscall basic_streambuf_char_setp_next(basic_streambuf_char *this, char *first, char *next, char *last)
270 TRACE("(%p %p %p %p)\n", this, first, next, last);
274 this->wsize = last-next;
277 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z */
278 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z */
279 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp, 12)
280 void __thiscall basic_streambuf_char_setp(basic_streambuf_char *this, char *first, char *last)
282 basic_streambuf_char_setp_next(this, first, first, last);
285 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
286 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
287 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setg, 16)
288 void __thiscall basic_streambuf_char_setg(basic_streambuf_char *this, char *first, char *next, char *last)
290 TRACE("(%p %p %p %p)\n", this, first, next, last);
294 this->rsize = last-next;
297 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ */
298 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ */
299 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init_empty, 4)
300 void __thiscall basic_streambuf_char__Init_empty(basic_streambuf_char *this)
302 TRACE("(%p)\n", this);
304 this->prbuf = &this->rbuf;
305 this->pwbuf = &this->wbuf;
306 this->prpos = &this->rpos;
307 this->pwpos = &this->wpos;
308 this->prsize = &this->rsize;
309 this->pwsize = &this->wsize;
311 basic_streambuf_char_setp(this, NULL, NULL);
312 basic_streambuf_char_setg(this, NULL, NULL, NULL);
315 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@W4_Uninitialized@1@@Z */
316 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
317 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor_uninitialized, 8)
318 basic_streambuf_char* __thiscall basic_streambuf_char_ctor_uninitialized(basic_streambuf_char *this, int uninitialized)
320 TRACE("(%p %d)\n", this, uninitialized);
321 this->vtable = &MSVCP_basic_streambuf_char_vtable;
322 mutex_ctor(&this->lock);
326 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ */
327 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ */
328 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor, 4)
329 basic_streambuf_char* __thiscall basic_streambuf_char_ctor(basic_streambuf_char *this)
331 TRACE("(%p)\n", this);
333 this->vtable = &MSVCP_basic_streambuf_char_vtable;
334 mutex_ctor(&this->lock);
335 this->loc = MSVCRT_operator_new(sizeof(locale));
336 locale_ctor(this->loc);
337 basic_streambuf_char__Init_empty(this);
342 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
343 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
344 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_dtor, 4)
345 void __thiscall basic_streambuf_char_dtor(basic_streambuf_char *this)
347 TRACE("(%p)\n", this);
349 mutex_dtor(&this->lock);
350 locale_dtor(this->loc);
351 MSVCRT_operator_delete(this->loc);
354 DEFINE_THISCALL_WRAPPER(MSVCP_basic_streambuf_char_vector_dtor, 8)
355 basic_streambuf_char* __thiscall MSVCP_basic_streambuf_char_vector_dtor(basic_streambuf_char *this, unsigned int flags)
357 TRACE("(%p %x)\n", this, flags);
359 /* we have an array, with the number of elements stored before the first object */
360 int i, *ptr = (int *)this-1;
362 for(i=*ptr-1; i>=0; i--)
363 basic_streambuf_char_dtor(this+i);
364 MSVCRT_operator_delete(ptr);
366 basic_streambuf_char_dtor(this);
368 MSVCRT_operator_delete(this);
374 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
375 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
376 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gnavail, 4)
377 streamsize __thiscall basic_streambuf_char__Gnavail(const basic_streambuf_char *this)
379 TRACE("(%p)\n", this);
380 return *this->prpos ? *this->prsize : 0;
383 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
384 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
385 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gndec, 4)
386 char* __thiscall basic_streambuf_char__Gndec(basic_streambuf_char *this)
388 TRACE("(%p)\n", this);
394 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
395 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
396 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gninc, 4)
397 char* __thiscall basic_streambuf_char__Gninc(basic_streambuf_char *this)
399 TRACE("(%p)\n", this);
401 return (*this->prpos)++;
404 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
405 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
406 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gnpreinc, 4)
407 char* __thiscall basic_streambuf_char__Gnpreinc(basic_streambuf_char *this)
409 TRACE("(%p)\n", this);
415 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z */
416 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAPEAD0PEAH001@Z */
417 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init, 28)
418 void __thiscall basic_streambuf_char__Init(basic_streambuf_char *this, char **gf, char **gn, int *gc, char **pf, char **pn, int *pc)
420 TRACE("(%p %p %p %p %p %p %p)\n", this, gf, gn, gc, pf, pn, pc);
430 /* ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
431 /* ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
432 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Lock, 4)
433 void __thiscall basic_streambuf_char__Lock(basic_streambuf_char *this)
435 TRACE("(%p)\n", this);
436 mutex_lock(&this->lock);
439 /* ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
440 /* ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
441 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Pnavail, 4)
442 streamsize __thiscall basic_streambuf_char__Pnavail(const basic_streambuf_char *this)
444 TRACE("(%p)\n", this);
445 return *this->pwpos ? *this->pwsize : 0;
448 /* ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
449 /* ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
450 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Pninc, 4)
451 char* __thiscall basic_streambuf_char__Pninc(basic_streambuf_char *this)
453 TRACE("(%p)\n", this);
455 return (*this->pwpos)++;
458 /* ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
459 /* ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
460 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_underflow, 4)
461 #define call_basic_streambuf_char_underflow(this) CALL_VTBL_FUNC(this, 16, \
462 int, (basic_streambuf_char*), (this))
463 int __thiscall basic_streambuf_char_underflow(basic_streambuf_char *this)
465 TRACE("(%p)\n", this);
469 /* ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
470 /* ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
471 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_uflow, 4)
472 #define call_basic_streambuf_char_uflow(this) CALL_VTBL_FUNC(this, 20, \
473 int, (basic_streambuf_char*), (this))
474 int __thiscall basic_streambuf_char_uflow(basic_streambuf_char *this)
478 TRACE("(%p)\n", this);
480 if(call_basic_streambuf_char_underflow(this)==EOF)
489 /* ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADIH@Z */
490 /* ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_K_J@Z */
491 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Xsgetn_s, 16)
492 #define call_basic_streambuf_char__Xsgetn_s(this, ptr, size, count) CALL_VTBL_FUNC(this, 28, \
493 streamsize, (basic_streambuf_char*, char*, MSVCP_size_t, streamsize), (this, ptr, size, count))
494 streamsize __thiscall basic_streambuf_char__Xsgetn_s(basic_streambuf_char *this, char *ptr, MSVCP_size_t size, streamsize count)
496 streamsize copied, chunk;
498 TRACE("(%p %p %lu %lu)\n", this, ptr, size, count);
500 for(copied=0; copied<count && size;) {
501 chunk = basic_streambuf_char__Gnavail(this);
502 if(chunk > count-copied)
503 chunk = count-copied;
506 memcpy_s(ptr+copied, size, *this->prpos, chunk);
507 *this->prpos += chunk;
508 *this->prsize -= chunk;
511 }else if((ptr[copied] = call_basic_streambuf_char_uflow(this)) != EOF) {
522 /* ?_Sgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADIH@Z */
523 /* ?_Sgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_K_J@Z */
524 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Sgetn_s, 16)
525 streamsize __thiscall basic_streambuf_char__Sgetn_s(basic_streambuf_char *this, char *ptr, MSVCP_size_t size, streamsize count)
527 TRACE("(%p %p %lu %lu)\n", this, ptr, size, count);
528 return call_basic_streambuf_char__Xsgetn_s(this, ptr, size, count);
531 /* ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
532 /* ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
533 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Unlock, 4)
534 void __thiscall basic_streambuf_char__Unlock(basic_streambuf_char *this)
536 TRACE("(%p)\n", this);
537 mutex_unlock(&this->lock);
540 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
541 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
542 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_eback, 4)
543 char* __thiscall basic_streambuf_char_eback(const basic_streambuf_char *this)
545 TRACE("(%p)\n", this);
549 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
550 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
551 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gptr, 4)
552 char* __thiscall basic_streambuf_char_gptr(const basic_streambuf_char *this)
554 TRACE("(%p)\n", this);
558 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
559 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
560 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_egptr, 4)
561 char* __thiscall basic_streambuf_char_egptr(const basic_streambuf_char *this)
563 TRACE("(%p)\n", this);
564 return *this->prpos+*this->prsize;
567 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
568 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
569 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_epptr, 4)
570 char* __thiscall basic_streambuf_char_epptr(const basic_streambuf_char *this)
572 TRACE("(%p)\n", this);
573 return *this->pwpos+*this->pwsize;
576 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
577 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
578 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gbump, 8)
579 void __thiscall basic_streambuf_char_gbump(basic_streambuf_char *this, int off)
581 TRACE("(%p %d)\n", this, off);
583 *this->prsize -= off;
586 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ */
587 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?AVlocale@2@XZ */
588 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_getloc, 8)
589 locale* __thiscall basic_streambuf_char_getloc(const basic_streambuf_char *this, locale *ret)
591 TRACE("(%p)\n", this);
592 return locale_copy_ctor(ret, this->loc);
595 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z */
596 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z */
597 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_imbue, 8)
598 #define call_basic_streambuf_char_imbue(this, loc) CALL_VTBL_FUNC(this, 52, \
599 void, (basic_streambuf_char*, const locale*), (this, loc))
600 void __thiscall basic_streambuf_char_imbue(basic_streambuf_char *this, const locale *loc)
602 TRACE("(%p %p)\n", this, loc);
605 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
606 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
607 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_overflow, 8)
608 #define call_basic_streambuf_char_overflow(this, ch) CALL_VTBL_FUNC(this, 4, \
609 int, (basic_streambuf_char*, int), (this, ch))
610 int __thiscall basic_streambuf_char_overflow(basic_streambuf_char *this, int ch)
612 TRACE("(%p %d)\n", this, ch);
616 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
617 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
618 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbackfail, 8)
619 #define call_basic_streambuf_char_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, \
620 int, (basic_streambuf_char*, int), (this, ch))
621 int __thiscall basic_streambuf_char_pbackfail(basic_streambuf_char *this, int ch)
623 TRACE("(%p %d)\n", this, ch);
627 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
628 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
629 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbase, 4)
630 char* __thiscall basic_streambuf_char_pbase(const basic_streambuf_char *this)
632 TRACE("(%p)\n", this);
636 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
637 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
638 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbump, 8)
639 void __thiscall basic_streambuf_char_pbump(basic_streambuf_char *this, int off)
641 TRACE("(%p %d)\n", this, off);
643 *this->pwsize -= off;
646 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
647 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
648 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pptr, 4)
649 char* __thiscall basic_streambuf_char_pptr(const basic_streambuf_char *this)
651 TRACE("(%p)\n", this);
655 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
656 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
657 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubimbue, 12)
658 locale* __thiscall basic_streambuf_char_pubimbue(basic_streambuf_char *this, locale *ret, const locale *loc)
660 TRACE("(%p %p)\n", this, loc);
661 memcpy(ret, this->loc, sizeof(locale));
662 call_basic_streambuf_char_imbue(this, loc);
663 locale_copy_ctor(this->loc, loc);
667 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
668 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
669 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekoff, 20)
670 #define call_basic_streambuf_char_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 36, \
671 fpos_int*, (basic_streambuf_char*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
672 fpos_int* __thiscall basic_streambuf_char_seekoff(basic_streambuf_char *this,
673 fpos_int *ret, streamoff off, int way, int mode)
675 TRACE("(%p %lu %d %d)\n", this, off, way, mode);
682 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
683 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
684 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff, 20)
685 fpos_int* __thiscall basic_streambuf_char_pubseekoff(basic_streambuf_char *this,
686 fpos_int *ret, streamoff off, int way, int mode)
688 TRACE("(%p %lu %d %d)\n", this, off, way, mode);
689 return call_basic_streambuf_char_seekoff(this, ret, off, way, mode);
692 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
693 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
694 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff_old, 20)
695 fpos_int* __thiscall basic_streambuf_char_pubseekoff_old(basic_streambuf_char *this,
696 fpos_int *ret, streamoff off, unsigned int way, unsigned int mode)
698 TRACE("(%p %lu %d %d)\n", this, off, way, mode);
699 return basic_streambuf_char_pubseekoff(this, ret, off, way, mode);
702 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
703 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
704 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekpos, 36)
705 #define call_basic_streambuf_char_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 40, \
706 fpos_int*, (basic_streambuf_char*, fpos_int*, fpos_int, int), (this, ret, pos, mode))
707 fpos_int* __thiscall basic_streambuf_char_seekpos(basic_streambuf_char *this,
708 fpos_int *ret, fpos_int pos, int mode)
710 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
717 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
718 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
719 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos, 36)
720 fpos_int* __thiscall basic_streambuf_char_pubseekpos(basic_streambuf_char *this,
721 fpos_int *ret, fpos_int pos, int mode)
723 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
724 return call_basic_streambuf_char_seekpos(this, ret, pos, mode);
727 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
728 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
729 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos_old, 36)
730 fpos_int* __thiscall basic_streambuf_char_pubseekpos_old(basic_streambuf_char *this,
731 fpos_int *ret, fpos_int pos, unsigned int mode)
733 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
734 return basic_streambuf_char_pubseekpos(this, ret, pos, mode);
737 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z */
738 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@PEAD_J@Z */
739 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setbuf, 12)
740 #define call_basic_streambuf_char_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 44, \
741 basic_streambuf_char*, (basic_streambuf_char*, char*, streamsize), (this, buf, count))
742 basic_streambuf_char* __thiscall basic_streambuf_char_setbuf(basic_streambuf_char *this, char *buf, streamsize count)
744 TRACE("(%p %p %lu)\n", this, buf, count);
748 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PADH@Z */
749 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEAD_J@Z */
750 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsetbuf, 12)
751 basic_streambuf_char* __thiscall basic_streambuf_char_pubsetbuf(basic_streambuf_char *this, char *buf, streamsize count)
753 TRACE("(%p %p %lu)\n", this, buf, count);
754 return call_basic_streambuf_char_setbuf(this, buf, count);
757 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
758 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
759 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sync, 4)
760 #define call_basic_streambuf_char_sync(this) CALL_VTBL_FUNC(this, 48, \
761 int, (basic_streambuf_char*), (this))
762 int __thiscall basic_streambuf_char_sync(basic_streambuf_char *this)
764 TRACE("(%p)\n", this);
768 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
769 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
770 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsync, 4)
771 int __thiscall basic_streambuf_char_pubsync(basic_streambuf_char *this)
773 TRACE("(%p)\n", this);
774 return call_basic_streambuf_char_sync(this);
777 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADH@Z */
778 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z */
779 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetn, 12)
780 streamsize __thiscall basic_streambuf_char_sgetn(basic_streambuf_char *this, char *ptr, streamsize count)
782 TRACE("(%p %p %lu)\n", this, ptr, count);
783 return call_basic_streambuf_char__Xsgetn_s(this, ptr, -1, count);
786 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
787 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ */
788 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_showmanyc, 4)
789 #define call_basic_streambuf_char_showmanyc(this) CALL_VTBL_FUNC(this, 12, \
790 streamsize, (basic_streambuf_char*), (this))
791 streamsize __thiscall basic_streambuf_char_showmanyc(basic_streambuf_char *this)
793 TRACE("(%p)\n", this);
797 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
798 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JXZ */
799 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_in_avail, 4)
800 streamsize __thiscall basic_streambuf_char_in_avail(basic_streambuf_char *this)
804 TRACE("(%p)\n", this);
806 ret = basic_streambuf_char__Gnavail(this);
807 return ret ? ret : call_basic_streambuf_char_showmanyc(this);
810 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
811 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
812 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputbackc, 8)
813 int __thiscall basic_streambuf_char_sputbackc(basic_streambuf_char *this, char ch)
815 TRACE("(%p %d)\n", this, ch);
816 if(*this->prpos && *this->prpos>*this->prbuf && (*this->prpos)[-1]==ch) {
822 return call_basic_streambuf_char_pbackfail(this, ch);
825 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
826 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
827 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputc, 8)
828 int __thiscall basic_streambuf_char_sputc(basic_streambuf_char *this, char ch)
830 TRACE("(%p %d)\n", this, ch);
831 return basic_streambuf_char__Pnavail(this) ?
832 (*basic_streambuf_char__Pninc(this) = ch) :
833 call_basic_streambuf_char_overflow(this, ch);
836 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
837 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
838 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sungetc, 4)
839 int __thiscall basic_streambuf_char_sungetc(basic_streambuf_char *this)
841 TRACE("(%p)\n", this);
842 if(*this->prpos && *this->prpos>*this->prbuf) {
845 return **this->prpos;
848 return call_basic_streambuf_char_pbackfail(this, EOF);
851 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
852 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
853 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_stossc, 4)
854 void __thiscall basic_streambuf_char_stossc(basic_streambuf_char *this)
856 TRACE("(%p)\n", this);
857 if(basic_streambuf_char__Gnavail(this))
858 basic_streambuf_char__Gninc(this);
860 call_basic_streambuf_char_uflow(this);
863 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
864 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
865 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sbumpc, 4)
866 int __thiscall basic_streambuf_char_sbumpc(basic_streambuf_char *this)
868 TRACE("(%p)\n", this);
869 return basic_streambuf_char__Gnavail(this) ?
870 *basic_streambuf_char__Gninc(this) : call_basic_streambuf_char_uflow(this);
873 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
874 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
875 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetc, 4)
876 int __thiscall basic_streambuf_char_sgetc(basic_streambuf_char *this)
878 TRACE("(%p)\n", this);
879 return basic_streambuf_char__Gnavail(this) ?
880 *basic_streambuf_char_gptr(this) : call_basic_streambuf_char_underflow(this);
883 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
884 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
885 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_snextc, 4)
886 int __thiscall basic_streambuf_char_snextc(basic_streambuf_char *this)
888 TRACE("(%p)\n", this);
890 if(basic_streambuf_char__Gnavail(this) > 1)
891 return *basic_streambuf_char__Gnpreinc(this);
892 return basic_streambuf_char_sbumpc(this)==EOF ?
893 EOF : basic_streambuf_char_sgetc(this);
896 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z */
897 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z */
898 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsgetn, 12)
899 #define call_basic_streambuf_char_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, \
900 streamsize, (basic_streambuf_char*, char*, streamsize), (this, ptr, count))
901 streamsize __thiscall basic_streambuf_char_xsgetn(basic_streambuf_char *this, char *ptr, streamsize count)
903 TRACE("(%p %p %lu)\n", this, ptr, count);
904 return call_basic_streambuf_char__Xsgetn_s(this, ptr, -1, count);
907 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z */
908 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z */
909 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsputn, 12)
910 #define call_basic_streambuf_char_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 32, \
911 streamsize, (basic_streambuf_char*, const char*, streamsize), (this, ptr, count))
912 streamsize __thiscall basic_streambuf_char_xsputn(basic_streambuf_char *this, const char *ptr, streamsize count)
914 streamsize copied, chunk;
916 TRACE("(%p %p %lu)\n", this, ptr, count);
918 for(copied=0; copied<count;) {
919 chunk = basic_streambuf_char__Pnavail(this);
920 if(chunk > count-copied)
921 chunk = count-copied;
924 memcpy(*this->pwpos, ptr+copied, chunk);
925 *this->pwpos += chunk;
926 *this->pwsize -= chunk;
928 }else if(call_basic_streambuf_char_overflow(this, ptr[copied]) != EOF) {
938 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z */
939 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@Z */
940 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputn, 12)
941 streamsize __thiscall basic_streambuf_char_sputn(basic_streambuf_char *this, const char *ptr, streamsize count)
943 TRACE("(%p %p %lu)\n", this, ptr, count);
944 return call_basic_streambuf_char_xsputn(this, ptr, count);
947 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z */
948 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z */
949 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG00@Z */
950 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z */
951 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setp_next, 16)
952 void __thiscall basic_streambuf_wchar_setp_next(basic_streambuf_wchar *this, wchar_t *first, wchar_t *next, wchar_t *last)
954 TRACE("(%p %p %p %p)\n", this, first, next, last);
958 this->wsize = last-next;
961 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W0@Z */
962 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W0@Z */
963 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG0@Z */
964 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG0@Z */
965 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setp, 12)
966 void __thiscall basic_streambuf_wchar_setp(basic_streambuf_wchar *this, wchar_t *first, wchar_t *last)
968 basic_streambuf_wchar_setp_next(this, first, first, last);
971 /* ?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z */
972 /* ?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z */
973 /* ?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG00@Z */
974 /* ?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z */
975 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setg, 16)
976 void __thiscall basic_streambuf_wchar_setg(basic_streambuf_wchar *this, wchar_t *first, wchar_t *next, wchar_t *last)
978 TRACE("(%p %p %p %p)\n", this, first, next, last);
982 this->rsize = last-next;
985 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXXZ */
986 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXXZ */
987 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXXZ */
988 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXXZ */
989 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init_empty, 4)
990 void __thiscall basic_streambuf_wchar__Init_empty(basic_streambuf_wchar *this)
992 TRACE("(%p)\n", this);
994 this->prbuf = &this->rbuf;
995 this->pwbuf = &this->wbuf;
996 this->prpos = &this->rpos;
997 this->pwpos = &this->wpos;
998 this->prsize = &this->rsize;
999 this->pwsize = &this->wsize;
1001 basic_streambuf_wchar_setp(this, NULL, NULL);
1002 basic_streambuf_wchar_setg(this, NULL, NULL, NULL);
1005 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAE@W4_Uninitialized@1@@Z */
1006 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
1007 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_ctor_uninitialized, 8)
1008 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_ctor_uninitialized(basic_streambuf_wchar *this, int uninitialized)
1010 TRACE("(%p %d)\n", this, uninitialized);
1011 this->vtable = &MSVCP_basic_streambuf_wchar_vtable;
1012 mutex_ctor(&this->lock);
1016 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@W4_Uninitialized@1@@Z */
1017 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
1018 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor_uninitialized, 8)
1019 basic_streambuf_wchar* __thiscall basic_streambuf_short_ctor_uninitialized(basic_streambuf_wchar *this, int uninitialized)
1021 TRACE("(%p %d)\n", this, uninitialized);
1022 basic_streambuf_wchar_ctor_uninitialized(this, uninitialized);
1023 this->vtable = &MSVCP_basic_streambuf_short_vtable;
1027 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
1028 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
1029 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_ctor, 4)
1030 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_ctor(basic_streambuf_wchar *this)
1032 TRACE("(%p)\n", this);
1034 this->vtable = &MSVCP_basic_streambuf_wchar_vtable;
1035 mutex_ctor(&this->lock);
1036 this->loc = MSVCRT_operator_new(sizeof(locale));
1037 locale_ctor(this->loc);
1038 basic_streambuf_wchar__Init_empty(this);
1043 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@XZ */
1044 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@XZ */
1045 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor, 4)
1046 basic_streambuf_wchar* __thiscall basic_streambuf_short_ctor(basic_streambuf_wchar *this)
1048 TRACE("(%p)\n", this);
1049 basic_streambuf_wchar_ctor(this);
1050 this->vtable = &MSVCP_basic_streambuf_short_vtable;
1054 /* ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
1055 /* ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
1056 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UAE@XZ */
1057 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */
1058 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_dtor, 4)
1059 void __thiscall basic_streambuf_wchar_dtor(basic_streambuf_wchar *this)
1061 TRACE("(%p)\n", this);
1063 mutex_dtor(&this->lock);
1064 locale_dtor(this->loc);
1065 MSVCRT_operator_delete(this->loc);
1068 DEFINE_THISCALL_WRAPPER(MSVCP_basic_streambuf_wchar_vector_dtor, 8)
1069 basic_streambuf_wchar* __thiscall MSVCP_basic_streambuf_wchar_vector_dtor(basic_streambuf_wchar *this, unsigned int flags)
1071 TRACE("(%p %x)\n", this, flags);
1073 /* we have an array, with the number of elements stored before the first object */
1074 int i, *ptr = (int *)this-1;
1076 for(i=*ptr-1; i>=0; i--)
1077 basic_streambuf_wchar_dtor(this+i);
1078 MSVCRT_operator_delete(ptr);
1080 basic_streambuf_wchar_dtor(this);
1082 MSVCRT_operator_delete(this);
1088 DEFINE_THISCALL_WRAPPER(MSVCP_basic_streambuf_short_vector_dtor, 8)
1089 basic_streambuf_wchar* __thiscall MSVCP_basic_streambuf_short_vector_dtor(basic_streambuf_wchar *this, unsigned int flags)
1091 TRACE("(%p %x)\n", this, flags);
1092 return MSVCP_basic_streambuf_wchar_vector_dtor(this, flags);
1095 /* ?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEHXZ */
1096 /* ?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ */
1097 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
1098 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
1099 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gnavail, 4)
1100 streamsize __thiscall basic_streambuf_wchar__Gnavail(const basic_streambuf_wchar *this)
1102 TRACE("(%p)\n", this);
1103 return *this->prpos ? *this->prsize : 0;
1106 /* ?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1107 /* ?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1108 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1109 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1110 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gndec, 4)
1111 wchar_t* __thiscall basic_streambuf_wchar__Gndec(basic_streambuf_wchar *this)
1113 TRACE("(%p)\n", this);
1116 return *this->prpos;
1119 /* ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1120 /* ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1121 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1122 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1123 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gninc, 4)
1124 wchar_t* __thiscall basic_streambuf_wchar__Gninc(basic_streambuf_wchar *this)
1126 TRACE("(%p)\n", this);
1128 return (*this->prpos)++;
1131 /* ?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1132 /* ?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1133 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1134 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1135 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gnpreinc, 4)
1136 wchar_t* __thiscall basic_streambuf_wchar__Gnpreinc(basic_streambuf_wchar *this)
1138 TRACE("(%p)\n", this);
1141 return *this->prpos;
1144 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPAPA_W0PAH001@Z */
1145 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAPEA_W0PEAH001@Z */
1146 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAPAG0PAH001@Z */
1147 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAPEAG0PEAH001@Z */
1148 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init, 28)
1149 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)
1151 TRACE("(%p %p %p %p %p %p %p)\n", this, gf, gn, gc, pf, pn, pc);
1161 /* ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1162 /* ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1163 /* ?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1164 /* ?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1165 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Lock, 4)
1166 void __thiscall basic_streambuf_wchar__Lock(basic_streambuf_wchar *this)
1168 TRACE("(%p)\n", this);
1169 mutex_lock(&this->lock);
1172 /* ?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEHXZ */
1173 /* ?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ */
1174 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
1175 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
1176 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Pnavail, 4)
1177 streamsize __thiscall basic_streambuf_wchar__Pnavail(const basic_streambuf_wchar *this)
1179 TRACE("(%p)\n", this);
1180 return *this->pwpos ? *this->pwsize : 0;
1183 /* ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1184 /* ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1185 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1186 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1187 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Pninc, 4)
1188 wchar_t* __thiscall basic_streambuf_wchar__Pninc(basic_streambuf_wchar *this)
1190 TRACE("(%p)\n", this);
1192 return (*this->pwpos)++;
1195 /* ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
1196 /* ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
1197 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
1198 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
1199 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_underflow, 4)
1200 #define call_basic_streambuf_wchar_underflow(this) CALL_VTBL_FUNC(this, 16, \
1201 unsigned short, (basic_streambuf_wchar*), (this))
1202 unsigned short __thiscall basic_streambuf_wchar_underflow(basic_streambuf_wchar *this)
1204 TRACE("(%p)\n", this);
1208 /* ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
1209 /* ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
1210 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
1211 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
1212 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_uflow, 4)
1213 #define call_basic_streambuf_wchar_uflow(this) CALL_VTBL_FUNC(this, 20, \
1214 unsigned short, (basic_streambuf_wchar*), (this))
1215 unsigned short __thiscall basic_streambuf_wchar_uflow(basic_streambuf_wchar *this)
1219 TRACE("(%p)\n", this);
1221 if(call_basic_streambuf_wchar_underflow(this)==WEOF)
1224 ret = **this->prpos;
1230 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WIH@Z */
1231 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_K_J@Z */
1232 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGIH@Z */
1233 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_K_J@Z */
1234 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Xsgetn_s, 16)
1235 #define call_basic_streambuf_wchar__Xsgetn_s(this, ptr, size, count) CALL_VTBL_FUNC(this, 28, \
1236 streamsize, (basic_streambuf_wchar*, wchar_t*, MSVCP_size_t, streamsize), (this, ptr, size, count))
1237 streamsize __thiscall basic_streambuf_wchar__Xsgetn_s(basic_streambuf_wchar *this, wchar_t *ptr, MSVCP_size_t size, streamsize count)
1239 streamsize copied, chunk;
1241 TRACE("(%p %p %lu %lu)\n", this, ptr, size, count);
1243 for(copied=0; copied<count && size;) {
1244 chunk = basic_streambuf_wchar__Gnavail(this);
1245 if(chunk > count-copied)
1246 chunk = count-copied;
1249 memcpy_s(ptr+copied, size, *this->prpos, chunk);
1250 *this->prpos += chunk;
1251 *this->prsize -= chunk;
1254 }else if((ptr[copied] = call_basic_streambuf_wchar_uflow(this)) != WEOF) {
1265 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPA_WIH@Z */
1266 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_K_J@Z */
1267 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGIH@Z */
1268 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_K_J@Z */
1269 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Sgetn_s, 16)
1270 streamsize __thiscall basic_streambuf_wchar__Sgetn_s(basic_streambuf_wchar *this, wchar_t *ptr, MSVCP_size_t size, streamsize count)
1272 TRACE("(%p %p %lu %lu)\n", this, ptr, size, count);
1273 return call_basic_streambuf_wchar__Xsgetn_s(this, ptr, size, count);
1276 /* ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1277 /* ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1278 /* ?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1279 /* ?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1280 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Unlock, 4)
1281 void __thiscall basic_streambuf_wchar__Unlock(basic_streambuf_wchar *this)
1283 TRACE("(%p)\n", this);
1284 mutex_unlock(&this->lock);
1287 /* ?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1288 /* ?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1289 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1290 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1291 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_eback, 4)
1292 wchar_t* __thiscall basic_streambuf_wchar_eback(const basic_streambuf_wchar *this)
1294 TRACE("(%p)\n", this);
1295 return *this->prbuf;
1298 /* ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1299 /* ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1300 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1301 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1302 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gptr, 4)
1303 wchar_t* __thiscall basic_streambuf_wchar_gptr(const basic_streambuf_wchar *this)
1305 TRACE("(%p)\n", this);
1306 return *this->prpos;
1309 /* ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1310 /* ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1311 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1312 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1313 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_egptr, 4)
1314 wchar_t* __thiscall basic_streambuf_wchar_egptr(const basic_streambuf_wchar *this)
1316 TRACE("(%p)\n", this);
1317 return *this->prpos+*this->prsize;
1320 /* ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1321 /* ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1322 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1323 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1324 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_epptr, 4)
1325 wchar_t* __thiscall basic_streambuf_wchar_epptr(const basic_streambuf_wchar *this)
1327 TRACE("(%p)\n", this);
1328 return *this->pwpos+*this->pwsize;
1331 /* ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z */
1332 /* ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z */
1333 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
1334 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
1335 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gbump, 8)
1336 void __thiscall basic_streambuf_wchar_gbump(basic_streambuf_wchar *this, int off)
1338 TRACE("(%p %d)\n", this, off);
1339 *this->prpos += off;
1340 *this->prsize -= off;
1343 /* ?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QBE?AVlocale@2@XZ */
1344 /* ?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEBA?AVlocale@2@XZ */
1345 /* ?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QBE?AVlocale@2@XZ */
1346 /* ?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEBA?AVlocale@2@XZ */
1347 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_getloc, 8)
1348 locale* __thiscall basic_streambuf_wchar_getloc(const basic_streambuf_wchar *this, locale *ret)
1350 TRACE("(%p)\n", this);
1351 return locale_copy_ctor(ret, this->loc);
1354 /* ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z */
1355 /* ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z */
1356 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEXABVlocale@2@@Z */
1357 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z */
1358 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_imbue, 8)
1359 #define call_basic_streambuf_wchar_imbue(this, loc) CALL_VTBL_FUNC(this, 52, \
1360 void, (basic_streambuf_wchar*, const locale*), (this, loc))
1361 void __thiscall basic_streambuf_wchar_imbue(basic_streambuf_wchar *this, const locale *loc)
1363 TRACE("(%p %p)\n", this, loc);
1366 /* ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
1367 /* ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
1368 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
1369 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
1370 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_overflow, 8)
1371 #define call_basic_streambuf_wchar_overflow(this, ch) CALL_VTBL_FUNC(this, 4, \
1372 unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
1373 unsigned short __thiscall basic_streambuf_wchar_overflow(basic_streambuf_wchar *this, unsigned short ch)
1375 TRACE("(%p %d)\n", this, ch);
1379 /* ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
1380 /* ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
1381 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
1382 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
1383 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbackfail, 8)
1384 #define call_basic_streambuf_wchar_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, \
1385 unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
1386 unsigned short __thiscall basic_streambuf_wchar_pbackfail(basic_streambuf_wchar *this, unsigned short ch)
1388 TRACE("(%p %d)\n", this, ch);
1392 /* ?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1393 /* ?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1394 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1395 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1396 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbase, 4)
1397 wchar_t* __thiscall basic_streambuf_wchar_pbase(const basic_streambuf_wchar *this)
1399 TRACE("(%p)\n", this);
1400 return *this->pwbuf;
1403 /* ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z */
1404 /* ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z */
1405 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
1406 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
1407 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbump, 8)
1408 void __thiscall basic_streambuf_wchar_pbump(basic_streambuf_wchar *this, int off)
1410 TRACE("(%p %d)\n", this, off);
1411 *this->pwpos += off;
1412 *this->pwsize -= off;
1415 /* ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1416 /* ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1417 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1418 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1419 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pptr, 4)
1420 wchar_t* __thiscall basic_streambuf_wchar_pptr(const basic_streambuf_wchar *this)
1422 TRACE("(%p)\n", this);
1423 return *this->pwpos;
1426 /* ?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
1427 /* ?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
1428 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
1429 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
1430 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubimbue, 12)
1431 locale* __thiscall basic_streambuf_wchar_pubimbue(basic_streambuf_wchar *this, locale *ret, const locale *loc)
1433 TRACE("(%p %p)\n", this, loc);
1434 memcpy(ret, this->loc, sizeof(locale));
1435 call_basic_streambuf_wchar_imbue(this, loc);
1436 locale_copy_ctor(this->loc, loc);
1440 /* ?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
1441 /* ?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
1442 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
1443 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
1444 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekoff, 20)
1445 #define call_basic_streambuf_wchar_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 36, \
1446 fpos_int*, (basic_streambuf_wchar*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
1447 fpos_int* __thiscall basic_streambuf_wchar_seekoff(basic_streambuf_wchar *this,
1448 fpos_int *ret, streamoff off, int way, int mode)
1450 TRACE("(%p %lu %d %d)\n", this, off, way, mode);
1457 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
1458 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
1459 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
1460 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
1461 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff, 20)
1462 fpos_int* __thiscall basic_streambuf_wchar_pubseekoff(basic_streambuf_wchar *this,
1463 fpos_int *ret, streamoff off, int way, int mode)
1465 TRACE("(%p %lu %d %d)\n", this, off, way, mode);
1466 return call_basic_streambuf_wchar_seekoff(this, ret, off, way, mode);
1469 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
1470 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
1471 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
1472 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
1473 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff_old, 20)
1474 fpos_int* __thiscall basic_streambuf_wchar_pubseekoff_old(basic_streambuf_wchar *this,
1475 fpos_int *ret, streamoff off, unsigned int way, unsigned int mode)
1477 TRACE("(%p %lu %d %d)\n", this, off, way, mode);
1478 return basic_streambuf_wchar_pubseekoff(this, ret, off, way, mode);
1481 /* ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
1482 /* ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
1483 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
1484 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
1485 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekpos, 36)
1486 #define call_basic_streambuf_wchar_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 40, \
1487 fpos_int*, (basic_streambuf_wchar*, fpos_int*, fpos_int, int), (this, ret, pos, mode))
1488 fpos_int* __thiscall basic_streambuf_wchar_seekpos(basic_streambuf_wchar *this,
1489 fpos_int *ret, fpos_int pos, int mode)
1491 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
1498 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
1499 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
1500 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
1501 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
1502 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekpos, 36)
1503 fpos_int* __thiscall basic_streambuf_wchar_pubseekpos(basic_streambuf_wchar *this,
1504 fpos_int *ret, fpos_int pos, int mode)
1506 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
1507 return call_basic_streambuf_wchar_seekpos(this, ret, pos, mode);
1510 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
1511 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
1512 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
1513 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
1514 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekpos_old, 36)
1515 fpos_int* __thiscall basic_streambuf_wchar_pubseekpos_old(basic_streambuf_wchar *this,
1516 fpos_int *ret, fpos_int pos, unsigned int mode)
1518 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos), mode);
1519 return basic_streambuf_wchar_pubseekpos(this, ret, pos, mode);
1522 /* ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEPAV12@PA_WH@Z */
1523 /* ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV12@PEA_W_J@Z */
1524 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEPAV12@PAGH@Z */
1525 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAPEAV12@PEAG_J@Z */
1526 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setbuf, 12)
1527 #define call_basic_streambuf_wchar_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 44, \
1528 basic_streambuf_wchar*, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, buf, count))
1529 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_setbuf(basic_streambuf_wchar *this, wchar_t *buf, streamsize count)
1531 TRACE("(%p %p %lu)\n", this, buf, count);
1535 /* ?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PA_WH@Z */
1536 /* ?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEA_W_J@Z */
1537 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PAGH@Z */
1538 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEAG_J@Z */
1539 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsetbuf, 12)
1540 basic_streambuf_wchar* __thiscall basic_streambuf_wchar_pubsetbuf(basic_streambuf_wchar *this, wchar_t *buf, streamsize count)
1542 TRACE("(%p %p %lu)\n", this, buf, count);
1543 return call_basic_streambuf_wchar_setbuf(this, buf, count);
1546 /* ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
1547 /* ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ */
1548 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
1549 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAHXZ */
1550 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sync, 4)
1551 #define call_basic_streambuf_wchar_sync(this) CALL_VTBL_FUNC(this, 48, \
1552 int, (basic_streambuf_wchar*), (this))
1553 int __thiscall basic_streambuf_wchar_sync(basic_streambuf_wchar *this)
1555 TRACE("(%p)\n", this);
1559 /* ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
1560 /* ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAHXZ */
1561 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
1562 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHXZ */
1563 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsync, 4)
1564 int __thiscall basic_streambuf_wchar_pubsync(basic_streambuf_wchar *this)
1566 TRACE("(%p)\n", this);
1567 return call_basic_streambuf_wchar_sync(this);
1570 /* ?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPA_WH@Z */
1571 /* ?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z */
1572 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGH@Z */
1573 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z */
1574 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetn, 12)
1575 streamsize __thiscall basic_streambuf_wchar_sgetn(basic_streambuf_wchar *this, wchar_t *ptr, streamsize count)
1577 TRACE("(%p %p %lu)\n", this, ptr, count);
1578 return call_basic_streambuf_wchar__Xsgetn_s(this, ptr, -1, count);
1581 /* ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
1582 /* ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JXZ */
1583 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
1584 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JXZ */
1585 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_showmanyc, 4)
1586 #define call_basic_streambuf_wchar_showmanyc(this) CALL_VTBL_FUNC(this, 12, \
1587 streamsize, (basic_streambuf_wchar*), (this))
1588 streamsize __thiscall basic_streambuf_wchar_showmanyc(basic_streambuf_wchar *this)
1590 TRACE("(%p)\n", this);
1594 /* ?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
1595 /* ?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JXZ */
1596 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
1597 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JXZ */
1598 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_in_avail, 4)
1599 streamsize __thiscall basic_streambuf_wchar_in_avail(basic_streambuf_wchar *this)
1603 TRACE("(%p)\n", this);
1605 ret = basic_streambuf_wchar__Gnavail(this);
1606 return ret ? ret : call_basic_streambuf_wchar_showmanyc(this);
1609 /* ?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z */
1610 /* ?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z */
1611 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
1612 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z */
1613 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputbackc, 8)
1614 unsigned short __thiscall basic_streambuf_wchar_sputbackc(basic_streambuf_wchar *this, wchar_t ch)
1616 TRACE("(%p %d)\n", this, ch);
1617 if(*this->prpos && *this->prpos>*this->prbuf && (*this->prpos)[-1]==ch) {
1623 return call_basic_streambuf_wchar_pbackfail(this, ch);
1626 /* ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z */
1627 /* ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z */
1628 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
1629 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHG@Z */
1630 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputc, 8)
1631 unsigned short __thiscall basic_streambuf_wchar_sputc(basic_streambuf_wchar *this, wchar_t ch)
1633 TRACE("(%p %d)\n", this, ch);
1634 return basic_streambuf_wchar__Pnavail(this) ?
1635 (*basic_streambuf_wchar__Pninc(this) = ch) :
1636 call_basic_streambuf_wchar_overflow(this, ch);
1639 /* ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
1640 /* ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
1641 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
1642 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
1643 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sungetc, 4)
1644 unsigned short __thiscall basic_streambuf_wchar_sungetc(basic_streambuf_wchar *this)
1646 TRACE("(%p)\n", this);
1647 if(*this->prpos && *this->prpos>*this->prbuf) {
1650 return **this->prpos;
1653 return call_basic_streambuf_wchar_pbackfail(this, WEOF);
1656 /* ?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1657 /* ?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1658 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1659 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1660 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_stossc, 4)
1661 void __thiscall basic_streambuf_wchar_stossc(basic_streambuf_wchar *this)
1663 TRACE("(%p)\n", this);
1664 if(basic_streambuf_wchar__Gnavail(this))
1665 basic_streambuf_wchar__Gninc(this);
1667 call_basic_streambuf_wchar_uflow(this);
1670 /* ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
1671 /* ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
1672 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
1673 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
1674 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sbumpc, 4)
1675 unsigned short __thiscall basic_streambuf_wchar_sbumpc(basic_streambuf_wchar *this)
1677 TRACE("(%p)\n", this);
1678 return basic_streambuf_wchar__Gnavail(this) ?
1679 *basic_streambuf_wchar__Gninc(this) : call_basic_streambuf_wchar_uflow(this);
1682 /* ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
1683 /* ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
1684 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
1685 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
1686 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetc, 4)
1687 unsigned short __thiscall basic_streambuf_wchar_sgetc(basic_streambuf_wchar *this)
1689 TRACE("(%p)\n", this);
1690 return basic_streambuf_wchar__Gnavail(this) ?
1691 *basic_streambuf_wchar_gptr(this) : call_basic_streambuf_wchar_underflow(this);
1694 /* ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
1695 /* ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
1696 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
1697 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
1698 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_snextc, 4)
1699 unsigned short __thiscall basic_streambuf_wchar_snextc(basic_streambuf_wchar *this)
1701 TRACE("(%p)\n", this);
1703 if(basic_streambuf_wchar__Gnavail(this) > 1)
1704 return *basic_streambuf_wchar__Gnpreinc(this);
1705 return basic_streambuf_wchar_sbumpc(this)==WEOF ?
1706 WEOF : basic_streambuf_wchar_sgetc(this);
1709 /* ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WH@Z */
1710 /* ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_J@Z */
1711 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGH@Z */
1712 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_J@Z */
1713 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsgetn, 12)
1714 #define call_basic_streambuf_wchar_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, \
1715 streamsize, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, ptr, count))
1716 streamsize __thiscall basic_streambuf_wchar_xsgetn(basic_streambuf_wchar *this, wchar_t *ptr, streamsize count)
1718 TRACE("(%p %p %lu)\n", this, ptr, count);
1719 return call_basic_streambuf_wchar__Xsgetn_s(this, ptr, -1, count);
1722 /* ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPB_WH@Z */
1723 /* ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEB_W_J@Z */
1724 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPBGH@Z */
1725 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEBG_J@Z */
1726 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsputn, 12)
1727 #define call_basic_streambuf_wchar_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 32, \
1728 streamsize, (basic_streambuf_wchar*, const wchar_t*, streamsize), (this, ptr, count))
1729 streamsize __thiscall basic_streambuf_wchar_xsputn(basic_streambuf_wchar *this, const wchar_t *ptr, streamsize count)
1731 streamsize copied, chunk;
1733 TRACE("(%p %p %lu)\n", this, ptr, count);
1735 for(copied=0; copied<count;) {
1736 chunk = basic_streambuf_wchar__Pnavail(this);
1737 if(chunk > count-copied)
1738 chunk = count-copied;
1741 memcpy(*this->pwpos, ptr+copied, chunk);
1742 *this->pwpos += chunk;
1743 *this->pwsize -= chunk;
1745 }else if(call_basic_streambuf_wchar_overflow(this, ptr[copied]) != WEOF) {
1755 /* ?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPB_WH@Z */
1756 /* ?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEB_W_J@Z */
1757 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPBGH@Z */
1758 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEBG_J@Z */
1759 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputn, 12)
1760 streamsize __thiscall basic_streambuf_wchar_sputn(basic_streambuf_wchar *this, const wchar_t *ptr, streamsize count)
1762 TRACE("(%p %p %lu)\n", this, ptr, count);
1763 return call_basic_streambuf_wchar_xsputn(this, ptr, count);
1766 /* ??0ios_base@std@@IAE@XZ */
1767 /* ??0ios_base@std@@IEAA@XZ */
1768 DEFINE_THISCALL_WRAPPER(ios_base_ctor, 4)
1769 ios_base* __thiscall ios_base_ctor(ios_base *this)
1771 TRACE("(%p)\n", this);
1772 this->vtable = &MSVCP_ios_base_vtable;
1776 /* ??0ios_base@std@@QAE@ABV01@@Z */
1777 /* ??0ios_base@std@@QEAA@AEBV01@@Z */
1778 DEFINE_THISCALL_WRAPPER(ios_base_copy_ctor, 8)
1779 ios_base* __thiscall ios_base_copy_ctor(ios_base *this, const ios_base *copy)
1781 TRACE("(%p %p)\n", this, copy);
1783 this->vtable = &MSVCP_ios_base_vtable;
1787 /* ?_Callfns@ios_base@std@@AAEXW4event@12@@Z */
1788 /* ?_Callfns@ios_base@std@@AEAAXW4event@12@@Z */
1789 DEFINE_THISCALL_WRAPPER(ios_base_Callfns, 8)
1790 void __thiscall ios_base_Callfns(ios_base *this, IOS_BASE_event event)
1792 IOS_BASE_fnarray *cur;
1794 TRACE("(%p %x)\n", this, event);
1796 for(cur=this->calls; cur; cur=cur->next)
1797 cur->event_handler(event, this, cur->index);
1800 /* ?_Tidy@ios_base@std@@AAAXXZ */
1801 /* ?_Tidy@ios_base@std@@AEAAXXZ */
1802 void CDECL ios_base_Tidy(ios_base *this)
1804 IOS_BASE_iosarray *arr_cur, *arr_next;
1805 IOS_BASE_fnarray *event_cur, *event_next;
1807 TRACE("(%p)\n", this);
1809 ios_base_Callfns(this, EVENT_erase_event);
1811 for(arr_cur=this->arr; arr_cur; arr_cur=arr_next) {
1812 arr_next = arr_cur->next;
1813 MSVCRT_operator_delete(arr_cur);
1817 for(event_cur=this->calls; event_cur; event_cur=event_next) {
1818 event_next = event_cur->next;
1819 MSVCRT_operator_delete(event_cur);
1824 /* ?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z */
1825 /* ?_Ios_base_dtor@ios_base@std@@CAXPEAV12@@Z */
1826 void CDECL ios_base_Ios_base_dtor(ios_base *obj)
1828 TRACE("(%p)\n", obj);
1830 locale_dtor(obj->loc);
1831 MSVCRT_operator_delete(obj->loc);
1836 /* ??1ios_base@std@@UAE@XZ */
1837 /* ??1ios_base@std@@UEAA@XZ */
1838 DEFINE_THISCALL_WRAPPER(ios_base_dtor, 4)
1839 void __thiscall ios_base_dtor(ios_base *this)
1841 ios_base_Ios_base_dtor(this);
1844 DEFINE_THISCALL_WRAPPER(MSVCP_ios_base_vector_dtor, 8)
1845 ios_base* __thiscall MSVCP_ios_base_vector_dtor(ios_base *this, unsigned int flags)
1847 TRACE("(%p %x)\n", this, flags);
1849 /* we have an array, with the number of elements stored before the first object */
1850 int i, *ptr = (int *)this-1;
1852 for(i=*ptr-1; i>=0; i--)
1853 ios_base_dtor(this+i);
1854 MSVCRT_operator_delete(ptr);
1856 ios_base_dtor(this);
1858 MSVCRT_operator_delete(this);
1864 DEFINE_THISCALL_WRAPPER(MSVCP_iosb_vector_dtor, 8)
1865 void* __thiscall MSVCP_iosb_vector_dtor(void *this, unsigned int flags)
1867 TRACE("(%p %x)\n", this, flags);
1869 int *ptr = (int *)this-1;
1870 MSVCRT_operator_delete(ptr);
1873 MSVCRT_operator_delete(this);
1879 /* ?_Findarr@ios_base@std@@AAEAAU_Iosarray@12@H@Z */
1880 /* ?_Findarr@ios_base@std@@AEAAAEAU_Iosarray@12@H@Z */
1881 DEFINE_THISCALL_WRAPPER(ios_base_Findarr, 8)
1882 IOS_BASE_iosarray* __thiscall ios_base_Findarr(ios_base *this, int index)
1884 IOS_BASE_iosarray *p;
1886 TRACE("(%p %d)\n", this, index);
1888 for(p=this->arr; p; p=p->next) {
1889 if(p->index == index)
1893 for(p=this->arr; p; p=p->next) {
1894 if(!p->long_val && !p->ptr_val) {
1900 p = MSVCRT_operator_new(sizeof(IOS_BASE_iosarray));
1901 p->next = this->arr;
1909 /* ?iword@ios_base@std@@QAEAAJH@Z */
1910 /* ?iword@ios_base@std@@QEAAAEAJH@Z */
1911 DEFINE_THISCALL_WRAPPER(ios_base_iword, 8)
1912 LONG* __thiscall ios_base_iword(ios_base *this, int index)
1914 TRACE("(%p %d)\n", this, index);
1915 return &ios_base_Findarr(this, index)->long_val;
1918 /* ?pword@ios_base@std@@QAEAAPAXH@Z */
1919 /* ?pword@ios_base@std@@QEAAAEAPEAXH@Z */
1920 DEFINE_THISCALL_WRAPPER(ios_base_pword, 8)
1921 void** __thiscall ios_base_pword(ios_base *this, int index)
1923 TRACE("(%p %d)\n", this, index);
1924 return &ios_base_Findarr(this, index)->ptr_val;
1927 /* ?register_callback@ios_base@std@@QAEXP6AXW4event@12@AAV12@H@ZH@Z */
1928 /* ?register_callback@ios_base@std@@QEAAXP6AXW4event@12@AEAV12@H@ZH@Z */
1929 DEFINE_THISCALL_WRAPPER(ios_base_register_callback, 12)
1930 void __thiscall ios_base_register_callback(ios_base *this, IOS_BASE_event_callback callback, int index)
1932 IOS_BASE_fnarray *event;
1934 TRACE("(%p %p %d)\n", this, callback, index);
1936 event = MSVCRT_operator_new(sizeof(IOS_BASE_fnarray));
1937 event->next = this->calls;
1938 event->index = index;
1939 event->event_handler = callback;
1940 this->calls = event;
1943 /* ?clear@ios_base@std@@QAEXH_N@Z */
1944 /* ?clear@ios_base@std@@QEAAXH_N@Z */
1945 DEFINE_THISCALL_WRAPPER(ios_base_clear_reraise, 12)
1946 void __thiscall ios_base_clear_reraise(ios_base *this, IOSB_iostate state, MSVCP_bool reraise)
1948 TRACE("(%p %x %x)\n", this, state, reraise);
1950 this->state = state & IOSTATE_mask;
1951 if(!(this->state & this->except))
1955 throw_exception(EXCEPTION_RERAISE, NULL);
1956 else if(this->state & this->except & IOSTATE_eofbit)
1957 throw_exception(EXCEPTION_FAILURE, "eofbit is set");
1958 else if(this->state & this->except & IOSTATE_failbit)
1959 throw_exception(EXCEPTION_FAILURE, "failbit is set");
1960 else if(this->state & this->except & IOSTATE_badbit)
1961 throw_exception(EXCEPTION_FAILURE, "badbit is set");
1962 else if(this->state & this->except & IOSTATE__Hardfail)
1963 throw_exception(EXCEPTION_FAILURE, "_Hardfail is set");
1966 /* ?clear@ios_base@std@@QAEXH@Z */
1967 /* ?clear@ios_base@std@@QEAAXH@Z */
1968 DEFINE_THISCALL_WRAPPER(ios_base_clear, 8)
1969 void __thiscall ios_base_clear(ios_base *this, IOSB_iostate state)
1971 ios_base_clear_reraise(this, state, FALSE);
1974 /* ?clear@ios_base@std@@QAEXI@Z */
1975 /* ?clear@ios_base@std@@QEAAXI@Z */
1976 DEFINE_THISCALL_WRAPPER(ios_base_clear_unsigned, 8)
1977 void __thiscall ios_base_clear_unsigned(ios_base *this, unsigned int state)
1979 ios_base_clear_reraise(this, (IOSB_iostate)state, FALSE);
1982 /* ?exceptions@ios_base@std@@QAEXH@Z */
1983 /* ?exceptions@ios_base@std@@QEAAXH@Z */
1984 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_set, 8)
1985 void __thiscall ios_base_exceptions_set(ios_base *this, IOSB_iostate state)
1987 TRACE("(%p %x)\n", this, state);
1988 this->except = state & IOSTATE_mask;
1989 ios_base_clear(this, this->state);
1992 /* ?exceptions@ios_base@std@@QAEXI@Z */
1993 /* ?exceptions@ios_base@std@@QEAAXI@Z */
1994 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_set_unsigned, 8)
1995 void __thiscall ios_base_exceptions_set_unsigned(ios_base *this, unsigned int state)
1997 TRACE("(%p %x)\n", this, state);
1998 ios_base_exceptions_set(this, state);
2001 /* ?exceptions@ios_base@std@@QBEHXZ */
2002 /* ?exceptions@ios_base@std@@QEBAHXZ */
2003 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_get, 4)
2004 IOSB_iostate __thiscall ios_base_exceptions_get(ios_base *this)
2006 TRACE("(%p)\n", this);
2007 return this->except;
2010 /* ?copyfmt@ios_base@std@@QAEAAV12@ABV12@@Z */
2011 /* ?copyfmt@ios_base@std@@QEAAAEAV12@AEBV12@@Z */
2012 DEFINE_THISCALL_WRAPPER(ios_base_copyfmt, 8)
2013 ios_base* __thiscall ios_base_copyfmt(ios_base *this, const ios_base *rhs)
2015 TRACE("(%p %p)\n", this, rhs);
2018 IOS_BASE_iosarray *arr_cur;
2019 IOS_BASE_fnarray *event_cur;
2021 ios_base_Tidy(this);
2023 for(arr_cur=rhs->arr; arr_cur; arr_cur=arr_cur->next) {
2024 if(arr_cur->long_val)
2025 *ios_base_iword(this, arr_cur->index) = arr_cur->long_val;
2026 if(arr_cur->ptr_val)
2027 *ios_base_pword(this, arr_cur->index) = arr_cur->ptr_val;
2029 this->stdstr = rhs->stdstr;
2030 this->fmtfl = rhs->fmtfl;
2031 this->prec = rhs->prec;
2032 this->wide = rhs->wide;
2033 locale_operator_assign(this->loc, rhs->loc);
2035 for(event_cur=rhs->calls; event_cur; event_cur=event_cur->next)
2036 ios_base_register_callback(this, event_cur->event_handler, event_cur->index);
2038 ios_base_Callfns(this, EVENT_copyfmt_event);
2039 ios_base_exceptions_set(this, rhs->except);
2045 /* ??4ios_base@std@@QAEAAV01@ABV01@@Z */
2046 /* ??4ios_base@std@@QEAAAEAV01@AEBV01@@Z */
2047 DEFINE_THISCALL_WRAPPER(ios_base_assign, 8)
2048 ios_base* __thiscall ios_base_assign(ios_base *this, const ios_base *right)
2050 TRACE("(%p %p)\n", this, right);
2053 this->state = right->state;
2054 ios_base_copyfmt(this, right);
2060 /* ?fail@ios_base@std@@QBE_NXZ */
2061 /* ?fail@ios_base@std@@QEBA_NXZ */
2062 DEFINE_THISCALL_WRAPPER(ios_base_fail, 4)
2063 MSVCP_bool __thiscall ios_base_fail(const ios_base *this)
2065 TRACE("(%p)\n", this);
2066 return (this->state & (IOSTATE_failbit|IOSTATE_badbit)) != 0;
2069 /* ??7ios_base@std@@QBE_NXZ */
2070 /* ??7ios_base@std@@QEBA_NXZ */
2071 DEFINE_THISCALL_WRAPPER(ios_base_op_succ, 4)
2072 MSVCP_bool __thiscall ios_base_op_succ(const ios_base *this)
2074 TRACE("(%p)\n", this);
2075 return ios_base_fail(this);
2078 /* ??Bios_base@std@@QBEPAXXZ */
2079 /* ??Bios_base@std@@QEBAPEAXXZ */
2080 DEFINE_THISCALL_WRAPPER(ios_base_op_fail, 4)
2081 void* __thiscall ios_base_op_fail(const ios_base *this)
2083 TRACE("(%p)\n", this);
2084 return ios_base_fail(this) ? NULL : (void*)this;
2087 /* ?_Addstd@ios_base@std@@SAXPAV12@@Z */
2088 /* ?_Addstd@ios_base@std@@SAXPEAV12@@Z */
2089 void CDECL ios_base_Addstd(ios_base *add)
2091 FIXME("(%p) stub\n", add);
2094 /* ?_Index_func@ios_base@std@@CAAAHXZ */
2095 /* ?_Index_func@ios_base@std@@CAAEAHXZ */
2096 int* CDECL ios_base_Index_func(void)
2099 return &ios_base_Index;
2102 /* ?_Init@ios_base@std@@IAEXXZ */
2103 /* ?_Init@ios_base@std@@IEAAXXZ */
2104 DEFINE_THISCALL_WRAPPER(ios_base_Init, 4)
2105 void __thiscall ios_base_Init(ios_base *this)
2107 TRACE("(%p)\n", this);
2110 this->state = this->except = IOSTATE_goodbit;
2111 this->fmtfl = FMTFLAG_skipws | FMTFLAG_dec;
2116 this->loc = MSVCRT_operator_new(sizeof(locale));
2117 locale_ctor(this->loc);
2120 /* ?_Sync_func@ios_base@std@@CAAA_NXZ */
2121 /* ?_Sync_func@ios_base@std@@CAAEA_NXZ */
2122 MSVCP_bool* CDECL ios_base_Sync_func(void)
2125 return &ios_base_Sync;
2128 /* ?bad@ios_base@std@@QBE_NXZ */
2129 /* ?bad@ios_base@std@@QEBA_NXZ */
2130 DEFINE_THISCALL_WRAPPER(ios_base_bad, 4)
2131 MSVCP_bool __thiscall ios_base_bad(const ios_base *this)
2133 TRACE("(%p)\n", this);
2134 return (this->state & IOSTATE_badbit) != 0;
2137 /* ?eof@ios_base@std@@QBE_NXZ */
2138 /* ?eof@ios_base@std@@QEBA_NXZ */
2139 DEFINE_THISCALL_WRAPPER(ios_base_eof, 4)
2140 MSVCP_bool __thiscall ios_base_eof(const ios_base *this)
2142 TRACE("(%p)\n", this);
2143 return (this->state & IOSTATE_eofbit) != 0;
2146 /* ?flags@ios_base@std@@QAEHH@Z */
2147 /* ?flags@ios_base@std@@QEAAHH@Z */
2148 DEFINE_THISCALL_WRAPPER(ios_base_flags_set, 8)
2149 IOSB_fmtflags __thiscall ios_base_flags_set(ios_base *this, IOSB_fmtflags flags)
2151 IOSB_fmtflags ret = this->fmtfl;
2153 TRACE("(%p %x)\n", this, flags);
2155 this->fmtfl = flags & FMTFLAG_mask;
2159 /* ?flags@ios_base@std@@QBEHXZ */
2160 /* ?flags@ios_base@std@@QEBAHXZ */
2161 DEFINE_THISCALL_WRAPPER(ios_base_flags_get, 4)
2162 IOSB_fmtflags __thiscall ios_base_flags_get(const ios_base *this)
2164 TRACE("(%p)\n", this);
2168 /* ?getloc@ios_base@std@@QBE?AVlocale@2@XZ */
2169 /* ?getloc@ios_base@std@@QEBA?AVlocale@2@XZ */
2170 DEFINE_THISCALL_WRAPPER(ios_base_getloc, 8)
2171 locale* __thiscall ios_base_getloc(const ios_base *this, locale *ret)
2173 TRACE("(%p)\n", this);
2174 return locale_copy_ctor(ret, this->loc);
2177 /* ?good@ios_base@std@@QBE_NXZ */
2178 /* ?good@ios_base@std@@QEBA_NXZ */
2179 DEFINE_THISCALL_WRAPPER(ios_base_good, 4)
2180 MSVCP_bool __thiscall ios_base_good(const ios_base *this)
2182 TRACE("(%p)\n", this);
2183 return this->state == IOSTATE_goodbit;
2186 /* ?imbue@ios_base@std@@QAE?AVlocale@2@ABV32@@Z */
2187 /* ?imbue@ios_base@std@@QEAA?AVlocale@2@AEBV32@@Z */
2188 DEFINE_THISCALL_WRAPPER(ios_base_imbue, 12)
2189 locale* __thiscall ios_base_imbue(ios_base *this, locale *ret, const locale *loc)
2191 TRACE("(%p %p)\n", this, loc);
2193 locale_copy_ctor(this->loc, loc);
2197 /* ?precision@ios_base@std@@QAEHH@Z */
2198 /* ?precision@ios_base@std@@QEAA_J_J@Z */
2199 DEFINE_THISCALL_WRAPPER(ios_base_precision_set, 8)
2200 MSVCP_size_t __thiscall ios_base_precision_set(ios_base *this, MSVCP_size_t precision)
2202 MSVCP_size_t ret = this->prec;
2204 TRACE("(%p %lu)\n", this, precision);
2206 this->prec = precision;
2210 /* ?precision@ios_base@std@@QBEHXZ */
2211 /* ?precision@ios_base@std@@QEBA_JXZ */
2212 DEFINE_THISCALL_WRAPPER(ios_base_precision_get, 4)
2213 MSVCP_size_t __thiscall ios_base_precision_get(const ios_base *this)
2215 TRACE("(%p)\n", this);
2219 /* ?rdstate@ios_base@std@@QBEHXZ */
2220 /* ?rdstate@ios_base@std@@QEBAHXZ */
2221 DEFINE_THISCALL_WRAPPER(ios_base_rdstate, 4)
2222 IOSB_iostate __thiscall ios_base_rdstate(const ios_base *this)
2224 TRACE("(%p)\n", this);
2228 /* ?setf@ios_base@std@@QAEHHH@Z */
2229 /* ?setf@ios_base@std@@QEAAHHH@Z */
2230 DEFINE_THISCALL_WRAPPER(ios_base_setf_mask, 12)
2231 IOSB_fmtflags __thiscall ios_base_setf_mask(ios_base *this, IOSB_fmtflags flags, IOSB_fmtflags mask)
2233 IOSB_fmtflags ret = this->fmtfl;
2235 TRACE("(%p %x %x)\n", this, flags, mask);
2237 this->fmtfl = (this->fmtfl & (~mask)) | (flags & mask & FMTFLAG_mask);
2241 /* ?setf@ios_base@std@@QAEHH@Z */
2242 /* ?setf@ios_base@std@@QEAAHH@Z */
2243 DEFINE_THISCALL_WRAPPER(ios_base_setf, 8)
2244 IOSB_fmtflags __thiscall ios_base_setf(ios_base *this, IOSB_fmtflags flags)
2246 return ios_base_setf_mask(this, flags, ~0);
2249 /* ?setstate@ios_base@std@@QAEXH_N@Z */
2250 /* ?setstate@ios_base@std@@QEAAXH_N@Z */
2251 DEFINE_THISCALL_WRAPPER(ios_base_setstate_reraise, 12)
2252 void __thiscall ios_base_setstate_reraise(ios_base *this, IOSB_iostate state, MSVCP_bool reraise)
2254 TRACE("(%p %x %x)\n", this, state, reraise);
2256 if(state != IOSTATE_goodbit)
2257 ios_base_clear_reraise(this, this->state | state, reraise);
2260 /* ?setstate@ios_base@std@@QAEXH@Z */
2261 /* ?setstate@ios_base@std@@QEAAXH@Z */
2262 DEFINE_THISCALL_WRAPPER(ios_base_setstate, 8)
2263 void __thiscall ios_base_setstate(ios_base *this, IOSB_iostate state)
2265 ios_base_setstate_reraise(this, state, FALSE);
2268 /* ?setstate@ios_base@std@@QAEXI@Z */
2269 /* ?setstate@ios_base@std@@QEAAXI@Z */
2270 DEFINE_THISCALL_WRAPPER(ios_base_setstate_unsigned, 8)
2271 void __thiscall ios_base_setstate_unsigned(ios_base *this, unsigned int state)
2273 ios_base_setstate_reraise(this, (IOSB_iostate)state, FALSE);
2276 /* ?sync_with_stdio@ios_base@std@@SA_N_N@Z */
2277 MSVCP_bool CDECL ios_base_sync_with_stdio(MSVCP_bool sync)
2282 TRACE("(%x)\n", sync);
2284 _Lockit_ctor_locktype(&lock, _LOCK_STREAM);
2285 ret = ios_base_Sync;
2286 ios_base_Sync = sync;
2287 _Lockit_dtor(&lock);
2291 /* ?unsetf@ios_base@std@@QAEXH@Z */
2292 /* ?unsetf@ios_base@std@@QEAAXH@Z */
2293 DEFINE_THISCALL_WRAPPER(ios_base_unsetf, 8)
2294 void __thiscall ios_base_unsetf(ios_base *this, IOSB_fmtflags flags)
2296 TRACE("(%p %x)\n", this, flags);
2297 this->fmtfl &= ~flags;
2300 /* ?width@ios_base@std@@QAEHH@Z */
2301 /* ?width@ios_base@std@@QEAA_J_J@Z */
2302 DEFINE_THISCALL_WRAPPER(ios_base_width_set, 8)
2303 MSVCP_size_t __thiscall ios_base_width_set(ios_base *this, MSVCP_size_t width)
2305 MSVCP_size_t ret = this->wide;
2307 TRACE("(%p %lu)\n", this, width);
2313 /* ?width@ios_base@std@@QBEHXZ */
2314 /* ?width@ios_base@std@@QEBA_JXZ */
2315 DEFINE_THISCALL_WRAPPER(ios_base_width_get, 4)
2316 MSVCP_size_t __thiscall ios_base_width_get(ios_base *this)
2318 TRACE("(%p)\n", this);
2322 /* ?xalloc@ios_base@std@@SAHXZ */
2323 int CDECL ios_base_xalloc(void)
2330 _Lockit_ctor_locktype(&lock, _LOCK_STREAM);
2331 ret = ios_base_Index++;
2332 _Lockit_dtor(&lock);
2336 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ */
2337 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ */
2338 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor, 4)
2339 basic_ios_char* __thiscall basic_ios_char_ctor(basic_ios_char *this)
2341 TRACE("(%p)\n", this);
2343 ios_base_ctor(&this->base);
2344 this->base.vtable = &MSVCP_basic_ios_char_vtable;
2348 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
2349 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
2350 DEFINE_THISCALL_WRAPPER(basic_ios_char_init, 12)
2351 void __thiscall basic_ios_char_init(basic_ios_char *this, basic_streambuf_char *streambuf, MSVCP_bool isstd)
2353 TRACE("(%p %p %x)\n", this, streambuf, isstd);
2354 ios_base_Init(&this->base);
2355 this->strbuf = streambuf;
2356 this->stream = NULL;
2360 ios_base_setstate(&this->base, IOSTATE_badbit);
2363 FIXME("standard streams not handled yet\n");
2366 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
2367 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
2368 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor_streambuf, 8)
2369 basic_ios_char* __thiscall basic_ios_char_ctor_streambuf(basic_ios_char *this, basic_streambuf_char *strbuf)
2371 TRACE("(%p %p)\n", this, strbuf);
2373 basic_ios_char_ctor(this);
2374 basic_ios_char_init(this, strbuf, FALSE);
2378 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ */
2379 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ */
2380 DEFINE_THISCALL_WRAPPER(basic_ios_char_dtor, 4)
2381 void __thiscall basic_ios_char_dtor(basic_ios_char *this)
2383 TRACE("(%p)\n", this);
2384 ios_base_dtor(&this->base);
2387 DEFINE_THISCALL_WRAPPER(MSVCP_basic_ios_char_vector_dtor, 8)
2388 basic_ios_char* __thiscall MSVCP_basic_ios_char_vector_dtor(basic_ios_char *this, unsigned int flags)
2390 TRACE("(%p %x) stub\n", this, flags);
2392 /* we have an array, with the number of elements stored before the first object */
2393 int i, *ptr = (int *)this-1;
2395 for(i=*ptr-1; i>=0; i--)
2396 basic_ios_char_dtor(this+i);
2397 MSVCRT_operator_delete(ptr);
2399 basic_ios_char_dtor(this);
2401 MSVCRT_operator_delete(this);
2407 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
2408 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
2409 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear_reraise, 12)
2410 void __thiscall basic_ios_char_clear_reraise(basic_ios_char *this, IOSB_iostate state, MSVCP_bool reraise)
2412 TRACE("(%p %x %x)\n", this, state, reraise);
2413 ios_base_clear_reraise(&this->base, state | (this->strbuf ? IOSTATE_goodbit : IOSTATE_badbit), reraise);
2416 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
2417 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
2418 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear, 8)
2419 void __thiscall basic_ios_char_clear(basic_ios_char *this, unsigned int state)
2421 basic_ios_char_clear_reraise(this, (IOSB_iostate)state, FALSE);
2424 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEAAV12@ABV12@@Z */
2425 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEBV12@@Z */
2426 DEFINE_THISCALL_WRAPPER(basic_ios_char_copyfmt, 8)
2427 basic_ios_char* __thiscall basic_ios_char_copyfmt(basic_ios_char *this, basic_ios_char *copy)
2429 TRACE("(%p %p)\n", this, copy);
2433 this->stream = copy->stream;
2434 this->fillch = copy->fillch;
2435 ios_base_copyfmt(&this->base, ©->base);
2439 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEDD@Z */
2440 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z */
2441 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_set, 8)
2442 char __thiscall basic_ios_char_fill_set(basic_ios_char *this, char fill)
2444 char ret = this->fillch;
2446 TRACE("(%p %c)\n", this, fill);
2448 this->fillch = fill;
2452 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ */
2453 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ */
2454 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_get, 4)
2455 char __thiscall basic_ios_char_fill_get(basic_ios_char *this)
2457 TRACE("(%p)\n", this);
2458 return this->fillch;
2461 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
2462 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
2463 DEFINE_THISCALL_WRAPPER(basic_ios_char_imbue, 12)
2464 locale *__thiscall basic_ios_char_imbue(basic_ios_char *this, locale *ret, const locale *loc)
2466 TRACE("(%p %p %p)\n", this, ret, loc);
2469 return basic_streambuf_char_pubimbue(this->strbuf, ret, loc);
2471 locale_copy_ctor(ret, loc);
2475 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDDD@Z */
2476 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADDD@Z */
2477 DEFINE_THISCALL_WRAPPER(basic_ios_char_narrow, 12)
2478 char __thiscall basic_ios_char_narrow(basic_ios_char *this, char ch, char def)
2480 FIXME("(%p %c %c) stub\n", this, ch, def);
2484 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PAV32@@Z */
2485 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAV32@@Z */
2486 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_set, 8)
2487 basic_streambuf_char* __thiscall basic_ios_char_rdbuf_set(basic_ios_char *this, basic_streambuf_char *streambuf)
2489 basic_streambuf_char *ret = this->strbuf;
2491 TRACE("(%p %p)\n", this, streambuf);
2493 this->strbuf = streambuf;
2494 basic_ios_char_clear(this, IOSTATE_goodbit);
2498 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
2499 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
2500 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_get, 4)
2501 basic_streambuf_char* __thiscall basic_ios_char_rdbuf_get(const basic_ios_char *this)
2503 TRACE("(%p)\n", this);
2504 return this->strbuf;
2507 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
2508 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
2509 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate_reraise, 12)
2510 void __thiscall basic_ios_char_setstate_reraise(basic_ios_char *this, IOSB_iostate state, MSVCP_bool reraise)
2512 TRACE("(%p %x %x)\n", this, state, reraise);
2514 if(state != IOSTATE_goodbit)
2515 basic_ios_char_clear_reraise(this, this->base.state | state, reraise);
2518 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
2519 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
2520 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate, 8)
2521 void __thiscall basic_ios_char_setstate(basic_ios_char *this, unsigned int state)
2523 basic_ios_char_setstate_reraise(this, (IOSB_iostate)state, FALSE);
2526 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@PAV32@@Z */
2527 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@PEAV32@@Z */
2528 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_set, 8)
2529 basic_ostream_char* __thiscall basic_ios_char_tie_set(basic_ios_char *this, basic_ostream_char *ostream)
2531 basic_ostream_char *ret = this->stream;
2533 TRACE("(%p %p)\n", this, ostream);
2535 this->stream = ostream;
2539 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
2540 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
2541 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_get, 4)
2542 basic_ostream_char* __thiscall basic_ios_char_tie_get(const basic_ios_char *this)
2544 TRACE("(%p)\n", this);
2545 return this->stream;
2548 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z */
2549 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z */
2550 DEFINE_THISCALL_WRAPPER(basic_ios_char_widen, 8)
2551 char __thiscall basic_ios_char_widen(basic_ios_char *this, char ch)
2553 FIXME("(%p %c) stub\n", this, ch);
2558 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
2559 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
2560 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_ctor, 4)
2561 basic_ios_wchar* __thiscall basic_ios_wchar_ctor(basic_ios_wchar *this)
2563 TRACE("(%p)\n", this);
2565 ios_base_ctor(&this->base);
2566 this->base.vtable = &MSVCP_basic_ios_wchar_vtable;
2570 /* ?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAEXPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z */
2571 /* ?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z */
2572 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_init, 12)
2573 void __thiscall basic_ios_wchar_init(basic_ios_wchar *this, basic_streambuf_wchar *streambuf, MSVCP_bool isstd)
2575 TRACE("(%p %p %x)\n", this, streambuf, isstd);
2576 ios_base_Init(&this->base);
2577 this->strbuf = streambuf;
2578 this->stream = NULL;
2582 ios_base_setstate(&this->base, IOSTATE_badbit);
2585 FIXME("standard streams not handled yet\n");
2588 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
2589 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
2590 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_ctor_streambuf, 8)
2591 basic_ios_wchar* __thiscall basic_ios_wchar_ctor_streambuf(basic_ios_wchar *this, basic_streambuf_wchar *strbuf)
2593 TRACE("(%p %p)\n", this, strbuf);
2595 basic_ios_wchar_ctor(this);
2596 basic_ios_wchar_init(this, strbuf, FALSE);
2600 /* ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
2601 /* ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
2602 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_dtor, 4)
2603 void __thiscall basic_ios_wchar_dtor(basic_ios_wchar *this)
2605 TRACE("(%p)\n", this);
2606 ios_base_dtor(&this->base);
2609 DEFINE_THISCALL_WRAPPER(MSVCP_basic_ios_wchar_vector_dtor, 8)
2610 basic_ios_wchar* __thiscall MSVCP_basic_ios_wchar_vector_dtor(basic_ios_wchar *this, unsigned int flags)
2612 TRACE("(%p %x) stub\n", this, flags);
2614 /* we have an array, with the number of elements stored before the first object */
2615 int i, *ptr = (int *)this-1;
2617 for(i=*ptr-1; i>=0; i--)
2618 basic_ios_wchar_dtor(this+i);
2619 MSVCRT_operator_delete(ptr);
2621 basic_ios_wchar_dtor(this);
2623 MSVCRT_operator_delete(this);
2629 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z */
2630 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z */
2631 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_clear_reraise, 12)
2632 void __thiscall basic_ios_wchar_clear_reraise(basic_ios_wchar *this, IOSB_iostate state, MSVCP_bool reraise)
2634 TRACE("(%p %x %x)\n", this, state, reraise);
2635 ios_base_clear_reraise(&this->base, state | (this->strbuf ? IOSTATE_goodbit : IOSTATE_badbit), reraise);
2638 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXI@Z */
2639 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z */
2640 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_clear, 8)
2641 void __thiscall basic_ios_wchar_clear(basic_ios_wchar *this, unsigned int state)
2643 basic_ios_wchar_clear_reraise(this, (IOSB_iostate)state, FALSE);
2646 /* ?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEAAV12@ABV12@@Z */
2647 /* ?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEBV12@@Z */
2648 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_copyfmt, 8)
2649 basic_ios_wchar* __thiscall basic_ios_wchar_copyfmt(basic_ios_wchar *this, basic_ios_wchar *copy)
2651 TRACE("(%p %p)\n", this, copy);
2655 this->stream = copy->stream;
2656 this->fillch = copy->fillch;
2657 ios_base_copyfmt(&this->base, ©->base);
2661 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE_W_W@Z */
2662 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA_W_W@Z */
2663 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_fill_set, 8)
2664 wchar_t __thiscall basic_ios_wchar_fill_set(basic_ios_wchar *this, wchar_t fill)
2666 wchar_t ret = this->fillch;
2668 TRACE("(%p %c)\n", this, fill);
2670 this->fillch = fill;
2674 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WXZ */
2675 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WXZ */
2676 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_fill_get, 4)
2677 wchar_t __thiscall basic_ios_wchar_fill_get(basic_ios_wchar *this)
2679 TRACE("(%p)\n", this);
2680 return this->fillch;
2683 /* ?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
2684 /* ?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
2685 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_imbue, 12)
2686 locale *__thiscall basic_ios_wchar_imbue(basic_ios_wchar *this, locale *ret, const locale *loc)
2688 TRACE("(%p %p %p)\n", this, ret, loc);
2691 return basic_streambuf_wchar_pubimbue(this->strbuf, ret, loc);
2693 locale_copy_ctor(ret, loc);
2697 /* ?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBED_WD@Z */
2698 /* ?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAD_WD@Z */
2699 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_narrow, 12)
2700 char __thiscall basic_ios_wchar_narrow(basic_ios_wchar *this, wchar_t ch, char def)
2702 FIXME("(%p %c %c) stub\n", this, ch, def);
2706 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PAV32@@Z */
2707 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEAV32@@Z */
2708 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_rdbuf_set, 8)
2709 basic_streambuf_wchar* __thiscall basic_ios_wchar_rdbuf_set(basic_ios_wchar *this, basic_streambuf_wchar *streambuf)
2711 basic_streambuf_wchar *ret = this->strbuf;
2713 TRACE("(%p %p)\n", this, streambuf);
2715 this->strbuf = streambuf;
2716 basic_ios_wchar_clear(this, IOSTATE_goodbit);
2720 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ */
2721 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ */
2722 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_rdbuf_get, 4)
2723 basic_streambuf_wchar* __thiscall basic_ios_wchar_rdbuf_get(const basic_ios_wchar *this)
2725 TRACE("(%p)\n", this);
2726 return this->strbuf;
2729 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z */
2730 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z */
2731 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_setstate_reraise, 12)
2732 void __thiscall basic_ios_wchar_setstate_reraise(basic_ios_wchar *this, IOSB_iostate state, MSVCP_bool reraise)
2734 TRACE("(%p %x %x)\n", this, state, reraise);
2736 if(state != IOSTATE_goodbit)
2737 basic_ios_wchar_clear_reraise(this, this->base.state | state, reraise);
2740 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXI@Z */
2741 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z */
2742 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_setstate, 8)
2743 void __thiscall basic_ios_wchar_setstate(basic_ios_wchar *this, IOSB_iostate state)
2745 basic_ios_wchar_setstate_reraise(this, state, FALSE);
2748 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PAV32@@Z */
2749 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PEAV32@@Z */
2750 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_tie_set, 8)
2751 basic_ostream_wchar* __thiscall basic_ios_wchar_tie_set(basic_ios_wchar *this, basic_ostream_wchar *ostream)
2753 basic_ostream_wchar *ret = this->stream;
2755 TRACE("(%p %p)\n", this, ostream);
2757 this->stream = ostream;
2761 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ */
2762 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ */
2763 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_tie_get, 4)
2764 basic_ostream_wchar* __thiscall basic_ios_wchar_tie_get(const basic_ios_wchar *this)
2766 TRACE("(%p)\n", this);
2767 return this->stream;
2770 /* ?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WD@Z */
2771 /* ?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WD@Z */
2772 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_widen, 8)
2773 wchar_t __thiscall basic_ios_wchar_widen(basic_ios_wchar *this, char ch)
2775 FIXME("(%p %c)\n", this, ch);
2779 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
2780 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
2781 DEFINE_THISCALL_WRAPPER(basic_ostream_char_ctor, 12)
2782 basic_ostream_char* __thiscall basic_ostream_char_ctor(basic_ostream_char *this, basic_streambuf_char *strbuf, MSVCP_bool isstd)
2784 FIXME("(%p %p %d) stub\n", this, strbuf, isstd);
2788 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@_N@Z */
2789 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z */
2790 DEFINE_THISCALL_WRAPPER(basic_ostream_char_uninitialized, 12)
2791 basic_ostream_char* __thiscall basic_ostream_char_uninitialized(basic_ostream_char *this, int uninitialized, MSVCP_bool addstd)
2793 FIXME("(%p %d %x) stub\n", this, uninitialized, addstd);
2797 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
2798 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
2799 DEFINE_THISCALL_WRAPPER(basic_ostream_char_dtor, 4)
2800 void __thiscall basic_ostream_char_dtor(basic_ostream_char *this)
2802 FIXME("(%p) stub\n", this);
2805 DEFINE_THISCALL_WRAPPER(MSVCP_basic_ostream_char_vector_dtor, 8)
2806 basic_ostream_char* __thiscall MSVCP_basic_ostream_char_vector_dtor(basic_ostream_char *this, unsigned int flags)
2808 TRACE("(%p %x) stub\n", this, flags);
2810 /* we have an array, with the number of elements stored before the first object */
2811 int i, *ptr = (int *)this-1;
2813 for(i=*ptr-1; i>=0; i--)
2814 basic_ostream_char_dtor(this+i);
2815 MSVCRT_operator_delete(ptr);
2817 basic_ostream_char_dtor(this);
2819 MSVCRT_operator_delete(this);
2825 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@F@Z */
2826 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@F@Z */
2827 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_short, 8)
2828 basic_ostream_char* __thiscall basic_ostream_char_print_short(basic_ostream_char *this, short val)
2830 FIXME("(%p %d) stub\n", this, val);
2834 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@G@Z */
2835 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@G@Z */
2836 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ushort, 8)
2837 basic_ostream_char* __thiscall basic_ostream_char_print_ushort(basic_ostream_char *this, unsigned short val)
2839 FIXME("(%p %d) stub\n", this, val);
2843 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@H@Z */
2844 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z */
2845 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int, 8)
2846 basic_ostream_char* __thiscall basic_ostream_char_print_int(basic_ostream_char *this, int val)
2848 FIXME("(%p %d) stub\n", this, val);
2852 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@I@Z */
2853 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@I@Z */
2854 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint, 8)
2855 basic_ostream_char* __thiscall basic_ostream_char_print_uint(basic_ostream_char *this, unsigned int val)
2857 FIXME("(%p %d) stub\n", this, val);
2861 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@J@Z */
2862 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@J@Z */
2863 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_long, 8)
2864 basic_ostream_char* __thiscall basic_ostream_char_print_long(basic_ostream_char *this, LONG val)
2866 FIXME("(%p %d) stub\n", this, val);
2870 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@K@Z */
2871 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@K@Z */
2872 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ulong, 8)
2873 basic_ostream_char* __thiscall basic_ostream_char_print_ulong(basic_ostream_char *this, ULONG val)
2875 FIXME("(%p %d) stub\n", this, val);
2879 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@M@Z */
2880 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z */
2881 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_float, 8)
2882 basic_ostream_char* __thiscall basic_ostream_char_print_float(basic_ostream_char *this, float val)
2884 FIXME("(%p %f) stub\n", this, val);
2888 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@N@Z */
2889 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z */
2890 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_double, 12)
2891 basic_ostream_char* __thiscall basic_ostream_char_print_double(basic_ostream_char *this, double val)
2893 FIXME("(%p %lf) stub\n", this, val);
2897 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
2898 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
2899 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_streambuf, 8)
2900 basic_ostream_char* __thiscall basic_ostream_char_print_streambuf(basic_ostream_char *this, basic_streambuf_char *val)
2902 FIXME("(%p %p) stub\n", this, val);
2906 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PBX@Z */
2907 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEBX@Z */
2908 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ptr, 8)
2909 basic_ostream_char* __thiscall basic_ostream_char_print_ptr(basic_ostream_char *this, const void *val)
2911 FIXME("(%p %p) stub\n", this, val);
2915 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_J@Z */
2916 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_J@Z */
2917 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int64, 12)
2918 basic_ostream_char* __thiscall basic_ostream_char_print_int64(basic_ostream_char *this, __int64 val)
2920 FIXME("(%p) stub\n", this);
2924 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_K@Z */
2925 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z */
2926 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint64, 12)
2927 basic_ostream_char* __thiscall basic_ostream_char_print_uint64(basic_ostream_char *this, unsigned __int64 val)
2929 FIXME("(%p) stub\n", this);
2933 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_N@Z */
2934 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_N@Z */
2935 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_bool, 8)
2936 basic_ostream_char* __thiscall basic_ostream_char_print_bool(basic_ostream_char *this, MSVCP_bool val)
2938 FIXME("(%p %x) stub\n", this, val);
2942 /* ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
2943 /* ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
2944 DEFINE_THISCALL_WRAPPER(basic_ostream_char__Osfx, 4)
2945 void __thiscall basic_ostream_char__Osfx(basic_ostream_char *this)
2947 FIXME("(%p) stub\n", this);
2950 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ */
2951 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ */
2952 DEFINE_THISCALL_WRAPPER(basic_ostream_char_flush, 4)
2953 basic_ostream_char* __thiscall basic_ostream_char_flush(basic_ostream_char *this)
2955 FIXME("(%p) stub\n", this);
2959 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE_NXZ */
2960 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA_NXZ */
2961 DEFINE_THISCALL_WRAPPER(basic_ostream_char_opfx, 4)
2962 MSVCP_bool __thiscall basic_ostream_char_opfx(basic_ostream_char *this)
2964 FIXME("(%p) stub\n", this);
2968 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
2969 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
2970 DEFINE_THISCALL_WRAPPER(basic_ostream_char_osfx, 4)
2971 void __thiscall basic_ostream_char_osfx(basic_ostream_char *this)
2973 FIXME("(%p) stub\n", this);
2976 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z */
2977 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z */
2978 DEFINE_THISCALL_WRAPPER(basic_ostream_char_put, 8)
2979 basic_ostream_char* __thiscall basic_ostream_char_put(basic_ostream_char *this, char ch)
2981 FIXME("(%p %c) stub\n", this, ch);
2985 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@JH@Z */
2986 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
2987 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp, 12)
2988 basic_ostream_char* __thiscall basic_ostream_char_seekp(basic_ostream_char *this, streamoff off, int way)
2990 FIXME("(%p %lu %d) stub\n", this, off, way);
2994 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
2995 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
2996 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp_fpos, 28)
2997 basic_ostream_char* __thiscall basic_ostream_char_seekp_fpos(basic_ostream_char *this, fpos_int pos)
2999 FIXME("(%p %s) stub\n", this, debugstr_fpos_int(&pos));
3003 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
3004 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
3005 DEFINE_THISCALL_WRAPPER(basic_ostream_char_tellp, 8)
3006 fpos_int* __thiscall basic_ostream_char_tellp(basic_ostream_char *this, fpos_int *ret)
3008 FIXME("(%p) stub\n", this);
3012 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@PBDH@Z */
3013 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z */
3014 DEFINE_THISCALL_WRAPPER(basic_ostream_char_write, 12)
3015 basic_ostream_char* __thiscall basic_ostream_char_write(basic_ostream_char *this, const char *str, streamsize count)
3017 FIXME("(%p %s %lu) stub\n", this, debugstr_a(str), count);