diff --git a/dlls/msvcirt/msvcirt.c b/dlls/msvcirt/msvcirt.c index 576c61231fe..c06cf44cc5d 100644 --- a/dlls/msvcirt/msvcirt.c +++ b/dlls/msvcirt/msvcirt.c @@ -164,6 +164,12 @@ typedef struct { int count; } istream; +/* class iostream */ +typedef struct { + istream base1; + ostream base2; +} iostream; + /* ??_7streambuf@@6B@ */ extern const vtable_ptr MSVCP_streambuf_vtable; /* ??_7filebuf@@6B@ */ @@ -182,6 +188,8 @@ extern const vtable_ptr MSVCP_ostream_withassign_vtable; extern const vtable_ptr MSVCP_istream_vtable; /* ??_7istream_withassign@@6B@ */ extern const vtable_ptr MSVCP_istream_withassign_vtable; +/* ??_7iostream@@6B@ */ +extern const vtable_ptr MSVCP_iostream_vtable; #ifndef __GNUC__ void __asm_dummy_vtables(void) { @@ -244,6 +252,8 @@ void __asm_dummy_vtables(void) { VTABLE_ADD_FUNC(istream_vector_dtor)); __ASM_VTABLE(istream_withassign, VTABLE_ADD_FUNC(istream_vector_dtor)); + __ASM_VTABLE(iostream, + VTABLE_ADD_FUNC(iostream_vector_dtor)); #ifndef __GNUC__ } #endif @@ -257,6 +267,10 @@ const int ostream_vbtable[] = {0, VBTABLE_ENTRY(ostream, FIELD_OFFSET(ostream, v /* ??_8istream@@7B@ */ /* ??_8istream_withassign@@7B@ */ const int istream_vbtable[] = {0, VBTABLE_ENTRY(istream, FIELD_OFFSET(istream, vbtable), ios)}; +/* ??_8iostream@@7Bistream@@@ */ +const int iostream_vbtable_istream[] = {0, VBTABLE_ENTRY(iostream, FIELD_OFFSET(iostream, base1), ios)}; +/* ??_8iostream@@7Bostream@@@ */ +const int iostream_vbtable_ostream[] = {0, VBTABLE_ENTRY(iostream, FIELD_OFFSET(iostream, base2), ios)}; DEFINE_RTTI_DATA0(streambuf, 0, ".?AVstreambuf@@") DEFINE_RTTI_DATA1(filebuf, 0, &streambuf_rtti_base_descriptor, ".?AVfilebuf@@") @@ -269,6 +283,9 @@ DEFINE_RTTI_DATA2(ostream_withassign, sizeof(ostream), DEFINE_RTTI_DATA1(istream, sizeof(istream), &ios_rtti_base_descriptor, ".?AVistream@@") DEFINE_RTTI_DATA2(istream_withassign, sizeof(istream), &istream_rtti_base_descriptor, &ios_rtti_base_descriptor, ".?AVistream_withassign@@") +DEFINE_RTTI_DATA4(iostream, sizeof(iostream), + &istream_rtti_base_descriptor, &ios_rtti_base_descriptor, + &ostream_rtti_base_descriptor, &ios_rtti_base_descriptor, ".?AViostream@@") /* ??0streambuf@@IAE@PADH@Z */ /* ??0streambuf@@IEAA@PEADH@Z */ @@ -3911,6 +3928,113 @@ istream* __thiscall istream_withassign_ctor(istream *this, BOOL virt_init) return this; } +static inline ios* iostream_to_ios(const iostream *this) +{ + return (ios*)((char*)this + iostream_vbtable_istream[1]); +} + +static inline iostream* ios_to_iostream(const ios *base) +{ + return (iostream*)((char*)base - iostream_vbtable_istream[1]); +} + +/* ??0iostream@@IAE@XZ */ +/* ??0iostream@@IEAA@XZ */ +DEFINE_THISCALL_WRAPPER(iostream_ctor, 8) +iostream* __thiscall iostream_ctor(iostream *this, BOOL virt_init) +{ + FIXME("(%p %d) stub\n", this, virt_init); + return this; +} + +/* ??0iostream@@QAE@PAVstreambuf@@@Z */ +/* ??0iostream@@QEAA@PEAVstreambuf@@@Z */ +DEFINE_THISCALL_WRAPPER(iostream_sb_ctor, 12) +iostream* __thiscall iostream_sb_ctor(iostream *this, streambuf *sb, BOOL virt_init) +{ + FIXME("(%p %p %d) stub\n", this, sb, virt_init); + return this; +} + +/* ??0iostream@@IAE@ABV0@@Z */ +/* ??0iostream@@IEAA@AEBV0@@Z */ +DEFINE_THISCALL_WRAPPER(iostream_copy_ctor, 12) +iostream* __thiscall iostream_copy_ctor(iostream *this, const iostream *copy, BOOL virt_init) +{ + FIXME("(%p %p %d) stub\n", this, copy, virt_init); + return this; +} + +/* ??1iostream@@UAE@XZ */ +/* ??1iostream@@UEAA@XZ */ +DEFINE_THISCALL_WRAPPER(iostream_dtor, 4) +void __thiscall iostream_dtor(ios *base) +{ + FIXME("(%p) stub\n", base); +} + +/* ??4iostream@@IAEAAV0@PAVstreambuf@@@Z */ +/* ??4iostream@@IEAAAEAV0@PEAVstreambuf@@@Z */ +DEFINE_THISCALL_WRAPPER(iostream_assign_sb, 8) +iostream* __thiscall iostream_assign_sb(iostream *this, streambuf *sb) +{ + FIXME("(%p %p) stub\n", this, sb); + return this; +} + +/* ??4iostream@@IAEAAV0@AAV0@@Z */ +/* ??4iostream@@IEAAAEAV0@AEAV0@@Z */ +DEFINE_THISCALL_WRAPPER(iostream_assign, 8) +iostream* __thiscall iostream_assign(iostream *this, const iostream *rhs) +{ + FIXME("(%p %p) stub\n", this, rhs); + return this; +} + +/* ??_Diostream@@QAEXXZ */ +/* ??_Diostream@@QEAAXXZ */ +DEFINE_THISCALL_WRAPPER(iostream_vbase_dtor, 4) +void __thiscall iostream_vbase_dtor(iostream *this) +{ + FIXME("(%p) stub\n", this); +} + +/* ??_Eiostream@@UAEPAXI@Z */ +DEFINE_THISCALL_WRAPPER(iostream_vector_dtor, 8) +iostream* __thiscall iostream_vector_dtor(ios *base, unsigned int flags) +{ + iostream *this = ios_to_iostream(base); + + TRACE("(%p %x)\n", this, flags); + + if (flags & 2) { + /* we have an array, with the number of elements stored before the first object */ + INT_PTR i, *ptr = (INT_PTR *)this-1; + + for (i = *ptr-1; i >= 0; i--) + iostream_vbase_dtor(this+i); + MSVCRT_operator_delete(ptr); + } else { + iostream_vbase_dtor(this); + if (flags & 1) + MSVCRT_operator_delete(this); + } + return this; +} + +/* ??_Giostream@@UAEPAXI@Z */ +DEFINE_THISCALL_WRAPPER(iostream_scalar_dtor, 8) +iostream* __thiscall iostream_scalar_dtor(ios *base, unsigned int flags) +{ + iostream *this = ios_to_iostream(base); + + TRACE("(%p %x)\n", this, flags); + + iostream_vbase_dtor(this); + if (flags & 1) MSVCRT_operator_delete(this); + return this; +} + /****************************************************************** * ??0ostrstream@@QAE@XZ (MSVCRTI.@) */ @@ -3989,6 +4113,7 @@ static void init_io(void *base) init_ostream_withassign_rtti(base); init_istream_rtti(base); init_istream_withassign_rtti(base); + init_iostream_rtti(base); #endif } diff --git a/dlls/msvcirt/msvcirt.spec b/dlls/msvcirt/msvcirt.spec index 4438b31673f..8361896d7ee 100644 --- a/dlls/msvcirt/msvcirt.spec +++ b/dlls/msvcirt/msvcirt.spec @@ -42,12 +42,12 @@ @ cdecl -arch=win64 ??0ios@@IEAA@XZ(ptr) ios_ctor @ thiscall -arch=win32 ??0ios@@QAE@PAVstreambuf@@@Z(ptr ptr) ios_sb_ctor @ cdecl -arch=win64 ??0ios@@QEAA@PEAVstreambuf@@@Z(ptr ptr) ios_sb_ctor -@ stub -arch=win32 ??0iostream@@IAE@ABV0@@Z # __thiscall iostream::iostream(class iostream const &) -@ stub -arch=win64 ??0iostream@@IEAA@AEBV0@@Z -@ stub -arch=win32 ??0iostream@@IAE@XZ # __thiscall iostream::iostream(void) -@ stub -arch=win64 ??0iostream@@IEAA@XZ -@ stub -arch=win32 ??0iostream@@QAE@PAVstreambuf@@@Z # __thiscall iostream::iostream(class streambuf *) -@ stub -arch=win64 ??0iostream@@QEAA@PEAVstreambuf@@@Z +@ thiscall -arch=win32 ??0iostream@@IAE@ABV0@@Z(ptr ptr long) iostream_copy_ctor +@ cdecl -arch=win64 ??0iostream@@IEAA@AEBV0@@Z(ptr ptr long) iostream_copy_ctor +@ thiscall -arch=win32 ??0iostream@@IAE@XZ(ptr long) iostream_ctor +@ cdecl -arch=win64 ??0iostream@@IEAA@XZ(ptr long) iostream_ctor +@ thiscall -arch=win32 ??0iostream@@QAE@PAVstreambuf@@@Z(ptr ptr long) iostream_sb_ctor +@ cdecl -arch=win64 ??0iostream@@QEAA@PEAVstreambuf@@@Z(ptr ptr long) iostream_sb_ctor @ thiscall -arch=win32 ??0istream@@IAE@ABV0@@Z(ptr ptr long) istream_copy_ctor @ cdecl -arch=win64 ??0istream@@IEAA@AEBV0@@Z(ptr ptr long) istream_copy_ctor @ thiscall -arch=win32 ??0istream@@IAE@XZ(ptr long) istream_ctor @@ -142,8 +142,8 @@ @ stub -arch=win64 ??1ifstream@@UEAA@XZ @ thiscall -arch=win32 ??1ios@@UAE@XZ(ptr) ios_dtor @ cdecl -arch=win64 ??1ios@@UEAA@XZ(ptr) ios_dtor -@ stub -arch=win32 ??1iostream@@UAE@XZ # virtual __thiscall iostream::~iostream(void) -@ stub -arch=win64 ??1iostream@@UEAA@XZ +@ thiscall -arch=win32 ??1iostream@@UAE@XZ(ptr) iostream_dtor +@ cdecl -arch=win64 ??1iostream@@UEAA@XZ(ptr) iostream_dtor @ thiscall -arch=win32 ??1istream@@UAE@XZ(ptr) istream_dtor @ cdecl -arch=win64 ??1istream@@UEAA@XZ(ptr) istream_dtor @ thiscall -arch=win32 ??1istream_withassign@@UAE@XZ(ptr) istream_dtor @@ -182,10 +182,10 @@ @ stub -arch=win64 ??4ifstream@@QEAAAEAV0@AEBV0@@Z @ thiscall -arch=win32 ??4ios@@IAEAAV0@ABV0@@Z(ptr ptr) ios_assign @ cdecl -arch=win64 ??4ios@@IEAAAEAV0@AEBV0@@Z(ptr ptr) ios_assign -@ stub -arch=win32 ??4iostream@@IAEAAV0@AAV0@@Z # class iostream & __thiscall iostream::operator=(class iostream &) -@ stub -arch=win64 ??4iostream@@IEAAAEAV0@AEAV0@@Z -@ stub -arch=win32 ??4iostream@@IAEAAV0@PAVstreambuf@@@Z # class iostream & __thiscall iostream::operator=(class streambuf *) -@ stub -arch=win64 ??4iostream@@IEAAAEAV0@PEAVstreambuf@@@Z +@ thiscall -arch=win32 ??4iostream@@IAEAAV0@AAV0@@Z(ptr ptr) iostream_assign +@ cdecl -arch=win64 ??4iostream@@IEAAAEAV0@AEAV0@@Z(ptr ptr) iostream_assign +@ thiscall -arch=win32 ??4iostream@@IAEAAV0@PAVstreambuf@@@Z(ptr ptr) iostream_assign_sb +@ cdecl -arch=win64 ??4iostream@@IEAAAEAV0@PEAVstreambuf@@@Z(ptr ptr) iostream_assign_sb @ thiscall -arch=win32 ??4istream@@IAEAAV0@ABV0@@Z(ptr ptr) istream_assign @ cdecl -arch=win64 ??4istream@@IEAAAEAV0@AEBV0@@Z(ptr ptr) istream_assign @ thiscall -arch=win32 ??4istream@@IAEAAV0@PAVstreambuf@@@Z(ptr ptr) istream_assign_sb @@ -307,7 +307,7 @@ # @ extern ??_7fstream@@6B@ # const fstream::`vftable' # @ extern ??_7ifstream@@6B@ # const ifstream::`vftable' @ extern ??_7ios@@6B@ MSVCP_ios_vtable -# @ extern ??_7iostream@@6B@ # const iostream::`vftable' +@ extern ??_7iostream@@6B@ MSVCP_iostream_vtable @ extern ??_7istream@@6B@ MSVCP_istream_vtable @ extern ??_7istream_withassign@@6B@ MSVCP_istream_vtable # @ extern ??_7istrstream@@6B@ # const istrstream::`vftable' @@ -324,8 +324,8 @@ # @ extern ??_8fstream@@7Bistream@@@ # const fstream::`vbtable'{for `istream'} # @ extern ??_8fstream@@7Bostream@@@ # const fstream::`vbtable'{for `ostream'} # @ extern ??_8ifstream@@7B@ # const ifstream::`vbtable' -# @ extern ??_8iostream@@7Bistream@@@ # const iostream::`vbtable'{for `istream'} -# @ extern ??_8iostream@@7Bostream@@@ # const iostream::`vbtable'{for `ostream'} +@ extern ??_8iostream@@7Bistream@@@ iostream_vbtable_istream +@ extern ??_8iostream@@7Bostream@@@ iostream_vbtable_ostream @ extern ??_8istream@@7B@ istream_vbtable @ extern ??_8istream_withassign@@7B@ istream_vbtable # @ extern ??_8istrstream@@7B@ # const istrstream::`vbtable' @@ -341,8 +341,8 @@ @ stub -arch=win64 ??_Dfstream@@QEAAXXZ @ stub -arch=win32 ??_Difstream@@QAEXXZ # void __thiscall ifstream::`vbase destructor'(void) @ stub -arch=win64 ??_Difstream@@QEAAXXZ -@ stub -arch=win32 ??_Diostream@@QAEXXZ # void __thiscall iostream::`vbase destructor'(void) -@ stub -arch=win64 ??_Diostream@@QEAAXXZ +@ thiscall -arch=win32 ??_Diostream@@QAEXXZ(ptr) iostream_vbase_dtor +@ cdecl -arch=win64 ??_Diostream@@QEAAXXZ(ptr) iostream_vbase_dtor @ thiscall -arch=win32 ??_Distream@@QAEXXZ(ptr) istream_vbase_dtor @ cdecl -arch=win64 ??_Distream@@QEAAXXZ(ptr) istream_vbase_dtor @ thiscall -arch=win32 ??_Distream_withassign@@QAEXXZ(ptr) istream_vbase_dtor @@ -366,7 +366,7 @@ @ stub -arch=win32 ??_Efstream@@UAEPAXI@Z # virtual void * __thiscall fstream::`vector deleting destructor'(unsigned int) @ stub -arch=win32 ??_Eifstream@@UAEPAXI@Z # virtual void * __thiscall ifstream::`vector deleting destructor'(unsigned int) @ thiscall -arch=win32 ??_Eios@@UAEPAXI@Z(ptr long) ios_vector_dtor -@ stub -arch=win32 ??_Eiostream@@UAEPAXI@Z # virtual void * __thiscall iostream::`vector deleting destructor'(unsigned int) +@ thiscall -arch=win32 ??_Eiostream@@UAEPAXI@Z(ptr long) iostream_vector_dtor @ thiscall -arch=win32 ??_Eistream@@UAEPAXI@Z(ptr long) istream_vector_dtor @ thiscall -arch=win32 ??_Eistream_withassign@@UAEPAXI@Z(ptr long) istream_vector_dtor @ stub -arch=win32 ??_Eistrstream@@UAEPAXI@Z # virtual void * __thiscall istrstream::`vector deleting destructor'(unsigned int) @@ -385,7 +385,7 @@ @ stub -arch=win32 ??_Gfstream@@UAEPAXI@Z # virtual void * __thiscall fstream::`scalar deleting destructor'(unsigned int) @ stub -arch=win32 ??_Gifstream@@UAEPAXI@Z # virtual void * __thiscall ifstream::`scalar deleting destructor'(unsigned int) @ thiscall -arch=win32 ??_Gios@@UAEPAXI@Z(ptr long) ios_scalar_dtor -@ stub -arch=win32 ??_Giostream@@UAEPAXI@Z # virtual void * __thiscall iostream::`scalar deleting destructor'(unsigned int) +@ thiscall -arch=win32 ??_Giostream@@UAEPAXI@Z(ptr long) iostream_scalar_dtor @ thiscall -arch=win32 ??_Gistream@@UAEPAXI@Z(ptr long) istream_scalar_dtor @ thiscall -arch=win32 ??_Gistream_withassign@@UAEPAXI@Z(ptr long) istream_scalar_dtor @ stub -arch=win32 ??_Gistrstream@@UAEPAXI@Z # virtual void * __thiscall istrstream::`scalar deleting destructor'(unsigned int) diff --git a/dlls/msvcrt20/msvcrt20.spec b/dlls/msvcrt20/msvcrt20.spec index a5070f4d688..86d11208b84 100644 --- a/dlls/msvcrt20/msvcrt20.spec +++ b/dlls/msvcrt20/msvcrt20.spec @@ -36,12 +36,12 @@ @ cdecl -arch=win64 ??0ios@@IEAA@XZ(ptr) msvcirt.??0ios@@IEAA@XZ @ thiscall -arch=win32 ??0ios@@QAE@PAVstreambuf@@@Z(ptr ptr) msvcirt.??0ios@@QAE@PAVstreambuf@@@Z @ cdecl -arch=win64 ??0ios@@QEAA@PEAVstreambuf@@@Z(ptr ptr) msvcirt.??0ios@@QEAA@PEAVstreambuf@@@Z -@ stub -arch=win32 ??0iostream@@IAE@ABV0@@Z -@ stub -arch=win64 ??0iostream@@IEAA@AEBV0@@Z -@ stub -arch=win32 ??0iostream@@IAE@XZ -@ stub -arch=win64 ??0iostream@@IEAA@XZ -@ stub -arch=win32 ??0iostream@@QAE@PAVstreambuf@@@Z -@ stub -arch=win64 ??0iostream@@QEAA@PEAVstreambuf@@@Z +@ thiscall -arch=win32 ??0iostream@@IAE@ABV0@@Z(ptr ptr long) msvcirt.??0iostream@@IAE@ABV0@@Z +@ cdecl -arch=win64 ??0iostream@@IEAA@AEBV0@@Z(ptr ptr long) msvcirt.??0iostream@@IEAA@AEBV0@@Z +@ thiscall -arch=win32 ??0iostream@@IAE@XZ(ptr long) msvcirt.??0iostream@@IAE@XZ +@ cdecl -arch=win64 ??0iostream@@IEAA@XZ(ptr long) msvcirt.??0iostream@@IEAA@XZ +@ thiscall -arch=win32 ??0iostream@@QAE@PAVstreambuf@@@Z(ptr ptr long) msvcirt.??0iostream@@QAE@PAVstreambuf@@@Z +@ cdecl -arch=win64 ??0iostream@@QEAA@PEAVstreambuf@@@Z(ptr ptr long) msvcirt.??0iostream@@QEAA@PEAVstreambuf@@@Z @ thiscall -arch=win32 ??0istream@@IAE@ABV0@@Z(ptr ptr long) msvcirt.??0istream@@IAE@ABV0@@Z @ cdecl -arch=win64 ??0istream@@IEAA@AEBV0@@Z(ptr ptr long) msvcirt.??0istream@@IEAA@AEBV0@@Z @ thiscall -arch=win32 ??0istream@@IAE@XZ(ptr long) msvcirt.??0istream@@IAE@XZ @@ -128,8 +128,8 @@ @ stub -arch=win64 ??1ifstream@@UEAA@XZ @ thiscall -arch=win32 ??1ios@@UAE@XZ(ptr) msvcirt.??1ios@@UAE@XZ @ cdecl -arch=win64 ??1ios@@UEAA@XZ(ptr) msvcirt.??1ios@@UEAA@XZ -@ stub -arch=win32 ??1iostream@@UAE@XZ -@ stub -arch=win64 ??1iostream@@UEAA@XZ +@ thiscall -arch=win32 ??1iostream@@UAE@XZ(ptr) msvcirt.??1iostream@@UAE@XZ +@ cdecl -arch=win64 ??1iostream@@UEAA@XZ(ptr) msvcirt.??1iostream@@UEAA@XZ @ thiscall -arch=win32 ??1istream@@UAE@XZ(ptr) msvcirt.??1istream@@UAE@XZ @ cdecl -arch=win64 ??1istream@@UEAA@XZ(ptr) msvcirt.??1istream@@UEAA@XZ @ thiscall -arch=win32 ??1istream_withassign@@UAE@XZ(ptr) msvcirt.??1istream_withassign@@UAE@XZ @@ -168,10 +168,10 @@ @ stub -arch=win64 ??4ifstream@@QEAAAEAV0@AEBV0@@Z @ thiscall -arch=win32 ??4ios@@IAEAAV0@ABV0@@Z(ptr ptr) msvcirt.??4ios@@IAEAAV0@ABV0@@Z @ cdecl -arch=win64 ??4ios@@IEAAAEAV0@AEBV0@@Z(ptr ptr) msvcirt.??4ios@@IEAAAEAV0@AEBV0@@Z -@ stub -arch=win32 ??4iostream@@IAEAAV0@AAV0@@Z -@ stub -arch=win64 ??4iostream@@IEAAAEAV0@AEAV0@@Z -@ stub -arch=win32 ??4iostream@@IAEAAV0@PAVstreambuf@@@Z -@ stub -arch=win64 ??4iostream@@IEAAAEAV0@PEAVstreambuf@@@Z +@ thiscall -arch=win32 ??4iostream@@IAEAAV0@AAV0@@Z(ptr ptr) msvcirt.??4iostream@@IAEAAV0@AAV0@@Z +@ cdecl -arch=win64 ??4iostream@@IEAAAEAV0@AEAV0@@Z(ptr ptr) msvcirt.??4iostream@@IEAAAEAV0@AEAV0@@Z +@ thiscall -arch=win32 ??4iostream@@IAEAAV0@PAVstreambuf@@@Z(ptr ptr) msvcirt.??4iostream@@IAEAAV0@PAVstreambuf@@@Z +@ cdecl -arch=win64 ??4iostream@@IEAAAEAV0@PEAVstreambuf@@@Z(ptr ptr) msvcirt.??4iostream@@IEAAAEAV0@PEAVstreambuf@@@Z @ thiscall -arch=win32 ??4istream@@IAEAAV0@ABV0@@Z(ptr ptr) msvcirt.??4istream@@IAEAAV0@ABV0@@Z @ cdecl -arch=win64 ??4istream@@IEAAAEAV0@AEBV0@@Z(ptr ptr) msvcirt.??4istream@@IEAAAEAV0@AEBV0@@Z @ thiscall -arch=win32 ??4istream@@IAEAAV0@PAVstreambuf@@@Z(ptr ptr) msvcirt.??4istream@@IAEAAV0@PAVstreambuf@@@Z @@ -290,7 +290,7 @@ # @ extern ??_7fstream@@6B@ # @ extern ??_7ifstream@@6B@ @ extern ??_7ios@@6B@ msvcirt.??_7ios@@6B@ -# @ extern ??_7iostream@@6B@ +@ extern ??_7iostream@@6B@ msvcirt.??_7iostream@@6B@ @ extern ??_7istream@@6B@ msvcirt.??_7istream@@6B@ @ extern ??_7istream_withassign@@6B@ msvcirt.??_7istream_withassign@@6B@ # @ extern ??_7istrstream@@6B@ @@ -306,8 +306,8 @@ # @ extern ??_8fstream@@7Bistream@@@ # @ extern ??_8fstream@@7Bostream@@@ # @ extern ??_8ifstream@@7B@ -# @ extern ??_8iostream@@7Bistream@@@ -# @ extern ??_8iostream@@7Bostream@@@ +@ extern ??_8iostream@@7Bistream@@@ msvcirt.??_8iostream@@7Bistream@@@ +@ extern ??_8iostream@@7Bostream@@@ msvcirt.??_8iostream@@7Bostream@@@ @ extern ??_8istream@@7B@ msvcirt.??_8istream@@7B@ @ extern ??_8istream_withassign@@7B@ msvcirt.??_8istream_withassign@@7B@ # @ extern ??_8istrstream@@7B@ @@ -323,8 +323,8 @@ @ stub -arch=win64 ??_Dfstream@@QEAAXXZ @ stub -arch=win32 ??_Difstream@@QAEXXZ @ stub -arch=win64 ??_Difstream@@QEAAXXZ -@ stub -arch=win32 ??_Diostream@@QAEXXZ -@ stub -arch=win64 ??_Diostream@@QEAAXXZ +@ thiscall -arch=win32 ??_Diostream@@QAEXXZ(ptr) msvcirt.??_Diostream@@QAEXXZ +@ cdecl -arch=win64 ??_Diostream@@QEAAXXZ(ptr) msvcirt.??_Diostream@@QEAAXXZ @ thiscall -arch=win32 ??_Distream@@QAEXXZ(ptr) msvcirt.??_Distream@@QAEXXZ @ cdecl -arch=win64 ??_Distream@@QEAAXXZ(ptr) msvcirt.??_Distream@@QEAAXXZ @ thiscall -arch=win32 ??_Distream_withassign@@QAEXXZ(ptr) msvcirt.??_Distream_withassign@@QAEXXZ @@ -348,7 +348,7 @@ @ stub -arch=win32 ??_Efstream@@UAEPAXI@Z @ stub -arch=win32 ??_Eifstream@@UAEPAXI@Z @ thiscall -arch=win32 ??_Eios@@UAEPAXI@Z(ptr long) msvcirt.??_Eios@@UAEPAXI@Z -@ stub -arch=win32 ??_Eiostream@@UAEPAXI@Z +@ thiscall -arch=win32 ??_Eiostream@@UAEPAXI@Z(ptr long) msvcirt.??_Eiostream@@UAEPAXI@Z @ thiscall -arch=win32 ??_Eistream@@UAEPAXI@Z(ptr long) msvcirt.??_Eistream@@UAEPAXI@Z @ thiscall -arch=win32 ??_Eistream_withassign@@UAEPAXI@Z(ptr long) msvcirt.??_Eistream_withassign@@UAEPAXI@Z @ stub -arch=win32 ??_Eistrstream@@UAEPAXI@Z @@ -366,7 +366,7 @@ @ stub -arch=win32 ??_Gfstream@@UAEPAXI@Z @ stub -arch=win32 ??_Gifstream@@UAEPAXI@Z @ thiscall -arch=win32 ??_Gios@@UAEPAXI@Z(ptr long) msvcirt.??_Gios@@UAEPAXI@Z -@ stub -arch=win32 ??_Giostream@@UAEPAXI@Z +@ thiscall -arch=win32 ??_Giostream@@UAEPAXI@Z(ptr long) msvcirt.??_Giostream@@UAEPAXI@Z @ thiscall -arch=win32 ??_Gistream@@UAEPAXI@Z(ptr long) msvcirt.??_Gistream@@UAEPAXI@Z @ thiscall -arch=win32 ??_Gistream_withassign@@UAEPAXI@Z(ptr long) msvcirt.??_Gistream_withassign@@UAEPAXI@Z @ stub -arch=win32 ??_Gistrstream@@UAEPAXI@Z diff --git a/dlls/msvcrt40/msvcrt40.spec b/dlls/msvcrt40/msvcrt40.spec index 935e48c2775..e78f085fab4 100644 --- a/dlls/msvcrt40/msvcrt40.spec +++ b/dlls/msvcrt40/msvcrt40.spec @@ -54,12 +54,12 @@ @ cdecl -arch=win64 ??0ios@@IEAA@XZ(ptr) msvcirt.??0ios@@IEAA@XZ @ thiscall -arch=win32 ??0ios@@QAE@PAVstreambuf@@@Z(ptr ptr) msvcirt.??0ios@@QAE@PAVstreambuf@@@Z @ cdecl -arch=win64 ??0ios@@QEAA@PEAVstreambuf@@@Z(ptr ptr) msvcirt.??0ios@@QEAA@PEAVstreambuf@@@Z -@ stub -arch=win32 ??0iostream@@IAE@ABV0@@Z -@ stub -arch=win64 ??0iostream@@IEAA@AEBV0@@Z -@ stub -arch=win32 ??0iostream@@IAE@XZ -@ stub -arch=win64 ??0iostream@@IEAA@XZ -@ stub -arch=win32 ??0iostream@@QAE@PAVstreambuf@@@Z -@ stub -arch=win64 ??0iostream@@QEAA@PEAVstreambuf@@@Z +@ thiscall -arch=win32 ??0iostream@@IAE@ABV0@@Z(ptr ptr long) msvcirt.??0iostream@@IAE@ABV0@@Z +@ cdecl -arch=win64 ??0iostream@@IEAA@AEBV0@@Z(ptr ptr long) msvcirt.??0iostream@@IEAA@AEBV0@@Z +@ thiscall -arch=win32 ??0iostream@@IAE@XZ(ptr long) msvcirt.??0iostream@@IAE@XZ +@ cdecl -arch=win64 ??0iostream@@IEAA@XZ(ptr long) msvcirt.??0iostream@@IEAA@XZ +@ thiscall -arch=win32 ??0iostream@@QAE@PAVstreambuf@@@Z(ptr ptr long) msvcirt.??0iostream@@QAE@PAVstreambuf@@@Z +@ cdecl -arch=win64 ??0iostream@@QEAA@PEAVstreambuf@@@Z(ptr ptr long) msvcirt.??0iostream@@QEAA@PEAVstreambuf@@@Z @ thiscall -arch=win32 ??0istream@@IAE@ABV0@@Z(ptr ptr long) msvcirt.??0istream@@IAE@ABV0@@Z @ cdecl -arch=win64 ??0istream@@IEAA@AEBV0@@Z(ptr ptr long) msvcirt.??0istream@@IEAA@AEBV0@@Z @ thiscall -arch=win32 ??0istream@@IAE@XZ(ptr long) msvcirt.??0istream@@IAE@XZ @@ -158,8 +158,8 @@ @ stub -arch=win64 ??1ifstream@@UEAA@XZ @ thiscall -arch=win32 ??1ios@@UAE@XZ(ptr) msvcirt.??1ios@@UAE@XZ @ cdecl -arch=win64 ??1ios@@UEAA@XZ(ptr) msvcirt.??1ios@@UEAA@XZ -@ stub -arch=win32 ??1iostream@@UAE@XZ -@ stub -arch=win64 ??1iostream@@UEAA@XZ +@ thiscall -arch=win32 ??1iostream@@UAE@XZ(ptr) msvcirt.??1iostream@@UAE@XZ +@ cdecl -arch=win64 ??1iostream@@UEAA@XZ(ptr) msvcirt.??1iostream@@UEAA@XZ @ thiscall -arch=win32 ??1istream@@UAE@XZ(ptr) msvcirt.??1istream@@UAE@XZ @ cdecl -arch=win64 ??1istream@@UEAA@XZ(ptr) msvcirt.??1istream@@UEAA@XZ @ thiscall -arch=win32 ??1istream_withassign@@UAE@XZ(ptr) msvcirt.??1istream_withassign@@UAE@XZ @@ -210,10 +210,10 @@ @ stub -arch=win64 ??4ifstream@@QEAAAEAV0@AEBV0@@Z @ thiscall -arch=win32 ??4ios@@IAEAAV0@ABV0@@Z(ptr ptr) msvcirt.??4ios@@IAEAAV0@ABV0@@Z @ cdecl -arch=win64 ??4ios@@IEAAAEAV0@AEBV0@@Z(ptr ptr) msvcirt.??4ios@@IEAAAEAV0@AEBV0@@Z -@ stub -arch=win32 ??4iostream@@IAEAAV0@AAV0@@Z -@ stub -arch=win64 ??4iostream@@IEAAAEAV0@AEAV0@@Z -@ stub -arch=win32 ??4iostream@@IAEAAV0@PAVstreambuf@@@Z -@ stub -arch=win64 ??4iostream@@IEAAAEAV0@PEAVstreambuf@@@Z +@ thiscall -arch=win32 ??4iostream@@IAEAAV0@AAV0@@Z(ptr ptr) msvcirt.??4iostream@@IAEAAV0@AAV0@@Z +@ cdecl -arch=win64 ??4iostream@@IEAAAEAV0@AEAV0@@Z(ptr ptr) msvcirt.??4iostream@@IEAAAEAV0@AEAV0@@Z +@ thiscall -arch=win32 ??4iostream@@IAEAAV0@PAVstreambuf@@@Z(ptr ptr) msvcirt.??4iostream@@IAEAAV0@PAVstreambuf@@@Z +@ cdecl -arch=win64 ??4iostream@@IEAAAEAV0@PEAVstreambuf@@@Z(ptr ptr) msvcirt.??4iostream@@IEAAAEAV0@PEAVstreambuf@@@Z @ thiscall -arch=win32 ??4istream@@IAEAAV0@ABV0@@Z(ptr ptr) msvcirt.??4istream@@IAEAAV0@ABV0@@Z @ cdecl -arch=win64 ??4istream@@IEAAAEAV0@AEBV0@@Z(ptr ptr) msvcirt.??4istream@@IEAAAEAV0@AEBV0@@Z @ thiscall -arch=win32 ??4istream@@IAEAAV0@PAVstreambuf@@@Z(ptr ptr) msvcirt.??4istream@@IAEAAV0@PAVstreambuf@@@Z @@ -342,7 +342,7 @@ # @ extern ??_7fstream@@6B@ # @ extern ??_7ifstream@@6B@ @ extern ??_7ios@@6B@ msvcirt.??_7ios@@6B@ -# @ extern ??_7iostream@@6B@ +@ extern ??_7iostream@@6B@ msvcirt.??_7iostream@@6B@ @ extern ??_7istream@@6B@ msvcirt.??_7istream@@6B@ @ extern ??_7istream_withassign@@6B@ msvcirt.??_7istream_withassign@@6B@ # @ extern ??_7istrstream@@6B@ @@ -359,8 +359,8 @@ # @ extern ??_8fstream@@7Bistream@@@ # @ extern ??_8fstream@@7Bostream@@@ # @ extern ??_8ifstream@@7B@ -# @ extern ??_8iostream@@7Bistream@@@ -# @ extern ??_8iostream@@7Bostream@@@ +@ extern ??_8iostream@@7Bistream@@@ msvcirt.??_8iostream@@7Bistream@@@ +@ extern ??_8iostream@@7Bostream@@@ msvcirt.??_8iostream@@7Bostream@@@ @ extern ??_8istream@@7B@ msvcirt.??_8istream@@7B@ @ extern ??_8istream_withassign@@7B@ msvcirt.??_8istream_withassign@@7B@ # @ extern ??_8istrstream@@7B@ @@ -376,8 +376,8 @@ @ stub -arch=win64 ??_Dfstream@@QEAAXXZ @ stub -arch=win32 ??_Difstream@@QAEXXZ @ stub -arch=win64 ??_Difstream@@QEAAXXZ -@ stub -arch=win32 ??_Diostream@@QAEXXZ -@ stub -arch=win64 ??_Diostream@@QEAAXXZ +@ thiscall -arch=win32 ??_Diostream@@QAEXXZ(ptr) msvcirt.??_Diostream@@QAEXXZ +@ cdecl -arch=win64 ??_Diostream@@QEAAXXZ(ptr) msvcirt.??_Diostream@@QEAAXXZ @ thiscall -arch=win32 ??_Distream@@QAEXXZ(ptr) msvcirt.??_Distream@@QAEXXZ @ cdecl -arch=win64 ??_Distream@@QEAAXXZ(ptr) msvcirt.??_Distream@@QEAAXXZ @ thiscall -arch=win32 ??_Distream_withassign@@QAEXXZ(ptr) msvcirt.??_Distream_withassign@@QAEXXZ @@ -405,7 +405,7 @@ @ stub -arch=win32 ??_Efstream@@UAEPAXI@Z @ stub -arch=win32 ??_Eifstream@@UAEPAXI@Z @ thiscall -arch=win32 ??_Eios@@UAEPAXI@Z(ptr long) msvcirt.??_Eios@@UAEPAXI@Z -@ stub -arch=win32 ??_Eiostream@@UAEPAXI@Z +@ thiscall -arch=win32 ??_Eiostream@@UAEPAXI@Z(ptr long) msvcirt.??_Eiostream@@UAEPAXI@Z @ thiscall -arch=win32 ??_Eistream@@UAEPAXI@Z(ptr long) msvcirt.??_Eistream@@UAEPAXI@Z @ thiscall -arch=win32 ??_Eistream_withassign@@UAEPAXI@Z(ptr long) msvcirt.??_Eistream_withassign@@UAEPAXI@Z @ stub -arch=win32 ??_Eistrstream@@UAEPAXI@Z @@ -428,7 +428,7 @@ @ stub -arch=win32 ??_Gfstream@@UAEPAXI@Z @ stub -arch=win32 ??_Gifstream@@UAEPAXI@Z @ thiscall -arch=win32 ??_Gios@@UAEPAXI@Z(ptr long) msvcirt.??_Gios@@UAEPAXI@Z -@ stub -arch=win32 ??_Giostream@@UAEPAXI@Z +@ thiscall -arch=win32 ??_Giostream@@UAEPAXI@Z(ptr long) msvcirt.??_Giostream@@UAEPAXI@Z @ thiscall -arch=win32 ??_Gistream@@UAEPAXI@Z(ptr long) msvcirt.??_Gistream@@UAEPAXI@Z @ thiscall -arch=win32 ??_Gistream_withassign@@UAEPAXI@Z(ptr long) msvcirt.??_Gistream_withassign@@UAEPAXI@Z @ stub -arch=win32 ??_Gistrstream@@UAEPAXI@Z