From 6902b5112846981b5eba96798b1c2da5ee553f2c Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Mon, 25 Jun 2012 15:49:53 +0200 Subject: [PATCH] msvcp90: Added basic_ostream implementation. --- dlls/msvcp90/ios.c | 636 ++++++++++++++++++++++++++++++++++++++++++++++ dlls/msvcp90/msvcp90.h | 18 ++ dlls/msvcp90/msvcp90.spec | 136 +++++----- 3 files changed, 722 insertions(+), 68 deletions(-) diff --git a/dlls/msvcp90/ios.c b/dlls/msvcp90/ios.c index d367f8c91a4..3a3350f2169 100644 --- a/dlls/msvcp90/ios.c +++ b/dlls/msvcp90/ios.c @@ -165,6 +165,11 @@ const int basic_ostream_char_vbtable[] = {0, sizeof(basic_ostream_char)}; /* ??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@ */ extern const vtable_ptr MSVCP_basic_ostream_char_vtable; +/* ??_8?$basic_ostream@_WU?$char_traits@_W@std@@@std@@7B@ */ +const int basic_ostream_wchar_vbtable[] = {0, sizeof(basic_ostream_wchar)}; +/* ??_7?$basic_ostream@_WU?$char_traits@_W@std@@@std@@6B@ */ +extern const vtable_ptr MSVCP_basic_ostream_wchar_vtable; + /* ??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@ */ const int basic_istream_char_vbtable[] = {0, sizeof(basic_istream_char)}; /* ??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@ */ @@ -213,6 +218,9 @@ DEFINE_RTTI_DATA1(basic_filebuf_char, 0, &basic_streambuf_char_rtti_base_descrip DEFINE_RTTI_DATA3(basic_ostream_char, sizeof(basic_ostream_char), &basic_ios_char_rtti_base_descriptor, &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor, ".?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@"); +DEFINE_RTTI_DATA3(basic_ostream_wchar, sizeof(basic_ostream_wchar), &basic_ios_wchar_rtti_base_descriptor, + &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor, + ".?AV?$basic_ostream@_WU?$char_traits@_W@std@@@std@@"); DEFINE_RTTI_DATA3(basic_istream_char, sizeof(basic_istream_char), &basic_ios_char_rtti_base_descriptor, &ios_base_rtti_base_descriptor, &iosb_rtti_base_descriptor, ".?AV?$basic_istream@DU?$char_traits@D@std@@@std@@"); @@ -302,6 +310,7 @@ void __asm_dummy_vtables(void) { VTABLE_ADD_FUNC(basic_filebuf_char_sync) VTABLE_ADD_FUNC(basic_filebuf_char_imbue)); __ASM_VTABLE(basic_ostream_char, ""); + __ASM_VTABLE(basic_ostream_wchar, ""); __ASM_VTABLE(basic_istream_char, ""); __ASM_VTABLE(basic_iostream_char, ""); __ASM_VTABLE(basic_ofstream_char, ""); @@ -4052,6 +4061,633 @@ basic_ostream_char* __thiscall basic_ostream_char_print_func_ios_base( return this; } +/* Caution: basic_ostream uses virtual inheritance. */ +static inline basic_ios_wchar* basic_ostream_wchar_get_basic_ios(basic_ostream_wchar *this) +{ + return (basic_ios_wchar*)((char*)this+this->vbtable[1]); +} + +/* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */ +/* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_ctor, 16) +basic_ostream_wchar* __thiscall basic_ostream_wchar_ctor(basic_ostream_wchar *this, + basic_streambuf_wchar *strbuf, MSVCP_bool isstd, MSVCP_bool virt_init) +{ + basic_ios_wchar *base; + + TRACE("(%p %p %d %d)\n", this, strbuf, isstd, virt_init); + + if(virt_init) { + this->vbtable = basic_ostream_wchar_vbtable; + base = basic_ostream_wchar_get_basic_ios(this); + basic_ios_wchar_ctor(base); + }else { + base = basic_ostream_wchar_get_basic_ios(this); + } + + base->base.vtable = &MSVCP_basic_ostream_wchar_vtable; + basic_ios_wchar_init(base, strbuf, isstd); + return this; +} + +/* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@_N@Z */ +/* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_ctor_uninitialized, 16) +basic_ostream_wchar* __thiscall basic_ostream_wchar_ctor_uninitialized(basic_ostream_wchar *this, + int uninitialized, MSVCP_bool addstd, MSVCP_bool virt_init) +{ + basic_ios_wchar *base; + + TRACE("(%p %d %x)\n", this, uninitialized, addstd); + + if(virt_init) { + this->vbtable = basic_ostream_wchar_vbtable; + base = basic_ostream_wchar_get_basic_ios(this); + basic_ios_wchar_ctor(base); + }else { + base = basic_ostream_wchar_get_basic_ios(this); + } + + base->base.vtable = &MSVCP_basic_ostream_wchar_vtable; + if(addstd) + ios_base_Addstd(&base->base); + return this; +} + +/* ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */ +/* ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_dtor, 4) +void __thiscall basic_ostream_wchar_dtor(basic_ostream_wchar *this) +{ + /* don't destroy virtual base here */ + TRACE("(%p)\n", this); +} + +/* ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */ +/* ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_vbase_dtor, 4) +void __thiscall basic_ostream_wchar_vbase_dtor(basic_ostream_wchar *this) +{ + TRACE("(%p)\n", this); + basic_ostream_wchar_dtor(this); + basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(this)); +} + +DEFINE_THISCALL_WRAPPER(MSVCP_basic_ostream_wchar_vector_dtor, 8) +basic_ostream_wchar* __thiscall MSVCP_basic_ostream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags) +{ + basic_ostream_wchar *this = (basic_ostream_wchar *)((char*)base - basic_ostream_wchar_vbtable[1] + basic_ostream_wchar_vbtable[0]); + + TRACE("(%p %x)\n", this, flags); + + if(flags & 2) { + /* we have an array, with the number of elements stored before the first object */ + int i, *ptr = (int *)this-1; + + for(i=*ptr-1; i>=0; i--) + basic_ostream_wchar_vbase_dtor(this+i); + MSVCRT_operator_delete(ptr); + } else { + basic_ostream_wchar_vbase_dtor(this); + if(flags & 1) + MSVCRT_operator_delete(this); + } + + return this; +} + +/* ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ */ +/* ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_flush, 4) +basic_ostream_wchar* __thiscall basic_ostream_wchar_flush(basic_ostream_wchar *this) +{ + /* this function is not matching C++ specification */ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this); + + TRACE("(%p)\n", this); + + if(basic_ios_wchar_rdbuf_get(base) && ios_base_good(&base->base) + && basic_streambuf_wchar_pubsync(basic_ios_wchar_rdbuf_get(base))==-1) + basic_ios_wchar_setstate(base, IOSTATE_badbit); + return this; +} + +/* ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */ +/* ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar__Osfx, 4) +void __thiscall basic_ostream_wchar__Osfx(basic_ostream_wchar *this) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this); + + TRACE("(%p)\n", this); + + if(base->base.fmtfl & FMTFLAG_unitbuf) + basic_ostream_wchar_flush(this); +} + +/* ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */ +/* ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_osfx, 4) +void __thiscall basic_ostream_wchar_osfx(basic_ostream_wchar *this) +{ + TRACE("(%p)\n", this); + basic_ostream_wchar__Osfx(this); +} + +static BOOL basic_ostream_wchar_sentry_create(basic_ostream_wchar *ostr) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr); + + if(basic_ios_wchar_rdbuf_get(base)) + basic_streambuf_wchar__Lock(base->strbuf); + + if(ios_base_good(&base->base) && base->stream) + basic_ostream_wchar_flush(base->stream); + + return ios_base_good(&base->base); +} + +static void basic_ostream_wchar_sentry_destroy(basic_ostream_wchar *ostr) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr); + + if(ios_base_good(&base->base) && !__uncaught_exception()) + basic_ostream_wchar_osfx(ostr); + + if(basic_ios_wchar_rdbuf_get(base)) + basic_streambuf_wchar__Unlock(base->strbuf); +} + +/* ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE_NXZ */ +/* ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA_NXZ */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_opfx, 4) +MSVCP_bool __thiscall basic_ostream_wchar_opfx(basic_ostream_wchar *this) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this); + + TRACE("(%p)\n", this); + + if(ios_base_good(&base->base) && base->stream) + basic_ostream_wchar_flush(base->stream); + return ios_base_good(&base->base); +} + +/* ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@_W@Z */ +/* ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_put, 8) +basic_ostream_wchar* __thiscall basic_ostream_wchar_put(basic_ostream_wchar *this, wchar_t ch) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this); + + TRACE("(%p %c)\n", this, ch); + + if(!basic_ostream_wchar_sentry_create(this) + || basic_streambuf_wchar_sputc(base->strbuf, ch)==WEOF) { + basic_ostream_wchar_sentry_destroy(this); + basic_ios_wchar_setstate(base, IOSTATE_badbit); + return this; + } + + basic_ostream_wchar_sentry_destroy(this); + return this; +} + +/* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@JH@Z */ +/* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_seekp, 12) +basic_ostream_wchar* __thiscall basic_ostream_wchar_seekp(basic_ostream_wchar *this, streamoff off, int way) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this); + + TRACE("(%p %ld %d)\n", this, off, way); + + if(!ios_base_fail(&base->base)) { + fpos_int seek; + + basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base), + &seek, off, way, OPENMODE_out); + if(seek.off==0 && seek.pos==-1 && seek.state==0) + basic_ios_wchar_setstate(base, IOSTATE_failbit); + } + return this; +} + +/* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */ +/* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_seekp_fpos, 28) +basic_ostream_wchar* __thiscall basic_ostream_wchar_seekp_fpos(basic_ostream_wchar *this, fpos_int pos) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this); + + TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos)); + + if(!ios_base_fail(&base->base)) { + fpos_int seek; + + basic_streambuf_wchar_pubseekpos(basic_ios_wchar_rdbuf_get(base), + &seek, pos, OPENMODE_out); + if(seek.off==0 && seek.pos==-1 && seek.state==0) + basic_ios_wchar_setstate(base, IOSTATE_failbit); + } + return this; +} + +/* ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@XZ */ +/* ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_tellp, 8) +fpos_int* __thiscall basic_ostream_wchar_tellp(basic_ostream_wchar *this, fpos_int *ret) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this); + + TRACE("(%p)\n", this); + + if(!ios_base_fail(&base->base)) { + basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base), + ret, 0, SEEKDIR_cur, OPENMODE_out); + }else { + ret->off = 0; + ret->pos = -1; + ret->state = 0; + } + return ret; +} + +/* ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PB_WH@Z */ +/* ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEB_W_J@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_write, 12) +basic_ostream_wchar* __thiscall basic_ostream_wchar_write(basic_ostream_wchar *this, const wchar_t *str, streamsize count) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this); + + TRACE("(%p %s %ld)\n", this, debugstr_w(str), count); + + if(!basic_ostream_wchar_sentry_create(this) + || basic_streambuf_wchar_sputn(base->strbuf, str, count)!=count) { + basic_ostream_wchar_sentry_destroy(this); + basic_ios_wchar_setstate(base, IOSTATE_badbit); + return this; + } + + basic_ostream_wchar_sentry_destroy(this); + return this; +} + +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@F@Z */ +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@F@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_short, 8) +basic_ostream_wchar* __thiscall basic_ostream_wchar_print_short(basic_ostream_wchar *this, short val) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this); + int state = IOSTATE_goodbit; + + TRACE("(%p %d)\n", this, val); + + if(basic_ostream_wchar_sentry_create(this)) { + basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); + const num_put *numput = num_put_wchar_use_facet(strbuf->loc); + ostreambuf_iterator_wchar dest = {0, strbuf}; + + num_put_wchar_put_long(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), + (ios_base_flags_get(&base->base) & FMTFLAG_basefield & (FMTFLAG_oct | FMTFLAG_hex)) + ? (LONG)((unsigned short)val) : (LONG)val); + } + basic_ostream_wchar_sentry_destroy(this); + + basic_ios_wchar_setstate(base, state); + return this; +} + +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@G@Z */ +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@G@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ushort, 8) +basic_ostream_wchar* __thiscall basic_ostream_wchar_print_ushort(basic_ostream_wchar *this, unsigned short val) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this); + int state = IOSTATE_goodbit; + + TRACE("(%p %u)\n", this, val); + + if(basic_ostream_wchar_sentry_create(this)) { + basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); + const num_put *numput = num_put_wchar_use_facet(strbuf->loc); + ostreambuf_iterator_wchar dest = {0, strbuf}; + + num_put_wchar_put_ulong(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val); + } + basic_ostream_wchar_sentry_destroy(this); + + basic_ios_wchar_setstate(base, state); + return this; +} + +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@H@Z */ +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@H@Z */ +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@J@Z */ +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@J@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_int, 8) +basic_ostream_wchar* __thiscall basic_ostream_wchar_print_int(basic_ostream_wchar *this, int val) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this); + int state = IOSTATE_goodbit; + + TRACE("(%p %d)\n", this, val); + + if(basic_ostream_wchar_sentry_create(this)) { + basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); + const num_put *numput = num_put_wchar_use_facet(strbuf->loc); + ostreambuf_iterator_wchar dest = {0, strbuf}; + + num_put_wchar_put_long(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val); + } + basic_ostream_wchar_sentry_destroy(this); + + basic_ios_wchar_setstate(base, state); + return this; +} + +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@I@Z */ +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@I@Z */ +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@K@Z */ +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@K@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_uint, 8) +basic_ostream_wchar* __thiscall basic_ostream_wchar_print_uint(basic_ostream_wchar *this, unsigned int val) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this); + int state = IOSTATE_goodbit; + + TRACE("(%p %u)\n", this, val); + + if(basic_ostream_wchar_sentry_create(this)) { + basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); + const num_put *numput = num_put_wchar_use_facet(strbuf->loc); + ostreambuf_iterator_wchar dest = {0, strbuf}; + + num_put_wchar_put_ulong(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val); + } + basic_ostream_wchar_sentry_destroy(this); + + basic_ios_wchar_setstate(base, state); + return this; +} + +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@M@Z */ +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@M@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_float, 8) +basic_ostream_wchar* __thiscall basic_ostream_wchar_print_float(basic_ostream_wchar *this, float val) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this); + int state = IOSTATE_goodbit; + + TRACE("(%p %f)\n", this, val); + + if(basic_ostream_wchar_sentry_create(this)) { + basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); + const num_put *numput = num_put_wchar_use_facet(strbuf->loc); + ostreambuf_iterator_wchar dest = {0, strbuf}; + + num_put_wchar_put_double(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val); + } + basic_ostream_wchar_sentry_destroy(this); + + basic_ios_wchar_setstate(base, state); + return this; +} + +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@N@Z */ +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@N@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_double, 12) +basic_ostream_wchar* __thiscall basic_ostream_wchar_print_double(basic_ostream_wchar *this, double val) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this); + int state = IOSTATE_goodbit; + + TRACE("(%p %lf)\n", this, val); + + if(basic_ostream_wchar_sentry_create(this)) { + basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); + const num_put *numput = num_put_wchar_use_facet(strbuf->loc); + ostreambuf_iterator_wchar dest = {0, strbuf}; + + num_put_wchar_put_double(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val); + } + basic_ostream_wchar_sentry_destroy(this); + + basic_ios_wchar_setstate(base, state); + return this; +} + +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@O@Z */ +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@O@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ldouble, 12) +basic_ostream_wchar* __thiscall basic_ostream_wchar_print_ldouble(basic_ostream_wchar *this, double val) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this); + int state = IOSTATE_goodbit; + + TRACE("(%p %lf)\n", this, val); + + if(basic_ostream_wchar_sentry_create(this)) { + basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); + const num_put *numput = num_put_wchar_use_facet(strbuf->loc); + ostreambuf_iterator_wchar dest = {0, strbuf}; + + num_put_wchar_put_ldouble(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val); + } + basic_ostream_wchar_sentry_destroy(this); + + basic_ios_wchar_setstate(base, state); + return this; +} + +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */ +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_streambuf, 8) +basic_ostream_wchar* __thiscall basic_ostream_wchar_print_streambuf(basic_ostream_wchar *this, basic_streambuf_wchar *val) +{ + FIXME("(%p %p) stub\n", this, val); + return NULL; +} + +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PBX@Z */ +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEBX@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ptr, 8) +basic_ostream_wchar* __thiscall basic_ostream_wchar_print_ptr(basic_ostream_wchar *this, const void *val) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this); + int state = IOSTATE_goodbit; + + TRACE("(%p %p)\n", this, val); + + if(basic_ostream_wchar_sentry_create(this)) { + basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); + const num_put *numput = num_put_wchar_use_facet(strbuf->loc); + ostreambuf_iterator_wchar dest = {0, strbuf}; + + num_put_wchar_put_ptr(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val); + } + basic_ostream_wchar_sentry_destroy(this); + + basic_ios_wchar_setstate(base, state); + return this; +} + +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_J@Z */ +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_J@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_int64, 12) +basic_ostream_wchar* __thiscall basic_ostream_wchar_print_int64(basic_ostream_wchar *this, __int64 val) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this); + int state = IOSTATE_goodbit; + + TRACE("(%p)\n", this); + + if(basic_ostream_wchar_sentry_create(this)) { + basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); + const num_put *numput = num_put_wchar_use_facet(strbuf->loc); + ostreambuf_iterator_wchar dest = {0, strbuf}; + + num_put_wchar_put_int64(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val); + } + basic_ostream_wchar_sentry_destroy(this); + + basic_ios_wchar_setstate(base, state); + return this; +} + +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_K@Z */ +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_K@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_uint64, 12) +basic_ostream_wchar* __thiscall basic_ostream_wchar_print_uint64(basic_ostream_wchar *this, unsigned __int64 val) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this); + int state = IOSTATE_goodbit; + + TRACE("(%p)\n", this); + + if(basic_ostream_wchar_sentry_create(this)) { + basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); + const num_put *numput = num_put_wchar_use_facet(strbuf->loc); + ostreambuf_iterator_wchar dest = {0, strbuf}; + + num_put_wchar_put_uint64(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val); + } + basic_ostream_wchar_sentry_destroy(this); + + basic_ios_wchar_setstate(base, state); + return this; +} + +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_N@Z */ +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_N@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_bool, 8) +basic_ostream_wchar* __thiscall basic_ostream_wchar_print_bool(basic_ostream_wchar *this, MSVCP_bool val) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(this); + int state = IOSTATE_goodbit; + + TRACE("(%p %x)\n", this, val); + + if(basic_ostream_wchar_sentry_create(this)) { + basic_streambuf_wchar *strbuf = basic_ios_wchar_rdbuf_get(base); + const num_put *numput = num_put_wchar_use_facet(strbuf->loc); + ostreambuf_iterator_wchar dest = {0, strbuf}; + + num_put_wchar_put_bool(numput, &dest, dest, &base->base, basic_ios_wchar_fill_get(base), val); + } + basic_ostream_wchar_sentry_destroy(this); + + basic_ios_wchar_setstate(base, state); + return this; +} + +/* ?endl@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */ +/* ?endl@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */ +basic_ostream_wchar* __cdecl basic_ostream_wchar_endl(basic_ostream_wchar *ostr) +{ + TRACE("(%p)\n", ostr); + + basic_ostream_wchar_put(ostr, '\n'); + basic_ostream_wchar_flush(ostr); + return ostr; +} + +/* ??$?6_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */ +/* ??$?6_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */ +basic_ostream_wchar* __cdecl basic_ostream_wchar_print_bstr(basic_ostream_wchar *ostr, const basic_string_wchar *str) +{ + basic_ios_wchar *base = basic_ostream_wchar_get_basic_ios(ostr); + IOSB_iostate state = IOSTATE_goodbit; + + TRACE("(%p %p)\n", ostr, str); + + if(basic_ostream_wchar_sentry_create(ostr)) { + MSVCP_size_t len = MSVCP_basic_string_wchar_length(str); + streamsize pad = (base->base.wide>len ? base->base.wide-len : 0); + + if((base->base.fmtfl & FMTFLAG_adjustfield) != FMTFLAG_left) { + for(; pad!=0; pad--) { + if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) { + state = IOSTATE_badbit; + break; + } + } + } + + if(state == IOSTATE_goodbit) { + if(basic_streambuf_wchar_sputn(base->strbuf, MSVCP_basic_string_wchar_c_str(str), len) != len) + state = IOSTATE_badbit; + } + + for(; pad!=0; pad--) { + if(basic_streambuf_wchar_sputc(base->strbuf, base->fillch) == WEOF) { + state = IOSTATE_badbit; + break; + } + } + + base->base.wide = 0; + }else { + state = IOSTATE_badbit; + } + basic_ostream_wchar_sentry_destroy(ostr); + + basic_ios_wchar_setstate(base, state); + return ostr; +} + +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */ +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func, 8) +basic_ostream_wchar* __thiscall basic_ostream_wchar_print_func(basic_ostream_wchar *this, + basic_ostream_wchar* (__cdecl *pfunc)(basic_ostream_wchar*)) +{ + TRACE("(%p %p)\n", this, pfunc); + pfunc(this); + return this; +} + +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AAV21@@Z@Z */ +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func_basic_ios, 8) +basic_ostream_wchar* __thiscall basic_ostream_wchar_print_func_basic_ios(basic_ostream_wchar *this, + basic_ios_wchar* (__cdecl *pfunc)(basic_ios_wchar*)) +{ + TRACE("(%p %p)\n", this, pfunc); + pfunc(basic_ostream_wchar_get_basic_ios(this)); + return this; +} + +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */ +/* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */ +DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func_ios_base, 8) +basic_ostream_wchar* __thiscall basic_ostream_wchar_print_func_ios_base( + basic_ostream_wchar *this, ios_base* (__cdecl *pfunc)(ios_base*)) +{ + TRACE("(%p %p)\n", this, pfunc); + pfunc(&basic_ostream_wchar_get_basic_ios(this)->base); + return this; +} + /* Caution: basic_istream uses virtual inheritance. */ static inline basic_ios_char* basic_istream_char_get_basic_ios(basic_istream_char *this) { diff --git a/dlls/msvcp90/msvcp90.h b/dlls/msvcp90/msvcp90.h index 37bbf15ecc8..639fd645cd8 100644 --- a/dlls/msvcp90/msvcp90.h +++ b/dlls/msvcp90/msvcp90.h @@ -610,5 +610,23 @@ ostreambuf_iterator_char* __thiscall num_put_char_put_uint64(const num_put*, ost ostreambuf_iterator_char* __thiscall num_put_char_put_bool(const num_put*, ostreambuf_iterator_char*, ostreambuf_iterator_char, ios_base*, char, MSVCP_bool); +num_put* num_put_wchar_use_facet(const locale*); +ostreambuf_iterator_wchar* __thiscall num_put_wchar_put_long(const num_put*, ostreambuf_iterator_wchar*, + ostreambuf_iterator_wchar, ios_base*, wchar_t, LONG); +ostreambuf_iterator_wchar* __thiscall num_put_wchar_put_ulong(const num_put*, ostreambuf_iterator_wchar*, + ostreambuf_iterator_wchar, ios_base*, wchar_t, ULONG); +ostreambuf_iterator_wchar* __thiscall num_put_wchar_put_double(const num_put*, ostreambuf_iterator_wchar*, + ostreambuf_iterator_wchar, ios_base*, wchar_t, double); +ostreambuf_iterator_wchar* __thiscall num_put_wchar_put_ldouble(const num_put*, ostreambuf_iterator_wchar*, + ostreambuf_iterator_wchar, ios_base*, wchar_t, double); +ostreambuf_iterator_wchar* __thiscall num_put_wchar_put_ptr(const num_put*, ostreambuf_iterator_wchar*, + ostreambuf_iterator_wchar, ios_base*, wchar_t, const void*); +ostreambuf_iterator_wchar* __thiscall num_put_wchar_put_int64(const num_put*, ostreambuf_iterator_wchar*, + ostreambuf_iterator_wchar, ios_base*, wchar_t, __int64); +ostreambuf_iterator_wchar* __thiscall num_put_wchar_put_uint64(const num_put*, ostreambuf_iterator_wchar*, + ostreambuf_iterator_wchar, ios_base*, wchar_t, unsigned __int64); +ostreambuf_iterator_wchar* __thiscall num_put_wchar_put_bool(const num_put*, ostreambuf_iterator_wchar*, + ostreambuf_iterator_wchar, ios_base*, wchar_t, MSVCP_bool); + void init_io(void); void free_io(void); diff --git a/dlls/msvcp90/msvcp90.spec b/dlls/msvcp90/msvcp90.spec index 8a7fdb51cd2..60540bc5a56 100644 --- a/dlls/msvcp90/msvcp90.spec +++ b/dlls/msvcp90/msvcp90.spec @@ -42,8 +42,8 @@ @ stub -arch=win64 ??$?5_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@PEA_W@Z @ stub -arch=win32 ??$?5_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z @ stub -arch=win64 ??$?5_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z -@ cdecl -arch=win32 ??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z(ptr ptr) basic_ostream_char_print_bstr -@ cdecl -arch=win64 ??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z(ptr ptr) basic_ostream_char_print_bstr +@ cdecl -arch=win32 ??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z(ptr ptr) basic_ostream_wchar_print_bstr +@ cdecl -arch=win64 ??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z(ptr ptr) basic_ostream_wchar_print_bstr @ stub -arch=win32 ??$?6GU?$char_traits@G@std@@@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@G@Z @ stub -arch=win64 ??$?6GU?$char_traits@G@std@@@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@G@Z @ stub -arch=win32 ??$?6GU?$char_traits@G@std@@@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@PBG@Z @@ -84,8 +84,8 @@ @ stub -arch=win64 ??$?6_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@PEB_W@Z @ stub -arch=win32 ??$?6_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@_W@Z @ stub -arch=win64 ??$?6_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@_W@Z -@ stub -arch=win32 ??$?6_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z -@ stub -arch=win64 ??$?6_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z +@ cdecl -arch=win32 ??$?6_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z(ptr ptr) basic_ostream_wchar_print_bstr +@ cdecl -arch=win64 ??$?6_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z(ptr ptr) basic_ostream_wchar_print_bstr @ cdecl -arch=win32 ??$?8DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z(ptr ptr) MSVCP_basic_string_char_equal @ cdecl -arch=win64 ??$?8DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z(ptr ptr) MSVCP_basic_string_char_equal @ cdecl -arch=win32 ??$?8DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBD@Z(ptr str) MSVCP_basic_string_char_equal_str_cstr @@ -704,10 +704,10 @@ @ stub -arch=win64 ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z @ stub -arch=win32 ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@_N@Z @ stub -arch=win64 ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z -@ stub -arch=win32 ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z -@ stub -arch=win64 ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z -@ stub -arch=win32 ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@_N@Z -@ stub -arch=win64 ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z +@ thiscall -arch=win32 ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z(ptr ptr long long) basic_ostream_wchar_ctor +@ cdecl -arch=win64 ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z(ptr ptr long long) basic_ostream_wchar_ctor +@ thiscall -arch=win32 ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@_N@Z(ptr long long long) basic_ostream_wchar_ctor_uninitialized +@ cdecl -arch=win64 ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z(ptr long long long) basic_ostream_wchar_ctor_uninitialized @ stub -arch=win32 ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z @ stub -arch=win64 ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z @ stub -arch=win32 ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z @@ -1198,8 +1198,8 @@ @ cdecl -arch=win64 ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ(ptr) basic_ostream_char_dtor @ stub -arch=win32 ??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UAE@XZ @ stub -arch=win64 ??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UEAA@XZ -@ stub -arch=win32 ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ -@ stub -arch=win64 ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ +@ thiscall -arch=win32 ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ(ptr) basic_ostream_wchar_dtor +@ cdecl -arch=win64 ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ(ptr) basic_ostream_wchar_dtor @ stub -arch=win32 ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ @ stub -arch=win64 ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ @ stub -arch=win32 ??1?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ @@ -1642,40 +1642,40 @@ @ stub -arch=win64 ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_K@Z @ stub -arch=win32 ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_N@Z @ stub -arch=win64 ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_N@Z -@ stub -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@F@Z -@ stub -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@F@Z -@ stub -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@G@Z -@ stub -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@G@Z -@ stub -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@H@Z -@ stub -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@H@Z -@ stub -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@I@Z -@ stub -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@I@Z -@ stub -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@J@Z -@ stub -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@J@Z -@ stub -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@K@Z -@ stub -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@K@Z -@ stub -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@M@Z -@ stub -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@M@Z -@ stub -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@N@Z -@ stub -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@N@Z -@ stub -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@O@Z -@ stub -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@O@Z -@ stub -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z -@ stub -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z -@ stub -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AAV21@@Z@Z -@ stub -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z -@ stub -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z -@ stub -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z -@ stub -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z -@ stub -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z -@ stub -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PBX@Z -@ stub -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEBX@Z -@ stub -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_J@Z -@ stub -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_J@Z -@ stub -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_K@Z -@ stub -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_K@Z -@ stub -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_N@Z -@ stub -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_N@Z +@ thiscall -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@F@Z(ptr long) basic_ostream_wchar_print_short +@ cdecl -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@F@Z(ptr long) basic_ostream_wchar_print_short +@ thiscall -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@G@Z(ptr long) basic_ostream_wchar_print_ushort +@ cdecl -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@G@Z(ptr long) basic_ostream_wchar_print_ushort +@ thiscall -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@H@Z(ptr long) basic_ostream_wchar_print_int +@ cdecl -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@H@Z(ptr long) basic_ostream_wchar_print_int +@ thiscall -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@I@Z(ptr long) basic_ostream_wchar_print_uint +@ cdecl -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@I@Z(ptr long) basic_ostream_wchar_print_uint +@ thiscall -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@J@Z(ptr long) basic_ostream_wchar_print_int +@ cdecl -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@J@Z(ptr long) basic_ostream_wchar_print_int +@ thiscall -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@K@Z(ptr long) basic_ostream_wchar_print_uint +@ cdecl -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@K@Z(ptr long) basic_ostream_wchar_print_uint +@ thiscall -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@M@Z(ptr float) basic_ostream_wchar_print_float +@ cdecl -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@M@Z(ptr float) basic_ostream_wchar_print_float +@ thiscall -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@N@Z(ptr double) basic_ostream_wchar_print_double +@ cdecl -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@N@Z(ptr double) basic_ostream_wchar_print_double +@ thiscall -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@O@Z(ptr double) basic_ostream_wchar_print_ldouble +@ cdecl -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@O@Z(ptr double) basic_ostream_wchar_print_ldouble +@ thiscall -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z(ptr ptr) basic_ostream_wchar_print_func +@ cdecl -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z(ptr ptr) basic_ostream_wchar_print_func +@ thiscall -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AAV21@@Z@Z(ptr ptr) basic_ostream_wchar_print_func_basic_ios +@ cdecl -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z(ptr ptr) basic_ostream_wchar_print_func_basic_ios +@ thiscall -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z(ptr ptr) basic_ostream_wchar_print_func_ios_base +@ cdecl -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z(ptr ptr) basic_ostream_wchar_print_func_ios_base +@ thiscall -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z(ptr ptr) basic_ostream_wchar_print_streambuf +@ cdecl -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z(ptr ptr) basic_ostream_wchar_print_streambuf +@ thiscall -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PBX@Z(ptr ptr) basic_ostream_wchar_print_ptr +@ cdecl -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEBX@Z(ptr ptr) basic_ostream_wchar_print_ptr +@ thiscall -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_J@Z(ptr int64) basic_ostream_wchar_print_int64 +@ cdecl -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_J@Z(ptr int64) basic_ostream_wchar_print_int64 +@ thiscall -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_K@Z(ptr int64) basic_ostream_wchar_print_uint64 +@ cdecl -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_K@Z(ptr int64) basic_ostream_wchar_print_uint64 +@ thiscall -arch=win32 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_N@Z(ptr long) basic_ostream_wchar_print_bool +@ cdecl -arch=win64 ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_N@Z(ptr long) basic_ostream_wchar_print_bool @ thiscall -arch=win32 ??7ios_base@std@@QBE_NXZ(ptr) ios_base_op_succ @ cdecl -arch=win64 ??7ios_base@std@@QEBA_NXZ(ptr) ios_base_op_succ @ thiscall -arch=win32 ??8locale@std@@QBE_NABV01@@Z(ptr ptr) locale_operator_equal @@ -1805,7 +1805,7 @@ # extern ??_7?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@6B@ @ extern ??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@ MSVCP_basic_ostream_char_vtable # extern ??_7?$basic_ostream@GU?$char_traits@G@std@@@std@@6B@ -# extern ??_7?$basic_ostream@_WU?$char_traits@_W@std@@@std@@6B@ +@ extern ??_7?$basic_ostream@_WU?$char_traits@_W@std@@@std@@6B@ MSVCP_basic_ostream_wchar_vtable # extern ??_7?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ # extern ??_7?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ # extern ??_7?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ @@ -1891,7 +1891,7 @@ # extern ??_8?$basic_ofstream@_WU?$char_traits@_W@std@@@std@@7B@ @ extern ??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@ basic_ostream_char_vbtable # extern ??_8?$basic_ostream@GU?$char_traits@G@std@@@std@@7B@ -# extern ??_8?$basic_ostream@_WU?$char_traits@_W@std@@@std@@7B@ +@ extern ??_8?$basic_ostream@_WU?$char_traits@_W@std@@@std@@7B@ basic_ostream_wchar_vbtable # extern ??_8?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B@ # extern ??_8?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B@ # extern ??_8?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B@ @@ -1941,8 +1941,8 @@ @ cdecl -arch=win64 ??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ(ptr) basic_ostream_char_vbase_dtor @ stub -arch=win32 ??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ @ stub -arch=win64 ??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ -@ stub -arch=win32 ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ -@ stub -arch=win64 ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ +@ thiscall -arch=win32 ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ(ptr) basic_ostream_wchar_vbase_dtor +@ cdecl -arch=win64 ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ(ptr) basic_ostream_wchar_vbase_dtor @ stub -arch=win32 ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ @ stub -arch=win64 ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ @ stub -arch=win32 ??_D?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ @@ -2674,8 +2674,8 @@ @ cdecl -arch=win64 ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ(ptr) basic_ostream_char__Osfx @ stub -arch=win32 ?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ @ stub -arch=win64 ?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ -@ stub -arch=win32 ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ -@ stub -arch=win64 ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ +@ thiscall -arch=win32 ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ(ptr) basic_ostream_wchar__Osfx +@ cdecl -arch=win64 ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ(ptr) basic_ostream_wchar__Osfx @ cdecl -arch=win32 ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@KAIV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z(ptr ptr ptr ptr) MSVCP_basic_string_char_Pdif @ cdecl -arch=win64 ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@KA_KV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z(ptr ptr) MSVCP_basic_string_char_Pdif @ cdecl -arch=win32 ?_Pdif@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@KAIV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0@Z(ptr ptr ptr ptr) MSVCP_basic_string_wchar_Pdif @@ -3723,8 +3723,8 @@ @ cdecl -arch=win64 ?endl@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z(ptr) basic_ostream_char_endl @ stub -arch=win32 ?endl@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z @ stub -arch=win64 ?endl@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z -@ stub -arch=win32 ?endl@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z -@ stub -arch=win64 ?endl@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z +@ cdecl -arch=win32 ?endl@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z(ptr) basic_ostream_wchar_endl +@ cdecl -arch=win64 ?endl@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z(ptr) basic_ostream_wchar_endl @ stub -arch=win32 ?ends@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z @ stub -arch=win64 ?ends@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z @ stub -arch=win32 ?ends@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z @@ -3951,8 +3951,8 @@ @ cdecl -arch=win64 ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ(ptr) basic_ostream_char_flush @ stub -arch=win32 ?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@XZ @ stub -arch=win64 ?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ -@ stub -arch=win32 ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ -@ stub -arch=win64 ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ +@ thiscall -arch=win32 ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ(ptr) basic_ostream_wchar_flush +@ cdecl -arch=win64 ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ(ptr) basic_ostream_wchar_flush @ stub -arch=win32 ?flush@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z @ stub -arch=win64 ?flush@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z @ stub -arch=win32 ?flush@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z @@ -4749,14 +4749,14 @@ @ cdecl -arch=win64 ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA_NXZ(ptr) basic_ostream_char_opfx @ stub -arch=win32 ?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE_NXZ @ stub -arch=win64 ?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA_NXZ -@ stub -arch=win32 ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE_NXZ -@ stub -arch=win64 ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA_NXZ +@ thiscall -arch=win32 ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE_NXZ(ptr) basic_ostream_wchar_opfx +@ cdecl -arch=win64 ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA_NXZ(ptr) basic_ostream_wchar_opfx @ thiscall -arch=win32 ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ(ptr) basic_ostream_char_osfx @ cdecl -arch=win64 ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ(ptr) basic_ostream_char_osfx @ stub -arch=win32 ?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ @ stub -arch=win64 ?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ -@ stub -arch=win32 ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ -@ stub -arch=win64 ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ +@ thiscall -arch=win32 ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ(ptr) basic_ostream_wchar_osfx +@ cdecl -arch=win64 ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ(ptr) basic_ostream_wchar_osfx @ thiscall -arch=win32 ?out@?$codecvt@DDH@std@@QBEHAAHPBD1AAPBDPAD3AAPAD@Z(ptr ptr str str ptr ptr ptr ptr) codecvt_char_out @ cdecl -arch=win64 ?out@?$codecvt@DDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z(ptr ptr str str ptr ptr ptr ptr) codecvt_char_out @ thiscall -arch=win32 ?out@?$codecvt@GDH@std@@QBEHAAHPBG1AAPBGPAD3AAPAD@Z(ptr ptr ptr ptr ptr ptr ptr ptr) codecvt_wchar_out @@ -4900,8 +4900,8 @@ @ cdecl -arch=win64 ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z(ptr long) basic_ostream_char_put @ stub -arch=win32 ?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@G@Z @ stub -arch=win64 ?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z -@ stub -arch=win32 ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@_W@Z -@ stub -arch=win64 ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z +@ thiscall -arch=win32 ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@_W@Z(ptr long) basic_ostream_wchar_put +@ cdecl -arch=win64 ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z(ptr long) basic_ostream_wchar_put @ stub -arch=win32 ?put@?$money_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@_NAAVios_base@2@DABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z @ stub -arch=win64 ?put@?$money_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@_NAEAVios_base@2@DAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z @ stub -arch=win32 ?put@?$money_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QBE?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@_NAAVios_base@2@DO@Z @@ -5286,10 +5286,10 @@ @ stub -arch=win64 ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z @ stub -arch=win32 ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z @ stub -arch=win64 ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z -@ stub -arch=win32 ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@JH@Z -@ stub -arch=win64 ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z -@ stub -arch=win32 ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z -@ stub -arch=win64 ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z +@ thiscall -arch=win32 ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@JH@Z(ptr long long) basic_ostream_wchar_seekp +@ cdecl -arch=win64 ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z(ptr ptr) basic_ostream_wchar_seekp_fpos +@ thiscall -arch=win32 ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z(ptr long long int64 long long) basic_ostream_wchar_seekp_fpos +@ cdecl -arch=win64 ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z(ptr long long) basic_ostream_wchar_seekp @ thiscall -arch=win32 ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z(ptr ptr long long int64 long long long) basic_filebuf_char_seekpos @ cdecl -arch=win64 ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z(ptr ptr ptr long) basic_filebuf_char_seekpos @ stub -arch=win32 ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z @@ -5550,8 +5550,8 @@ @ cdecl -arch=win64 ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ(ptr ptr) basic_ostream_char_tellp @ stub -arch=win32 ?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@XZ @ stub -arch=win64 ?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ -@ stub -arch=win32 ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@XZ -@ stub -arch=win64 ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ +@ thiscall -arch=win32 ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@XZ(ptr ptr) basic_ostream_wchar_tellp +@ cdecl -arch=win64 ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ(ptr ptr) basic_ostream_wchar_tellp @ stub -arch=win32 ?thousands_sep@?$_Mpunct@D@std@@QBEDXZ @ stub -arch=win64 ?thousands_sep@?$_Mpunct@D@std@@QEBADXZ @ stub -arch=win32 ?thousands_sep@?$_Mpunct@G@std@@QBEGXZ @@ -5709,8 +5709,8 @@ @ cdecl -arch=win64 ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z(ptr str long) basic_ostream_char_write @ stub -arch=win32 ?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@PBGH@Z @ stub -arch=win64 ?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEBG_J@Z -@ stub -arch=win32 ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PB_WH@Z -@ stub -arch=win64 ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEB_W_J@Z +@ thiscall -arch=win32 ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PB_WH@Z(ptr wstr long) basic_ostream_wchar_write +@ cdecl -arch=win64 ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEB_W_J@Z(ptr wstr long) basic_ostream_wchar_write @ stub -arch=win32 ?ws@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@1@AAV21@@Z @ stub -arch=win64 ?ws@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@1@AEAV21@@Z @ stub -arch=win32 ?ws@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@1@AAV21@@Z -- 2.11.4.GIT