[1/4] msvcirt: Add a partial implementation of class strstream.
Iván Matellanes
matellanesivan at gmail.com
Fri Oct 21 12:34:01 CDT 2016
Signed-off-by: Iván Matellanes <matellanesivan at gmail.com>
---
dlls/msvcirt/msvcirt.c | 69 +++++++++++++++++++++++++++++++++++++++++++++
dlls/msvcirt/msvcirt.spec | 46 +++++++++++++++---------------
dlls/msvcrt20/msvcrt20.spec | 46 +++++++++++++++---------------
dlls/msvcrt40/msvcrt40.spec | 46 +++++++++++++++---------------
4 files changed, 138 insertions(+), 69 deletions(-)
diff --git a/dlls/msvcirt/msvcirt.c b/dlls/msvcirt/msvcirt.c
index c210862..99388fe 100644
--- a/dlls/msvcirt/msvcirt.c
+++ b/dlls/msvcirt/msvcirt.c
@@ -195,6 +195,8 @@ extern const vtable_ptr MSVCP_istream_withassign_vtable;
extern const vtable_ptr MSVCP_istrstream_vtable;
/* ??_7iostream@@6B@ */
extern const vtable_ptr MSVCP_iostream_vtable;
+/* ??_7strstream@@6B@ */
+extern const vtable_ptr MSVCP_strstream_vtable;
#ifndef __GNUC__
void __asm_dummy_vtables(void) {
@@ -263,6 +265,8 @@ void __asm_dummy_vtables(void) {
VTABLE_ADD_FUNC(istream_vector_dtor));
__ASM_VTABLE(iostream,
VTABLE_ADD_FUNC(iostream_vector_dtor));
+ __ASM_VTABLE(strstream,
+ VTABLE_ADD_FUNC(iostream_vector_dtor));
#ifndef __GNUC__
}
#endif
@@ -279,8 +283,10 @@ const int ostream_vbtable[] = {0, VBTABLE_ENTRY(ostream, FIELD_OFFSET(ostream, v
/* ??_8istrstream@@7B@ */
const int istream_vbtable[] = {0, VBTABLE_ENTRY(istream, FIELD_OFFSET(istream, vbtable), ios)};
/* ??_8iostream@@7Bistream@@@ */
+/* ??_8strstream@@7Bistream@@@ */
const int iostream_vbtable_istream[] = {0, VBTABLE_ENTRY(iostream, FIELD_OFFSET(iostream, base1), ios)};
/* ??_8iostream@@7Bostream@@@ */
+/* ??_8strstream@@7Bostream@@@ */
const int iostream_vbtable_ostream[] = {0, VBTABLE_ENTRY(iostream, FIELD_OFFSET(iostream, base2), ios)};
DEFINE_RTTI_DATA0(streambuf, 0, ".?AVstreambuf@@")
@@ -301,6 +307,9 @@ DEFINE_RTTI_DATA2(istrstream, sizeof(istream),
DEFINE_RTTI_DATA4(iostream, sizeof(iostream),
&istream_rtti_base_descriptor, &ios_rtti_base_descriptor,
&ostream_rtti_base_descriptor, &ios_rtti_base_descriptor, ".?AViostream@@")
+DEFINE_RTTI_DATA4(strstream, sizeof(iostream),
+ &istream_rtti_base_descriptor, &ios_rtti_base_descriptor,
+ &ostream_rtti_base_descriptor, &ios_rtti_base_descriptor, ".?AVstrstream@@")
/* ?cin@@3Vistream_withassign@@A */
struct {
@@ -4129,6 +4138,8 @@ iostream* __thiscall iostream_copy_ctor(iostream *this, const iostream *copy, BO
/* ??1iostream@@UAE at XZ */
/* ??1iostream@@UEAA at XZ */
+/* ??1strstream@@UAE at XZ */
+/* ??1strstream@@UEAA at XZ */
DEFINE_THISCALL_WRAPPER(iostream_dtor, 4)
void __thiscall iostream_dtor(ios *base)
{
@@ -4153,6 +4164,8 @@ iostream* __thiscall iostream_assign_sb(iostream *this, streambuf *sb)
/* ??4iostream@@IAEAAV0 at AAV0@@Z */
/* ??4iostream@@IEAAAEAV0 at AEAV0@@Z */
+/* ??4strstream@@QAEAAV0 at ABV0@@Z */
+/* ??4strstream@@QEAAAEAV0 at AEBV0@@Z */
DEFINE_THISCALL_WRAPPER(iostream_assign, 8)
iostream* __thiscall iostream_assign(iostream *this, const iostream *rhs)
{
@@ -4161,6 +4174,8 @@ iostream* __thiscall iostream_assign(iostream *this, const iostream *rhs)
/* ??_Diostream@@QAEXXZ */
/* ??_Diostream@@QEAAXXZ */
+/* ??_Dstrstream@@QAEXXZ */
+/* ??_Dstrstream@@QEAAXXZ */
DEFINE_THISCALL_WRAPPER(iostream_vbase_dtor, 4)
void __thiscall iostream_vbase_dtor(iostream *this)
{
@@ -4173,6 +4188,7 @@ void __thiscall iostream_vbase_dtor(iostream *this)
}
/* ??_Eiostream@@UAEPAXI at Z */
+/* ??_Estrstream@@UAEPAXI at Z */
DEFINE_THISCALL_WRAPPER(iostream_vector_dtor, 8)
iostream* __thiscall iostream_vector_dtor(ios *base, unsigned int flags)
{
@@ -4196,6 +4212,7 @@ iostream* __thiscall iostream_vector_dtor(ios *base, unsigned int flags)
}
/* ??_Giostream@@UAEPAXI at Z */
+/* ??_Gstrstream@@UAEPAXI at Z */
DEFINE_THISCALL_WRAPPER(iostream_scalar_dtor, 8)
iostream* __thiscall iostream_scalar_dtor(ios *base, unsigned int flags)
{
@@ -4208,6 +4225,57 @@ iostream* __thiscall iostream_scalar_dtor(ios *base, unsigned int flags)
return this;
}
+/* ??0strstream@@QAE at ABV0@@Z */
+/* ??0strstream@@QEAA at AEBV0@@Z */
+DEFINE_THISCALL_WRAPPER(strstream_copy_ctor, 12)
+iostream* __thiscall strstream_copy_ctor(iostream *this, const iostream *copy, BOOL virt_init)
+{
+ FIXME("(%p %p %d) stub\n", this, copy, virt_init);
+ return this;
+}
+
+/* ??0strstream@@QAE at PADHH@Z */
+/* ??0strstream@@QEAA at PEADHH@Z */
+DEFINE_THISCALL_WRAPPER(strstream_buffer_ctor, 20)
+iostream* __thiscall strstream_buffer_ctor(iostream *this, char *buffer, int length, int mode, BOOL virt_init)
+{
+ FIXME("(%p %p %d %d %d) stub\n", this, buffer, length, mode, virt_init);
+ return this;
+}
+
+/* ??0strstream@@QAE at XZ */
+/* ??0strstream@@QEAA at XZ */
+DEFINE_THISCALL_WRAPPER(strstream_ctor, 8)
+iostream* __thiscall strstream_ctor(iostream *this, BOOL virt_init)
+{
+ FIXME("(%p %d) stub\n", this, virt_init);
+ return this;
+}
+
+/* ?pcount at strstream@@QBEHXZ */
+/* ?pcount at strstream@@QEBAHXZ */
+DEFINE_THISCALL_WRAPPER(strstream_pcount, 4)
+int __thiscall strstream_pcount(const iostream *this)
+{
+ return streambuf_out_waiting(istream_get_ios(&this->base1)->sb);
+}
+
+/* ?rdbuf at strstream@@QBEPAVstrstreambuf@@XZ */
+/* ?rdbuf at strstream@@QEBAPEAVstrstreambuf@@XZ */
+DEFINE_THISCALL_WRAPPER(strstream_rdbuf, 4)
+strstreambuf* __thiscall strstream_rdbuf(const iostream *this)
+{
+ return (strstreambuf*) istream_get_ios(&this->base1)->sb;
+}
+
+/* ?str at strstream@@QAEPADXZ */
+/* ?str at strstream@@QEAAPEADXZ */
+DEFINE_THISCALL_WRAPPER(strstream_str, 4)
+char* __thiscall strstream_str(iostream *this)
+{
+ return strstreambuf_str(strstream_rdbuf(this));
+}
+
/* ??0Iostream_init@@QAE at AAVios@@H at Z */
/* ??0Iostream_init@@QEAA at AEAVios@@H at Z */
DEFINE_THISCALL_WRAPPER(Iostream_init_ios_ctor, 12)
@@ -4363,6 +4431,7 @@ static void init_io(void *base)
init_istream_withassign_rtti(base);
init_istrstream_rtti(base);
init_iostream_rtti(base);
+ init_strstream_rtti(base);
#endif
if ((fb = MSVCRT_operator_new(sizeof(filebuf)))) {
diff --git a/dlls/msvcirt/msvcirt.spec b/dlls/msvcirt/msvcirt.spec
index 598d42a..557185d 100644
--- a/dlls/msvcirt/msvcirt.spec
+++ b/dlls/msvcirt/msvcirt.spec
@@ -112,12 +112,12 @@
@ cdecl -arch=win64 ??0streambuf@@IEAA at XZ(ptr) streambuf_ctor
@ thiscall -arch=win32 ??0streambuf@@QAE at ABV0@@Z(ptr ptr) streambuf_copy_ctor
@ cdecl -arch=win64 ??0streambuf@@QEAA at AEBV0@@Z(ptr ptr) streambuf_copy_ctor
-@ stub -arch=win32 ??0strstream@@QAE at ABV0@@Z # __thiscall strstream::strstream(class strstream const &)
-@ stub -arch=win64 ??0strstream@@QEAA at AEBV0@@Z
-@ stub -arch=win32 ??0strstream@@QAE at PADHH@Z # __thiscall strstream::strstream(char *,int,int)
-@ stub -arch=win64 ??0strstream@@QEAA at PEADHH@Z
-@ stub -arch=win32 ??0strstream@@QAE at XZ # __thiscall strstream::strstream(void)
-@ stub -arch=win64 ??0strstream@@QEAA at XZ
+@ thiscall -arch=win32 ??0strstream@@QAE at ABV0@@Z(ptr ptr long) strstream_copy_ctor
+@ cdecl -arch=win64 ??0strstream@@QEAA at AEBV0@@Z(ptr ptr long) strstream_copy_ctor
+@ thiscall -arch=win32 ??0strstream@@QAE at PADHH@Z(ptr ptr long long long) strstream_buffer_ctor
+@ cdecl -arch=win64 ??0strstream@@QEAA at PEADHH@Z(ptr ptr long long long) strstream_buffer_ctor
+@ thiscall -arch=win32 ??0strstream@@QAE at XZ(ptr long) strstream_ctor
+@ cdecl -arch=win64 ??0strstream@@QEAA at XZ(ptr long) strstream_ctor
@ thiscall -arch=win32 ??0strstreambuf@@QAE at ABV0@@Z(ptr ptr) strstreambuf_copy_ctor
@ cdecl -arch=win64 ??0strstreambuf@@QEAA at AEBV0@@Z(ptr ptr) strstreambuf_copy_ctor
@ thiscall -arch=win32 ??0strstreambuf@@QAE at H@Z(ptr long) strstreambuf_dynamic_ctor
@@ -166,8 +166,8 @@
@ stub -arch=win64 ??1stdiostream@@UEAA at XZ
@ thiscall -arch=win32 ??1streambuf@@UAE at XZ(ptr) streambuf_dtor
@ cdecl -arch=win64 ??1streambuf@@UEAA at XZ(ptr) streambuf_dtor
-@ stub -arch=win32 ??1strstream@@UAE at XZ # virtual __thiscall strstream::~strstream(void)
-@ stub -arch=win64 ??1strstream@@UEAA at XZ
+@ thiscall -arch=win32 ??1strstream@@UAE at XZ(ptr) iostream_dtor
+@ cdecl -arch=win64 ??1strstream@@UEAA at XZ(ptr) iostream_dtor
@ thiscall -arch=win32 ??1strstreambuf@@UAE at XZ(ptr) strstreambuf_dtor
@ cdecl -arch=win64 ??1strstreambuf@@UEAA at XZ(ptr) strstreambuf_dtor
@ thiscall -arch=win32 ??4Iostream_init@@QAEAAV0 at ABV0@@Z(ptr ptr) Iostream_init_assign
@@ -220,8 +220,8 @@
@ stub -arch=win64 ??4stdiostream@@QEAAAEAV0 at AEAV0@@Z
@ thiscall -arch=win32 ??4streambuf@@QAEAAV0 at ABV0@@Z(ptr ptr) streambuf_assign
@ cdecl -arch=win64 ??4streambuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) streambuf_assign
-@ stub -arch=win32 ??4strstream@@QAEAAV0 at AAV0@@Z # class strstream & __thiscall strstream::operator=(class strstream &)
-@ stub -arch=win64 ??4strstream@@QEAAAEAV0 at AEAV0@@Z
+@ thiscall -arch=win32 ??4strstream@@QAEAAV0 at AAV0@@Z(ptr ptr) iostream_assign
+@ cdecl -arch=win64 ??4strstream@@QEAAAEAV0 at AEAV0@@Z(ptr ptr) iostream_assign
@ thiscall -arch=win32 ??4strstreambuf@@QAEAAV0 at ABV0@@Z(ptr ptr) strstreambuf_assign
@ cdecl -arch=win64 ??4strstreambuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) strstreambuf_assign
@ thiscall -arch=win32 ??5istream@@QAEAAV0 at AAC@Z(ptr ptr) istream_read_char
@@ -319,7 +319,7 @@
@ extern ??_7stdiobuf@@6B@ MSVCP_stdiobuf_vtable
# @ extern ??_7stdiostream@@6B@ # const stdiostream::`vftable'
@ extern ??_7streambuf@@6B@ MSVCP_streambuf_vtable
-# @ extern ??_7strstream@@6B@ # const strstream::`vftable'
+@ extern ??_7strstream@@6B@ MSVCP_strstream_vtable
@ extern ??_7strstreambuf@@6B@ MSVCP_strstreambuf_vtable
# @ extern ??_8fstream@@7Bistream@@@ # const fstream::`vbtable'{for `istream'}
# @ extern ??_8fstream@@7Bostream@@@ # const fstream::`vbtable'{for `ostream'}
@@ -335,8 +335,8 @@
@ extern ??_8ostrstream@@7B@ ostream_vbtable
# @ extern ??_8stdiostream@@7Bistream@@@ # const stdiostream::`vbtable'{for `istream'}
# @ extern ??_8stdiostream@@7Bostream@@@ # const stdiostream::`vbtable'{for `ostream'}
-# @ extern ??_8strstream@@7Bistream@@@ # const strstream::`vbtable'{for `istream'}
-# @ extern ??_8strstream@@7Bostream@@@ # const strstream::`vbtable'{for `ostream'}
+@ extern ??_8strstream@@7Bistream@@@ iostream_vbtable_istream
+@ extern ??_8strstream@@7Bostream@@@ iostream_vbtable_ostream
@ stub -arch=win32 ??_Dfstream@@QAEXXZ # void __thiscall fstream::`vbase destructor'(void)
@ stub -arch=win64 ??_Dfstream@@QEAAXXZ
@ stub -arch=win32 ??_Difstream@@QAEXXZ # void __thiscall ifstream::`vbase destructor'(void)
@@ -359,8 +359,8 @@
@ cdecl -arch=win64 ??_Dostrstream@@QEAAXXZ(ptr) ostream_vbase_dtor
@ stub -arch=win32 ??_Dstdiostream@@QAEXXZ # void __thiscall stdiostream::`vbase destructor'(void)
@ stub -arch=win64 ??_Dstdiostream@@QEAAXXZ
-@ stub -arch=win32 ??_Dstrstream@@QAEXXZ # void __thiscall strstream::`vbase destructor'(void)
-@ stub -arch=win64 ??_Dstrstream@@QEAAXXZ
+@ thiscall -arch=win32 ??_Dstrstream@@QAEXXZ(ptr) iostream_vbase_dtor
+@ cdecl -arch=win64 ??_Dstrstream@@QEAAXXZ(ptr) iostream_vbase_dtor
@ thiscall -arch=win32 ??_Eexception@@UAEPAXI at Z(ptr long) MSVCP_exception_vector_dtor
@ thiscall -arch=win32 ??_Efilebuf@@UAEPAXI at Z(ptr long) filebuf_vector_dtor
@ stub -arch=win32 ??_Efstream@@UAEPAXI at Z # virtual void * __thiscall fstream::`vector deleting destructor'(unsigned int)
@@ -378,7 +378,7 @@
@ thiscall -arch=win32 ??_Estdiobuf@@UAEPAXI at Z(ptr long) stdiobuf_vector_dtor
@ stub -arch=win32 ??_Estdiostream@@UAEPAXI at Z # virtual void * __thiscall stdiostream::`vector deleting destructor'(unsigned int)
@ thiscall -arch=win32 ??_Estreambuf@@UAEPAXI at Z(ptr long) streambuf_vector_dtor
-@ stub -arch=win32 ??_Estrstream@@UAEPAXI at Z # virtual void * __thiscall strstream::`vector deleting destructor'(unsigned int)
+@ thiscall -arch=win32 ??_Estrstream@@UAEPAXI at Z(ptr long) iostream_vector_dtor
@ thiscall -arch=win32 ??_Estrstreambuf@@UAEPAXI at Z(ptr long) strstreambuf_vector_dtor
@ thiscall -arch=win32 ??_Gexception@@UAEPAXI at Z(ptr long) MSVCP_exception_scalar_dtor
@ thiscall -arch=win32 ??_Gfilebuf@@UAEPAXI at Z(ptr long) filebuf_scalar_dtor
@@ -397,7 +397,7 @@
@ thiscall -arch=win32 ??_Gstdiobuf@@UAEPAXI at Z(ptr long) stdiobuf_scalar_dtor
@ stub -arch=win32 ??_Gstdiostream@@UAEPAXI at Z # virtual void * __thiscall stdiostream::`scalar deleting destructor'(unsigned int)
@ thiscall -arch=win32 ??_Gstreambuf@@UAEPAXI at Z(ptr long) streambuf_scalar_dtor
-@ stub -arch=win32 ??_Gstrstream@@UAEPAXI at Z # virtual void * __thiscall strstream::`scalar deleting destructor'(unsigned int)
+@ thiscall -arch=win32 ??_Gstrstream@@UAEPAXI at Z(ptr long) iostream_scalar_dtor
@ thiscall -arch=win32 ??_Gstrstreambuf@@UAEPAXI at Z(ptr long) strstreambuf_scalar_dtor
@ extern ?adjustfield at ios@@2JB ios_adjustfield
@ thiscall -arch=win32 ?allocate at streambuf@@IAEHXZ(ptr) streambuf_allocate
@@ -593,8 +593,8 @@
@ cdecl -arch=win64 ?pbump at streambuf@@IEAAXH at Z(ptr long) streambuf_pbump
@ thiscall -arch=win32 ?pcount at ostrstream@@QBEHXZ(ptr) ostrstream_pcount
@ cdecl -arch=win64 ?pcount at ostrstream@@QEBAHXZ(ptr) ostrstream_pcount
-@ stub -arch=win32 ?pcount at strstream@@QBEHXZ # int __thiscall strstream::pcount(void)const
-@ stub -arch=win64 ?pcount at strstream@@QEBAHXZ
+@ thiscall -arch=win32 ?pcount at strstream@@QBEHXZ(ptr) strstream_pcount
+@ cdecl -arch=win64 ?pcount at strstream@@QEBAHXZ(ptr) strstream_pcount
@ thiscall -arch=win32 ?peek at istream@@QAEHXZ(ptr) istream_peek
@ cdecl -arch=win64 ?peek at istream@@QEAAHXZ(ptr) istream_peek
@ thiscall -arch=win32 ?pptr at streambuf@@IBEPADXZ(ptr) streambuf_pptr
@@ -627,8 +627,8 @@
@ cdecl -arch=win64 ?rdbuf at ostrstream@@QEBAPEAVstrstreambuf@@XZ(ptr) ostrstream_rdbuf
@ stub -arch=win32 ?rdbuf at stdiostream@@QBEPAVstdiobuf@@XZ # class stdiobuf * __thiscall stdiostream::rdbuf(void)const
@ stub -arch=win64 ?rdbuf at stdiostream@@QEBAPEAVstdiobuf@@XZ
-@ stub -arch=win32 ?rdbuf at strstream@@QBEPAVstrstreambuf@@XZ # class strstreambuf * __thiscall strstream::rdbuf(void)const
-@ stub -arch=win64 ?rdbuf at strstream@@QEBAPEAVstrstreambuf@@XZ
+@ thiscall -arch=win32 ?rdbuf at strstream@@QBEPAVstrstreambuf@@XZ(ptr) strstream_rdbuf
+@ cdecl -arch=win64 ?rdbuf at strstream@@QEBAPEAVstrstreambuf@@XZ(ptr) strstream_rdbuf
@ thiscall -arch=win32 ?rdstate at ios@@QBEHXZ(ptr) ios_rdstate
@ cdecl -arch=win64 ?rdstate at ios@@QEBAHXZ(ptr) ios_rdstate
@ thiscall -arch=win32 ?read at istream@@QAEAAV1 at PACH@Z(ptr ptr long) istream_read
@@ -716,8 +716,8 @@
@ cdecl -arch=win64 ?str at istrstream@@QEAAPEADXZ(ptr) istrstream_str
@ thiscall -arch=win32 ?str at ostrstream@@QAEPADXZ(ptr) ostrstream_str
@ cdecl -arch=win64 ?str at ostrstream@@QEAAPEADXZ(ptr) ostrstream_str
-@ stub -arch=win32 ?str at strstream@@QAEPADXZ # char * __thiscall strstream::str(void)
-@ stub -arch=win64 ?str at strstream@@QEAAPEADXZ
+@ thiscall -arch=win32 ?str at strstream@@QAEPADXZ(ptr) strstream_str
+@ cdecl -arch=win64 ?str at strstream@@QEAAPEADXZ(ptr) strstream_str
@ thiscall -arch=win32 ?str at strstreambuf@@QAEPADXZ(ptr) strstreambuf_str
@ cdecl -arch=win64 ?str at strstreambuf@@QEAAPEADXZ(ptr) strstreambuf_str
@ extern ?sunk_with_stdio at ios@@0HA ios_sunk_with_stdio
diff --git a/dlls/msvcrt20/msvcrt20.spec b/dlls/msvcrt20/msvcrt20.spec
index 584a85e..4059a47 100644
--- a/dlls/msvcrt20/msvcrt20.spec
+++ b/dlls/msvcrt20/msvcrt20.spec
@@ -102,12 +102,12 @@
@ cdecl -arch=win64 ??0streambuf@@IEAA at XZ(ptr) msvcirt.??0streambuf@@IEAA at XZ
@ thiscall -arch=win32 ??0streambuf@@QAE at ABV0@@Z(ptr ptr) msvcirt.??0streambuf@@QAE at ABV0@@Z
@ cdecl -arch=win64 ??0streambuf@@QEAA at AEBV0@@Z(ptr ptr) msvcirt.??0streambuf@@QEAA at AEBV0@@Z
-@ stub -arch=win32 ??0strstream@@QAE at ABV0@@Z
-@ stub -arch=win64 ??0strstream@@QEAA at AEBV0@@Z
-@ stub -arch=win32 ??0strstream@@QAE at PADHH@Z
-@ stub -arch=win64 ??0strstream@@QEAA at PEADHH@Z
-@ stub -arch=win32 ??0strstream@@QAE at XZ
-@ stub -arch=win64 ??0strstream@@QEAA at XZ
+@ thiscall -arch=win32 ??0strstream@@QAE at ABV0@@Z(ptr ptr long) msvcirt.??0strstream@@QAE at ABV0@@Z
+@ cdecl -arch=win64 ??0strstream@@QEAA at AEBV0@@Z(ptr ptr long) msvcirt.??0strstream@@QEAA at AEBV0@@Z
+@ thiscall -arch=win32 ??0strstream@@QAE at PADHH@Z(ptr ptr long long long) msvcirt.??0strstream@@QAE at PADHH@Z
+@ cdecl -arch=win64 ??0strstream@@QEAA at PEADHH@Z(ptr ptr long long long) msvcirt.??0strstream@@QEAA at PEADHH@Z
+@ thiscall -arch=win32 ??0strstream@@QAE at XZ(ptr long) msvcirt.??0strstream@@QAE at XZ
+@ cdecl -arch=win64 ??0strstream@@QEAA at XZ(ptr long) msvcirt.??0strstream@@QEAA at XZ
@ thiscall -arch=win32 ??0strstreambuf@@QAE at ABV0@@Z(ptr ptr) msvcirt.??0strstreambuf@@QAE at ABV0@@Z
@ cdecl -arch=win64 ??0strstreambuf@@QEAA at AEBV0@@Z(ptr ptr) msvcirt.??0strstreambuf@@QEAA at AEBV0@@Z
@ thiscall -arch=win32 ??0strstreambuf@@QAE at H@Z(ptr long) msvcirt.??0strstreambuf@@QAE at H@Z
@@ -150,8 +150,8 @@
@ stub -arch=win64 ??1stdiostream@@UEAA at XZ
@ thiscall -arch=win32 ??1streambuf@@UAE at XZ(ptr) msvcirt.??1streambuf@@UAE at XZ
@ cdecl -arch=win64 ??1streambuf@@UEAA at XZ(ptr) msvcirt.??1streambuf@@UEAA at XZ
-@ stub -arch=win32 ??1strstream@@UAE at XZ
-@ stub -arch=win64 ??1strstream@@UEAA at XZ
+@ thiscall -arch=win32 ??1strstream@@UAE at XZ(ptr) msvcirt.??1strstream@@UAE at XZ
+@ cdecl -arch=win64 ??1strstream@@UEAA at XZ(ptr) msvcirt.??1strstream@@UEAA at XZ
@ thiscall -arch=win32 ??1strstreambuf@@UAE at XZ(ptr) msvcirt.??1strstreambuf@@UAE at XZ
@ cdecl -arch=win64 ??1strstreambuf@@UEAA at XZ(ptr) msvcirt.??1strstreambuf@@UEAA at XZ
@ cdecl -arch=win32 ??2 at YAPAXI@Z(long) msvcrt.??2 at YAPAXI@Z
@@ -204,8 +204,8 @@
@ stub -arch=win64 ??4stdiostream@@QEAAAEAV0 at AEAV0@@Z
@ thiscall -arch=win32 ??4streambuf@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4streambuf@@QAEAAV0 at ABV0@@Z
@ cdecl -arch=win64 ??4streambuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4streambuf@@QEAAAEAV0 at AEBV0@@Z
-@ stub -arch=win32 ??4strstream@@QAEAAV0 at AAV0@@Z
-@ stub -arch=win64 ??4strstream@@QEAAAEAV0 at AEAV0@@Z
+@ thiscall -arch=win32 ??4strstream@@QAEAAV0 at AAV0@@Z(ptr ptr) msvcirt.??4strstream@@QAEAAV0 at AAV0@@Z
+@ cdecl -arch=win64 ??4strstream@@QEAAAEAV0 at AEAV0@@Z(ptr ptr) msvcirt.??4strstream@@QEAAAEAV0 at AEAV0@@Z
@ thiscall -arch=win32 ??4strstreambuf@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4strstreambuf@@QAEAAV0 at ABV0@@Z
@ cdecl -arch=win64 ??4strstreambuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4strstreambuf@@QEAAAEAV0 at AEBV0@@Z
@ thiscall -arch=win32 ??5istream@@QAEAAV0 at AAC@Z(ptr ptr) msvcirt.??5istream@@QAEAAV0 at AAC@Z
@@ -301,7 +301,7 @@
@ extern ??_7stdiobuf@@6B@ msvcirt.??_7stdiobuf@@6B@
# @ extern ??_7stdiostream@@6B@
@ extern ??_7streambuf@@6B@ msvcirt.??_7streambuf@@6B@
-# @ extern ??_7strstream@@6B@
+@ extern ??_7strstream@@6B@ msvcirt.??_7strstream@@6B@
@ extern ??_7strstreambuf@@6B@ msvcirt.??_7strstreambuf@@6B@
# @ extern ??_8fstream@@7Bistream@@@
# @ extern ??_8fstream@@7Bostream@@@
@@ -317,8 +317,8 @@
@ extern ??_8ostrstream@@7B@ msvcirt.??_8ostrstream@@7B@
# @ extern ??_8stdiostream@@7Bistream@@@
# @ extern ??_8stdiostream@@7Bostream@@@
-# @ extern ??_8strstream@@7Bistream@@@
-# @ extern ??_8strstream@@7Bostream@@@
+@ extern ??_8strstream@@7Bistream@@@ msvcirt.??_8strstream@@7Bistream@@@
+@ extern ??_8strstream@@7Bostream@@@ msvcirt.??_8strstream@@7Bostream@@@
@ stub -arch=win32 ??_Dfstream@@QAEXXZ
@ stub -arch=win64 ??_Dfstream@@QEAAXXZ
@ stub -arch=win32 ??_Difstream@@QAEXXZ
@@ -341,8 +341,8 @@
@ cdecl -arch=win64 ??_Dostrstream@@QEAAXXZ(ptr) msvcirt.??_Dostrstream@@QEAAXXZ
@ stub -arch=win32 ??_Dstdiostream@@QAEXXZ
@ stub -arch=win64 ??_Dstdiostream@@QEAAXXZ
-@ stub -arch=win32 ??_Dstrstream@@QAEXXZ
-@ stub -arch=win64 ??_Dstrstream@@QEAAXXZ
+@ thiscall -arch=win32 ??_Dstrstream@@QAEXXZ(ptr) msvcirt.??_Dstrstream@@QAEXXZ
+@ cdecl -arch=win64 ??_Dstrstream@@QEAAXXZ(ptr) msvcirt.??_Dstrstream@@QEAAXXZ
@ stub -arch=win32 ??_EIostream_init@@QAEPAXI at Z
@ thiscall -arch=win32 ??_Efilebuf@@UAEPAXI at Z(ptr long) msvcirt.??_Efilebuf@@UAEPAXI at Z
@ stub -arch=win32 ??_Efstream@@UAEPAXI at Z
@@ -359,7 +359,7 @@
@ thiscall -arch=win32 ??_Estdiobuf@@UAEPAXI at Z(ptr long) msvcirt.??_Estdiobuf@@UAEPAXI at Z
@ stub -arch=win32 ??_Estdiostream@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Estreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Estreambuf@@UAEPAXI at Z
-@ stub -arch=win32 ??_Estrstream@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Estrstream@@UAEPAXI at Z(ptr long) msvcirt.??_Estrstream@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Estrstreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Estrstreambuf@@UAEPAXI at Z
@ stub -arch=win32 ??_GIostream_init@@QAEPAXI at Z
@ thiscall -arch=win32 ??_Gfilebuf@@UAEPAXI at Z(ptr long) msvcirt.??_Gfilebuf@@UAEPAXI at Z
@@ -377,7 +377,7 @@
@ thiscall -arch=win32 ??_Gstdiobuf@@UAEPAXI at Z(ptr long) msvcirt.??_Gstdiobuf@@UAEPAXI at Z
@ stub -arch=win32 ??_Gstdiostream@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Gstreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Gstreambuf@@UAEPAXI at Z
-@ stub -arch=win32 ??_Gstrstream@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Gstrstream@@UAEPAXI at Z(ptr long) msvcirt.??_Gstrstream@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Gstrstreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Gstrstreambuf@@UAEPAXI at Z
@ cdecl -arch=win32 ?_query_new_handler@@YAP6AHI at ZXZ() msvcrt.?_query_new_handler@@YAP6AHI at ZXZ
@ cdecl -arch=win64 ?_query_new_handler@@YAP6AH_K at ZXZ() msvcrt.?_query_new_handler@@YAP6AH_K at ZXZ
@@ -579,8 +579,8 @@
@ cdecl -arch=win64 ?pbump at streambuf@@IEAAXH at Z(ptr long) msvcirt.?pbump at streambuf@@IEAAXH at Z
@ thiscall -arch=win32 ?pcount at ostrstream@@QBEHXZ(ptr) msvcirt.?pcount at ostrstream@@QBEHXZ
@ cdecl -arch=win64 ?pcount at ostrstream@@QEBAHXZ(ptr) msvcirt.?pcount at ostrstream@@QEBAHXZ
-@ stub -arch=win32 ?pcount at strstream@@QBEHXZ
-@ stub -arch=win64 ?pcount at strstream@@QEBAHXZ
+@ thiscall -arch=win32 ?pcount at strstream@@QBEHXZ(ptr) msvcirt.?pcount at strstream@@QBEHXZ
+@ cdecl -arch=win64 ?pcount at strstream@@QEBAHXZ(ptr) msvcirt.?pcount at strstream@@QEBAHXZ
@ thiscall -arch=win32 ?peek at istream@@QAEHXZ(ptr) msvcirt.?peek at istream@@QAEHXZ
@ cdecl -arch=win64 ?peek at istream@@QEAAHXZ(ptr) msvcirt.?peek at istream@@QEAAHXZ
@ thiscall -arch=win32 ?pptr at streambuf@@IBEPADXZ(ptr) msvcirt.?pptr at streambuf@@IBEPADXZ
@@ -613,8 +613,8 @@
@ cdecl -arch=win64 ?rdbuf at ostrstream@@QEBAPEAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf at ostrstream@@QEBAPEAVstrstreambuf@@XZ
@ stub -arch=win32 ?rdbuf at stdiostream@@QBEPAVstdiobuf@@XZ
@ stub -arch=win64 ?rdbuf at stdiostream@@QEBAPEAVstdiobuf@@XZ
-@ stub -arch=win32 ?rdbuf at strstream@@QBEPAVstrstreambuf@@XZ
-@ stub -arch=win64 ?rdbuf at strstream@@QEBAPEAVstrstreambuf@@XZ
+@ thiscall -arch=win32 ?rdbuf at strstream@@QBEPAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf at strstream@@QBEPAVstrstreambuf@@XZ
+@ cdecl -arch=win64 ?rdbuf at strstream@@QEBAPEAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf at strstream@@QEBAPEAVstrstreambuf@@XZ
@ thiscall -arch=win32 ?rdstate at ios@@QBEHXZ(ptr) msvcirt.?rdstate at ios@@QBEHXZ
@ cdecl -arch=win64 ?rdstate at ios@@QEBAHXZ(ptr) msvcirt.?rdstate at ios@@QEBAHXZ
@ thiscall -arch=win32 ?read at istream@@QAEAAV1 at PACH@Z(ptr ptr long) msvcirt.?read at istream@@QAEAAV1 at PACH@Z
@@ -704,8 +704,8 @@
@ cdecl -arch=win64 ?str at istrstream@@QEAAPEADXZ(ptr) msvcirt.?str at istrstream@@QEAAPEADXZ
@ thiscall -arch=win32 ?str at ostrstream@@QAEPADXZ(ptr) msvcirt.?str at ostrstream@@QAEPADXZ
@ cdecl -arch=win64 ?str at ostrstream@@QEAAPEADXZ(ptr) msvcirt.?str at ostrstream@@QEAAPEADXZ
-@ stub -arch=win32 ?str at strstream@@QAEPADXZ
-@ stub -arch=win64 ?str at strstream@@QEAAPEADXZ
+@ thiscall -arch=win32 ?str at strstream@@QAEPADXZ(ptr) msvcirt.?str at strstream@@QAEPADXZ
+@ cdecl -arch=win64 ?str at strstream@@QEAAPEADXZ(ptr) msvcirt.?str at strstream@@QEAAPEADXZ
@ thiscall -arch=win32 ?str at strstreambuf@@QAEPADXZ(ptr) msvcirt.?str at strstreambuf@@QAEPADXZ
@ cdecl -arch=win64 ?str at strstreambuf@@QEAAPEADXZ(ptr) msvcirt.?str at strstreambuf@@QEAAPEADXZ
@ extern ?sunk_with_stdio at ios@@0HA msvcirt.?sunk_with_stdio at ios@@0HA
diff --git a/dlls/msvcrt40/msvcrt40.spec b/dlls/msvcrt40/msvcrt40.spec
index 7c83691..40b6eab 100644
--- a/dlls/msvcrt40/msvcrt40.spec
+++ b/dlls/msvcrt40/msvcrt40.spec
@@ -124,12 +124,12 @@
@ cdecl -arch=win64 ??0streambuf@@IEAA at XZ(ptr) msvcirt.??0streambuf@@IEAA at XZ
@ thiscall -arch=win32 ??0streambuf@@QAE at ABV0@@Z(ptr ptr) msvcirt.??0streambuf@@QAE at ABV0@@Z
@ cdecl -arch=win64 ??0streambuf@@QEAA at AEBV0@@Z(ptr ptr) msvcirt.??0streambuf@@QEAA at AEBV0@@Z
-@ stub -arch=win32 ??0strstream@@QAE at ABV0@@Z
-@ stub -arch=win64 ??0strstream@@QEAA at AEBV0@@Z
-@ stub -arch=win32 ??0strstream@@QAE at PADHH@Z
-@ stub -arch=win64 ??0strstream@@QEAA at PEADHH@Z
-@ stub -arch=win32 ??0strstream@@QAE at XZ
-@ stub -arch=win64 ??0strstream@@QEAA at XZ
+@ thiscall -arch=win32 ??0strstream@@QAE at ABV0@@Z(ptr ptr long) msvcirt.??0strstream@@QAE at ABV0@@Z
+@ cdecl -arch=win64 ??0strstream@@QEAA at AEBV0@@Z(ptr ptr long) msvcirt.??0strstream@@QEAA at AEBV0@@Z
+@ thiscall -arch=win32 ??0strstream@@QAE at PADHH@Z(ptr ptr long long long) msvcirt.??0strstream@@QAE at PADHH@Z
+@ cdecl -arch=win64 ??0strstream@@QEAA at PEADHH@Z(ptr ptr long long long) msvcirt.??0strstream@@QEAA at PEADHH@Z
+@ thiscall -arch=win32 ??0strstream@@QAE at XZ(ptr long) msvcirt.??0strstream@@QAE at XZ
+@ cdecl -arch=win64 ??0strstream@@QEAA at XZ(ptr long) msvcirt.??0strstream@@QEAA at XZ
@ thiscall -arch=win32 ??0strstreambuf@@QAE at ABV0@@Z(ptr ptr) msvcirt.??0strstreambuf@@QAE at ABV0@@Z
@ cdecl -arch=win64 ??0strstreambuf@@QEAA at AEBV0@@Z(ptr ptr) msvcirt.??0strstreambuf@@QEAA at AEBV0@@Z
@ thiscall -arch=win32 ??0strstreambuf@@QAE at H@Z(ptr long) msvcirt.??0strstreambuf@@QAE at H@Z
@@ -182,8 +182,8 @@
@ stub -arch=win64 ??1stdiostream@@UEAA at XZ
@ thiscall -arch=win32 ??1streambuf@@UAE at XZ(ptr) msvcirt.??1streambuf@@UAE at XZ
@ cdecl -arch=win64 ??1streambuf@@UEAA at XZ(ptr) msvcirt.??1streambuf@@UEAA at XZ
-@ stub -arch=win32 ??1strstream@@UAE at XZ
-@ stub -arch=win64 ??1strstream@@UEAA at XZ
+@ thiscall -arch=win32 ??1strstream@@UAE at XZ(ptr) msvcirt.??1strstream@@UAE at XZ
+@ cdecl -arch=win64 ??1strstream@@UEAA at XZ(ptr) msvcirt.??1strstream@@UEAA at XZ
@ thiscall -arch=win32 ??1strstreambuf@@UAE at XZ(ptr) msvcirt.??1strstreambuf@@UAE at XZ
@ cdecl -arch=win64 ??1strstreambuf@@UEAA at XZ(ptr) msvcirt.??1strstreambuf@@UEAA at XZ
@ thiscall -arch=i386 ??1type_info@@UAE at XZ(ptr) msvcrt.??1type_info@@UAE at XZ
@@ -248,8 +248,8 @@
@ stub -arch=win64 ??4stdiostream@@QEAAAEAV0 at AEAV0@@Z
@ thiscall -arch=win32 ??4streambuf@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4streambuf@@QAEAAV0 at ABV0@@Z
@ cdecl -arch=win64 ??4streambuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4streambuf@@QEAAAEAV0 at AEBV0@@Z
-@ stub -arch=win32 ??4strstream@@QAEAAV0 at AAV0@@Z
-@ stub -arch=win64 ??4strstream@@QEAAAEAV0 at AEAV0@@Z
+@ thiscall -arch=win32 ??4strstream@@QAEAAV0 at AAV0@@Z(ptr ptr) msvcirt.??4strstream@@QAEAAV0 at AAV0@@Z
+@ cdecl -arch=win64 ??4strstream@@QEAAAEAV0 at AEAV0@@Z(ptr ptr) msvcirt.??4strstream@@QEAAAEAV0 at AEAV0@@Z
@ thiscall -arch=win32 ??4strstreambuf@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4strstreambuf@@QAEAAV0 at ABV0@@Z
@ cdecl -arch=win64 ??4strstreambuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4strstreambuf@@QEAAAEAV0 at AEBV0@@Z
@ thiscall -arch=win32 ??5istream@@QAEAAV0 at AAC@Z(ptr ptr) msvcirt.??5istream@@QAEAAV0 at AAC@Z
@@ -354,7 +354,7 @@
@ extern ??_7stdiobuf@@6B@ msvcirt.??_7stdiobuf@@6B@
# @ extern ??_7stdiostream@@6B@
@ extern ??_7streambuf@@6B@ msvcirt.??_7streambuf@@6B@
-# @ extern ??_7strstream@@6B@
+@ extern ??_7strstream@@6B@ msvcirt.??_7strstream@@6B@
@ extern ??_7strstreambuf@@6B@ msvcirt.??_7strstreambuf@@6B@
# @ extern ??_8fstream@@7Bistream@@@
# @ extern ??_8fstream@@7Bostream@@@
@@ -370,8 +370,8 @@
@ extern ??_8ostrstream@@7B@ msvcirt.??_8ostrstream@@7B@
# @ extern ??_8stdiostream@@7Bistream@@@
# @ extern ??_8stdiostream@@7Bostream@@@
-# @ extern ??_8strstream@@7Bistream@@@
-# @ extern ??_8strstream@@7Bostream@@@
+@ extern ??_8strstream@@7Bistream@@@ msvcirt.??_8strstream@@7Bistream@@@
+@ extern ??_8strstream@@7Bostream@@@ msvcirt.??_8strstream@@7Bostream@@@
@ stub -arch=win32 ??_Dfstream@@QAEXXZ
@ stub -arch=win64 ??_Dfstream@@QEAAXXZ
@ stub -arch=win32 ??_Difstream@@QAEXXZ
@@ -394,8 +394,8 @@
@ cdecl -arch=win64 ??_Dostrstream@@QEAAXXZ(ptr) msvcirt.??_Dostrstream@@QEAAXXZ
@ stub -arch=win32 ??_Dstdiostream@@QAEXXZ
@ stub -arch=win64 ??_Dstdiostream@@QEAAXXZ
-@ stub -arch=win32 ??_Dstrstream@@QAEXXZ
-@ stub -arch=win64 ??_Dstrstream@@QEAAXXZ
+@ thiscall -arch=win32 ??_Dstrstream@@QAEXXZ(ptr) msvcirt.??_Dstrstream@@QAEXXZ
+@ cdecl -arch=win64 ??_Dstrstream@@QEAAXXZ(ptr) msvcirt.??_Dstrstream@@QEAAXXZ
@ stub -arch=win32 ??_EIostream_init@@QAEPAXI at Z
@ thiscall -arch=win32 ??_E__non_rtti_object@@UAEPAXI at Z(ptr long) msvcrt.??_E__non_rtti_object@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Ebad_cast@@UAEPAXI at Z(ptr long) msvcrt.??_Ebad_cast@@UAEPAXI at Z
@@ -417,7 +417,7 @@
@ thiscall -arch=win32 ??_Estdiobuf@@UAEPAXI at Z(ptr long) msvcirt.??_Estdiobuf@@UAEPAXI at Z
@ stub -arch=win32 ??_Estdiostream@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Estreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Estreambuf@@UAEPAXI at Z
-@ stub -arch=win32 ??_Estrstream@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Estrstream@@UAEPAXI at Z(ptr long) msvcirt.??_Estrstream@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Estrstreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Estrstreambuf@@UAEPAXI at Z
@ stub -arch=win32 ??_GIostream_init@@QAEPAXI at Z
@ thiscall -arch=win32 ??_G__non_rtti_object@@UAEPAXI at Z(ptr long) msvcrt.??_G__non_rtti_object@@UAEPAXI at Z
@@ -440,7 +440,7 @@
@ thiscall -arch=win32 ??_Gstdiobuf@@UAEPAXI at Z(ptr long) msvcirt.??_Gstdiobuf@@UAEPAXI at Z
@ stub -arch=win32 ??_Gstdiostream@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Gstreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Gstreambuf@@UAEPAXI at Z
-@ stub -arch=win32 ??_Gstrstream@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Gstrstream@@UAEPAXI at Z(ptr long) msvcirt.??_Gstrstream@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Gstrstreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Gstrstreambuf@@UAEPAXI at Z
@ cdecl -arch=win32 ?_query_new_handler@@YAP6AHI at ZXZ() msvcrt.?_query_new_handler@@YAP6AHI at ZXZ
@ cdecl -arch=win64 ?_query_new_handler@@YAP6AH_K at ZXZ() msvcrt.?_query_new_handler@@YAP6AH_K at ZXZ
@@ -648,8 +648,8 @@
@ cdecl -arch=win64 ?pbump at streambuf@@IEAAXH at Z(ptr long) msvcirt.?pbump at streambuf@@IEAAXH at Z
@ thiscall -arch=win32 ?pcount at ostrstream@@QBEHXZ(ptr) msvcirt.?pcount at ostrstream@@QBEHXZ
@ cdecl -arch=win64 ?pcount at ostrstream@@QEBAHXZ(ptr) msvcirt.?pcount at ostrstream@@QEBAHXZ
-@ stub -arch=win32 ?pcount at strstream@@QBEHXZ
-@ stub -arch=win64 ?pcount at strstream@@QEBAHXZ
+@ thiscall -arch=win32 ?pcount at strstream@@QBEHXZ(ptr) msvcirt.?pcount at strstream@@QBEHXZ
+@ cdecl -arch=win64 ?pcount at strstream@@QEBAHXZ(ptr) msvcirt.?pcount at strstream@@QEBAHXZ
@ thiscall -arch=win32 ?peek at istream@@QAEHXZ(ptr) msvcirt.?peek at istream@@QAEHXZ
@ cdecl -arch=win64 ?peek at istream@@QEAAHXZ(ptr) msvcirt.?peek at istream@@QEAAHXZ
@ thiscall -arch=win32 ?pptr at streambuf@@IBEPADXZ(ptr) msvcirt.?pptr at streambuf@@IBEPADXZ
@@ -684,8 +684,8 @@
@ cdecl -arch=win64 ?rdbuf at ostrstream@@QEBAPEAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf at ostrstream@@QEBAPEAVstrstreambuf@@XZ
@ stub -arch=win32 ?rdbuf at stdiostream@@QBEPAVstdiobuf@@XZ
@ stub -arch=win64 ?rdbuf at stdiostream@@QEBAPEAVstdiobuf@@XZ
-@ stub -arch=win32 ?rdbuf at strstream@@QBEPAVstrstreambuf@@XZ
-@ stub -arch=win64 ?rdbuf at strstream@@QEBAPEAVstrstreambuf@@XZ
+@ thiscall -arch=win32 ?rdbuf at strstream@@QBEPAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf at strstream@@QBEPAVstrstreambuf@@XZ
+@ cdecl -arch=win64 ?rdbuf at strstream@@QEBAPEAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf at strstream@@QEBAPEAVstrstreambuf@@XZ
@ thiscall -arch=win32 ?rdstate at ios@@QBEHXZ(ptr) msvcirt.?rdstate at ios@@QBEHXZ
@ cdecl -arch=win64 ?rdstate at ios@@QEBAHXZ(ptr) msvcirt.?rdstate at ios@@QEBAHXZ
@ thiscall -arch=win32 ?read at istream@@QAEAAV1 at PACH@Z(ptr ptr long) msvcirt.?read at istream@@QAEAAV1 at PACH@Z
@@ -776,8 +776,8 @@
@ cdecl -arch=win64 ?str at istrstream@@QEAAPEADXZ(ptr) msvcirt.?str at istrstream@@QEAAPEADXZ
@ thiscall -arch=win32 ?str at ostrstream@@QAEPADXZ(ptr) msvcirt.?str at ostrstream@@QAEPADXZ
@ cdecl -arch=win64 ?str at ostrstream@@QEAAPEADXZ(ptr) msvcirt.?str at ostrstream@@QEAAPEADXZ
-@ stub -arch=win32 ?str at strstream@@QAEPADXZ
-@ stub -arch=win64 ?str at strstream@@QEAAPEADXZ
+@ thiscall -arch=win32 ?str at strstream@@QAEPADXZ(ptr) msvcirt.?str at strstream@@QAEPADXZ
+@ cdecl -arch=win64 ?str at strstream@@QEAAPEADXZ(ptr) msvcirt.?str at strstream@@QEAAPEADXZ
@ thiscall -arch=win32 ?str at strstreambuf@@QAEPADXZ(ptr) msvcirt.?str at strstreambuf@@QAEPADXZ
@ cdecl -arch=win64 ?str at strstreambuf@@QEAAPEADXZ(ptr) msvcirt.?str at strstreambuf@@QEAAPEADXZ
@ extern ?sunk_with_stdio at ios@@0HA msvcirt.?sunk_with_stdio at ios@@0HA
--
2.7.4
More information about the wine-patches
mailing list