oleaut32: Use type names and sizeof() instead of hardcoded values for save/load methods.
[wine/multimedia.git] / dlls / msvcp90 / ios.c
blobffef7e74385d0a61c5fc5ead533a4c1167ab38e5
1 /*
2 * Copyright 2011 Piotr Caban for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #include "config.h"
21 #include <stdarg.h>
23 #include "msvcp90.h"
24 #include "windef.h"
25 #include "winbase.h"
26 #include "wine/debug.h"
27 WINE_DEFAULT_DEBUG_CHANNEL(msvcp90);
29 typedef enum {
30 IOSTATE_goodbit = 0x00,
31 IOSTATE_eofbit = 0x01,
32 IOSTATE_failbit = 0x02,
33 IOSTATE_badbit = 0x04,
34 IOSTATE__Hardfail = 0x10
35 } IOSB_iostate;
37 typedef enum {
38 FMTFLAG_skipws = 0x0001,
39 FMTFLAG_unitbuf = 0x0002,
40 FMTFLAG_uppercase = 0x0004,
41 FMTFLAG_showbase = 0x0008,
42 FMTFLAG_showpoint = 0x0010,
43 FMTFLAG_showpos = 0x0020,
44 FMTFLAG_left = 0x0040,
45 FMTFLAG_right = 0x0080,
46 FMTFLAG_internal = 0x0100,
47 FMTFLAG_dec = 0x0200,
48 FMTFLAG_oct = 0x0400,
49 FMTFLAG_hex = 0x0800,
50 FMTFLAG_scientific = 0x1000,
51 FMTFLAG_fixed = 0x2000,
52 FMTFLAG_hexfloat = 0x3000,
53 FMTFLAG_boolalpha = 0x4000,
54 FMTFLAG_stdio = 0x8000,
55 FMTFLAG_adjustfield = FMTFLAG_left|FMTFLAG_right|FMTFLAG_internal,
56 FMTFLAG_basefield = FMTFLAG_dec|FMTFLAG_oct|FMTFLAG_hex,
57 FMTFLAG_floadfield = FMTFLAG_scientific|FMTFLAG_fixed
58 } IOSB_fmtflags;
60 typedef struct _iosarray {
61 struct _iosarray *next;
62 int index;
63 int long_val;
64 void *ptr_val;
65 } IOS_BASE_iosarray;
67 typedef enum {
68 EVENT_erase_event,
69 EVENT_imbue_event,
70 EVENT_copyfmt_event
71 } IOS_BASE_event;
73 struct _ios_base;
74 typedef void (CDECL *IOS_BASE_event_callback)(IOS_BASE_event, struct _ios_base*, int);
75 typedef struct _fnarray {
76 struct _fnarray *next;
77 int index;
78 IOS_BASE_event_callback event_handler;
79 } IOS_BASE_fnarray;
81 /* ?_Index@ios_base@std@@0HA */
82 int ios_base_Index = 0;
83 /* ?_Sync@ios_base@std@@0_NA */
84 MSVCP_bool ios_base_Sync = FALSE;
86 typedef struct _ios_base {
87 const vtable_ptr *vtable;
88 MSVCP_size_t stdstr;
89 IOSB_iostate state;
90 IOSB_iostate except;
91 IOSB_fmtflags fmtfl;
92 MSVCP_size_t prec;
93 MSVCP_size_t wide;
94 IOS_BASE_iosarray *arr;
95 IOS_BASE_fnarray *calls;
96 locale *loc;
97 } ios_base;
99 typedef struct {
100 ios_base child;
101 /*basic_streambuf_char*/void *strbuf;
102 /*basic_ostream_char*/void *stream;
103 char fillch;
104 } basic_ios_char;
106 /* ??_7ios_base@std@@6B@ */
107 extern const vtable_ptr MSVCP_ios_base_vtable;
109 /* ??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@ */
110 extern const vtable_ptr MSVCP_basic_ios_char_vtable;
112 static const type_info ios_base_type_info = {
113 &MSVCP_ios_base_vtable,
114 NULL,
115 ".?AVios_base@std@@"
118 static const rtti_base_descriptor ios_base_rtti_base_descriptor = {
119 &ios_base_type_info,
121 { 0, -1, 0 },
125 static const type_info iosb_type_info = {
126 &MSVCP_ios_base_vtable,
127 NULL,
128 ".?AV?$_Iosb@H@std@@"
131 static const rtti_base_descriptor iosb_rtti_base_descriptor = {
132 &iosb_type_info,
134 { 4, -1, 0 },
138 static const rtti_base_array ios_base_rtti_base_array = {
140 &ios_base_rtti_base_descriptor,
141 &iosb_rtti_base_descriptor,
142 NULL
146 static const rtti_object_hierarchy ios_base_type_hierarchy = {
150 &ios_base_rtti_base_array
153 const rtti_object_locator ios_base_rtti = {
157 &ios_base_type_info,
158 &ios_base_type_hierarchy
161 static const type_info basic_ios_char_type_info = {
162 &MSVCP_basic_ios_char_vtable,
163 NULL,
164 ".?AV?$basic_ios@DU?$char_traits@D@std@@@std@@"
167 static const rtti_base_descriptor basic_ios_char_rtti_base_descriptor = {
168 &basic_ios_char_type_info,
170 { 0, -1, 0 },
174 static const rtti_base_array basic_ios_char_rtti_base_array = {
176 &basic_ios_char_rtti_base_descriptor,
177 &ios_base_rtti_base_descriptor,
178 &iosb_rtti_base_descriptor
182 static const rtti_object_hierarchy basic_ios_char_hierarchy = {
186 &basic_ios_char_rtti_base_array
189 const rtti_object_locator basic_ios_char_rtti = {
193 &basic_ios_char_type_info,
194 &basic_ios_char_hierarchy
197 #ifndef __GNUC__
198 void __asm_dummy_vtables(void) {
199 #endif
200 __ASM_VTABLE(ios_base, "");
201 __ASM_VTABLE(basic_ios_char, "");
202 #ifndef __GNUC__
204 #endif
206 /* ??0ios_base@std@@IAE@XZ */
207 /* ??0ios_base@std@@IEAA@XZ */
208 DEFINE_THISCALL_WRAPPER(ios_base_ctor, 4)
209 ios_base* __thiscall ios_base_ctor(ios_base *this)
211 FIXME("(%p) stub\n", this);
213 this->vtable = &MSVCP_ios_base_vtable;
214 return NULL;
217 /* ??0ios_base@std@@QAE@ABV01@@Z */
218 /* ??0ios_base@std@@QEAA@AEBV01@@Z */
219 DEFINE_THISCALL_WRAPPER(ios_base_copy_ctor, 8)
220 ios_base* __thiscall ios_base_copy_ctor(ios_base *this, const ios_base *copy)
222 FIXME("(%p %p) stub\n", this, copy);
223 return NULL;
226 /* ??1ios_base@std@@UAE@XZ */
227 /* ??1ios_base@std@@UEAA@XZ */
228 DEFINE_THISCALL_WRAPPER(ios_base_dtor, 4)
229 void __thiscall ios_base_dtor(ios_base *this)
231 FIXME("(%p) stub\n", this);
234 DEFINE_THISCALL_WRAPPER(MSVCP_ios_base_vector_dtor, 8)
235 ios_base* __thiscall MSVCP_ios_base_vector_dtor(ios_base *this, unsigned int flags)
237 TRACE("(%p %x) stub\n", this, flags);
238 if(flags & 2) {
239 /* we have an array, with the number of elements stored before the first object */
240 int i, *ptr = (int *)this-1;
242 for(i=*ptr-1; i>=0; i--)
243 ios_base_dtor(this+i);
244 MSVCRT_operator_delete(ptr);
245 } else {
246 ios_base_dtor(this);
247 if(flags & 1)
248 MSVCRT_operator_delete(this);
251 return this;
254 /* ??4ios_base@std@@QAEAAV01@ABV01@@Z */
255 /* ??4ios_base@std@@QEAAAEAV01@AEBV01@@Z */
256 DEFINE_THISCALL_WRAPPER(ios_base_assign, 8)
257 ios_base* __thiscall ios_base_assign(ios_base *this, const ios_base *right)
259 FIXME("(%p %p) stub\n", this, right);
260 return NULL;
263 /* ??7ios_base@std@@QBE_NXZ */
264 /* ??7ios_base@std@@QEBA_NXZ */
265 DEFINE_THISCALL_WRAPPER(ios_base_op_succ, 4)
266 MSVCP_bool __thiscall ios_base_op_succ(const ios_base *this)
268 FIXME("(%p) stub\n", this);
269 return FALSE;
272 /* ??Bios_base@std@@QBEPAXXZ */
273 /* ??Bios_base@std@@QEBAPEAXXZ */
274 DEFINE_THISCALL_WRAPPER(ios_base_op_fail, 4)
275 void* __thiscall ios_base_op_fail(const ios_base *this)
277 FIXME("(%p) stub\n", this);
278 return NULL;
281 /* ?_Addstd@ios_base@std@@SAXPAV12@@Z */
282 /* ?_Addstd@ios_base@std@@SAXPEAV12@@Z */
283 void CDECL ios_base_Addstd(ios_base *add)
285 FIXME("(%p) stub\n", add);
288 /* ?_Callfns@ios_base@std@@AAEXW4event@12@@Z */
289 /* ?_Callfns@ios_base@std@@AEAAXW4event@12@@Z */
290 DEFINE_THISCALL_WRAPPER(ios_base_Callfns, 8)
291 void __thiscall ios_base_Callfns(ios_base *this, IOS_BASE_event event)
293 FIXME("(%p %x) stub\n", this, event);
296 /* ?_Findarr@ios_base@std@@AAEAAU_Iosarray@12@H@Z */
297 /* ?_Findarr@ios_base@std@@AEAAAEAU_Iosarray@12@H@Z */
298 DEFINE_THISCALL_WRAPPER(ios_base_Findarr, 8)
299 IOS_BASE_iosarray* __thiscall ios_base_Findarr(ios_base *this, int index)
301 FIXME("(%p %d) stub\n", this, index);
302 return NULL;
305 /* ?_Index_func@ios_base@std@@CAAAHXZ */
306 /* ?_Index_func@ios_base@std@@CAAEAHXZ */
307 int* CDECL ios_base_Index_func(void)
309 TRACE("\n");
310 return &ios_base_Index;
313 /* ?_Init@ios_base@std@@IAEXXZ */
314 /* ?_Init@ios_base@std@@IEAAXXZ */
315 DEFINE_THISCALL_WRAPPER(ios_base_Init, 4)
316 void __thiscall ios_base_Init(ios_base *this)
318 FIXME("(%p) stub\n", this);
321 /* ?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z */
322 /* ?_Ios_base_dtor@ios_base@std@@CAXPEAV12@@Z */
323 void CDECL ios_base_Ios_base_dtor(ios_base *obj)
325 FIXME("(%p) stub\n", obj);
328 /* ?_Sync_func@ios_base@std@@CAAA_NXZ */
329 /* ?_Sync_func@ios_base@std@@CAAEA_NXZ */
330 MSVCP_bool* CDECL ios_base_Sync_func(void)
332 TRACE("\n");
333 return &ios_base_Sync;
336 /* ?_Tidy@ios_base@std@@AAAXXZ */
337 /* ?_Tidy@ios_base@std@@AEAAXXZ */
338 void CDECL ios_base_Tidy(ios_base *this)
340 FIXME("(%p) stub\n", this);
343 /* ?bad@ios_base@std@@QBE_NXZ */
344 /* ?bad@ios_base@std@@QEBA_NXZ */
345 DEFINE_THISCALL_WRAPPER(ios_base_bad, 4)
346 MSVCP_bool __thiscall ios_base_bad(const ios_base *this)
348 FIXME("(%p) stub\n", this);
349 return FALSE;
352 /* ?clear@ios_base@std@@QAEXH_N@Z */
353 /* ?clear@ios_base@std@@QEAAXH_N@Z */
354 DEFINE_THISCALL_WRAPPER(ios_base_clear_reraise, 12)
355 void __thiscall ios_base_clear_reraise(ios_base *this, IOSB_iostate state, MSVCP_bool reraise)
357 FIXME("(%p %x %x) stub\n", this, state, reraise);
360 /* ?clear@ios_base@std@@QAEXH@Z */
361 /* ?clear@ios_base@std@@QEAAXH@Z */
362 DEFINE_THISCALL_WRAPPER(ios_base_clear, 8)
363 void __thiscall ios_base_clear(ios_base *this, IOSB_iostate state)
365 ios_base_clear_reraise(this, state, FALSE);
368 /* ?clear@ios_base@std@@QAEXI@Z */
369 /* ?clear@ios_base@std@@QEAAXI@Z */
370 DEFINE_THISCALL_WRAPPER(ios_base_clear_unsigned, 8)
371 void __thiscall ios_base_clear_unsigned(ios_base *this, unsigned int state)
373 ios_base_clear_reraise(this, (IOSB_iostate)state, FALSE);
376 /* ?copyfmt@ios_base@std@@QAEAAV12@ABV12@@Z */
377 /* ?copyfmt@ios_base@std@@QEAAAEAV12@AEBV12@@Z */
378 DEFINE_THISCALL_WRAPPER(ios_base_copyfmt, 8)
379 ios_base* __thiscall ios_base_copyfmt(ios_base *this, const ios_base *obj)
381 FIXME("(%p %p) stub\n", this, obj);
382 return NULL;
385 /* ?eof@ios_base@std@@QBE_NXZ */
386 /* ?eof@ios_base@std@@QEBA_NXZ */
387 DEFINE_THISCALL_WRAPPER(ios_base_eof, 4)
388 MSVCP_bool __thiscall ios_base_eof(const ios_base *this)
390 FIXME("(%p) stub\n", this);
391 return FALSE;
394 /* ?exceptions@ios_base@std@@QAEXH@Z */
395 /* ?exceptions@ios_base@std@@QEAAXH@Z */
396 DEFINE_THISCALL_WRAPPER(ios_base_exception_set, 8)
397 void __thiscall ios_base_exception_set(ios_base *this, IOSB_iostate state)
399 FIXME("(%p %x) stub\n", this, state);
402 /* ?exceptions@ios_base@std@@QAEXI@Z */
403 /* ?exceptions@ios_base@std@@QEAAXI@Z */
404 DEFINE_THISCALL_WRAPPER(ios_base_exception_set_unsigned, 8)
405 void __thiscall ios_base_exception_set_unsigned(ios_base *this, unsigned int state)
407 FIXME("(%p %x) stub\n", this, state);
410 /* ?exceptions@ios_base@std@@QBEHXZ */
411 /* ?exceptions@ios_base@std@@QEBAHXZ */
412 DEFINE_THISCALL_WRAPPER(ios_base_exception_get, 4)
413 IOSB_iostate __thiscall ios_base_exception_get(ios_base *this)
415 FIXME("(%p) stub\n", this);
416 return 0;
419 /* ?fail@ios_base@std@@QBE_NXZ */
420 /* ?fail@ios_base@std@@QEBA_NXZ */
421 DEFINE_THISCALL_WRAPPER(ios_base_fail, 4)
422 MSVCP_bool __thiscall ios_base_fail(ios_base *this)
424 FIXME("(%p) stub\n", this);
425 return 0;
428 /* ?flags@ios_base@std@@QAEHH@Z */
429 /* ?flags@ios_base@std@@QEAAHH@Z */
430 DEFINE_THISCALL_WRAPPER(ios_base_flags_set, 8)
431 IOSB_fmtflags __thiscall ios_base_flags_set(ios_base *this, IOSB_fmtflags flags)
433 FIXME("(%p %x) stub\n", this, flags);
434 return 0;
437 /* ?flags@ios_base@std@@QBEHXZ */
438 /* ?flags@ios_base@std@@QEBAHXZ */
439 DEFINE_THISCALL_WRAPPER(ios_base_flags_get, 4)
440 IOSB_fmtflags __thiscall ios_base_flags_get(const ios_base *this)
442 FIXME("(%p) stub\n", this);
443 return 0;
446 /* ?getloc@ios_base@std@@QBE?AVlocale@2@XZ */
447 /* ?getloc@ios_base@std@@QEBA?AVlocale@2@XZ */
448 DEFINE_THISCALL_WRAPPER(ios_base_getloc, 4)
449 locale __thiscall ios_base_getloc(const ios_base *this)
451 locale ret = { NULL };
452 FIXME("(%p) stub\n", this);
453 return ret;
456 /* ?good@ios_base@std@@QBE_NXZ */
457 /* ?good@ios_base@std@@QEBA_NXZ */
458 DEFINE_THISCALL_WRAPPER(ios_base_good, 4)
459 MSVCP_bool __thiscall ios_base_good(const ios_base *this)
461 FIXME("(%p) stub\n", this);
462 return FALSE;
465 /* ?imbue@ios_base@std@@QAE?AVlocale@2@ABV32@@Z */
466 /* ?imbue@ios_base@std@@QEAA?AVlocale@2@AEBV32@@Z */
467 DEFINE_THISCALL_WRAPPER(ios_base_imbue, 8)
468 locale __thiscall ios_base_imbue(ios_base *this, const locale *loc)
470 locale ret = { NULL };
471 FIXME("(%p %p) stub\n", this, loc);
472 return ret;
475 /* ?iword@ios_base@std@@QAEAAJH@Z */
476 /* ?iword@ios_base@std@@QEAAAEAJH@Z */
477 DEFINE_THISCALL_WRAPPER(ios_base_iword, 8)
478 MSVCP_long* __thiscall ios_base_iword(ios_base *this, int index)
480 FIXME("(%p %d) stub\n", this, index);
481 return NULL;
484 /* ?precision@ios_base@std@@QAEHH@Z */
485 /* ?precision@ios_base@std@@QEAA_J_J@Z */
486 DEFINE_THISCALL_WRAPPER(ios_base_precision_set, 8)
487 MSVCP_size_t __thiscall ios_base_precision_set(ios_base *this, MSVCP_size_t precision)
489 FIXME("(%p %lu) stub\n", this, precision);
490 return 0;
493 /* ?precision@ios_base@std@@QBEHXZ */
494 /* ?precision@ios_base@std@@QEBA_JXZ */
495 DEFINE_THISCALL_WRAPPER(ios_base_precision_get, 4)
496 MSVCP_size_t __thiscall ios_base_precision_get(const ios_base *this)
498 FIXME("(%p) stub\n", this);
499 return 0;
502 /* ?pword@ios_base@std@@QAEAAPAXH@Z */
503 /* ?pword@ios_base@std@@QEAAAEAPEAXH@Z */
504 DEFINE_THISCALL_WRAPPER(ios_base_pword, 8)
505 void** __thiscall ios_base_pword(ios_base *this, int index)
507 FIXME("(%p %d) stub\n", this, index);
508 return NULL;
511 /* ?rdstate@ios_base@std@@QBEHXZ */
512 /* ?rdstate@ios_base@std@@QEBAHXZ */
513 DEFINE_THISCALL_WRAPPER(ios_base_rdstate, 4)
514 IOSB_iostate __thiscall ios_base_rdstate(const ios_base *this)
516 FIXME("(%p) stub\n", this);
517 return 0;
520 /* ?register_callback@ios_base@std@@QAEXP6AXW4event@12@AAV12@H@ZH@Z */
521 /* ?register_callback@ios_base@std@@QEAAXP6AXW4event@12@AEAV12@H@ZH@Z */
522 DEFINE_THISCALL_WRAPPER(ios_base_register_callback, 12)
523 void __thiscall ios_base_register_callback(ios_base *this, IOS_BASE_event_callback callback, int index)
525 FIXME("(%p %p %d) stub\n", this, callback, index);
528 /* ?setf@ios_base@std@@QAEHHH@Z */
529 /* ?setf@ios_base@std@@QEAAHHH@Z */
530 DEFINE_THISCALL_WRAPPER(ios_base_setf_mask, 12)
531 IOSB_fmtflags __thiscall ios_base_setf_mask(ios_base *this, IOSB_fmtflags flags, IOSB_fmtflags mask)
533 FIXME("(%p %x %x) stub\n", this, flags, mask);
534 return 0;
537 /* ?setf@ios_base@std@@QAEHH@Z */
538 /* ?setf@ios_base@std@@QEAAHH@Z */
539 DEFINE_THISCALL_WRAPPER(ios_base_setf, 8)
540 IOSB_fmtflags __thiscall ios_base_setf(ios_base *this, IOSB_fmtflags flags)
542 return ios_base_setf_mask(this, flags, ~0);
545 /* ?setstate@ios_base@std@@QAEXH_N@Z */
546 /* ?setstate@ios_base@std@@QEAAXH_N@Z */
547 DEFINE_THISCALL_WRAPPER(ios_base_setstate_reraise, 12)
548 void __thiscall ios_base_setstate_reraise(ios_base *this, IOSB_iostate state, MSVCP_bool reraise)
550 FIXME("(%p %x %x) stub\n", this, state, reraise);
553 /* ?setstate@ios_base@std@@QAEXH@Z */
554 /* ?setstate@ios_base@std@@QEAAXH@Z */
555 DEFINE_THISCALL_WRAPPER(ios_base_setstate, 8)
556 void __thiscall ios_base_setstate(ios_base *this, IOSB_iostate state)
558 ios_base_setstate_reraise(this, state, FALSE);
561 /* ?setstate@ios_base@std@@QAEXI@Z */
562 /* ?setstate@ios_base@std@@QEAAXI@Z */
563 DEFINE_THISCALL_WRAPPER(ios_base_setstate_unsigned, 8)
564 void __thiscall ios_base_setstate_unsigned(ios_base *this, unsigned int state)
566 ios_base_setstate_reraise(this, (IOSB_iostate)state, FALSE);
569 /* ?sync_with_stdio@ios_base@std@@SA_N_N@Z */
570 MSVCP_bool CDECL ios_base_sync_with_stdio(MSVCP_bool sync)
572 FIXME("(%x) stub\n", sync);
573 return FALSE;
576 /* ?unsetf@ios_base@std@@QAEXH@Z */
577 /* ?unsetf@ios_base@std@@QEAAXH@Z */
578 DEFINE_THISCALL_WRAPPER(ios_base_unsetf, 8)
579 void __thiscall ios_base_unsetf(ios_base *this, IOSB_fmtflags flags)
581 FIXME("(%p %x) stub\n", this, flags);
584 /* ?width@ios_base@std@@QAEHH@Z */
585 /* ?width@ios_base@std@@QEAA_J_J@Z */
586 DEFINE_THISCALL_WRAPPER(ios_base_width_set, 8)
587 MSVCP_size_t __thiscall ios_base_width_set(ios_base *this, MSVCP_size_t width)
589 FIXME("(%p %lu) stub\n", this, width);
590 return 0;
593 /* ?width@ios_base@std@@QBEHXZ */
594 /* ?width@ios_base@std@@QEBA_JXZ */
595 DEFINE_THISCALL_WRAPPER(ios_base_width_get, 4)
596 MSVCP_size_t __thiscall ios_base_width_get(ios_base *this)
598 FIXME("(%p) stub\n", this);
599 return 0;
602 /* ?xalloc@ios_base@std@@SAHXZ */
603 int CDECL ios_base_xalloc(void)
605 FIXME("stub\n");
606 return 0;
609 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ */
610 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ */
611 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor, 4)
612 basic_ios_char* __thiscall basic_ios_char_ctor(basic_ios_char *this)
614 FIXME("(%p) stub\n", this);
615 return NULL;
618 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
619 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
620 DEFINE_THISCALL_WRAPPER(basic_ios_char_copy_ctor, 8)
621 basic_ios_char* __thiscall basic_ios_char_copy_ctor(basic_ios_char *this, const basic_ios_char *copy)
623 FIXME("(%p %p) stub\n", this, copy);
624 return NULL;
627 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ */
628 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ */
629 DEFINE_THISCALL_WRAPPER(basic_ios_char_dtor, 4)
630 void __thiscall basic_ios_char_dtor(basic_ios_char *this)
632 FIXME("(%p) stub\n", this);
635 DEFINE_THISCALL_WRAPPER(MSVCP_basic_ios_char_vector_dtor, 8)
636 basic_ios_char* __thiscall MSVCP_basic_ios_char_vector_dtor(basic_ios_char *this, unsigned int flags)
638 TRACE("(%p %x) stub\n", this, flags);
639 if(flags & 2) {
640 /* we have an array, with the number of elements stored before the first object */
641 int i, *ptr = (int *)this-1;
643 for(i=*ptr-1; i>=0; i--)
644 basic_ios_char_dtor(this+i);
645 MSVCRT_operator_delete(ptr);
646 } else {
647 basic_ios_char_dtor(this);
648 if(flags & 1)
649 MSVCRT_operator_delete(this);
652 return this;
655 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
656 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
657 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear_reraise, 12)
658 void __thiscall basic_ios_char_clear_reraise(basic_ios_char *this, IOSB_iostate state, MSVCP_bool reraise)
660 FIXME("(%p %x %x) stub\n", this, state, reraise);
663 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
664 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
665 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear, 8)
666 void __thiscall basic_ios_char_clear(basic_ios_char *this, unsigned int state)
668 basic_ios_char_clear_reraise(this, (IOSB_iostate)state, FALSE);
671 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEAAV12@ABV12@@Z */
672 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEBV12@@Z */
673 DEFINE_THISCALL_WRAPPER(basic_ios_char_copyfmt, 8)
674 basic_ios_char* __thiscall basic_ios_char_copyfmt(basic_ios_char *this, basic_ios_char *copy)
676 FIXME("(%p %p) stub\n", this, copy);
677 return NULL;
680 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEDD@Z */
681 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z */
682 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_set, 8)
683 char __thiscall basic_ios_char_fill_set(basic_ios_char *this, char fill)
685 FIXME("(%p %c) stub\n", this, fill);
686 return 0;
689 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ */
690 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ */
691 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_get, 4)
692 char __thiscall basic_ios_char_fill_get(basic_ios_char *this)
694 FIXME("(%p) stub\n", this);
695 return 0;
698 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
699 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
700 DEFINE_THISCALL_WRAPPER(basic_ios_char_imbue, 4)
701 locale __thiscall basic_ios_char_imbue(basic_ios_char *this)
703 locale ret = { NULL };
704 FIXME("(%p) stub\n", this);
705 return ret;
708 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
709 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
710 DEFINE_THISCALL_WRAPPER(basic_ios_char_init, 12)
711 void __thiscall basic_ios_char_init(basic_ios_char *this, /*basic_streambuf_char*/void *streambuf, MSVCP_bool isstd)
713 FIXME("(%p %p %x) stub\n", this, streambuf, isstd);
716 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDDD@Z */
717 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADDD@Z */
718 DEFINE_THISCALL_WRAPPER(basic_ios_char_narrow, 12)
719 char __thiscall basic_ios_char_narrow(basic_ios_char *this, char ch, char def)
721 FIXME("(%p %c %c) stub\n", this, ch, def);
722 return def;
725 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PAV32@@Z */
726 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAV32@@Z */
727 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_set, 8)
728 /*basic_streambuf_char*/void* __thiscall basic_ios_char_rdbuf_set(basic_ios_char *this, /*basic_streambuf_char*/void *streambuf)
730 FIXME("(%p %p) stub\n", this, streambuf);
731 return NULL;
734 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
735 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
736 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_get, 4)
737 /*basic_streambuf_char*/void* __thiscall basic_ios_char_rdbuf_get(const basic_ios_char *this)
739 FIXME("(%p) stub\n", this);
740 return NULL;
743 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
744 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
745 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate_reraise, 12)
746 void __thiscall basic_ios_char_setstate_reraise(basic_ios_char *this, IOSB_iostate state, MSVCP_bool reraise)
748 FIXME("(%p %x %x) stub\n", this, state, reraise);
751 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
752 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
753 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate, 8)
754 void __thiscall basic_ios_char_setstate(basic_ios_char *this, unsigned int state)
756 basic_ios_char_setstate_reraise(this, (IOSB_iostate)state, FALSE);
759 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@PAV32@@Z */
760 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@PEAV32@@Z */
761 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_set, 8)
762 /*basic_ostream_char*/void* __thiscall basic_ios_char_tie_set(basic_ios_char *this, /*basic_ostream_char*/void *ostream)
764 FIXME("(%p %p) stub\n", this, ostream);
765 return NULL;
768 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
769 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
770 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_get, 4)
771 /*basic_ostream_char*/void* __thiscall basic_ios_char_tie_get(const basic_ios_char *this)
773 FIXME("(%p)\n", this);
774 return NULL;
777 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z */
778 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z */
779 DEFINE_THISCALL_WRAPPER(basic_ios_char_widen, 8)
780 char __thiscall basic_ios_char_widen(basic_ios_char *this, char ch)
782 FIXME("(%p %c)\n", this, ch);
783 return 0;