[1/5] msvcirt: Add stub of class filebuf
Iván Matellanes
matellanesivan at gmail.com
Mon Aug 3 09:48:37 CDT 2015
---
dlls/msvcirt/msvcirt.c | 205 ++++++++++++++++++++++++++++++++++++++++++++
dlls/msvcirt/msvcirt.h | 12 +++
dlls/msvcirt/msvcirt.spec | 74 ++++++++--------
dlls/msvcrt20/msvcrt20.spec | 74 ++++++++--------
dlls/msvcrt40/msvcrt40.spec | 74 ++++++++--------
5 files changed, 328 insertions(+), 111 deletions(-)
diff --git a/dlls/msvcirt/msvcirt.c b/dlls/msvcirt/msvcirt.c
index 1c26e1c..9a39b1a 100644
--- a/dlls/msvcirt/msvcirt.c
+++ b/dlls/msvcirt/msvcirt.c
@@ -80,6 +80,13 @@ streambuf* __thiscall streambuf_setbuf(streambuf*, char*, int);
void __thiscall streambuf_setg(streambuf*, char*, char*, char*);
void __thiscall streambuf_setp(streambuf*, char*, char*);
+/* class filebuf */
+typedef struct {
+ streambuf base;
+ filedesc fd;
+ int close;
+} filebuf;
+
/* class ios */
struct _ostream;
typedef struct {
@@ -116,6 +123,8 @@ typedef struct {
/* ??_7streambuf@@6B@ */
extern const vtable_ptr MSVCP_streambuf_vtable;
+/* ??_7filebuf@@6B@ */
+extern const vtable_ptr MSVCP_filebuf_vtable;
/* ??_7ios@@6B@ */
extern const vtable_ptr MSVCP_ios_vtable;
@@ -134,6 +143,18 @@ void __asm_dummy_vtables(void) {
VTABLE_ADD_FUNC(streambuf_underflow)
VTABLE_ADD_FUNC(streambuf_pbackfail)
VTABLE_ADD_FUNC(streambuf_doallocate));
+ __ASM_VTABLE(filebuf,
+ VTABLE_ADD_FUNC(filebuf_vector_dtor)
+ VTABLE_ADD_FUNC(filebuf_sync)
+ VTABLE_ADD_FUNC(filebuf_setbuf)
+ VTABLE_ADD_FUNC(filebuf_seekoff)
+ VTABLE_ADD_FUNC(streambuf_seekpos)
+ VTABLE_ADD_FUNC(streambuf_xsputn)
+ VTABLE_ADD_FUNC(streambuf_xsgetn)
+ VTABLE_ADD_FUNC(filebuf_overflow)
+ VTABLE_ADD_FUNC(filebuf_underflow)
+ VTABLE_ADD_FUNC(streambuf_pbackfail)
+ VTABLE_ADD_FUNC(streambuf_doallocate));
__ASM_VTABLE(ios,
VTABLE_ADD_FUNC(ios_vector_dtor));
#ifndef __GNUC__
@@ -141,6 +162,7 @@ void __asm_dummy_vtables(void) {
#endif
DEFINE_RTTI_DATA0(streambuf, 0, ".?AVstreambuf@@")
+DEFINE_RTTI_DATA1(filebuf, 0, &streambuf_rtti_base_descriptor, ".?AVfilebuf@@")
DEFINE_RTTI_DATA0(ios, 0, ".?AVios@@")
/* ??0streambuf@@IAE at PADH@Z */
@@ -738,6 +760,188 @@ void __thiscall streambuf_dbp(streambuf *this)
}
}
+/* ??0filebuf@@QAE at ABV0@@Z */
+/* ??0filebuf@@QEAA at AEBV0@@Z */
+DEFINE_THISCALL_WRAPPER(filebuf_copy_ctor, 8)
+filebuf* __thiscall filebuf_copy_ctor(filebuf* this, const filebuf *copy)
+{
+ FIXME("(%p %p) stub\n", this, copy);
+ return this;
+}
+
+/* ??0filebuf@@QAE at H@Z */
+/* ??0filebuf@@QEAA at H@Z */
+DEFINE_THISCALL_WRAPPER(filebuf_fd_ctor, 8)
+filebuf* __thiscall filebuf_fd_ctor(filebuf* this, filedesc fd)
+{
+ FIXME("(%p %d) stub\n", this, fd);
+ return this;
+}
+
+/* ??0filebuf@@QAE at HPADH@Z */
+/* ??0filebuf@@QEAA at HPEADH@Z */
+DEFINE_THISCALL_WRAPPER(filebuf_fd_reserve_ctor, 16)
+filebuf* __thiscall filebuf_fd_reserve_ctor(filebuf* this, filedesc fd, char *buffer, int length)
+{
+ FIXME("(%p %d %p %d) stub\n", this, fd, buffer, length);
+ return this;
+}
+
+/* ??0filebuf@@QAE at XZ */
+/* ??0filebuf@@QEAA at XZ */
+DEFINE_THISCALL_WRAPPER(filebuf_ctor, 4)
+filebuf* __thiscall filebuf_ctor(filebuf* this)
+{
+ FIXME("(%p) stub\n", this);
+ return this;
+}
+
+/* ??1filebuf@@UAE at XZ */
+/* ??1filebuf@@UEAA at XZ */
+DEFINE_THISCALL_WRAPPER(filebuf_dtor, 4)
+void __thiscall filebuf_dtor(filebuf* this)
+{
+ FIXME("(%p) stub\n", this);
+}
+
+/* ??4filebuf@@QAEAAV0 at ABV0@@Z */
+/* ??4filebuf@@QEAAAEAV0 at AEBV0@@Z */
+DEFINE_THISCALL_WRAPPER(filebuf_assign, 8)
+filebuf* __thiscall filebuf_assign(filebuf* this, const filebuf *rhs)
+{
+ FIXME("(%p %p) stub\n", this, rhs);
+ return this;
+}
+
+/* ??_Efilebuf@@UAEPAXI at Z */
+DEFINE_THISCALL_WRAPPER(filebuf_vector_dtor, 8)
+filebuf* __thiscall filebuf_vector_dtor(filebuf *this, unsigned int flags)
+{
+ 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--)
+ filebuf_dtor(this+i);
+ MSVCRT_operator_delete(ptr);
+ } else {
+ filebuf_dtor(this);
+ if (flags & 1)
+ MSVCRT_operator_delete(this);
+ }
+ return this;
+}
+
+/* ??_Gfilebuf@@UAEPAXI at Z */
+DEFINE_THISCALL_WRAPPER(filebuf_scalar_dtor, 8)
+filebuf* __thiscall filebuf_scalar_dtor(filebuf *this, unsigned int flags)
+{
+ TRACE("(%p %x)\n", this, flags);
+ filebuf_dtor(this);
+ if (flags & 1) MSVCRT_operator_delete(this);
+ return this;
+}
+
+/* ?attach at filebuf@@QAEPAV1 at H@Z */
+/* ?attach at filebuf@@QEAAPEAV1 at H@Z */
+DEFINE_THISCALL_WRAPPER(filebuf_attach, 8)
+filebuf* __thiscall filebuf_attach(filebuf *this, filedesc fd)
+{
+ FIXME("(%p %d) stub\n", this, fd);
+ return NULL;
+}
+
+/* ?close at filebuf@@QAEPAV1 at XZ */
+/* ?close at filebuf@@QEAAPEAV1 at XZ */
+DEFINE_THISCALL_WRAPPER(filebuf_close, 4)
+filebuf* __thiscall filebuf_close(filebuf *this)
+{
+ FIXME("(%p) stub\n", this);
+ return NULL;
+}
+
+/* ?fd at filebuf@@QBEHXZ */
+/* ?fd at filebuf@@QEBAHXZ */
+DEFINE_THISCALL_WRAPPER(filebuf_fd, 4)
+filedesc __thiscall filebuf_fd(const filebuf *this)
+{
+ FIXME("(%p) stub\n", this);
+ return EOF;
+}
+
+/* ?is_open at filebuf@@QBEHXZ */
+/* ?is_open at filebuf@@QEBAHXZ */
+DEFINE_THISCALL_WRAPPER(filebuf_is_open, 4)
+int __thiscall filebuf_is_open(const filebuf *this)
+{
+ FIXME("(%p) stub\n", this);
+ return 0;
+}
+
+/* ?open at filebuf@@QAEPAV1 at PBDHH@Z */
+/* ?open at filebuf@@QEAAPEAV1 at PEBDHH@Z */
+DEFINE_THISCALL_WRAPPER(filebuf_open, 16)
+filebuf* __thiscall filebuf_open(filebuf *this, const char *name, ios_open_mode mode, int protection)
+{
+ FIXME("(%p %s %d %d) stub\n", this, name, mode, protection);
+ return NULL;
+}
+
+/* ?overflow at filebuf@@UAEHH at Z */
+/* ?overflow at filebuf@@UEAAHH at Z */
+DEFINE_THISCALL_WRAPPER(filebuf_overflow, 8)
+int __thiscall filebuf_overflow(filebuf *this, int c)
+{
+ FIXME("(%p %d) stub\n", this, c);
+ return EOF;
+}
+
+/* ?seekoff at filebuf@@UAEJJW4seek_dir at ios@@H at Z */
+/* ?seekoff at filebuf@@UEAAJJW4seek_dir at ios@@H at Z */
+DEFINE_THISCALL_WRAPPER(filebuf_seekoff, 16)
+streampos __thiscall filebuf_seekoff(filebuf *this, streamoff offset, ios_seek_dir dir, int mode)
+{
+ FIXME("(%p %d %d %d) stub\n", this, offset, dir, mode);
+ return EOF;
+}
+
+/* ?setbuf at filebuf@@UAEPAVstreambuf@@PADH at Z */
+/* ?setbuf at filebuf@@UEAAPEAVstreambuf@@PEADH at Z */
+DEFINE_THISCALL_WRAPPER(filebuf_setbuf, 12)
+streambuf* __thiscall filebuf_setbuf(filebuf *this, char *buffer, int length)
+{
+ FIXME("(%p %p %d) stub\n", this, buffer, length);
+ return NULL;
+}
+
+/* ?setmode at filebuf@@QAEHH at Z */
+/* ?setmode at filebuf@@QEAAHH at Z */
+DEFINE_THISCALL_WRAPPER(filebuf_setmode, 8)
+int __thiscall filebuf_setmode(filebuf *this, int mode)
+{
+ FIXME("(%p %d) stub\n", this, mode);
+ return 0;
+}
+
+/* ?sync at filebuf@@UAEHXZ */
+/* ?sync at filebuf@@UEAAHXZ */
+DEFINE_THISCALL_WRAPPER(filebuf_sync, 4)
+int __thiscall filebuf_sync(filebuf *this)
+{
+ FIXME("(%p) stub\n", this);
+ return EOF;
+}
+
+/* ?underflow at filebuf@@UAEHXZ */
+/* ?underflow at filebuf@@UEAAHXZ */
+DEFINE_THISCALL_WRAPPER(filebuf_underflow, 4)
+int __thiscall filebuf_underflow(filebuf *this)
+{
+ FIXME("(%p) stub\n", this);
+ return EOF;
+}
+
/* ??0ios@@IAE at ABV0@@Z */
/* ??0ios@@IEAA at AEBV0@@Z */
DEFINE_THISCALL_WRAPPER(ios_copy_ctor, 8)
@@ -1411,6 +1615,7 @@ static void init_io(void *base)
{
#ifdef __x86_64__
init_streambuf_rtti(base);
+ init_filebuf_rtti(base);
init_ios_rtti(base);
#endif
}
diff --git a/dlls/msvcirt/msvcirt.h b/dlls/msvcirt/msvcirt.h
index 5ec369b..8886a44 100644
--- a/dlls/msvcirt/msvcirt.h
+++ b/dlls/msvcirt/msvcirt.h
@@ -22,6 +22,7 @@
typedef LONG streamoff;
typedef LONG streampos;
+typedef int filedesc;
typedef enum {
IOSTATE_goodbit = 0x0,
@@ -31,6 +32,17 @@ typedef enum {
} ios_io_state;
typedef enum {
+ OPENMODE_in = 0x1,
+ OPENMODE_out = 0x2,
+ OPENMODE_ate = 0x4,
+ OPENMODE_app = 0x8,
+ OPENMODE_trunc = 0x10,
+ OPENMODE_nocreate = 0x20,
+ OPENMODE_noreplace = 0x40,
+ OPENMODE_binary = 0x80
+} ios_open_mode;
+
+typedef enum {
SEEKDIR_beg = 0,
SEEKDIR_cur = 1,
SEEKDIR_end = 2
diff --git a/dlls/msvcirt/msvcirt.spec b/dlls/msvcirt/msvcirt.spec
index 2780ecf..249ee91 100644
--- a/dlls/msvcirt/msvcirt.spec
+++ b/dlls/msvcirt/msvcirt.spec
@@ -8,14 +8,14 @@
@ cdecl -arch=win64 ??0exception@@QEAA at AEBV0@@Z(ptr ptr) MSVCP_exception_copy_ctor
@ thiscall -arch=i386 ??0exception@@QAE at XZ(ptr) MSVCP_exception_default_ctor
@ cdecl -arch=win64 ??0exception@@QEAA at XZ(ptr) MSVCP_exception_default_ctor
-@ stub -arch=win32 ??0filebuf@@QAE at ABV0@@Z # __thiscall filebuf::filebuf(class filebuf const &)
-@ stub -arch=win64 ??0filebuf@@QEAA at AEBV0@@Z
-@ stub -arch=win32 ??0filebuf@@QAE at H@Z # __thiscall filebuf::filebuf(int)
-@ stub -arch=win64 ??0filebuf@@QEAA at H@Z
-@ stub -arch=win32 ??0filebuf@@QAE at HPADH@Z # __thiscall filebuf::filebuf(int,char *,int)
-@ stub -arch=win64 ??0filebuf@@QEAA at HPEADH@Z
-@ stub -arch=win32 ??0filebuf@@QAE at XZ # __thiscall filebuf::filebuf(void)
-@ stub -arch=win64 ??0filebuf@@QEAA at XZ
+@ thiscall -arch=win32 ??0filebuf@@QAE at ABV0@@Z(ptr ptr) filebuf_copy_ctor
+@ cdecl -arch=win64 ??0filebuf@@QEAA at AEBV0@@Z(ptr ptr) filebuf_copy_ctor
+@ thiscall -arch=win32 ??0filebuf@@QAE at H@Z(ptr long) filebuf_fd_ctor
+@ cdecl -arch=win64 ??0filebuf@@QEAA at H@Z(ptr long) filebuf_fd_ctor
+@ thiscall -arch=win32 ??0filebuf@@QAE at HPADH@Z(ptr long ptr long) filebuf_fd_reserve_ctor
+@ cdecl -arch=win64 ??0filebuf@@QEAA at HPEADH@Z(ptr long ptr long) filebuf_fd_reserve_ctor
+@ thiscall -arch=win32 ??0filebuf@@QAE at XZ(ptr) filebuf_ctor
+@ cdecl -arch=win64 ??0filebuf@@QEAA at XZ(ptr) filebuf_ctor
@ stub -arch=win32 ??0fstream@@QAE at ABV0@@Z # __thiscall fstream::fstream(class fstream const &)
@ stub -arch=win64 ??0fstream@@QEAA at AEBV0@@Z
@ stub -arch=win32 ??0fstream@@QAE at H@Z # __thiscall fstream::fstream(int)
@@ -134,8 +134,8 @@
@ stub -arch=win64 ??1Iostream_init@@QEAA at XZ
@ thiscall -arch=i386 ??1exception@@UAE at XZ(ptr) MSVCP_exception_dtor
@ cdecl -arch=win64 ??1exception@@UEAA at XZ(ptr) MSVCP_exception_dtor
-@ stub -arch=win32 ??1filebuf@@UAE at XZ # virtual __thiscall filebuf::~filebuf(void)
-@ stub -arch=win64 ??1filebuf@@UEAA at XZ
+@ thiscall -arch=win32 ??1filebuf@@UAE at XZ(ptr) filebuf_dtor
+@ cdecl -arch=win64 ??1filebuf@@UEAA at XZ(ptr) filebuf_dtor
@ stub -arch=win32 ??1fstream@@UAE at XZ # virtual __thiscall fstream::~fstream(void)
@ stub -arch=win64 ??1fstream@@UEAA at XZ
@ stub -arch=win32 ??1ifstream@@UAE at XZ # virtual __thiscall ifstream::~ifstream(void)
@@ -174,8 +174,8 @@
@ stub -arch=win64 ??4Iostream_init@@QEAAAEAV0 at AEBV0@@Z
@ thiscall -arch=i386 ??4exception@@QAEAAV0 at ABV0@@Z(ptr ptr) MSVCP_exception_assign
@ cdecl -arch=win64 ??4exception@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) MSVCP_exception_assign
-@ stub -arch=win32 ??4filebuf@@QAEAAV0 at ABV0@@Z # class filebuf & __thiscall filebuf::operator=(class filebuf const &)
-@ stub -arch=win64 ??4filebuf@@QEAAAEAV0 at AEBV0@@Z
+@ thiscall -arch=win32 ??4filebuf@@QAEAAV0 at ABV0@@Z(ptr ptr) filebuf_assign
+@ cdecl -arch=win64 ??4filebuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) filebuf_assign
@ stub -arch=win32 ??4fstream@@QAEAAV0 at AAV0@@Z # class fstream & __thiscall fstream::operator=(class fstream &)
@ stub -arch=win64 ??4fstream@@QEAAAEAV0 at AEAV0@@Z
@ stub -arch=win32 ??4ifstream@@QAEAAV0 at ABV0@@Z # class ifstream & __thiscall ifstream::operator=(class ifstream const &)
@@ -303,7 +303,7 @@
@ thiscall -arch=win32 ??Bios@@QBEPAXXZ(ptr) ios_op_void
@ cdecl -arch=win64 ??Bios@@QEBAPEAXXZ(ptr) ios_op_void
@ extern ??_7exception@@6B@ MSVCP_exception_vtable
-# @ extern ??_7filebuf@@6B@ # const filebuf::`vftable'
+@ extern ??_7filebuf@@6B@ MSVCP_filebuf_vtable
# @ extern ??_7fstream@@6B@ # const fstream::`vftable'
# @ extern ??_7ifstream@@6B@ # const ifstream::`vftable'
@ extern ??_7ios@@6B@ MSVCP_ios_vtable
@@ -362,7 +362,7 @@
@ stub -arch=win32 ??_Dstrstream@@QAEXXZ # void __thiscall strstream::`vbase destructor'(void)
@ stub -arch=win64 ??_Dstrstream@@QEAAXXZ
@ thiscall -arch=win32 ??_Eexception@@UAEPAXI at Z(ptr long) MSVCP_exception_vector_dtor
-@ stub -arch=win32 ??_Efilebuf@@UAEPAXI at Z # virtual void * __thiscall filebuf::`vector deleting destructor'(unsigned int)
+@ 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)
@ stub -arch=win32 ??_Eifstream@@UAEPAXI at Z # virtual void * __thiscall ifstream::`vector deleting destructor'(unsigned int)
@ thiscall -arch=win32 ??_Eios@@UAEPAXI at Z(ptr long) ios_vector_dtor
@@ -381,7 +381,7 @@
@ stub -arch=win32 ??_Estrstream@@UAEPAXI at Z # virtual void * __thiscall strstream::`vector deleting destructor'(unsigned int)
@ stub -arch=win32 ??_Estrstreambuf@@UAEPAXI at Z # virtual void * __thiscall strstreambuf::`vector deleting destructor'(unsigned int)
@ thiscall -arch=win32 ??_Gexception@@UAEPAXI at Z(ptr long) MSVCP_exception_scalar_dtor
-@ stub -arch=win32 ??_Gfilebuf@@UAEPAXI at Z # virtual void * __thiscall filebuf::`scalar deleting destructor'(unsigned int)
+@ thiscall -arch=win32 ??_Gfilebuf@@UAEPAXI at Z(ptr long) filebuf_scalar_dtor
@ stub -arch=win32 ??_Gfstream@@UAEPAXI at Z # virtual void * __thiscall fstream::`scalar deleting destructor'(unsigned int)
@ stub -arch=win32 ??_Gifstream@@UAEPAXI at Z # virtual void * __thiscall ifstream::`scalar deleting destructor'(unsigned int)
@ thiscall -arch=win32 ??_Gios@@UAEPAXI at Z(ptr long) ios_scalar_dtor
@@ -402,8 +402,8 @@
@ extern ?adjustfield at ios@@2JB ios_adjustfield
@ thiscall -arch=win32 ?allocate at streambuf@@IAEHXZ(ptr) streambuf_allocate
@ cdecl -arch=win64 ?allocate at streambuf@@IEAAHXZ(ptr) streambuf_allocate
-@ stub -arch=win32 ?attach at filebuf@@QAEPAV1 at H@Z # class filebuf * __thiscall filebuf::attach(int)
-@ stub -arch=win64 ?attach at filebuf@@QEAAPEAV1 at H@Z
+@ thiscall -arch=win32 ?attach at filebuf@@QAEPAV1 at H@Z(ptr long) filebuf_attach
+@ cdecl -arch=win64 ?attach at filebuf@@QEAAPEAV1 at H@Z(ptr long) filebuf_attach
@ stub -arch=win32 ?attach at fstream@@QAEXH at Z # void __thiscall fstream::attach(int)
@ stub -arch=win64 ?attach at fstream@@QEAAXH at Z
@ stub -arch=win32 ?attach at ifstream@@QAEXH at Z # void __thiscall ifstream::attach(int)
@@ -424,8 +424,8 @@
@ thiscall -arch=win32 ?clear at ios@@QAEXH at Z(ptr long) ios_clear
@ cdecl -arch=win64 ?clear at ios@@QEAAXH at Z(ptr long) ios_clear
@ stub ?clog@@3Vostream_withassign@@A # class ostream_withassign clog
-@ stub -arch=win32 ?close at filebuf@@QAEPAV1 at XZ # class filebuf * __thiscall filebuf::close(void)
-@ stub -arch=win64 ?close at filebuf@@QEAAPEAV1 at XZ
+@ thiscall -arch=win32 ?close at filebuf@@QAEPAV1 at XZ(ptr) filebuf_close
+@ cdecl -arch=win64 ?close at filebuf@@QEAAPEAV1 at XZ(ptr) filebuf_close
@ stub -arch=win32 ?close at fstream@@QAEXXZ # void __thiscall fstream::close(void)
@ stub -arch=win64 ?close at fstream@@QEAAXXZ
@ stub -arch=win32 ?close at ifstream@@QAEXXZ # void __thiscall ifstream::close(void)
@@ -468,8 +468,8 @@
@ extern ?fLockcInit at ios@@0HA ios_fLockcInit
@ thiscall -arch=win32 ?fail at ios@@QBEHXZ(ptr) ios_fail
@ cdecl -arch=win64 ?fail at ios@@QEBAHXZ(ptr) ios_fail
-@ stub -arch=win32 ?fd at filebuf@@QBEHXZ # int __thiscall filebuf::fd(void)const
-@ stub -arch=win64 ?fd at filebuf@@QEBAHXZ
+@ thiscall -arch=win32 ?fd at filebuf@@QBEHXZ(ptr) filebuf_fd
+@ cdecl -arch=win64 ?fd at filebuf@@QEBAHXZ(ptr) filebuf_fd
@ stub -arch=win32 ?fd at fstream@@QBEHXZ # int __thiscall fstream::fd(void)const
@ stub -arch=win64 ?fd at fstream@@QEBAHXZ
@ stub -arch=win32 ?fd at ifstream@@QBEHXZ # int __thiscall ifstream::fd(void)const
@@ -537,8 +537,8 @@
@ cdecl -arch=win64 ?init at ios@@IEAAXPEAVstreambuf@@@Z(ptr ptr) ios_init
@ stub -arch=win32 ?ipfx at istream@@QAEHH at Z # int __thiscall istream::ipfx(int)
@ stub -arch=win64 ?ipfx at istream@@QEAAHH at Z
-@ stub -arch=win32 ?is_open at filebuf@@QBEHXZ # int __thiscall filebuf::is_open(void)const
-@ stub -arch=win64 ?is_open at filebuf@@QEBAHXZ
+@ thiscall -arch=win32 ?is_open at filebuf@@QBEHXZ(ptr) filebuf_is_open
+@ cdecl -arch=win64 ?is_open at filebuf@@QEBAHXZ(ptr) filebuf_is_open
@ stub -arch=win32 ?is_open at fstream@@QBEHXZ # int __thiscall fstream::is_open(void)const
@ stub -arch=win64 ?is_open at fstream@@QEBAHXZ
@ stub -arch=win32 ?is_open at ifstream@@QBEHXZ # int __thiscall ifstream::is_open(void)const
@@ -562,8 +562,8 @@
@ cdecl -arch=win64 ?lockptr at streambuf@@IEAAPEAU_CRT_CRITICAL_SECTION@@XZ(ptr) streambuf_lockptr
@ cdecl -arch=win32 ?oct@@YAAAVios@@AAV1@@Z(ptr) ios_oct
@ cdecl -arch=win64 ?oct@@YAAEAVios@@AEAV1@@Z(ptr) ios_oct
-@ stub -arch=win32 ?open at filebuf@@QAEPAV1 at PBDHH@Z # class filebuf * __thiscall filebuf::open(char const *,int,int)
-@ stub -arch=win64 ?open at filebuf@@QEAAPEAV1 at PEBDHH@Z
+@ thiscall -arch=win32 ?open at filebuf@@QAEPAV1 at PBDHH@Z(ptr str long long) filebuf_open
+@ cdecl -arch=win64 ?open at filebuf@@QEAAPEAV1 at PEBDHH@Z(ptr str long long) filebuf_open
@ stub -arch=win32 ?open at fstream@@QAEXPBDHH at Z # void __thiscall fstream::open(char const *,int,int)
@ stub -arch=win64 ?open at fstream@@QEAAXPEBDHH at Z
@ stub -arch=win32 ?open at ifstream@@QAEXPBDHH at Z # void __thiscall ifstream::open(char const *,int,int)
@@ -577,8 +577,8 @@
@ stub -arch=win64 ?osfx at ostream@@QEAAXXZ
@ thiscall -arch=win32 ?out_waiting at streambuf@@QBEHXZ(ptr) streambuf_out_waiting
@ cdecl -arch=win64 ?out_waiting at streambuf@@QEBAHXZ(ptr) streambuf_out_waiting
-@ stub -arch=win32 ?overflow at filebuf@@UAEHH at Z # virtual int __thiscall filebuf::overflow(int)
-@ stub -arch=win64 ?overflow at filebuf@@UEAAHH at Z
+@ thiscall -arch=win32 ?overflow at filebuf@@UAEHH at Z(ptr long) filebuf_overflow
+@ cdecl -arch=win64 ?overflow at filebuf@@UEAAHH at Z(ptr long) filebuf_overflow
@ stub -arch=win32 ?overflow at stdiobuf@@UAEHH at Z # virtual int __thiscall stdiobuf::overflow(int)
@ stub -arch=win64 ?overflow at stdiobuf@@UEAAHH at Z
@ stub -arch=win32 ?overflow at strstreambuf@@UAEHH at Z # virtual int __thiscall strstreambuf::overflow(int)
@@ -643,8 +643,8 @@
@ stub -arch=win64 ?seekg at istream@@QEAAAEAV1 at J@Z
@ stub -arch=win32 ?seekg at istream@@QAEAAV1 at JW4seek_dir@ios@@@Z # class istream & __thiscall istream::seekg(long,enum ios::seek_dir)
@ stub -arch=win64 ?seekg at istream@@QEAAAEAV1 at JW4seek_dir@ios@@@Z
-@ stub -arch=win32 ?seekoff at filebuf@@UAEJJW4seek_dir at ios@@H at Z # virtual long __thiscall filebuf::seekoff(long,enum ios::seek_dir,int)
-@ stub -arch=win64 ?seekoff at filebuf@@UEAAJJW4seek_dir at ios@@H at Z
+@ thiscall -arch=win32 ?seekoff at filebuf@@UAEJJW4seek_dir at ios@@H at Z(ptr long long long) filebuf_seekoff
+@ cdecl -arch=win64 ?seekoff at filebuf@@UEAAJJW4seek_dir at ios@@H at Z(ptr long long long) filebuf_seekoff
@ stub -arch=win32 ?seekoff at stdiobuf@@UAEJJW4seek_dir at ios@@H at Z # virtual long __thiscall stdiobuf::seekoff(long,enum ios::seek_dir,int)
@ stub -arch=win64 ?seekoff at stdiobuf@@UEAAJJW4seek_dir at ios@@H at Z
@ thiscall -arch=win32 ?seekoff at streambuf@@UAEJJW4seek_dir at ios@@H at Z(ptr long long long) streambuf_seekoff
@@ -659,8 +659,8 @@
@ cdecl -arch=win64 ?seekpos at streambuf@@UEAAJJH at Z(ptr long long) streambuf_seekpos
@ thiscall -arch=win32 ?setb at streambuf@@IAEXPAD0H at Z(ptr ptr ptr long) streambuf_setb
@ cdecl -arch=win64 ?setb at streambuf@@IEAAXPEAD0H at Z(ptr ptr ptr long) streambuf_setb
-@ stub -arch=win32 ?setbuf at filebuf@@UAEPAVstreambuf@@PADH at Z # virtual class streambuf * __thiscall filebuf::setbuf(char *,int)
-@ stub -arch=win64 ?setbuf at filebuf@@UEAAPEAVstreambuf@@PEADH at Z
+@ thiscall -arch=win32 ?setbuf at filebuf@@UAEPAVstreambuf@@PADH at Z(ptr ptr long) filebuf_setbuf
+@ cdecl -arch=win64 ?setbuf at filebuf@@UEAAPEAVstreambuf@@PEADH at Z(ptr ptr long) filebuf_setbuf
@ stub -arch=win32 ?setbuf at fstream@@QAEPAVstreambuf@@PADH at Z # class streambuf * __thiscall fstream::setbuf(char *,int)
@ stub -arch=win64 ?setbuf at fstream@@QEAAPEAVstreambuf@@PEADH at Z
@ stub -arch=win32 ?setbuf at ifstream@@QAEPAVstreambuf@@PADH at Z # class streambuf * __thiscall ifstream::setbuf(char *,int)
@@ -681,8 +681,8 @@
@ cdecl -arch=win64 ?setlock at ios@@QEAAXXZ(ptr) ios_setlock
@ thiscall -arch=win32 ?setlock at streambuf@@QAEXXZ(ptr) streambuf_setlock
@ cdecl -arch=win64 ?setlock at streambuf@@QEAAXXZ(ptr) streambuf_setlock
-@ stub -arch=win32 ?setmode at filebuf@@QAEHH at Z # int __thiscall filebuf::setmode(int)
-@ stub -arch=win64 ?setmode at filebuf@@QEAAHH at Z
+@ thiscall -arch=win32 ?setmode at filebuf@@QAEHH at Z(ptr long) filebuf_setmode
+@ cdecl -arch=win64 ?setmode at filebuf@@QEAAHH at Z(ptr long) filebuf_setmode
@ stub -arch=win32 ?setmode at fstream@@QAEHH at Z # int __thiscall fstream::setmode(int)
@ stub -arch=win64 ?setmode at fstream@@QEAAHH at Z
@ stub -arch=win32 ?setmode at ifstream@@QAEHH at Z # int __thiscall ifstream::setmode(int)
@@ -721,8 +721,8 @@
@ thiscall -arch=win32 ?str at strstreambuf@@QAEPADXZ(ptr) MSVCIRT_str_sl_void # char * __thiscall strstreambuf::str(void)
@ cdecl -arch=win64 ?str at strstreambuf@@QEAAPEADXZ(ptr) MSVCIRT_str_sl_void
# @ extern ?sunk_with_stdio at ios@@0HA # static int ios::sunk_with_stdio
-@ stub -arch=win32 ?sync at filebuf@@UAEHXZ # virtual int __thiscall filebuf::sync(void)
-@ stub -arch=win64 ?sync at filebuf@@UEAAHXZ
+@ thiscall -arch=win32 ?sync at filebuf@@UAEHXZ(ptr) filebuf_sync
+@ cdecl -arch=win64 ?sync at filebuf@@UEAAHXZ(ptr) filebuf_sync
@ stub -arch=win32 ?sync at istream@@QAEHXZ # int __thiscall istream::sync(void)
@ stub -arch=win64 ?sync at istream@@QEAAHXZ
@ stub -arch=win32 ?sync at stdiobuf@@UAEHXZ # virtual int __thiscall stdiobuf::sync(void)
@@ -745,8 +745,8 @@
@ cdecl -arch=win64 ?unbuffered at streambuf@@IEAAXH at Z(ptr long) streambuf_unbuffered_set
@ thiscall -arch=win32 ?unbuffered at streambuf@@IBEHXZ(ptr) streambuf_unbuffered_get
@ cdecl -arch=win64 ?unbuffered at streambuf@@IEBAHXZ(ptr) streambuf_unbuffered_get
-@ stub -arch=win32 ?underflow at filebuf@@UAEHXZ # virtual int __thiscall filebuf::underflow(void)
-@ stub -arch=win64 ?underflow at filebuf@@UEAAHXZ
+@ thiscall -arch=win32 ?underflow at filebuf@@UAEHXZ(ptr) filebuf_underflow
+@ cdecl -arch=win64 ?underflow at filebuf@@UEAAHXZ(ptr) filebuf_underflow
@ stub -arch=win32 ?underflow at stdiobuf@@UAEHXZ # virtual int __thiscall stdiobuf::underflow(void)
@ stub -arch=win64 ?underflow at stdiobuf@@UEAAHXZ
@ stub -arch=win32 ?underflow at strstreambuf@@UAEHXZ # virtual int __thiscall strstreambuf::underflow(void)
diff --git a/dlls/msvcrt20/msvcrt20.spec b/dlls/msvcrt20/msvcrt20.spec
index 1206715..ab59dde 100644
--- a/dlls/msvcrt20/msvcrt20.spec
+++ b/dlls/msvcrt20/msvcrt20.spec
@@ -2,14 +2,14 @@
@ stub -arch=win64 ??0Iostream_init@@QEAA at AEAVios@@H at Z
@ stub -arch=win32 ??0Iostream_init@@QAE at XZ
@ stub -arch=win64 ??0Iostream_init@@QEAA at XZ
-@ stub -arch=win32 ??0filebuf@@QAE at ABV0@@Z
-@ stub -arch=win64 ??0filebuf@@QEAA at AEBV0@@Z
-@ stub -arch=win32 ??0filebuf@@QAE at H@Z
-@ stub -arch=win64 ??0filebuf@@QEAA at H@Z
-@ stub -arch=win32 ??0filebuf@@QAE at HPADH@Z
-@ stub -arch=win64 ??0filebuf@@QEAA at HPEADH@Z
-@ stub -arch=win32 ??0filebuf@@QAE at XZ
-@ stub -arch=win64 ??0filebuf@@QEAA at XZ
+@ thiscall -arch=win32 ??0filebuf@@QAE at ABV0@@Z(ptr ptr) msvcirt.??0filebuf@@QAE at ABV0@@Z
+@ cdecl -arch=win64 ??0filebuf@@QEAA at AEBV0@@Z(ptr ptr) msvcirt.??0filebuf@@QEAA at AEBV0@@Z
+@ thiscall -arch=win32 ??0filebuf@@QAE at H@Z(ptr long) msvcirt.??0filebuf@@QAE at H@Z
+@ cdecl -arch=win64 ??0filebuf@@QEAA at H@Z(ptr long) msvcirt.??0filebuf@@QEAA at H@Z
+@ thiscall -arch=win32 ??0filebuf@@QAE at HPADH@Z(ptr long ptr long) msvcirt.??0filebuf@@QAE at HPADH@Z
+@ cdecl -arch=win64 ??0filebuf@@QEAA at HPEADH@Z(ptr long ptr long) msvcirt.??0filebuf@@QEAA at HPEADH@Z
+@ thiscall -arch=win32 ??0filebuf@@QAE at XZ(ptr) msvcirt.??0filebuf@@QAE at XZ
+@ cdecl -arch=win64 ??0filebuf@@QEAA at XZ(ptr) msvcirt.??0filebuf@@QEAA at XZ
@ stub -arch=win32 ??0fstream@@QAE at ABV0@@Z
@ stub -arch=win64 ??0fstream@@QEAA at AEBV0@@Z
@ stub -arch=win32 ??0fstream@@QAE at H@Z
@@ -120,8 +120,8 @@
@ stub -arch=win64 ??0strstreambuf@@QEAA at XZ
@ stub -arch=win32 ??1Iostream_init@@QAE at XZ
@ stub -arch=win64 ??1Iostream_init@@QEAA at XZ
-@ stub -arch=win32 ??1filebuf@@UAE at XZ
-@ stub -arch=win64 ??1filebuf@@UEAA at XZ
+@ thiscall -arch=win32 ??1filebuf@@UAE at XZ(ptr) msvcirt.??1filebuf@@UAE at XZ
+@ cdecl -arch=win64 ??1filebuf@@UEAA at XZ(ptr) msvcirt.??1filebuf@@UEAA at XZ
@ stub -arch=win32 ??1fstream@@UAE at XZ
@ stub -arch=win64 ??1fstream@@UEAA at XZ
@ stub -arch=win32 ??1ifstream@@UAE at XZ
@@ -160,8 +160,8 @@
@ cdecl -arch=win64 ??3 at YAXPEAX@Z(ptr) msvcrt.??3 at YAXPEAX@Z
@ stub -arch=win32 ??4Iostream_init@@QAEAAV0 at ABV0@@Z
@ stub -arch=win64 ??4Iostream_init@@QEAAAEAV0 at AEBV0@@Z
-@ stub -arch=win32 ??4filebuf@@QAEAAV0 at ABV0@@Z
-@ stub -arch=win64 ??4filebuf@@QEAAAEAV0 at AEBV0@@Z
+@ thiscall -arch=win32 ??4filebuf@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4filebuf@@QAEAAV0 at ABV0@@Z
+@ cdecl -arch=win64 ??4filebuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4filebuf@@QEAAAEAV0 at AEBV0@@Z
@ stub -arch=win32 ??4fstream@@QAEAAV0 at AAV0@@Z
@ stub -arch=win64 ??4fstream@@QEAAAEAV0 at AEAV0@@Z
@ stub -arch=win32 ??4ifstream@@QAEAAV0 at ABV0@@Z
@@ -286,7 +286,7 @@
@ cdecl -arch=win64 ??7ios@@QEBAHXZ(ptr) msvcirt.??7ios@@QEBAHXZ
@ thiscall -arch=win32 ??Bios@@QBEPAXXZ(ptr) msvcirt.??Bios@@QBEPAXXZ
@ cdecl -arch=win64 ??Bios@@QEBAPEAXXZ(ptr) msvcirt.??Bios@@QEBAPEAXXZ
-# @ extern ??_7filebuf@@6B@
+@ extern ??_7filebuf@@6B@ msvcirt.??_7filebuf@@6B@
# @ extern ??_7fstream@@6B@
# @ extern ??_7ifstream@@6B@
@ extern ??_7ios@@6B@ msvcirt.??_7ios@@6B@
@@ -344,7 +344,7 @@
@ stub -arch=win32 ??_Dstrstream@@QAEXXZ
@ stub -arch=win64 ??_Dstrstream@@QEAAXXZ
@ stub -arch=win32 ??_EIostream_init@@QAEPAXI at Z
-@ stub -arch=win32 ??_Efilebuf@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Efilebuf@@UAEPAXI at Z(ptr long) msvcirt.??_Efilebuf@@UAEPAXI at Z
@ stub -arch=win32 ??_Efstream@@UAEPAXI at Z
@ stub -arch=win32 ??_Eifstream@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Eios@@UAEPAXI at Z(ptr long) msvcirt.??_Eios@@UAEPAXI at Z
@@ -362,7 +362,7 @@
@ stub -arch=win32 ??_Estrstream@@UAEPAXI at Z
@ stub -arch=win32 ??_Estrstreambuf@@UAEPAXI at Z
@ stub -arch=win32 ??_GIostream_init@@QAEPAXI at Z
-@ stub -arch=win32 ??_Gfilebuf@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Gfilebuf@@UAEPAXI at Z(ptr long) msvcirt.??_Gfilebuf@@UAEPAXI at Z
@ stub -arch=win32 ??_Gfstream@@UAEPAXI at Z
@ stub -arch=win32 ??_Gifstream@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Gios@@UAEPAXI at Z(ptr long) msvcirt.??_Gios@@UAEPAXI at Z
@@ -390,8 +390,8 @@
@ extern ?adjustfield at ios@@2JB msvcirt.?adjustfield at ios@@2JB
@ thiscall -arch=win32 ?allocate at streambuf@@IAEHXZ(ptr) msvcirt.?allocate at streambuf@@IAEHXZ
@ cdecl -arch=win64 ?allocate at streambuf@@IEAAHXZ(ptr) msvcirt.?allocate at streambuf@@IEAAHXZ
-@ stub -arch=win32 ?attach at filebuf@@QAEPAV1 at H@Z
-@ stub -arch=win64 ?attach at filebuf@@QEAAPEAV1 at H@Z
+@ thiscall -arch=win32 ?attach at filebuf@@QAEPAV1 at H@Z(ptr long) msvcirt.?attach at filebuf@@QAEPAV1 at H@Z
+@ cdecl -arch=win64 ?attach at filebuf@@QEAAPEAV1 at H@Z(ptr long) msvcirt.?attach at filebuf@@QEAAPEAV1 at H@Z
@ stub -arch=win32 ?attach at fstream@@QAEXH at Z
@ stub -arch=win64 ?attach at fstream@@QEAAXH at Z
@ stub -arch=win32 ?attach at ifstream@@QAEXH at Z
@@ -412,8 +412,8 @@
@ thiscall -arch=win32 ?clear at ios@@QAEXH at Z(ptr long) msvcirt.?clear at ios@@QAEXH at Z
@ cdecl -arch=win64 ?clear at ios@@QEAAXH at Z(ptr long) msvcirt.?clear at ios@@QEAAXH at Z
@ stub ?clog@@3Vostream_withassign@@A
-@ stub -arch=win32 ?close at filebuf@@QAEPAV1 at XZ
-@ stub -arch=win64 ?close at filebuf@@QEAAPEAV1 at XZ
+@ thiscall -arch=win32 ?close at filebuf@@QAEPAV1 at XZ(ptr) msvcirt.?close at filebuf@@QAEPAV1 at XZ
+@ cdecl -arch=win64 ?close at filebuf@@QEAAPEAV1 at XZ(ptr) msvcirt.?close at filebuf@@QEAAPEAV1 at XZ
@ stub -arch=win32 ?close at fstream@@QAEXXZ
@ stub -arch=win64 ?close at fstream@@QEAAXXZ
@ stub -arch=win32 ?close at ifstream@@QAEXXZ
@@ -456,8 +456,8 @@
@ extern ?fLockcInit at ios@@0HA msvcirt.?fLockcInit at ios@@0HA
@ thiscall -arch=win32 ?fail at ios@@QBEHXZ(ptr) msvcirt.?fail at ios@@QBEHXZ
@ cdecl -arch=win64 ?fail at ios@@QEBAHXZ(ptr) msvcirt.?fail at ios@@QEBAHXZ
-@ stub -arch=win32 ?fd at filebuf@@QBEHXZ
-@ stub -arch=win64 ?fd at filebuf@@QEBAHXZ
+@ thiscall -arch=win32 ?fd at filebuf@@QBEHXZ(ptr) msvcirt.?fd at filebuf@@QBEHXZ
+@ cdecl -arch=win64 ?fd at filebuf@@QEBAHXZ(ptr) msvcirt.?fd at filebuf@@QEBAHXZ
@ stub -arch=win32 ?fd at fstream@@QBEHXZ
@ stub -arch=win64 ?fd at fstream@@QEBAHXZ
@ stub -arch=win32 ?fd at ifstream@@QBEHXZ
@@ -523,8 +523,8 @@
@ cdecl -arch=win64 ?init at ios@@IEAAXPEAVstreambuf@@@Z(ptr ptr) msvcirt.?init at ios@@IEAAXPEAVstreambuf@@@Z
@ stub -arch=win32 ?ipfx at istream@@QAEHH at Z
@ stub -arch=win64 ?ipfx at istream@@QEAAHH at Z
-@ stub -arch=win32 ?is_open at filebuf@@QBEHXZ
-@ stub -arch=win64 ?is_open at filebuf@@QEBAHXZ
+@ thiscall -arch=win32 ?is_open at filebuf@@QBEHXZ(ptr) msvcirt.?is_open at filebuf@@QBEHXZ
+@ cdecl -arch=win64 ?is_open at filebuf@@QEBAHXZ(ptr) msvcirt.?is_open at filebuf@@QEBAHXZ
@ stub -arch=win32 ?is_open at fstream@@QBEHXZ
@ stub -arch=win64 ?is_open at fstream@@QEBAHXZ
@ stub -arch=win32 ?is_open at ifstream@@QBEHXZ
@@ -548,8 +548,8 @@
@ cdecl -arch=win64 ?lockptr at streambuf@@IEAAPEAU_CRT_CRITICAL_SECTION@@XZ(ptr) msvcirt.?lockptr at streambuf@@IEAAPEAU_CRT_CRITICAL_SECTION@@XZ
@ cdecl -arch=win32 ?oct@@YAAAVios@@AAV1@@Z(ptr) msvcirt.?oct@@YAAAVios@@AAV1@@Z
@ cdecl -arch=win64 ?oct@@YAAEAVios@@AEAV1@@Z(ptr) msvcirt.?oct@@YAAEAVios@@AEAV1@@Z
-@ stub -arch=win32 ?open at filebuf@@QAEPAV1 at PBDHH@Z
-@ stub -arch=win64 ?open at filebuf@@QEAAPEAV1 at PEBDHH@Z
+@ thiscall -arch=win32 ?open at filebuf@@QAEPAV1 at PBDHH@Z(ptr str long long) msvcirt.?open at filebuf@@QAEPAV1 at PBDHH@Z
+@ cdecl -arch=win64 ?open at filebuf@@QEAAPEAV1 at PEBDHH@Z(ptr str long long) msvcirt.?open at filebuf@@QEAAPEAV1 at PEBDHH@Z
@ stub -arch=win32 ?open at fstream@@QAEXPBDHH at Z
@ stub -arch=win64 ?open at fstream@@QEAAXPEBDHH at Z
@ stub -arch=win32 ?open at ifstream@@QAEXPBDHH at Z
@@ -563,8 +563,8 @@
@ stub -arch=win64 ?osfx at ostream@@QEAAXXZ
@ thiscall -arch=win32 ?out_waiting at streambuf@@QBEHXZ(ptr) msvcirt.?out_waiting at streambuf@@QBEHXZ
@ cdecl -arch=win64 ?out_waiting at streambuf@@QEBAHXZ(ptr) msvcirt.?out_waiting at streambuf@@QEBAHXZ
-@ stub -arch=win32 ?overflow at filebuf@@UAEHH at Z
-@ stub -arch=win64 ?overflow at filebuf@@UEAAHH at Z
+@ thiscall -arch=win32 ?overflow at filebuf@@UAEHH at Z(ptr long) msvcirt.?overflow at filebuf@@UAEHH at Z
+@ cdecl -arch=win64 ?overflow at filebuf@@UEAAHH at Z(ptr long) msvcirt.?overflow at filebuf@@UEAAHH at Z
@ stub -arch=win32 ?overflow at stdiobuf@@UAEHH at Z
@ stub -arch=win64 ?overflow at stdiobuf@@UEAAHH at Z
@ stub -arch=win32 ?overflow at strstreambuf@@UAEHH at Z
@@ -629,8 +629,8 @@
@ stub -arch=win64 ?seekg at istream@@QEAAAEAV1 at J@Z
@ stub -arch=win32 ?seekg at istream@@QAEAAV1 at JW4seek_dir@ios@@@Z
@ stub -arch=win64 ?seekg at istream@@QEAAAEAV1 at JW4seek_dir@ios@@@Z
-@ stub -arch=win32 ?seekoff at filebuf@@UAEJJW4seek_dir at ios@@H at Z
-@ stub -arch=win64 ?seekoff at filebuf@@UEAAJJW4seek_dir at ios@@H at Z
+@ thiscall -arch=win32 ?seekoff at filebuf@@UAEJJW4seek_dir at ios@@H at Z(ptr long long long) msvcirt.?seekoff at filebuf@@UAEJJW4seek_dir at ios@@H at Z
+@ cdecl -arch=win64 ?seekoff at filebuf@@UEAAJJW4seek_dir at ios@@H at Z(ptr long long long) msvcirt.?seekoff at filebuf@@UEAAJJW4seek_dir at ios@@H at Z
@ stub -arch=win32 ?seekoff at stdiobuf@@UAEJJW4seek_dir at ios@@H at Z
@ stub -arch=win64 ?seekoff at stdiobuf@@UEAAJJW4seek_dir at ios@@H at Z
@ thiscall -arch=win32 ?seekoff at streambuf@@UAEJJW4seek_dir at ios@@H at Z(ptr long long long) msvcirt.?seekoff at streambuf@@UAEJJW4seek_dir at ios@@H at Z
@@ -647,8 +647,8 @@
@ cdecl ?set_unexpected@@YAP6AXXZP6AXXZ at Z(ptr) msvcrt.?set_unexpected@@YAP6AXXZP6AXXZ at Z
@ thiscall -arch=win32 ?setb at streambuf@@IAEXPAD0H at Z(ptr ptr ptr long) msvcirt.?setb at streambuf@@IAEXPAD0H at Z
@ cdecl -arch=win64 ?setb at streambuf@@IEAAXPEAD0H at Z(ptr ptr ptr long) msvcirt.?setb at streambuf@@IEAAXPEAD0H at Z
-@ stub -arch=win32 ?setbuf at filebuf@@UAEPAVstreambuf@@PADH at Z
-@ stub -arch=win64 ?setbuf at filebuf@@UEAAPEAVstreambuf@@PEADH at Z
+@ thiscall -arch=win32 ?setbuf at filebuf@@UAEPAVstreambuf@@PADH at Z(ptr ptr long) msvcirt.?setbuf at filebuf@@UAEPAVstreambuf@@PADH at Z
+@ cdecl -arch=win64 ?setbuf at filebuf@@UEAAPEAVstreambuf@@PEADH at Z(ptr ptr long) msvcirt.?setbuf at filebuf@@UEAAPEAVstreambuf@@PEADH at Z
@ stub -arch=win32 ?setbuf at fstream@@QAEPAVstreambuf@@PADH at Z
@ stub -arch=win64 ?setbuf at fstream@@QEAAPEAVstreambuf@@PEADH at Z
@ stub -arch=win32 ?setbuf at ifstream@@QAEPAVstreambuf@@PADH at Z
@@ -669,8 +669,8 @@
@ cdecl -arch=win64 ?setlock at ios@@QEAAXXZ(ptr) msvcirt.?setlock at ios@@QEAAXXZ
@ thiscall -arch=win32 ?setlock at streambuf@@QAEXXZ(ptr) msvcirt.?setlock at streambuf@@QAEXXZ
@ cdecl -arch=win64 ?setlock at streambuf@@QEAAXXZ(ptr) msvcirt.?setlock at streambuf@@QEAAXXZ
-@ stub -arch=win32 ?setmode at filebuf@@QAEHH at Z
-@ stub -arch=win64 ?setmode at filebuf@@QEAAHH at Z
+@ thiscall -arch=win32 ?setmode at filebuf@@QAEHH at Z(ptr long) msvcirt.?setmode at filebuf@@QAEHH at Z
+@ cdecl -arch=win64 ?setmode at filebuf@@QEAAHH at Z(ptr long) msvcirt.?setmode at filebuf@@QEAAHH at Z
@ stub -arch=win32 ?setmode at fstream@@QAEHH at Z
@ stub -arch=win64 ?setmode at fstream@@QEAAHH at Z
@ stub -arch=win32 ?setmode at ifstream@@QAEHH at Z
@@ -709,8 +709,8 @@
@ 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
-@ stub -arch=win32 ?sync at filebuf@@UAEHXZ
-@ stub -arch=win64 ?sync at filebuf@@UEAAHXZ
+@ thiscall -arch=win32 ?sync at filebuf@@UAEHXZ(ptr) msvcirt.?sync at filebuf@@UAEHXZ
+@ cdecl -arch=win64 ?sync at filebuf@@UEAAHXZ(ptr) msvcirt.?sync at filebuf@@UEAAHXZ
@ stub -arch=win32 ?sync at istream@@QAEHXZ
@ stub -arch=win64 ?sync at istream@@QEAAHXZ
@ stub -arch=win32 ?sync at stdiobuf@@UAEHXZ
@@ -734,8 +734,8 @@
@ cdecl -arch=win64 ?unbuffered at streambuf@@IEAAXH at Z(ptr long) msvcirt.?unbuffered at streambuf@@IEAAXH at Z
@ thiscall -arch=win32 ?unbuffered at streambuf@@IBEHXZ(ptr) msvcirt.?unbuffered at streambuf@@IBEHXZ
@ cdecl -arch=win64 ?unbuffered at streambuf@@IEBAHXZ(ptr) msvcirt.?unbuffered at streambuf@@IEBAHXZ
-@ stub -arch=win32 ?underflow at filebuf@@UAEHXZ
-@ stub -arch=win64 ?underflow at filebuf@@UEAAHXZ
+@ thiscall -arch=win32 ?underflow at filebuf@@UAEHXZ(ptr) msvcirt.?underflow at filebuf@@UAEHXZ
+@ cdecl -arch=win64 ?underflow at filebuf@@UEAAHXZ(ptr) msvcirt.?underflow at filebuf@@UEAAHXZ
@ stub -arch=win32 ?underflow at stdiobuf@@UAEHXZ
@ stub -arch=win64 ?underflow at stdiobuf@@UEAAHXZ
@ stub -arch=win32 ?underflow at strstreambuf@@UAEHXZ
diff --git a/dlls/msvcrt40/msvcrt40.spec b/dlls/msvcrt40/msvcrt40.spec
index f944408..0f5811a 100644
--- a/dlls/msvcrt40/msvcrt40.spec
+++ b/dlls/msvcrt40/msvcrt40.spec
@@ -20,14 +20,14 @@
@ cdecl -arch=win64 ??0exception@@QEAA at AEBV0@@Z(ptr ptr) msvcrt.??0exception@@QEAA at AEBV0@@Z
@ thiscall -arch=i386 ??0exception@@QAE at XZ(ptr) msvcrt.??0exception@@QAE at XZ
@ cdecl -arch=win64 ??0exception@@QEAA at XZ(ptr) msvcrt.??0exception@@QEAA at XZ
-@ stub -arch=win32 ??0filebuf@@QAE at ABV0@@Z
-@ stub -arch=win64 ??0filebuf@@QEAA at AEBV0@@Z
-@ stub -arch=win32 ??0filebuf@@QAE at H@Z
-@ stub -arch=win64 ??0filebuf@@QEAA at H@Z
-@ stub -arch=win32 ??0filebuf@@QAE at HPADH@Z
-@ stub -arch=win64 ??0filebuf@@QEAA at HPEADH@Z
-@ stub -arch=win32 ??0filebuf@@QAE at XZ
-@ stub -arch=win64 ??0filebuf@@QEAA at XZ
+@ thiscall -arch=win32 ??0filebuf@@QAE at ABV0@@Z(ptr ptr) msvcirt.??0filebuf@@QAE at ABV0@@Z
+@ cdecl -arch=win64 ??0filebuf@@QEAA at AEBV0@@Z(ptr ptr) msvcirt.??0filebuf@@QEAA at AEBV0@@Z
+@ thiscall -arch=win32 ??0filebuf@@QAE at H@Z(ptr long) msvcirt.??0filebuf@@QAE at H@Z
+@ cdecl -arch=win64 ??0filebuf@@QEAA at H@Z(ptr long) msvcirt.??0filebuf@@QEAA at H@Z
+@ thiscall -arch=win32 ??0filebuf@@QAE at HPADH@Z(ptr long ptr long) msvcirt.??0filebuf@@QAE at HPADH@Z
+@ cdecl -arch=win64 ??0filebuf@@QEAA at HPEADH@Z(ptr long ptr long) msvcirt.??0filebuf@@QEAA at HPEADH@Z
+@ thiscall -arch=win32 ??0filebuf@@QAE at XZ(ptr) msvcirt.??0filebuf@@QAE at XZ
+@ cdecl -arch=win64 ??0filebuf@@QEAA at XZ(ptr) msvcirt.??0filebuf@@QEAA at XZ
@ stub -arch=win32 ??0fstream@@QAE at ABV0@@Z
@ stub -arch=win64 ??0fstream@@QEAA at AEBV0@@Z
@ stub -arch=win32 ??0fstream@@QAE at H@Z
@@ -150,8 +150,8 @@
@ cdecl -arch=win64 ??1bad_typeid@@UEAA at XZ(ptr) msvcrt.??1bad_typeid@@UEAA at XZ
@ thiscall -arch=i386 ??1exception@@UAE at XZ(ptr) msvcrt.??1exception@@UAE at XZ
@ cdecl -arch=win64 ??1exception@@UEAA at XZ(ptr) msvcrt.??1exception@@UEAA at XZ
-@ stub -arch=win32 ??1filebuf@@UAE at XZ
-@ stub -arch=win64 ??1filebuf@@UEAA at XZ
+@ thiscall -arch=win32 ??1filebuf@@UAE at XZ(ptr) msvcirt.??1filebuf@@UAE at XZ
+@ cdecl -arch=win64 ??1filebuf@@UEAA at XZ(ptr) msvcirt.??1filebuf@@UEAA at XZ
@ stub -arch=win32 ??1fstream@@UAE at XZ
@ stub -arch=win64 ??1fstream@@UEAA at XZ
@ stub -arch=win32 ??1ifstream@@UAE at XZ
@@ -202,8 +202,8 @@
@ cdecl -arch=win64 ??4bad_typeid@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcrt.??4bad_typeid@@QEAAAEAV0 at AEBV0@@Z
@ thiscall -arch=i386 ??4exception@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcrt.??4exception@@QAEAAV0 at ABV0@@Z
@ cdecl -arch=win64 ??4exception@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcrt.??4exception@@QEAAAEAV0 at AEBV0@@Z
-@ stub -arch=win32 ??4filebuf@@QAEAAV0 at ABV0@@Z
-@ stub -arch=win64 ??4filebuf@@QEAAAEAV0 at AEBV0@@Z
+@ thiscall -arch=win32 ??4filebuf@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4filebuf@@QAEAAV0 at ABV0@@Z
+@ cdecl -arch=win64 ??4filebuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4filebuf@@QEAAAEAV0 at AEBV0@@Z
@ stub -arch=win32 ??4fstream@@QAEAAV0 at AAV0@@Z
@ stub -arch=win64 ??4fstream@@QEAAAEAV0 at AEAV0@@Z
@ stub -arch=win32 ??4ifstream@@QAEAAV0 at ABV0@@Z
@@ -338,7 +338,7 @@
@ extern ??_7bad_cast@@6B@ msvcrt.??_7bad_cast@@6B@
@ extern ??_7bad_typeid@@6B@ msvcrt.??_7bad_typeid@@6B@
@ extern ??_7exception@@6B@ msvcrt.??_7exception@@6B@
-# @ extern ??_7filebuf@@6B@
+@ extern ??_7filebuf@@6B@ msvcirt.??_7filebuf@@6B@
# @ extern ??_7fstream@@6B@
# @ extern ??_7ifstream@@6B@
@ extern ??_7ios@@6B@ msvcirt.??_7ios@@6B@
@@ -401,7 +401,7 @@
@ thiscall -arch=win32 ??_Ebad_cast@@UAEPAXI at Z(ptr long) msvcrt.??_Ebad_cast@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Ebad_typeid@@UAEPAXI at Z(ptr long) msvcrt.??_Ebad_typeid@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Eexception@@UAEPAXI at Z(ptr long) msvcrt.??_Eexception@@UAEPAXI at Z
-@ stub -arch=win32 ??_Efilebuf@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Efilebuf@@UAEPAXI at Z(ptr long) msvcirt.??_Efilebuf@@UAEPAXI at Z
@ stub -arch=win32 ??_Efstream@@UAEPAXI at Z
@ stub -arch=win32 ??_Eifstream@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Eios@@UAEPAXI at Z(ptr long) msvcirt.??_Eios@@UAEPAXI at Z
@@ -424,7 +424,7 @@
@ thiscall -arch=win32 ??_Gbad_cast@@UAEPAXI at Z(ptr long) msvcrt.??_Gbad_cast@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Gbad_typeid@@UAEPAXI at Z(ptr long) msvcrt.??_Gbad_typeid@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Gexception@@UAEPAXI at Z(ptr long) msvcrt.??_Gexception@@UAEPAXI at Z
-@ stub -arch=win32 ??_Gfilebuf@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Gfilebuf@@UAEPAXI at Z(ptr long) msvcirt.??_Gfilebuf@@UAEPAXI at Z
@ stub -arch=win32 ??_Gfstream@@UAEPAXI at Z
@ stub -arch=win32 ??_Gifstream@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Gios@@UAEPAXI at Z(ptr long) msvcirt.??_Gios@@UAEPAXI at Z
@@ -453,8 +453,8 @@
@ extern ?adjustfield at ios@@2JB msvcirt.?adjustfield at ios@@2JB
@ thiscall -arch=win32 ?allocate at streambuf@@IAEHXZ(ptr) msvcirt.?allocate at streambuf@@IAEHXZ
@ cdecl -arch=win64 ?allocate at streambuf@@IEAAHXZ(ptr) msvcirt.?allocate at streambuf@@IEAAHXZ
-@ stub -arch=win32 ?attach at filebuf@@QAEPAV1 at H@Z
-@ stub -arch=win64 ?attach at filebuf@@QEAAPEAV1 at H@Z
+@ thiscall -arch=win32 ?attach at filebuf@@QAEPAV1 at H@Z(ptr long) msvcirt.?attach at filebuf@@QAEPAV1 at H@Z
+@ cdecl -arch=win64 ?attach at filebuf@@QEAAPEAV1 at H@Z(ptr long) msvcirt.?attach at filebuf@@QEAAPEAV1 at H@Z
@ stub -arch=win32 ?attach at fstream@@QAEXH at Z
@ stub -arch=win64 ?attach at fstream@@QEAAXH at Z
@ stub -arch=win32 ?attach at ifstream@@QAEXH at Z
@@ -477,8 +477,8 @@
@ thiscall -arch=win32 ?clear at ios@@QAEXH at Z(ptr long) msvcirt.?clear at ios@@QAEXH at Z
@ cdecl -arch=win64 ?clear at ios@@QEAAXH at Z(ptr long) msvcirt.?clear at ios@@QEAAXH at Z
@ stub ?clog@@3Vostream_withassign@@A
-@ stub -arch=win32 ?close at filebuf@@QAEPAV1 at XZ
-@ stub -arch=win64 ?close at filebuf@@QEAAPEAV1 at XZ
+@ thiscall -arch=win32 ?close at filebuf@@QAEPAV1 at XZ(ptr) msvcirt.?close at filebuf@@QAEPAV1 at XZ
+@ cdecl -arch=win64 ?close at filebuf@@QEAAPEAV1 at XZ(ptr) msvcirt.?close at filebuf@@QEAAPEAV1 at XZ
@ stub -arch=win32 ?close at fstream@@QAEXXZ
@ stub -arch=win64 ?close at fstream@@QEAAXXZ
@ stub -arch=win32 ?close at ifstream@@QAEXXZ
@@ -521,8 +521,8 @@
@ extern ?fLockcInit at ios@@0HA msvcirt.?fLockcInit at ios@@0HA
@ thiscall -arch=win32 ?fail at ios@@QBEHXZ(ptr) msvcirt.?fail at ios@@QBEHXZ
@ cdecl -arch=win64 ?fail at ios@@QEBAHXZ(ptr) msvcirt.?fail at ios@@QEBAHXZ
-@ stub -arch=win32 ?fd at filebuf@@QBEHXZ
-@ stub -arch=win64 ?fd at filebuf@@QEBAHXZ
+@ thiscall -arch=win32 ?fd at filebuf@@QBEHXZ(ptr) msvcirt.?fd at filebuf@@QBEHXZ
+@ cdecl -arch=win64 ?fd at filebuf@@QEBAHXZ(ptr) msvcirt.?fd at filebuf@@QEBAHXZ
@ stub -arch=win32 ?fd at fstream@@QBEHXZ
@ stub -arch=win64 ?fd at fstream@@QEBAHXZ
@ stub -arch=win32 ?fd at ifstream@@QBEHXZ
@@ -590,8 +590,8 @@
@ cdecl -arch=win64 ?init at ios@@IEAAXPEAVstreambuf@@@Z(ptr ptr) msvcirt.?init at ios@@IEAAXPEAVstreambuf@@@Z
@ stub -arch=win32 ?ipfx at istream@@QAEHH at Z
@ stub -arch=win64 ?ipfx at istream@@QEAAHH at Z
-@ stub -arch=win32 ?is_open at filebuf@@QBEHXZ
-@ stub -arch=win64 ?is_open at filebuf@@QEBAHXZ
+@ thiscall -arch=win32 ?is_open at filebuf@@QBEHXZ(ptr) msvcirt.?is_open at filebuf@@QBEHXZ
+@ cdecl -arch=win64 ?is_open at filebuf@@QEBAHXZ(ptr) msvcirt.?is_open at filebuf@@QEBAHXZ
@ stub -arch=win32 ?is_open at fstream@@QBEHXZ
@ stub -arch=win64 ?is_open at fstream@@QEBAHXZ
@ stub -arch=win32 ?is_open at ifstream@@QBEHXZ
@@ -617,8 +617,8 @@
@ cdecl -arch=win64 ?name at type_info@@QEBAPEBDXZ(ptr) msvcrt.?name at type_info@@QEBAPEBDXZ
@ cdecl -arch=win32 ?oct@@YAAAVios@@AAV1@@Z(ptr) msvcirt.?oct@@YAAAVios@@AAV1@@Z
@ cdecl -arch=win64 ?oct@@YAAEAVios@@AEAV1@@Z(ptr) msvcirt.?oct@@YAAEAVios@@AEAV1@@Z
-@ stub -arch=win32 ?open at filebuf@@QAEPAV1 at PBDHH@Z
-@ stub -arch=win64 ?open at filebuf@@QEAAPEAV1 at PEBDHH@Z
+@ thiscall -arch=win32 ?open at filebuf@@QAEPAV1 at PBDHH@Z(ptr str long long) msvcirt.?open at filebuf@@QAEPAV1 at PBDHH@Z
+@ cdecl -arch=win64 ?open at filebuf@@QEAAPEAV1 at PEBDHH@Z(ptr str long long) msvcirt.?open at filebuf@@QEAAPEAV1 at PEBDHH@Z
@ stub -arch=win32 ?open at fstream@@QAEXPBDHH at Z
@ stub -arch=win64 ?open at fstream@@QEAAXPEBDHH at Z
@ stub -arch=win32 ?open at ifstream@@QAEXPBDHH at Z
@@ -632,8 +632,8 @@
@ stub -arch=win64 ?osfx at ostream@@QEAAXXZ
@ thiscall -arch=win32 ?out_waiting at streambuf@@QBEHXZ(ptr) msvcirt.?out_waiting at streambuf@@QBEHXZ
@ cdecl -arch=win64 ?out_waiting at streambuf@@QEBAHXZ(ptr) msvcirt.?out_waiting at streambuf@@QEBAHXZ
-@ stub -arch=win32 ?overflow at filebuf@@UAEHH at Z
-@ stub -arch=win64 ?overflow at filebuf@@UEAAHH at Z
+@ thiscall -arch=win32 ?overflow at filebuf@@UAEHH at Z(ptr long) msvcirt.?overflow at filebuf@@UAEHH at Z
+@ cdecl -arch=win64 ?overflow at filebuf@@UEAAHH at Z(ptr long) msvcirt.?overflow at filebuf@@UEAAHH at Z
@ stub -arch=win32 ?overflow at stdiobuf@@UAEHH at Z
@ stub -arch=win64 ?overflow at stdiobuf@@UEAAHH at Z
@ stub -arch=win32 ?overflow at strstreambuf@@UAEHH at Z
@@ -700,8 +700,8 @@
@ stub -arch=win64 ?seekg at istream@@QEAAAEAV1 at J@Z
@ stub -arch=win32 ?seekg at istream@@QAEAAV1 at JW4seek_dir@ios@@@Z
@ stub -arch=win64 ?seekg at istream@@QEAAAEAV1 at JW4seek_dir@ios@@@Z
-@ stub -arch=win32 ?seekoff at filebuf@@UAEJJW4seek_dir at ios@@H at Z
-@ stub -arch=win64 ?seekoff at filebuf@@UEAAJJW4seek_dir at ios@@H at Z
+@ thiscall -arch=win32 ?seekoff at filebuf@@UAEJJW4seek_dir at ios@@H at Z(ptr long long long) msvcirt.?seekoff at filebuf@@UAEJJW4seek_dir at ios@@H at Z
+@ cdecl -arch=win64 ?seekoff at filebuf@@UEAAJJW4seek_dir at ios@@H at Z(ptr long long long) msvcirt.?seekoff at filebuf@@UEAAJJW4seek_dir at ios@@H at Z
@ stub -arch=win32 ?seekoff at stdiobuf@@UAEJJW4seek_dir at ios@@H at Z
@ stub -arch=win64 ?seekoff at stdiobuf@@UEAAJJW4seek_dir at ios@@H at Z
@ thiscall -arch=win32 ?seekoff at streambuf@@UAEJJW4seek_dir at ios@@H at Z(ptr long long long) msvcirt.?seekoff at streambuf@@UAEJJW4seek_dir at ios@@H at Z
@@ -719,8 +719,8 @@
@ cdecl ?set_unexpected@@YAP6AXXZP6AXXZ at Z(ptr) msvcrt.?set_unexpected@@YAP6AXXZP6AXXZ at Z
@ thiscall -arch=win32 ?setb at streambuf@@IAEXPAD0H at Z(ptr ptr ptr long) msvcirt.?setb at streambuf@@IAEXPAD0H at Z
@ cdecl -arch=win64 ?setb at streambuf@@IEAAXPEAD0H at Z(ptr ptr ptr long) msvcirt.?setb at streambuf@@IEAAXPEAD0H at Z
-@ stub -arch=win32 ?setbuf at filebuf@@UAEPAVstreambuf@@PADH at Z
-@ stub -arch=win64 ?setbuf at filebuf@@UEAAPEAVstreambuf@@PEADH at Z
+@ thiscall -arch=win32 ?setbuf at filebuf@@UAEPAVstreambuf@@PADH at Z(ptr ptr long) msvcirt.?setbuf at filebuf@@UAEPAVstreambuf@@PADH at Z
+@ cdecl -arch=win64 ?setbuf at filebuf@@UEAAPEAVstreambuf@@PEADH at Z(ptr ptr long) msvcirt.?setbuf at filebuf@@UEAAPEAVstreambuf@@PEADH at Z
@ stub -arch=win32 ?setbuf at fstream@@QAEPAVstreambuf@@PADH at Z
@ stub -arch=win64 ?setbuf at fstream@@QEAAPEAVstreambuf@@PEADH at Z
@ stub -arch=win32 ?setbuf at ifstream@@QAEPAVstreambuf@@PADH at Z
@@ -741,8 +741,8 @@
@ cdecl -arch=win64 ?setlock at ios@@QEAAXXZ(ptr) msvcirt.?setlock at ios@@QEAAXXZ
@ thiscall -arch=win32 ?setlock at streambuf@@QAEXXZ(ptr) msvcirt.?setlock at streambuf@@QAEXXZ
@ cdecl -arch=win64 ?setlock at streambuf@@QEAAXXZ(ptr) msvcirt.?setlock at streambuf@@QEAAXXZ
-@ stub -arch=win32 ?setmode at filebuf@@QAEHH at Z
-@ stub -arch=win64 ?setmode at filebuf@@QEAAHH at Z
+@ thiscall -arch=win32 ?setmode at filebuf@@QAEHH at Z(ptr long) msvcirt.?setmode at filebuf@@QAEHH at Z
+@ cdecl -arch=win64 ?setmode at filebuf@@QEAAHH at Z(ptr long) msvcirt.?setmode at filebuf@@QEAAHH at Z
@ stub -arch=win32 ?setmode at fstream@@QAEHH at Z
@ stub -arch=win64 ?setmode at fstream@@QEAAHH at Z
@ stub -arch=win32 ?setmode at ifstream@@QAEHH at Z
@@ -781,8 +781,8 @@
@ 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
-@ stub -arch=win32 ?sync at filebuf@@UAEHXZ
-@ stub -arch=win64 ?sync at filebuf@@UEAAHXZ
+@ thiscall -arch=win32 ?sync at filebuf@@UAEHXZ(ptr) msvcirt.?sync at filebuf@@UAEHXZ
+@ cdecl -arch=win64 ?sync at filebuf@@UEAAHXZ(ptr) msvcirt.?sync at filebuf@@UEAAHXZ
@ stub -arch=win32 ?sync at istream@@QAEHXZ
@ stub -arch=win64 ?sync at istream@@QEAAHXZ
@ stub -arch=win32 ?sync at stdiobuf@@UAEHXZ
@@ -806,8 +806,8 @@
@ cdecl -arch=win64 ?unbuffered at streambuf@@IEAAXH at Z(ptr long) msvcirt.?unbuffered at streambuf@@IEAAXH at Z
@ thiscall -arch=win32 ?unbuffered at streambuf@@IBEHXZ(ptr) msvcirt.?unbuffered at streambuf@@IBEHXZ
@ cdecl -arch=win64 ?unbuffered at streambuf@@IEBAHXZ(ptr) msvcirt.?unbuffered at streambuf@@IEBAHXZ
-@ stub -arch=win32 ?underflow at filebuf@@UAEHXZ
-@ stub -arch=win64 ?underflow at filebuf@@UEAAHXZ
+@ thiscall -arch=win32 ?underflow at filebuf@@UAEHXZ(ptr) msvcirt.?underflow at filebuf@@UAEHXZ
+@ cdecl -arch=win64 ?underflow at filebuf@@UEAAHXZ(ptr) msvcirt.?underflow at filebuf@@UEAAHXZ
@ stub -arch=win32 ?underflow at stdiobuf@@UAEHXZ
@ stub -arch=win64 ?underflow at stdiobuf@@UEAAHXZ
@ stub -arch=win32 ?underflow at strstreambuf@@UAEHXZ
--
2.1.4
More information about the wine-patches
mailing list