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
29 #include "wine/debug.h"
30 WINE_DEFAULT_DEBUG_CHANNEL(msvcp90
);
32 /* ?_Index@ios_base@std@@0HA */
33 int ios_base_Index
= 0;
34 /* ?_Sync@ios_base@std@@0_NA */
35 MSVCP_bool ios_base_Sync
= FALSE
;
39 __int64
DECLSPEC_ALIGN(8) pos
;
43 static inline const char* debugstr_fpos_int(fpos_int
*fpos
)
45 return wine_dbg_sprintf("fpos(%ld %s %d)", fpos
->off
, wine_dbgstr_longlong(fpos
->pos
), fpos
->state
);
49 void (__cdecl
*pfunc
)(ios_base
*, streamsize
);
57 } basic_filebuf__Initfl
;
60 basic_streambuf_char base
;
70 STRINGBUF_allocated
= 1,
71 STRINGBUF_no_write
= 2,
72 STRINGBUF_no_read
= 4,
75 } basic_stringbuf_state
;
78 basic_streambuf_char base
;
81 char allocator
; /* empty struct */
82 } basic_stringbuf_char
;
85 basic_streambuf_wchar base
;
88 char allocator
; /* empty struct */
89 } basic_stringbuf_wchar
;
93 basic_streambuf_char
*strbuf
;
94 struct _basic_ostream_char
*stream
;
100 basic_streambuf_wchar
*strbuf
;
101 struct _basic_ostream_wchar
*stream
;
105 typedef struct _basic_ostream_char
{
107 /* virtual inheritance
108 * basic_ios_char basic_ios;
110 } basic_ostream_char
;
112 typedef struct _basic_ostream_wchar
{
114 /* virtual inheritance
115 * basic_ios_wchar basic_ios;
117 } basic_ostream_wchar
;
122 /* virtual inheritance
123 * basic_ios_char basic_ios;
125 } basic_istream_char
;
130 /* virtual inheritance
131 * basic_ios_wchar basic_ios;
133 } basic_istream_wchar
;
136 basic_istream_char base1
;
137 basic_ostream_char base2
;
138 /* virtual inheritance
139 * basic_ios_char basic_ios;
141 } basic_iostream_char
;
144 basic_istream_wchar base1
;
145 basic_ostream_wchar base2
;
146 /* virtual inheritance
147 * basic_ios_wchar basic_ios;
149 } basic_iostream_wchar
;
152 basic_ostream_char base
;
153 basic_filebuf_char filebuf
;
154 /* virtual inheritance
155 * basic_ios_char basic_ios;
157 } basic_ofstream_char
;
160 basic_istream_char base
;
161 basic_filebuf_char filebuf
;
162 /* virtual inheritance
163 * basic_ios_char basic_ios;
165 } basic_ifstream_char
;
168 basic_iostream_char base
;
169 basic_filebuf_char filebuf
;
170 /* virtual inheritance
171 * basic_ios_char basic_ios;
173 } basic_fstream_char
;
176 basic_ostream_char base
;
177 basic_stringbuf_char strbuf
;
178 /* virtual inheritance
179 * basic_ios_char basic_ios;
181 } basic_ostringstream_char
;
184 basic_ostream_wchar base
;
185 basic_stringbuf_wchar strbuf
;
186 /* virtual inheritance
187 * basic_ios_wchar basic_ios;
189 } basic_ostringstream_wchar
;
192 basic_istream_char base
;
193 basic_stringbuf_char strbuf
;
194 /* virtual inheritance
195 * basic_ios_char basic_ios;
197 } basic_istringstream_char
;
200 basic_istream_wchar base
;
201 basic_stringbuf_wchar strbuf
;
202 /* virtual inheritance
203 * basic_ios_wchar basic_ios;
205 } basic_istringstream_wchar
;
208 basic_iostream_char base
;
209 basic_stringbuf_char strbuf
;
210 /* virtual inheritance
211 * basic_ios_char basic_ios;
213 } basic_stringstream_char
;
216 basic_iostream_wchar base
;
217 basic_stringbuf_wchar strbuf
;
218 /* virtual inheritance
219 * basic_ios_wchar basic_ios;
221 } basic_stringstream_wchar
;
223 extern const vtable_ptr MSVCP_iosb_vtable
;
225 /* ??_7ios_base@std@@6B@ */
226 extern const vtable_ptr MSVCP_ios_base_vtable
;
228 /* ??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@ */
229 extern const vtable_ptr MSVCP_basic_ios_char_vtable
;
231 /* ??_7?$basic_ios@_WU?$char_traits@_W@std@@@std@@6B@ */
232 extern const vtable_ptr MSVCP_basic_ios_wchar_vtable
;
234 /* ??_7?$basic_ios@GU?$char_traits@G@std@@@std@@6B@ */
235 extern const vtable_ptr MSVCP_basic_ios_short_vtable
;
237 /* ??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@ */
238 extern const vtable_ptr MSVCP_basic_streambuf_char_vtable
;
240 /* ??_7?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@6B@ */
241 extern const vtable_ptr MSVCP_basic_streambuf_wchar_vtable
;
243 /* ??_7?$basic_streambuf@GU?$char_traits@G@std@@@std@@6B@ */
244 extern const vtable_ptr MSVCP_basic_streambuf_short_vtable
;
246 /* ??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ */
247 extern const vtable_ptr MSVCP_basic_filebuf_char_vtable
;
249 /* ??_7?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
250 extern const vtable_ptr MSVCP_basic_stringbuf_char_vtable
;
252 /* ??_7?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
253 extern const vtable_ptr MSVCP_basic_stringbuf_wchar_vtable
;
255 /* ??_7?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
256 extern const vtable_ptr MSVCP_basic_stringbuf_short_vtable
;
258 /* ??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@ */
259 const int basic_ostream_char_vbtable
[] = {0, sizeof(basic_ostream_char
)};
260 /* ??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@ */
261 extern const vtable_ptr MSVCP_basic_ostream_char_vtable
;
263 /* ??_8?$basic_ostream@_WU?$char_traits@_W@std@@@std@@7B@ */
264 const int basic_ostream_wchar_vbtable
[] = {0, sizeof(basic_ostream_wchar
)};
265 /* ??_7?$basic_ostream@_WU?$char_traits@_W@std@@@std@@6B@ */
266 extern const vtable_ptr MSVCP_basic_ostream_wchar_vtable
;
268 /* ??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@ */
269 const int basic_istream_char_vbtable
[] = {0, sizeof(basic_istream_char
)};
270 /* ??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@ */
271 extern const vtable_ptr MSVCP_basic_istream_char_vtable
;
273 /* ??_8?$basic_istream@_WU?$char_traits@_W@std@@@std@@7B@ */
274 const int basic_istream_wchar_vbtable
[] = {0, sizeof(basic_istream_wchar
)};
275 /* ??_7?$basic_istream@_WU?$char_traits@_W@std@@@std@@6B@ */
276 extern const vtable_ptr MSVCP_basic_istream_wchar_vtable
;
278 /* ??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
279 const int basic_iostream_char_vbtable1
[] = {0, sizeof(basic_iostream_char
)};
280 /* ??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
281 const int basic_iostream_char_vbtable2
[] = {0, sizeof(basic_iostream_char
)-FIELD_OFFSET(basic_iostream_char
, base2
)};
282 /* ??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@ */
283 extern const vtable_ptr MSVCP_basic_iostream_char_vtable
;
285 /* ??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
286 const int basic_iostream_wchar_vbtable1
[] = {0, sizeof(basic_iostream_wchar
)};
287 /* ??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
288 const int basic_iostream_wchar_vbtable2
[] = {0, sizeof(basic_iostream_wchar
)-FIELD_OFFSET(basic_iostream_wchar
, base2
)};
289 /* ??_7?$basic_iostream@_WU?$char_traits@_W@std@@@std@@6B@ */
290 extern const vtable_ptr MSVCP_basic_iostream_wchar_vtable
;
292 /* ??_8?$basic_ofstream@DU?$char_traits@D@std@@@std@@7B@ */
293 const int basic_ofstream_char_vbtable
[] = {0, sizeof(basic_ofstream_char
)};
294 /* ??_7?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ */
295 extern const vtable_ptr MSVCP_basic_ofstream_char_vtable
;
297 /*??_8?$basic_ifstream@DU?$char_traits@D@std@@@std@@7B@ */
298 const int basic_ifstream_char_vbtable
[] = {0, sizeof(basic_ifstream_char
)};
299 /* ??_7?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@ */
300 extern const vtable_ptr MSVCP_basic_ifstream_char_vtable
;
302 /* ??_8?$basic_fstream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
303 const int basic_fstream_char_vbtable1
[] = {0, sizeof(basic_fstream_char
)};
304 /* ??_8?$basic_fstream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
305 const int basic_fstream_char_vbtable2
[] = {0, sizeof(basic_fstream_char
)-FIELD_OFFSET(basic_fstream_char
, base
.base2
)};
306 /* ??_7?$basic_fstream@DU?$char_traits@D@std@@@std@@6B@ */
307 extern const vtable_ptr MSVCP_basic_fstream_char_vtable
;
309 /* ??_8?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B@ */
310 const int basic_ostringstream_char_vbtable
[] = {0, sizeof(basic_ostringstream_char
)};
311 /* ??_7?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
312 extern const vtable_ptr MSVCP_basic_ostringstream_char_vtable
;
314 /* ??_8?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B@ */
315 const int basic_ostringstream_wchar_vbtable
[] = {0, sizeof(basic_ostringstream_wchar
)};
316 /* ??_7?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
317 extern const vtable_ptr MSVCP_basic_ostringstream_wchar_vtable
;
319 /* ??_8?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B@ */
320 const int basic_istringstream_char_vbtable
[] = {0, sizeof(basic_istringstream_char
)};
321 /* ??_7?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
322 extern const vtable_ptr MSVCP_basic_istringstream_char_vtable
;
324 /* ??_8?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B@ */
325 const int basic_istringstream_wchar_vbtable
[] = {0, sizeof(basic_istringstream_wchar
)};
326 /* ??_7?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
327 extern const vtable_ptr MSVCP_basic_istringstream_wchar_vtable
;
329 /* ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
330 const int basic_stringstream_char_vbtable1
[] = {0, sizeof(basic_stringstream_char
)};
331 /* ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
332 const int basic_stringstream_char_vbtable2
[] = {0, sizeof(basic_stringstream_char
)-FIELD_OFFSET(basic_stringstream_char
, base
.base2
)};
333 /* ??_7?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
334 extern const vtable_ptr MSVCP_basic_stringstream_char_vtable
;
336 /* ??_8?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@ */
337 const int basic_stringstream_wchar_vbtable1
[] = {0, sizeof(basic_stringstream_wchar
)};
338 /* ??_8?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@ */
339 const int basic_stringstream_wchar_vbtable2
[] = {0, sizeof(basic_stringstream_wchar
)-FIELD_OFFSET(basic_stringstream_wchar
, base
.base2
)};
340 /* ??_7?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@6B@ */
341 extern const vtable_ptr MSVCP_basic_stringstream_wchar_vtable
;
343 DEFINE_RTTI_DATA0(iosb
, 0, ".?AV?$_Iosb@H@std@@");
344 DEFINE_RTTI_DATA1(ios_base
, 0, &iosb_rtti_base_descriptor
, ".?AV?$_Iosb@H@std@@");
345 DEFINE_RTTI_DATA2(basic_ios_char
, 0, &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
346 ".?AV?$basic_ios@DU?$char_traits@D@std@@@std@@");
347 DEFINE_RTTI_DATA2(basic_ios_wchar
, 0, &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
348 ".?AV?$basic_ios@_WU?$char_traits@_W@std@@@std@@");
349 DEFINE_RTTI_DATA2(basic_ios_short
, 0, &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
350 ".?AV?$basic_ios@GU?$char_traits@G@std@@@std@@");
351 DEFINE_RTTI_DATA0(basic_streambuf_char
, 0,
352 ".?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@");
353 DEFINE_RTTI_DATA0(basic_streambuf_wchar
, 0,
354 ".?AV?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@");
355 DEFINE_RTTI_DATA0(basic_streambuf_short
, 0,
356 ".?AV?$basic_streambuf@GU?$char_traits@G@std@@@std@@");
357 DEFINE_RTTI_DATA1(basic_filebuf_char
, 0, &basic_streambuf_char_rtti_base_descriptor
,
358 ".?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@");
359 DEFINE_RTTI_DATA1(basic_stringbuf_char
, 0, &basic_streambuf_char_rtti_base_descriptor
,
360 ".?AV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@");
361 DEFINE_RTTI_DATA1(basic_stringbuf_wchar
, 0, &basic_streambuf_wchar_rtti_base_descriptor
,
362 ".?AV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@");
363 DEFINE_RTTI_DATA1(basic_stringbuf_short
, 0, &basic_streambuf_short_rtti_base_descriptor
,
364 ".?AV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@");
365 DEFINE_RTTI_DATA3(basic_ostream_char
, sizeof(basic_ostream_char
), &basic_ios_char_rtti_base_descriptor
,
366 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
367 ".?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@");
368 DEFINE_RTTI_DATA3(basic_ostream_wchar
, sizeof(basic_ostream_wchar
), &basic_ios_wchar_rtti_base_descriptor
,
369 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
370 ".?AV?$basic_ostream@_WU?$char_traits@_W@std@@@std@@");
371 DEFINE_RTTI_DATA3(basic_istream_char
, sizeof(basic_istream_char
), &basic_ios_char_rtti_base_descriptor
,
372 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
373 ".?AV?$basic_istream@DU?$char_traits@D@std@@@std@@");
374 DEFINE_RTTI_DATA3(basic_istream_wchar
, sizeof(basic_istream_wchar
), &basic_ios_wchar_rtti_base_descriptor
,
375 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
376 ".?AV?$basic_istream@_WU?$char_traits@_W@std@@@std@@");
377 DEFINE_RTTI_DATA8(basic_iostream_char
, sizeof(basic_iostream_char
),
378 &basic_istream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
379 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
380 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
381 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
382 ".?AV?$basic_iostream@DU?$char_traits@D@std@@@std@@");
383 DEFINE_RTTI_DATA8(basic_iostream_wchar
, sizeof(basic_iostream_wchar
),
384 &basic_istream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
385 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
386 &basic_ostream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
387 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
388 ".?AV?$basic_iostream@_WU?$char_traits@_W@std@@@std@@");
389 DEFINE_RTTI_DATA4(basic_ofstream_char
, sizeof(basic_ofstream_char
),
390 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
391 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
392 ".?AV?$basic_ofstream@DU?$char_traits@D@std@@@std@@");
393 DEFINE_RTTI_DATA4(basic_ifstream_char
, sizeof(basic_ifstream_char
),
394 &basic_istream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
395 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
396 ".?AV?$basic_ifstream@DU?$char_traits@D@std@@@std@@");
397 DEFINE_RTTI_DATA8(basic_fstream_char
, sizeof(basic_fstream_char
),
398 &basic_istream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
399 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
400 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
401 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
402 ".?AV?$basic_fstream@DU?$char_traits@D@std@@@std@@");
403 DEFINE_RTTI_DATA4(basic_ostringstream_char
, sizeof(basic_ostringstream_char
),
404 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
405 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
406 ".?AV?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@");
407 DEFINE_RTTI_DATA4(basic_ostringstream_wchar
, sizeof(basic_ostringstream_wchar
),
408 &basic_ostream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
409 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
410 ".?AV?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@");
411 DEFINE_RTTI_DATA4(basic_istringstream_char
, sizeof(basic_istringstream_char
),
412 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
413 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
414 ".?AV?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@");
415 DEFINE_RTTI_DATA4(basic_istringstream_wchar
, sizeof(basic_istringstream_wchar
),
416 &basic_ostream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
417 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
418 ".?AV?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@");
419 DEFINE_RTTI_DATA8(basic_stringstream_char
, sizeof(basic_stringstream_char
),
420 &basic_istream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
421 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
422 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
423 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
424 ".?AV?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@");
425 DEFINE_RTTI_DATA8(basic_stringstream_wchar
, sizeof(basic_stringstream_wchar
),
426 &basic_istream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
427 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
428 &basic_ostream_wchar_rtti_base_descriptor
, &basic_ios_wchar_rtti_base_descriptor
,
429 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
430 ".?AV?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@");
433 void __asm_dummy_vtables(void) {
435 __ASM_VTABLE(iosb
, "");
436 __ASM_VTABLE(ios_base
, "");
437 __ASM_VTABLE(basic_ios_char
, "");
438 __ASM_VTABLE(basic_ios_wchar
, "");
439 __ASM_VTABLE(basic_ios_short
, "");
440 __ASM_VTABLE(basic_streambuf_char
,
441 VTABLE_ADD_FUNC(basic_streambuf_char_overflow
)
442 VTABLE_ADD_FUNC(basic_streambuf_char_pbackfail
)
443 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc
)
444 VTABLE_ADD_FUNC(basic_streambuf_char_underflow
)
445 VTABLE_ADD_FUNC(basic_streambuf_char_uflow
)
446 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn
)
447 VTABLE_ADD_FUNC(basic_streambuf_char__Xsgetn_s
)
448 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn
)
449 VTABLE_ADD_FUNC(basic_streambuf_char_seekoff
)
450 VTABLE_ADD_FUNC(basic_streambuf_char_seekpos
)
451 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf
)
452 VTABLE_ADD_FUNC(basic_streambuf_char_sync
)
453 VTABLE_ADD_FUNC(basic_streambuf_char_imbue
));
454 __ASM_VTABLE(basic_streambuf_wchar
,
455 VTABLE_ADD_FUNC(basic_streambuf_wchar_overflow
)
456 VTABLE_ADD_FUNC(basic_streambuf_wchar_pbackfail
)
457 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc
)
458 VTABLE_ADD_FUNC(basic_streambuf_wchar_underflow
)
459 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow
)
460 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn
)
461 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s
)
462 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn
)
463 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff
)
464 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos
)
465 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf
)
466 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync
)
467 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue
));
468 __ASM_VTABLE(basic_streambuf_short
,
469 VTABLE_ADD_FUNC(basic_streambuf_wchar_overflow
)
470 VTABLE_ADD_FUNC(basic_streambuf_wchar_pbackfail
)
471 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc
)
472 VTABLE_ADD_FUNC(basic_streambuf_wchar_underflow
)
473 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow
)
474 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn
)
475 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s
)
476 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn
)
477 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff
)
478 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos
)
479 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf
)
480 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync
)
481 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue
));
482 __ASM_VTABLE(basic_filebuf_char
,
483 VTABLE_ADD_FUNC(basic_filebuf_char_overflow
)
484 VTABLE_ADD_FUNC(basic_filebuf_char_pbackfail
)
485 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc
)
486 VTABLE_ADD_FUNC(basic_filebuf_char_underflow
)
487 VTABLE_ADD_FUNC(basic_filebuf_char_uflow
)
488 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn
)
489 VTABLE_ADD_FUNC(basic_streambuf_char__Xsgetn_s
)
490 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn
)
491 VTABLE_ADD_FUNC(basic_filebuf_char_seekoff
)
492 VTABLE_ADD_FUNC(basic_filebuf_char_seekpos
)
493 VTABLE_ADD_FUNC(basic_filebuf_char_setbuf
)
494 VTABLE_ADD_FUNC(basic_filebuf_char_sync
)
495 VTABLE_ADD_FUNC(basic_filebuf_char_imbue
));
496 __ASM_VTABLE(basic_stringbuf_char
,
497 VTABLE_ADD_FUNC(basic_stringbuf_char_overflow
)
498 VTABLE_ADD_FUNC(basic_stringbuf_char_pbackfail
)
499 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc
)
500 VTABLE_ADD_FUNC(basic_stringbuf_char_underflow
)
501 VTABLE_ADD_FUNC(basic_streambuf_char_uflow
)
502 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn
)
503 VTABLE_ADD_FUNC(basic_streambuf_char__Xsgetn_s
)
504 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn
)
505 VTABLE_ADD_FUNC(basic_stringbuf_char_seekoff
)
506 VTABLE_ADD_FUNC(basic_stringbuf_char_seekpos
)
507 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf
)
508 VTABLE_ADD_FUNC(basic_streambuf_char_sync
)
509 VTABLE_ADD_FUNC(basic_streambuf_char_imbue
));
510 __ASM_VTABLE(basic_stringbuf_wchar
,
511 VTABLE_ADD_FUNC(basic_stringbuf_wchar_overflow
)
512 VTABLE_ADD_FUNC(basic_stringbuf_wchar_pbackfail
)
513 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc
)
514 VTABLE_ADD_FUNC(basic_stringbuf_wchar_underflow
)
515 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow
)
516 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn
)
517 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s
)
518 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn
)
519 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekoff
)
520 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekpos
)
521 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf
)
522 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync
)
523 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue
));
524 __ASM_VTABLE(basic_stringbuf_short
,
525 VTABLE_ADD_FUNC(basic_stringbuf_wchar_overflow
)
526 VTABLE_ADD_FUNC(basic_stringbuf_wchar_pbackfail
)
527 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc
)
528 VTABLE_ADD_FUNC(basic_stringbuf_wchar_underflow
)
529 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow
)
530 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn
)
531 VTABLE_ADD_FUNC(basic_streambuf_wchar__Xsgetn_s
)
532 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn
)
533 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekoff
)
534 VTABLE_ADD_FUNC(basic_stringbuf_wchar_seekpos
)
535 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf
)
536 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync
)
537 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue
));
538 __ASM_VTABLE(basic_ostream_char
, "");
539 __ASM_VTABLE(basic_ostream_wchar
, "");
540 __ASM_VTABLE(basic_istream_char
, "");
541 __ASM_VTABLE(basic_istream_wchar
, "");
542 __ASM_VTABLE(basic_iostream_char
, "");
543 __ASM_VTABLE(basic_iostream_wchar
, "");
544 __ASM_VTABLE(basic_ofstream_char
, "");
545 __ASM_VTABLE(basic_ifstream_char
, "");
546 __ASM_VTABLE(basic_fstream_char
, "");
547 __ASM_VTABLE(basic_ostringstream_char
, "");
548 __ASM_VTABLE(basic_ostringstream_wchar
, "");
549 __ASM_VTABLE(basic_istringstream_char
, "");
550 __ASM_VTABLE(basic_istringstream_wchar
, "");
551 __ASM_VTABLE(basic_stringstream_char
, "");
552 __ASM_VTABLE(basic_stringstream_wchar
, "");
557 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
558 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
559 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp_next
, 16)
560 void __thiscall
basic_streambuf_char_setp_next(basic_streambuf_char
*this, char *first
, char *next
, char *last
)
562 TRACE("(%p %p %p %p)\n", this, first
, next
, last
);
566 this->wsize
= last
-next
;
569 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z */
570 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z */
571 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp
, 12)
572 void __thiscall
basic_streambuf_char_setp(basic_streambuf_char
*this, char *first
, char *last
)
574 basic_streambuf_char_setp_next(this, first
, first
, last
);
577 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
578 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
579 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setg
, 16)
580 void __thiscall
basic_streambuf_char_setg(basic_streambuf_char
*this, char *first
, char *next
, char *last
)
582 TRACE("(%p %p %p %p)\n", this, first
, next
, last
);
586 this->rsize
= last
-next
;
589 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ */
590 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ */
591 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init_empty
, 4)
592 void __thiscall
basic_streambuf_char__Init_empty(basic_streambuf_char
*this)
594 TRACE("(%p)\n", this);
596 this->prbuf
= &this->rbuf
;
597 this->pwbuf
= &this->wbuf
;
598 this->prpos
= &this->rpos
;
599 this->pwpos
= &this->wpos
;
600 this->prsize
= &this->rsize
;
601 this->pwsize
= &this->wsize
;
603 basic_streambuf_char_setp(this, NULL
, NULL
);
604 basic_streambuf_char_setg(this, NULL
, NULL
, NULL
);
607 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@W4_Uninitialized@1@@Z */
608 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
609 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor_uninitialized
, 8)
610 basic_streambuf_char
* __thiscall
basic_streambuf_char_ctor_uninitialized(basic_streambuf_char
*this, int uninitialized
)
612 TRACE("(%p %d)\n", this, uninitialized
);
613 this->vtable
= &MSVCP_basic_streambuf_char_vtable
;
614 mutex_ctor(&this->lock
);
618 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ */
619 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ */
620 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor
, 4)
621 basic_streambuf_char
* __thiscall
basic_streambuf_char_ctor(basic_streambuf_char
*this)
623 TRACE("(%p)\n", this);
625 this->vtable
= &MSVCP_basic_streambuf_char_vtable
;
626 mutex_ctor(&this->lock
);
627 this->loc
= MSVCRT_operator_new(sizeof(locale
));
628 locale_ctor(this->loc
);
629 basic_streambuf_char__Init_empty(this);
634 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
635 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
636 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_dtor
, 4)
637 void __thiscall
basic_streambuf_char_dtor(basic_streambuf_char
*this)
639 TRACE("(%p)\n", this);
641 mutex_dtor(&this->lock
);
642 locale_dtor(this->loc
);
643 MSVCRT_operator_delete(this->loc
);
646 DEFINE_THISCALL_WRAPPER(MSVCP_basic_streambuf_char_vector_dtor
, 8)
647 basic_streambuf_char
* __thiscall
MSVCP_basic_streambuf_char_vector_dtor(basic_streambuf_char
*this, unsigned int flags
)
649 TRACE("(%p %x)\n", this, flags
);
651 /* we have an array, with the number of elements stored before the first object */
652 int i
, *ptr
= (int *)this-1;
654 for(i
=*ptr
-1; i
>=0; i
--)
655 basic_streambuf_char_dtor(this+i
);
656 MSVCRT_operator_delete(ptr
);
658 basic_streambuf_char_dtor(this);
660 MSVCRT_operator_delete(this);
666 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
667 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
668 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gnavail
, 4)
669 streamsize __thiscall
basic_streambuf_char__Gnavail(const basic_streambuf_char
*this)
671 TRACE("(%p)\n", this);
672 return *this->prpos
? *this->prsize
: 0;
675 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
676 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
677 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gndec
, 4)
678 char* __thiscall
basic_streambuf_char__Gndec(basic_streambuf_char
*this)
680 TRACE("(%p)\n", this);
686 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
687 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
688 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gninc
, 4)
689 char* __thiscall
basic_streambuf_char__Gninc(basic_streambuf_char
*this)
691 TRACE("(%p)\n", this);
693 return (*this->prpos
)++;
696 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
697 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
698 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gnpreinc
, 4)
699 char* __thiscall
basic_streambuf_char__Gnpreinc(basic_streambuf_char
*this)
701 TRACE("(%p)\n", this);
707 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z */
708 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAPEAD0PEAH001@Z */
709 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init
, 28)
710 void __thiscall
basic_streambuf_char__Init(basic_streambuf_char
*this, char **gf
, char **gn
, int *gc
, char **pf
, char **pn
, int *pc
)
712 TRACE("(%p %p %p %p %p %p %p)\n", this, gf
, gn
, gc
, pf
, pn
, pc
);
722 /* ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
723 /* ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
724 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Lock
, 4)
725 void __thiscall
basic_streambuf_char__Lock(basic_streambuf_char
*this)
727 TRACE("(%p)\n", this);
728 mutex_lock(&this->lock
);
731 /* ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
732 /* ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
733 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Pnavail
, 4)
734 streamsize __thiscall
basic_streambuf_char__Pnavail(const basic_streambuf_char
*this)
736 TRACE("(%p)\n", this);
737 return *this->pwpos
? *this->pwsize
: 0;
740 /* ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
741 /* ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
742 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Pninc
, 4)
743 char* __thiscall
basic_streambuf_char__Pninc(basic_streambuf_char
*this)
745 TRACE("(%p)\n", this);
747 return (*this->pwpos
)++;
750 /* ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
751 /* ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
752 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_underflow
, 4)
753 #define call_basic_streambuf_char_underflow(this) CALL_VTBL_FUNC(this, 16, \
754 int, (basic_streambuf_char*), (this))
755 int __thiscall
basic_streambuf_char_underflow(basic_streambuf_char
*this)
757 TRACE("(%p)\n", this);
761 /* ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
762 /* ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
763 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_uflow
, 4)
764 #define call_basic_streambuf_char_uflow(this) CALL_VTBL_FUNC(this, 20, \
765 int, (basic_streambuf_char*), (this))
766 int __thiscall
basic_streambuf_char_uflow(basic_streambuf_char
*this)
770 TRACE("(%p)\n", this);
772 if(call_basic_streambuf_char_underflow(this)==EOF
)
781 /* ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADIH@Z */
782 /* ?_Xsgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_K_J@Z */
783 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Xsgetn_s
, 16)
784 #define call_basic_streambuf_char__Xsgetn_s(this, ptr, size, count) CALL_VTBL_FUNC(this, 28, \
785 streamsize, (basic_streambuf_char*, char*, MSVCP_size_t, streamsize), (this, ptr, size, count))
786 streamsize __thiscall
basic_streambuf_char__Xsgetn_s(basic_streambuf_char
*this, char *ptr
, MSVCP_size_t size
, streamsize count
)
788 streamsize copied
, chunk
;
790 TRACE("(%p %p %lu %ld)\n", this, ptr
, size
, count
);
792 for(copied
=0; copied
<count
&& size
;) {
793 chunk
= basic_streambuf_char__Gnavail(this);
794 if(chunk
> count
-copied
)
795 chunk
= count
-copied
;
798 memcpy_s(ptr
+copied
, size
, *this->prpos
, chunk
);
799 *this->prpos
+= chunk
;
800 *this->prsize
-= chunk
;
803 }else if((ptr
[copied
] = call_basic_streambuf_char_uflow(this)) != EOF
) {
814 /* ?_Sgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADIH@Z */
815 /* ?_Sgetn_s@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_K_J@Z */
816 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Sgetn_s
, 16)
817 streamsize __thiscall
basic_streambuf_char__Sgetn_s(basic_streambuf_char
*this, char *ptr
, MSVCP_size_t size
, streamsize count
)
819 TRACE("(%p %p %lu %ld)\n", this, ptr
, size
, count
);
820 return call_basic_streambuf_char__Xsgetn_s(this, ptr
, size
, count
);
823 /* ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
824 /* ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
825 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Unlock
, 4)
826 void __thiscall
basic_streambuf_char__Unlock(basic_streambuf_char
*this)
828 TRACE("(%p)\n", this);
829 mutex_unlock(&this->lock
);
832 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
833 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
834 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_eback
, 4)
835 char* __thiscall
basic_streambuf_char_eback(const basic_streambuf_char
*this)
837 TRACE("(%p)\n", this);
841 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
842 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
843 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gptr
, 4)
844 char* __thiscall
basic_streambuf_char_gptr(const basic_streambuf_char
*this)
846 TRACE("(%p)\n", this);
850 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
851 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
852 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_egptr
, 4)
853 char* __thiscall
basic_streambuf_char_egptr(const basic_streambuf_char
*this)
855 TRACE("(%p)\n", this);
856 return *this->prpos
+*this->prsize
;
859 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
860 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
861 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_epptr
, 4)
862 char* __thiscall
basic_streambuf_char_epptr(const basic_streambuf_char
*this)
864 TRACE("(%p)\n", this);
865 return *this->pwpos
+*this->pwsize
;
868 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
869 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
870 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gbump
, 8)
871 void __thiscall
basic_streambuf_char_gbump(basic_streambuf_char
*this, int off
)
873 TRACE("(%p %d)\n", this, off
);
875 *this->prsize
-= off
;
878 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ */
879 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?AVlocale@2@XZ */
880 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_getloc
, 8)
881 locale
* __thiscall
basic_streambuf_char_getloc(const basic_streambuf_char
*this, locale
*ret
)
883 TRACE("(%p)\n", this);
884 return locale_copy_ctor(ret
, this->loc
);
887 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z */
888 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z */
889 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_imbue
, 8)
890 #define call_basic_streambuf_char_imbue(this, loc) CALL_VTBL_FUNC(this, 52, \
891 void, (basic_streambuf_char*, const locale*), (this, loc))
892 void __thiscall
basic_streambuf_char_imbue(basic_streambuf_char
*this, const locale
*loc
)
894 TRACE("(%p %p)\n", this, loc
);
897 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
898 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
899 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_overflow
, 8)
900 #define call_basic_streambuf_char_overflow(this, ch) CALL_VTBL_FUNC(this, 4, \
901 int, (basic_streambuf_char*, int), (this, ch))
902 int __thiscall
basic_streambuf_char_overflow(basic_streambuf_char
*this, int ch
)
904 TRACE("(%p %d)\n", this, ch
);
908 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
909 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
910 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbackfail
, 8)
911 #define call_basic_streambuf_char_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, \
912 int, (basic_streambuf_char*, int), (this, ch))
913 int __thiscall
basic_streambuf_char_pbackfail(basic_streambuf_char
*this, int ch
)
915 TRACE("(%p %d)\n", this, ch
);
919 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
920 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
921 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbase
, 4)
922 char* __thiscall
basic_streambuf_char_pbase(const basic_streambuf_char
*this)
924 TRACE("(%p)\n", this);
928 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
929 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
930 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbump
, 8)
931 void __thiscall
basic_streambuf_char_pbump(basic_streambuf_char
*this, int off
)
933 TRACE("(%p %d)\n", this, off
);
935 *this->pwsize
-= off
;
938 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
939 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
940 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pptr
, 4)
941 char* __thiscall
basic_streambuf_char_pptr(const basic_streambuf_char
*this)
943 TRACE("(%p)\n", this);
947 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
948 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
949 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubimbue
, 12)
950 locale
* __thiscall
basic_streambuf_char_pubimbue(basic_streambuf_char
*this, locale
*ret
, const locale
*loc
)
952 TRACE("(%p %p)\n", this, loc
);
953 memcpy(ret
, this->loc
, sizeof(locale
));
954 call_basic_streambuf_char_imbue(this, loc
);
955 locale_copy_ctor(this->loc
, loc
);
959 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
960 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
961 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekoff
, 20)
962 #define call_basic_streambuf_char_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 36, \
963 fpos_int*, (basic_streambuf_char*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
964 fpos_int
* __thiscall
basic_streambuf_char_seekoff(basic_streambuf_char
*this,
965 fpos_int
*ret
, streamoff off
, int way
, int mode
)
967 TRACE("(%p %ld %d %d)\n", this, off
, way
, mode
);
974 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
975 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
976 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff
, 20)
977 fpos_int
* __thiscall
basic_streambuf_char_pubseekoff(basic_streambuf_char
*this,
978 fpos_int
*ret
, streamoff off
, int way
, int mode
)
980 TRACE("(%p %ld %d %d)\n", this, off
, way
, mode
);
981 return call_basic_streambuf_char_seekoff(this, ret
, off
, way
, mode
);
984 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
985 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
986 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff_old
, 20)
987 fpos_int
* __thiscall
basic_streambuf_char_pubseekoff_old(basic_streambuf_char
*this,
988 fpos_int
*ret
, streamoff off
, unsigned int way
, unsigned int mode
)
990 TRACE("(%p %ld %d %d)\n", this, off
, way
, mode
);
991 return basic_streambuf_char_pubseekoff(this, ret
, off
, way
, mode
);
994 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
995 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
996 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekpos
, 36)
997 #define call_basic_streambuf_char_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 40, \
998 fpos_int*, (basic_streambuf_char*, fpos_int*, fpos_int, int), (this, ret, pos, mode))
999 fpos_int
* __thiscall
basic_streambuf_char_seekpos(basic_streambuf_char
*this,
1000 fpos_int
*ret
, fpos_int pos
, int mode
)
1002 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos
), mode
);
1009 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
1010 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
1011 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos
, 36)
1012 fpos_int
* __thiscall
basic_streambuf_char_pubseekpos(basic_streambuf_char
*this,
1013 fpos_int
*ret
, fpos_int pos
, int mode
)
1015 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos
), mode
);
1016 return call_basic_streambuf_char_seekpos(this, ret
, pos
, mode
);
1019 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
1020 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
1021 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos_old
, 36)
1022 fpos_int
* __thiscall
basic_streambuf_char_pubseekpos_old(basic_streambuf_char
*this,
1023 fpos_int
*ret
, fpos_int pos
, unsigned int mode
)
1025 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos
), mode
);
1026 return basic_streambuf_char_pubseekpos(this, ret
, pos
, mode
);
1029 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z */
1030 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@PEAD_J@Z */
1031 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setbuf
, 12)
1032 #define call_basic_streambuf_char_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 44, \
1033 basic_streambuf_char*, (basic_streambuf_char*, char*, streamsize), (this, buf, count))
1034 basic_streambuf_char
* __thiscall
basic_streambuf_char_setbuf(basic_streambuf_char
*this, char *buf
, streamsize count
)
1036 TRACE("(%p %p %ld)\n", this, buf
, count
);
1040 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PADH@Z */
1041 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEAD_J@Z */
1042 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsetbuf
, 12)
1043 basic_streambuf_char
* __thiscall
basic_streambuf_char_pubsetbuf(basic_streambuf_char
*this, char *buf
, streamsize count
)
1045 TRACE("(%p %p %ld)\n", this, buf
, count
);
1046 return call_basic_streambuf_char_setbuf(this, buf
, count
);
1049 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1050 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1051 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sync
, 4)
1052 #define call_basic_streambuf_char_sync(this) CALL_VTBL_FUNC(this, 48, \
1053 int, (basic_streambuf_char*), (this))
1054 int __thiscall
basic_streambuf_char_sync(basic_streambuf_char
*this)
1056 TRACE("(%p)\n", this);
1060 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1061 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1062 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsync
, 4)
1063 int __thiscall
basic_streambuf_char_pubsync(basic_streambuf_char
*this)
1065 TRACE("(%p)\n", this);
1066 return call_basic_streambuf_char_sync(this);
1069 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADH@Z */
1070 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z */
1071 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetn
, 12)
1072 streamsize __thiscall
basic_streambuf_char_sgetn(basic_streambuf_char
*this, char *ptr
, streamsize count
)
1074 TRACE("(%p %p %ld)\n", this, ptr
, count
);
1075 return call_basic_streambuf_char__Xsgetn_s(this, ptr
, -1, count
);
1078 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1079 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ */
1080 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_showmanyc
, 4)
1081 #define call_basic_streambuf_char_showmanyc(this) CALL_VTBL_FUNC(this, 12, \
1082 streamsize, (basic_streambuf_char*), (this))
1083 streamsize __thiscall
basic_streambuf_char_showmanyc(basic_streambuf_char
*this)
1085 TRACE("(%p)\n", this);
1089 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1090 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JXZ */
1091 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_in_avail
, 4)
1092 streamsize __thiscall
basic_streambuf_char_in_avail(basic_streambuf_char
*this)
1096 TRACE("(%p)\n", this);
1098 ret
= basic_streambuf_char__Gnavail(this);
1099 return ret
? ret
: call_basic_streambuf_char_showmanyc(this);
1102 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
1103 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
1104 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputbackc
, 8)
1105 int __thiscall
basic_streambuf_char_sputbackc(basic_streambuf_char
*this, char ch
)
1107 TRACE("(%p %d)\n", this, ch
);
1108 if(*this->prpos
&& *this->prpos
>*this->prbuf
&& (*this->prpos
)[-1]==ch
) {
1114 return call_basic_streambuf_char_pbackfail(this, ch
);
1117 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
1118 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
1119 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputc
, 8)
1120 int __thiscall
basic_streambuf_char_sputc(basic_streambuf_char
*this, char ch
)
1122 TRACE("(%p %d)\n", this, ch
);
1123 return basic_streambuf_char__Pnavail(this) ?
1124 (*basic_streambuf_char__Pninc(this) = ch
) :
1125 call_basic_streambuf_char_overflow(this, ch
);
1128 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1129 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1130 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sungetc
, 4)
1131 int __thiscall
basic_streambuf_char_sungetc(basic_streambuf_char
*this)
1133 TRACE("(%p)\n", this);
1134 if(*this->prpos
&& *this->prpos
>*this->prbuf
) {
1137 return **this->prpos
;
1140 return call_basic_streambuf_char_pbackfail(this, EOF
);
1143 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1144 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1145 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_stossc
, 4)
1146 void __thiscall
basic_streambuf_char_stossc(basic_streambuf_char
*this)
1148 TRACE("(%p)\n", this);
1149 if(basic_streambuf_char__Gnavail(this))
1150 basic_streambuf_char__Gninc(this);
1152 call_basic_streambuf_char_uflow(this);
1155 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1156 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1157 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sbumpc
, 4)
1158 int __thiscall
basic_streambuf_char_sbumpc(basic_streambuf_char
*this)
1160 TRACE("(%p)\n", this);
1161 return basic_streambuf_char__Gnavail(this) ?
1162 *basic_streambuf_char__Gninc(this) : call_basic_streambuf_char_uflow(this);
1165 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1166 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1167 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetc
, 4)
1168 int __thiscall
basic_streambuf_char_sgetc(basic_streambuf_char
*this)
1170 TRACE("(%p)\n", this);
1171 return basic_streambuf_char__Gnavail(this) ?
1172 *basic_streambuf_char_gptr(this) : call_basic_streambuf_char_underflow(this);
1175 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1176 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1177 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_snextc
, 4)
1178 int __thiscall
basic_streambuf_char_snextc(basic_streambuf_char
*this)
1180 TRACE("(%p)\n", this);
1182 if(basic_streambuf_char__Gnavail(this) > 1)
1183 return *basic_streambuf_char__Gnpreinc(this);
1184 return basic_streambuf_char_sbumpc(this)==EOF
?
1185 EOF
: basic_streambuf_char_sgetc(this);
1188 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z */
1189 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z */
1190 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsgetn
, 12)
1191 #define call_basic_streambuf_char_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, \
1192 streamsize, (basic_streambuf_char*, char*, streamsize), (this, ptr, count))
1193 streamsize __thiscall
basic_streambuf_char_xsgetn(basic_streambuf_char
*this, char *ptr
, streamsize count
)
1195 TRACE("(%p %p %ld)\n", this, ptr
, count
);
1196 return call_basic_streambuf_char__Xsgetn_s(this, ptr
, -1, count
);
1199 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z */
1200 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z */
1201 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsputn
, 12)
1202 #define call_basic_streambuf_char_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 32, \
1203 streamsize, (basic_streambuf_char*, const char*, streamsize), (this, ptr, count))
1204 streamsize __thiscall
basic_streambuf_char_xsputn(basic_streambuf_char
*this, const char *ptr
, streamsize count
)
1206 streamsize copied
, chunk
;
1208 TRACE("(%p %p %ld)\n", this, ptr
, count
);
1210 for(copied
=0; copied
<count
;) {
1211 chunk
= basic_streambuf_char__Pnavail(this);
1212 if(chunk
> count
-copied
)
1213 chunk
= count
-copied
;
1216 memcpy(*this->pwpos
, ptr
+copied
, chunk
);
1217 *this->pwpos
+= chunk
;
1218 *this->pwsize
-= chunk
;
1220 }else if(call_basic_streambuf_char_overflow(this, ptr
[copied
]) != EOF
) {
1230 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z */
1231 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@Z */
1232 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputn
, 12)
1233 streamsize __thiscall
basic_streambuf_char_sputn(basic_streambuf_char
*this, const char *ptr
, streamsize count
)
1235 TRACE("(%p %p %ld)\n", this, ptr
, count
);
1236 return call_basic_streambuf_char_xsputn(this, ptr
, count
);
1239 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z */
1240 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z */
1241 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG00@Z */
1242 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z */
1243 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setp_next
, 16)
1244 void __thiscall
basic_streambuf_wchar_setp_next(basic_streambuf_wchar
*this, wchar_t *first
, wchar_t *next
, wchar_t *last
)
1246 TRACE("(%p %p %p %p)\n", this, first
, next
, last
);
1250 this->wsize
= last
-next
;
1253 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W0@Z */
1254 /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W0@Z */
1255 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG0@Z */
1256 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG0@Z */
1257 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setp
, 12)
1258 void __thiscall
basic_streambuf_wchar_setp(basic_streambuf_wchar
*this, wchar_t *first
, wchar_t *last
)
1260 basic_streambuf_wchar_setp_next(this, first
, first
, last
);
1263 /* ?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z */
1264 /* ?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z */
1265 /* ?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG00@Z */
1266 /* ?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z */
1267 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setg
, 16)
1268 void __thiscall
basic_streambuf_wchar_setg(basic_streambuf_wchar
*this, wchar_t *first
, wchar_t *next
, wchar_t *last
)
1270 TRACE("(%p %p %p %p)\n", this, first
, next
, last
);
1274 this->rsize
= last
-next
;
1277 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXXZ */
1278 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXXZ */
1279 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXXZ */
1280 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXXZ */
1281 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init_empty
, 4)
1282 void __thiscall
basic_streambuf_wchar__Init_empty(basic_streambuf_wchar
*this)
1284 TRACE("(%p)\n", this);
1286 this->prbuf
= &this->rbuf
;
1287 this->pwbuf
= &this->wbuf
;
1288 this->prpos
= &this->rpos
;
1289 this->pwpos
= &this->wpos
;
1290 this->prsize
= &this->rsize
;
1291 this->pwsize
= &this->wsize
;
1293 basic_streambuf_wchar_setp(this, NULL
, NULL
);
1294 basic_streambuf_wchar_setg(this, NULL
, NULL
, NULL
);
1297 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAE@W4_Uninitialized@1@@Z */
1298 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
1299 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_ctor_uninitialized
, 8)
1300 basic_streambuf_wchar
* __thiscall
basic_streambuf_wchar_ctor_uninitialized(basic_streambuf_wchar
*this, int uninitialized
)
1302 TRACE("(%p %d)\n", this, uninitialized
);
1303 this->vtable
= &MSVCP_basic_streambuf_wchar_vtable
;
1304 mutex_ctor(&this->lock
);
1308 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@W4_Uninitialized@1@@Z */
1309 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
1310 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor_uninitialized
, 8)
1311 basic_streambuf_wchar
* __thiscall
basic_streambuf_short_ctor_uninitialized(basic_streambuf_wchar
*this, int uninitialized
)
1313 TRACE("(%p %d)\n", this, uninitialized
);
1314 basic_streambuf_wchar_ctor_uninitialized(this, uninitialized
);
1315 this->vtable
= &MSVCP_basic_streambuf_short_vtable
;
1319 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
1320 /* ??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
1321 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_ctor
, 4)
1322 basic_streambuf_wchar
* __thiscall
basic_streambuf_wchar_ctor(basic_streambuf_wchar
*this)
1324 TRACE("(%p)\n", this);
1326 this->vtable
= &MSVCP_basic_streambuf_wchar_vtable
;
1327 mutex_ctor(&this->lock
);
1328 this->loc
= MSVCRT_operator_new(sizeof(locale
));
1329 locale_ctor(this->loc
);
1330 basic_streambuf_wchar__Init_empty(this);
1335 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@XZ */
1336 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@XZ */
1337 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor
, 4)
1338 basic_streambuf_wchar
* __thiscall
basic_streambuf_short_ctor(basic_streambuf_wchar
*this)
1340 TRACE("(%p)\n", this);
1341 basic_streambuf_wchar_ctor(this);
1342 this->vtable
= &MSVCP_basic_streambuf_short_vtable
;
1346 /* ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
1347 /* ??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
1348 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UAE@XZ */
1349 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */
1350 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_dtor
, 4)
1351 void __thiscall
basic_streambuf_wchar_dtor(basic_streambuf_wchar
*this)
1353 TRACE("(%p)\n", this);
1355 mutex_dtor(&this->lock
);
1356 locale_dtor(this->loc
);
1357 MSVCRT_operator_delete(this->loc
);
1360 DEFINE_THISCALL_WRAPPER(MSVCP_basic_streambuf_wchar_vector_dtor
, 8)
1361 basic_streambuf_wchar
* __thiscall
MSVCP_basic_streambuf_wchar_vector_dtor(basic_streambuf_wchar
*this, unsigned int flags
)
1363 TRACE("(%p %x)\n", this, flags
);
1365 /* we have an array, with the number of elements stored before the first object */
1366 int i
, *ptr
= (int *)this-1;
1368 for(i
=*ptr
-1; i
>=0; i
--)
1369 basic_streambuf_wchar_dtor(this+i
);
1370 MSVCRT_operator_delete(ptr
);
1372 basic_streambuf_wchar_dtor(this);
1374 MSVCRT_operator_delete(this);
1380 DEFINE_THISCALL_WRAPPER(MSVCP_basic_streambuf_short_vector_dtor
, 8)
1381 basic_streambuf_wchar
* __thiscall
MSVCP_basic_streambuf_short_vector_dtor(basic_streambuf_wchar
*this, unsigned int flags
)
1383 TRACE("(%p %x)\n", this, flags
);
1384 return MSVCP_basic_streambuf_wchar_vector_dtor(this, flags
);
1387 /* ?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEHXZ */
1388 /* ?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ */
1389 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
1390 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
1391 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gnavail
, 4)
1392 streamsize __thiscall
basic_streambuf_wchar__Gnavail(const basic_streambuf_wchar
*this)
1394 TRACE("(%p)\n", this);
1395 return *this->prpos
? *this->prsize
: 0;
1398 /* ?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1399 /* ?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1400 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1401 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1402 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gndec
, 4)
1403 wchar_t* __thiscall
basic_streambuf_wchar__Gndec(basic_streambuf_wchar
*this)
1405 TRACE("(%p)\n", this);
1408 return *this->prpos
;
1411 /* ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1412 /* ?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1413 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1414 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1415 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gninc
, 4)
1416 wchar_t* __thiscall
basic_streambuf_wchar__Gninc(basic_streambuf_wchar
*this)
1418 TRACE("(%p)\n", this);
1420 return (*this->prpos
)++;
1423 /* ?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1424 /* ?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1425 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1426 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1427 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gnpreinc
, 4)
1428 wchar_t* __thiscall
basic_streambuf_wchar__Gnpreinc(basic_streambuf_wchar
*this)
1430 TRACE("(%p)\n", this);
1433 return *this->prpos
;
1436 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPAPA_W0PAH001@Z */
1437 /* ?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAPEA_W0PEAH001@Z */
1438 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAPAG0PAH001@Z */
1439 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAPEAG0PEAH001@Z */
1440 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init
, 28)
1441 void __thiscall
basic_streambuf_wchar__Init(basic_streambuf_wchar
*this, wchar_t **gf
, wchar_t **gn
, int *gc
, wchar_t **pf
, wchar_t **pn
, int *pc
)
1443 TRACE("(%p %p %p %p %p %p %p)\n", this, gf
, gn
, gc
, pf
, pn
, pc
);
1453 /* ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1454 /* ?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1455 /* ?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1456 /* ?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1457 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Lock
, 4)
1458 void __thiscall
basic_streambuf_wchar__Lock(basic_streambuf_wchar
*this)
1460 TRACE("(%p)\n", this);
1461 mutex_lock(&this->lock
);
1464 /* ?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEHXZ */
1465 /* ?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ */
1466 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
1467 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
1468 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Pnavail
, 4)
1469 streamsize __thiscall
basic_streambuf_wchar__Pnavail(const basic_streambuf_wchar
*this)
1471 TRACE("(%p)\n", this);
1472 return *this->pwpos
? *this->pwsize
: 0;
1475 /* ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEPA_WXZ */
1476 /* ?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ */
1477 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1478 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1479 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Pninc
, 4)
1480 wchar_t* __thiscall
basic_streambuf_wchar__Pninc(basic_streambuf_wchar
*this)
1482 TRACE("(%p)\n", this);
1484 return (*this->pwpos
)++;
1487 /* ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
1488 /* ?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
1489 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
1490 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
1491 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_underflow
, 4)
1492 #define call_basic_streambuf_wchar_underflow(this) CALL_VTBL_FUNC(this, 16, \
1493 unsigned short, (basic_streambuf_wchar*), (this))
1494 unsigned short __thiscall
basic_streambuf_wchar_underflow(basic_streambuf_wchar
*this)
1496 TRACE("(%p)\n", this);
1500 /* ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGXZ */
1501 /* ?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ */
1502 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
1503 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
1504 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_uflow
, 4)
1505 #define call_basic_streambuf_wchar_uflow(this) CALL_VTBL_FUNC(this, 20, \
1506 unsigned short, (basic_streambuf_wchar*), (this))
1507 unsigned short __thiscall
basic_streambuf_wchar_uflow(basic_streambuf_wchar
*this)
1511 TRACE("(%p)\n", this);
1513 if(call_basic_streambuf_wchar_underflow(this)==WEOF
)
1516 ret
= **this->prpos
;
1522 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WIH@Z */
1523 /* ?_Xsgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_K_J@Z */
1524 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGIH@Z */
1525 /* ?_Xsgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_K_J@Z */
1526 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Xsgetn_s
, 16)
1527 #define call_basic_streambuf_wchar__Xsgetn_s(this, ptr, size, count) CALL_VTBL_FUNC(this, 28, \
1528 streamsize, (basic_streambuf_wchar*, wchar_t*, MSVCP_size_t, streamsize), (this, ptr, size, count))
1529 streamsize __thiscall
basic_streambuf_wchar__Xsgetn_s(basic_streambuf_wchar
*this, wchar_t *ptr
, MSVCP_size_t size
, streamsize count
)
1531 streamsize copied
, chunk
;
1533 TRACE("(%p %p %lu %ld)\n", this, ptr
, size
, count
);
1535 for(copied
=0; copied
<count
&& size
;) {
1536 chunk
= basic_streambuf_wchar__Gnavail(this);
1537 if(chunk
> count
-copied
)
1538 chunk
= count
-copied
;
1541 memcpy_s(ptr
+copied
, size
, *this->prpos
, chunk
);
1542 *this->prpos
+= chunk
;
1543 *this->prsize
-= chunk
;
1546 }else if((ptr
[copied
] = call_basic_streambuf_wchar_uflow(this)) != WEOF
) {
1557 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPA_WIH@Z */
1558 /* ?_Sgetn_s@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_K_J@Z */
1559 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGIH@Z */
1560 /* ?_Sgetn_s@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_K_J@Z */
1561 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Sgetn_s
, 16)
1562 streamsize __thiscall
basic_streambuf_wchar__Sgetn_s(basic_streambuf_wchar
*this, wchar_t *ptr
, MSVCP_size_t size
, streamsize count
)
1564 TRACE("(%p %p %lu %ld)\n", this, ptr
, size
, count
);
1565 return call_basic_streambuf_wchar__Xsgetn_s(this, ptr
, size
, count
);
1568 /* ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1569 /* ?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1570 /* ?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1571 /* ?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1572 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Unlock
, 4)
1573 void __thiscall
basic_streambuf_wchar__Unlock(basic_streambuf_wchar
*this)
1575 TRACE("(%p)\n", this);
1576 mutex_unlock(&this->lock
);
1579 /* ?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1580 /* ?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1581 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1582 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1583 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_eback
, 4)
1584 wchar_t* __thiscall
basic_streambuf_wchar_eback(const basic_streambuf_wchar
*this)
1586 TRACE("(%p)\n", this);
1587 return *this->prbuf
;
1590 /* ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1591 /* ?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1592 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1593 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1594 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gptr
, 4)
1595 wchar_t* __thiscall
basic_streambuf_wchar_gptr(const basic_streambuf_wchar
*this)
1597 TRACE("(%p)\n", this);
1598 return *this->prpos
;
1601 /* ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1602 /* ?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1603 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1604 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1605 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_egptr
, 4)
1606 wchar_t* __thiscall
basic_streambuf_wchar_egptr(const basic_streambuf_wchar
*this)
1608 TRACE("(%p)\n", this);
1609 return *this->prpos
+*this->prsize
;
1612 /* ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1613 /* ?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1614 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1615 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1616 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_epptr
, 4)
1617 wchar_t* __thiscall
basic_streambuf_wchar_epptr(const basic_streambuf_wchar
*this)
1619 TRACE("(%p)\n", this);
1620 return *this->pwpos
+*this->pwsize
;
1623 /* ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z */
1624 /* ?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z */
1625 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
1626 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
1627 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gbump
, 8)
1628 void __thiscall
basic_streambuf_wchar_gbump(basic_streambuf_wchar
*this, int off
)
1630 TRACE("(%p %d)\n", this, off
);
1631 *this->prpos
+= off
;
1632 *this->prsize
-= off
;
1635 /* ?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QBE?AVlocale@2@XZ */
1636 /* ?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEBA?AVlocale@2@XZ */
1637 /* ?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QBE?AVlocale@2@XZ */
1638 /* ?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEBA?AVlocale@2@XZ */
1639 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_getloc
, 8)
1640 locale
* __thiscall
basic_streambuf_wchar_getloc(const basic_streambuf_wchar
*this, locale
*ret
)
1642 TRACE("(%p)\n", this);
1643 return locale_copy_ctor(ret
, this->loc
);
1646 /* ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEXABVlocale@2@@Z */
1647 /* ?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z */
1648 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEXABVlocale@2@@Z */
1649 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z */
1650 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_imbue
, 8)
1651 #define call_basic_streambuf_wchar_imbue(this, loc) CALL_VTBL_FUNC(this, 52, \
1652 void, (basic_streambuf_wchar*, const locale*), (this, loc))
1653 void __thiscall
basic_streambuf_wchar_imbue(basic_streambuf_wchar
*this, const locale
*loc
)
1655 TRACE("(%p %p)\n", this, loc
);
1658 /* ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
1659 /* ?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
1660 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
1661 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
1662 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_overflow
, 8)
1663 #define call_basic_streambuf_wchar_overflow(this, ch) CALL_VTBL_FUNC(this, 4, \
1664 unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
1665 unsigned short __thiscall
basic_streambuf_wchar_overflow(basic_streambuf_wchar
*this, unsigned short ch
)
1667 TRACE("(%p %d)\n", this, ch
);
1671 /* ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEGG@Z */
1672 /* ?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z */
1673 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
1674 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
1675 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbackfail
, 8)
1676 #define call_basic_streambuf_wchar_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, \
1677 unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
1678 unsigned short __thiscall
basic_streambuf_wchar_pbackfail(basic_streambuf_wchar
*this, unsigned short ch
)
1680 TRACE("(%p %d)\n", this, ch
);
1684 /* ?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1685 /* ?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1686 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1687 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1688 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbase
, 4)
1689 wchar_t* __thiscall
basic_streambuf_wchar_pbase(const basic_streambuf_wchar
*this)
1691 TRACE("(%p)\n", this);
1692 return *this->pwbuf
;
1695 /* ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXH@Z */
1696 /* ?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z */
1697 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
1698 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
1699 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbump
, 8)
1700 void __thiscall
basic_streambuf_wchar_pbump(basic_streambuf_wchar
*this, int off
)
1702 TRACE("(%p %d)\n", this, off
);
1703 *this->pwpos
+= off
;
1704 *this->pwsize
-= off
;
1707 /* ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IBEPA_WXZ */
1708 /* ?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ */
1709 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1710 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1711 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pptr
, 4)
1712 wchar_t* __thiscall
basic_streambuf_wchar_pptr(const basic_streambuf_wchar
*this)
1714 TRACE("(%p)\n", this);
1715 return *this->pwpos
;
1718 /* ?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
1719 /* ?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
1720 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
1721 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
1722 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubimbue
, 12)
1723 locale
* __thiscall
basic_streambuf_wchar_pubimbue(basic_streambuf_wchar
*this, locale
*ret
, const locale
*loc
)
1725 TRACE("(%p %p)\n", this, loc
);
1726 memcpy(ret
, this->loc
, sizeof(locale
));
1727 call_basic_streambuf_wchar_imbue(this, loc
);
1728 locale_copy_ctor(this->loc
, loc
);
1732 /* ?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
1733 /* ?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
1734 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
1735 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
1736 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekoff
, 20)
1737 #define call_basic_streambuf_wchar_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 36, \
1738 fpos_int*, (basic_streambuf_wchar*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
1739 fpos_int
* __thiscall
basic_streambuf_wchar_seekoff(basic_streambuf_wchar
*this,
1740 fpos_int
*ret
, streamoff off
, int way
, int mode
)
1742 TRACE("(%p %ld %d %d)\n", this, off
, way
, mode
);
1749 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
1750 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
1751 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
1752 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
1753 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff
, 20)
1754 fpos_int
* __thiscall
basic_streambuf_wchar_pubseekoff(basic_streambuf_wchar
*this,
1755 fpos_int
*ret
, streamoff off
, int way
, int mode
)
1757 TRACE("(%p %ld %d %d)\n", this, off
, way
, mode
);
1758 return call_basic_streambuf_wchar_seekoff(this, ret
, off
, way
, mode
);
1761 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
1762 /* ?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
1763 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
1764 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
1765 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff_old
, 20)
1766 fpos_int
* __thiscall
basic_streambuf_wchar_pubseekoff_old(basic_streambuf_wchar
*this,
1767 fpos_int
*ret
, streamoff off
, unsigned int way
, unsigned int mode
)
1769 TRACE("(%p %ld %d %d)\n", this, off
, way
, mode
);
1770 return basic_streambuf_wchar_pubseekoff(this, ret
, off
, way
, mode
);
1773 /* ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
1774 /* ?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
1775 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
1776 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
1777 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekpos
, 36)
1778 #define call_basic_streambuf_wchar_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 40, \
1779 fpos_int*, (basic_streambuf_wchar*, fpos_int*, fpos_int, int), (this, ret, pos, mode))
1780 fpos_int
* __thiscall
basic_streambuf_wchar_seekpos(basic_streambuf_wchar
*this,
1781 fpos_int
*ret
, fpos_int pos
, int mode
)
1783 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos
), mode
);
1790 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
1791 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
1792 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
1793 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
1794 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekpos
, 36)
1795 fpos_int
* __thiscall
basic_streambuf_wchar_pubseekpos(basic_streambuf_wchar
*this,
1796 fpos_int
*ret
, fpos_int pos
, int mode
)
1798 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos
), mode
);
1799 return call_basic_streambuf_wchar_seekpos(this, ret
, pos
, mode
);
1802 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
1803 /* ?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
1804 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
1805 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
1806 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekpos_old
, 36)
1807 fpos_int
* __thiscall
basic_streambuf_wchar_pubseekpos_old(basic_streambuf_wchar
*this,
1808 fpos_int
*ret
, fpos_int pos
, unsigned int mode
)
1810 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos
), mode
);
1811 return basic_streambuf_wchar_pubseekpos(this, ret
, pos
, mode
);
1814 /* ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEPAV12@PA_WH@Z */
1815 /* ?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV12@PEA_W_J@Z */
1816 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEPAV12@PAGH@Z */
1817 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAPEAV12@PEAG_J@Z */
1818 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setbuf
, 12)
1819 #define call_basic_streambuf_wchar_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 44, \
1820 basic_streambuf_wchar*, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, buf, count))
1821 basic_streambuf_wchar
* __thiscall
basic_streambuf_wchar_setbuf(basic_streambuf_wchar
*this, wchar_t *buf
, streamsize count
)
1823 TRACE("(%p %p %ld)\n", this, buf
, count
);
1827 /* ?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEPAV12@PA_WH@Z */
1828 /* ?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEA_W_J@Z */
1829 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PAGH@Z */
1830 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEAG_J@Z */
1831 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsetbuf
, 12)
1832 basic_streambuf_wchar
* __thiscall
basic_streambuf_wchar_pubsetbuf(basic_streambuf_wchar
*this, wchar_t *buf
, streamsize count
)
1834 TRACE("(%p %p %ld)\n", this, buf
, count
);
1835 return call_basic_streambuf_wchar_setbuf(this, buf
, count
);
1838 /* ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
1839 /* ?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ */
1840 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
1841 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAHXZ */
1842 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sync
, 4)
1843 #define call_basic_streambuf_wchar_sync(this) CALL_VTBL_FUNC(this, 48, \
1844 int, (basic_streambuf_wchar*), (this))
1845 int __thiscall
basic_streambuf_wchar_sync(basic_streambuf_wchar
*this)
1847 TRACE("(%p)\n", this);
1851 /* ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
1852 /* ?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAHXZ */
1853 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
1854 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHXZ */
1855 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsync
, 4)
1856 int __thiscall
basic_streambuf_wchar_pubsync(basic_streambuf_wchar
*this)
1858 TRACE("(%p)\n", this);
1859 return call_basic_streambuf_wchar_sync(this);
1862 /* ?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPA_WH@Z */
1863 /* ?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z */
1864 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGH@Z */
1865 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z */
1866 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetn
, 12)
1867 streamsize __thiscall
basic_streambuf_wchar_sgetn(basic_streambuf_wchar
*this, wchar_t *ptr
, streamsize count
)
1869 TRACE("(%p %p %ld)\n", this, ptr
, count
);
1870 return call_basic_streambuf_wchar__Xsgetn_s(this, ptr
, -1, count
);
1873 /* ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHXZ */
1874 /* ?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JXZ */
1875 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
1876 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JXZ */
1877 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_showmanyc
, 4)
1878 #define call_basic_streambuf_wchar_showmanyc(this) CALL_VTBL_FUNC(this, 12, \
1879 streamsize, (basic_streambuf_wchar*), (this))
1880 streamsize __thiscall
basic_streambuf_wchar_showmanyc(basic_streambuf_wchar
*this)
1882 TRACE("(%p)\n", this);
1886 /* ?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
1887 /* ?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JXZ */
1888 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
1889 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JXZ */
1890 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_in_avail
, 4)
1891 streamsize __thiscall
basic_streambuf_wchar_in_avail(basic_streambuf_wchar
*this)
1895 TRACE("(%p)\n", this);
1897 ret
= basic_streambuf_wchar__Gnavail(this);
1898 return ret
? ret
: call_basic_streambuf_wchar_showmanyc(this);
1901 /* ?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z */
1902 /* ?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z */
1903 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
1904 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z */
1905 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputbackc
, 8)
1906 unsigned short __thiscall
basic_streambuf_wchar_sputbackc(basic_streambuf_wchar
*this, wchar_t ch
)
1908 TRACE("(%p %d)\n", this, ch
);
1909 if(*this->prpos
&& *this->prpos
>*this->prbuf
&& (*this->prpos
)[-1]==ch
) {
1915 return call_basic_streambuf_wchar_pbackfail(this, ch
);
1918 /* ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEG_W@Z */
1919 /* ?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z */
1920 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
1921 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHG@Z */
1922 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputc
, 8)
1923 unsigned short __thiscall
basic_streambuf_wchar_sputc(basic_streambuf_wchar
*this, wchar_t ch
)
1925 TRACE("(%p %d)\n", this, ch
);
1926 return basic_streambuf_wchar__Pnavail(this) ?
1927 (*basic_streambuf_wchar__Pninc(this) = ch
) :
1928 call_basic_streambuf_wchar_overflow(this, ch
);
1931 /* ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
1932 /* ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
1933 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
1934 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
1935 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sungetc
, 4)
1936 unsigned short __thiscall
basic_streambuf_wchar_sungetc(basic_streambuf_wchar
*this)
1938 TRACE("(%p)\n", this);
1939 if(*this->prpos
&& *this->prpos
>*this->prbuf
) {
1942 return **this->prpos
;
1945 return call_basic_streambuf_wchar_pbackfail(this, WEOF
);
1948 /* ?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
1949 /* ?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
1950 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1951 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1952 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_stossc
, 4)
1953 void __thiscall
basic_streambuf_wchar_stossc(basic_streambuf_wchar
*this)
1955 TRACE("(%p)\n", this);
1956 if(basic_streambuf_wchar__Gnavail(this))
1957 basic_streambuf_wchar__Gninc(this);
1959 call_basic_streambuf_wchar_uflow(this);
1962 /* ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
1963 /* ?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
1964 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
1965 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
1966 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sbumpc
, 4)
1967 unsigned short __thiscall
basic_streambuf_wchar_sbumpc(basic_streambuf_wchar
*this)
1969 TRACE("(%p)\n", this);
1970 return basic_streambuf_wchar__Gnavail(this) ?
1971 *basic_streambuf_wchar__Gninc(this) : call_basic_streambuf_wchar_uflow(this);
1974 /* ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
1975 /* ?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
1976 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
1977 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
1978 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetc
, 4)
1979 unsigned short __thiscall
basic_streambuf_wchar_sgetc(basic_streambuf_wchar
*this)
1981 TRACE("(%p)\n", this);
1982 return basic_streambuf_wchar__Gnavail(this) ?
1983 *basic_streambuf_wchar_gptr(this) : call_basic_streambuf_wchar_underflow(this);
1986 /* ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
1987 /* ?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
1988 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
1989 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
1990 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_snextc
, 4)
1991 unsigned short __thiscall
basic_streambuf_wchar_snextc(basic_streambuf_wchar
*this)
1993 TRACE("(%p)\n", this);
1995 if(basic_streambuf_wchar__Gnavail(this) > 1)
1996 return *basic_streambuf_wchar__Gnpreinc(this);
1997 return basic_streambuf_wchar_sbumpc(this)==WEOF
?
1998 WEOF
: basic_streambuf_wchar_sgetc(this);
2001 /* ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPA_WH@Z */
2002 /* ?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_J@Z */
2003 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGH@Z */
2004 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_J@Z */
2005 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsgetn
, 12)
2006 #define call_basic_streambuf_wchar_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, \
2007 streamsize, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, ptr, count))
2008 streamsize __thiscall
basic_streambuf_wchar_xsgetn(basic_streambuf_wchar
*this, wchar_t *ptr
, streamsize count
)
2010 TRACE("(%p %p %ld)\n", this, ptr
, count
);
2011 return call_basic_streambuf_wchar__Xsgetn_s(this, ptr
, -1, count
);
2014 /* ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MAEHPB_WH@Z */
2015 /* ?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEB_W_J@Z */
2016 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPBGH@Z */
2017 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEBG_J@Z */
2018 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsputn
, 12)
2019 #define call_basic_streambuf_wchar_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 32, \
2020 streamsize, (basic_streambuf_wchar*, const wchar_t*, streamsize), (this, ptr, count))
2021 streamsize __thiscall
basic_streambuf_wchar_xsputn(basic_streambuf_wchar
*this, const wchar_t *ptr
, streamsize count
)
2023 streamsize copied
, chunk
;
2025 TRACE("(%p %p %ld)\n", this, ptr
, count
);
2027 for(copied
=0; copied
<count
;) {
2028 chunk
= basic_streambuf_wchar__Pnavail(this);
2029 if(chunk
> count
-copied
)
2030 chunk
= count
-copied
;
2033 memcpy(*this->pwpos
, ptr
+copied
, chunk
);
2034 *this->pwpos
+= chunk
;
2035 *this->pwsize
-= chunk
;
2037 }else if(call_basic_streambuf_wchar_overflow(this, ptr
[copied
]) != WEOF
) {
2047 /* ?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEHPB_WH@Z */
2048 /* ?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEB_W_J@Z */
2049 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPBGH@Z */
2050 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEBG_J@Z */
2051 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputn
, 12)
2052 streamsize __thiscall
basic_streambuf_wchar_sputn(basic_streambuf_wchar
*this, const wchar_t *ptr
, streamsize count
)
2054 TRACE("(%p %p %ld)\n", this, ptr
, count
);
2055 return call_basic_streambuf_wchar_xsputn(this, ptr
, count
);
2058 /* ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
2059 /* ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
2060 int basic_filebuf_char__Init__Stinit
= 0;
2062 /* ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
2063 /* ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
2064 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Init
, 12)
2065 void __thiscall
basic_filebuf_char__Init(basic_filebuf_char
*this, FILE *file
, basic_filebuf__Initfl which
)
2067 TRACE("(%p %p %d)\n", this, file
, which
);
2070 this->wrotesome
= FALSE
;
2071 this->state
= basic_filebuf_char__Init__Stinit
;
2072 this->close
= (which
== INITFL_open
);
2075 basic_streambuf_char__Init_empty(&this->base
);
2077 basic_streambuf_char__Init(&this->base
, &file
->_base
, &file
->_ptr
,
2078 &file
->_cnt
, &file
->_base
, &file
->_ptr
, &file
->_cnt
);
2081 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAV?$codecvt@DDH@2@@Z */
2082 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$codecvt@DDH@2@@Z */
2083 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Initcvt
, 8)
2084 void __thiscall
basic_filebuf_char__Initcvt(basic_filebuf_char
*this, codecvt_char
*cvt
)
2086 TRACE("(%p %p)\n", this, cvt
);
2088 if(codecvt_base_always_noconv(&cvt
->base
)) {
2091 basic_streambuf_char__Init_empty(&this->base
);
2096 /* ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAE_NXZ */
2097 /* ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ */
2098 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Endwrite
, 4)
2099 MSVCP_bool __thiscall
basic_filebuf_char__Endwrite(basic_filebuf_char
*this)
2101 TRACE("(%p)\n", this);
2103 if(!this->wrotesome
|| !this->cvt
)
2107 if(call_basic_streambuf_char_overflow(&this->base
, EOF
) == EOF
)
2111 /* TODO: check if we need a dynamic buffer here */
2116 ret
= codecvt_char_unshift(this->cvt
, &this->state
, buf
, buf
+sizeof(buf
), &next
);
2119 this->wrotesome
= FALSE
;
2121 case CODECVT_partial
:
2122 if(!fwrite(buf
, next
-buf
, 1, this->file
))
2127 case CODECVT_noconv
:
2128 if(call_basic_streambuf_char_overflow(&this->base
, EOF
) == EOF
)
2137 /* ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ */
2138 /* ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ */
2139 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_close
, 4)
2140 basic_filebuf_char
* __thiscall
basic_filebuf_char_close(basic_filebuf_char
*this)
2142 basic_filebuf_char
*ret
= this;
2144 TRACE("(%p)\n", this);
2149 /* TODO: handle exceptions */
2150 if(!basic_filebuf_char__Endwrite(this))
2152 if(!fclose(this->file
))
2155 basic_filebuf_char__Init(this, NULL
, INITFL_close
);
2159 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
2160 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
2161 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor_file
, 8)
2162 basic_filebuf_char
* __thiscall
basic_filebuf_char_ctor_file(basic_filebuf_char
*this, FILE *file
)
2164 TRACE("(%p %p)\n", this, file
);
2166 basic_streambuf_char_ctor(&this->base
);
2167 this->base
.vtable
= &MSVCP_basic_filebuf_char_vtable
;
2169 basic_filebuf_char__Init(this, file
, INITFL_new
);
2173 /* ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
2174 /* ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
2175 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor
, 4)
2176 basic_filebuf_char
* __thiscall
basic_filebuf_char_ctor(basic_filebuf_char
*this)
2178 return basic_filebuf_char_ctor_file(this, NULL
);
2181 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
2182 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
2183 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor_uninitialized
, 8)
2184 basic_filebuf_char
* __thiscall
basic_filebuf_char_ctor_uninitialized(basic_filebuf_char
*this, int uninitialized
)
2186 TRACE("(%p %d)\n", this, uninitialized
);
2188 basic_streambuf_char_ctor(&this->base
);
2189 this->base
.vtable
= &MSVCP_basic_filebuf_char_vtable
;
2193 /* ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
2194 /* ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
2195 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_dtor
, 4)
2196 void __thiscall
basic_filebuf_char_dtor(basic_filebuf_char
*this)
2198 TRACE("(%p)\n", this);
2201 basic_filebuf_char_close(this);
2202 basic_streambuf_char_dtor(&this->base
);
2205 DEFINE_THISCALL_WRAPPER(MSVCP_basic_filebuf_char_vector_dtor
, 8)
2206 basic_filebuf_char
* __thiscall
MSVCP_basic_filebuf_char_vector_dtor(basic_filebuf_char
*this, unsigned int flags
)
2208 TRACE("(%p %x)\n", this, flags
);
2210 /* we have an array, with the number of elements stored before the first object */
2211 int i
, *ptr
= (int *)this-1;
2213 for(i
=*ptr
-1; i
>=0; i
--)
2214 basic_filebuf_char_dtor(this+i
);
2215 MSVCRT_operator_delete(ptr
);
2217 basic_filebuf_char_dtor(this);
2219 MSVCRT_operator_delete(this);
2225 /* ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QBE_NXZ */
2226 /* ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
2227 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_is_open
, 4)
2228 MSVCP_bool __thiscall
basic_filebuf_char_is_open(const basic_filebuf_char
*this)
2230 TRACE("(%p)\n", this);
2231 return this->file
!= NULL
;
2234 /* ?_Fiopen@std@@YAPAU_iobuf@@PB_WHH@Z */
2235 /* ?_Fiopen@std@@YAPEAU_iobuf@@PEB_WHH@Z */
2236 FILE* __cdecl
_Fiopen_wchar(const wchar_t *name
, int mode
, int prot
)
2238 static const wchar_t rW
[] = {'r',0};
2239 static const struct {
2241 const wchar_t str
[4];
2242 const wchar_t str_bin
[4];
2244 {OPENMODE_out
, {'w',0}, {'w','b',0}},
2245 {OPENMODE_out
|OPENMODE_app
, {'a',0}, {'a','b',0}},
2246 {OPENMODE_app
, {'a',0}, {'a','b',0}},
2247 {OPENMODE_out
|OPENMODE_trunc
, {'w',0}, {'w','b',0}},
2248 {OPENMODE_in
, {'r',0}, {'r','b',0}},
2249 {OPENMODE_in
|OPENMODE_out
, {'r','+',0}, {'r','+','b',0}},
2250 {OPENMODE_in
|OPENMODE_out
|OPENMODE_trunc
, {'w','+',0}, {'w','+','b',0}},
2251 {OPENMODE_in
|OPENMODE_out
|OPENMODE_app
, {'a','+',0}, {'a','+','b',0}},
2252 {OPENMODE_in
|OPENMODE_app
, {'a','+',0}, {'a','+','b',0}}
2255 int real_mode
= mode
& ~(OPENMODE_ate
|OPENMODE__Nocreate
|OPENMODE__Noreplace
|OPENMODE_binary
);
2259 TRACE("(%s %d %d)\n", debugstr_w(name
), mode
, prot
);
2261 for(mode_idx
=0; mode_idx
<sizeof(str_mode
)/sizeof(str_mode
[0]); mode_idx
++)
2262 if(str_mode
[mode_idx
].mode
== real_mode
)
2264 if(mode_idx
== sizeof(str_mode
)/sizeof(str_mode
[0]))
2267 if((mode
& OPENMODE__Nocreate
) && !(f
= _wfopen(name
, rW
)))
2272 if((mode
& OPENMODE__Noreplace
) && (mode
& (OPENMODE_out
|OPENMODE_app
))
2273 && (f
= _wfopen(name
, rW
))) {
2278 f
= _wfsopen(name
, (mode
& OPENMODE_binary
) ? str_mode
[mode_idx
].str_bin
2279 : str_mode
[mode_idx
].str
, prot
);
2283 if((mode
& OPENMODE_ate
) && fseek(f
, 0, SEEK_END
)) {
2291 /* ?_Fiopen@std@@YAPAU_iobuf@@PBDHH@Z */
2292 /* ?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z */
2293 FILE* __cdecl
_Fiopen(const char *name
, int mode
, int prot
)
2295 wchar_t nameW
[FILENAME_MAX
];
2297 TRACE("(%s %d %d)\n", name
, mode
, prot
);
2299 if(mbstowcs_s(NULL
, nameW
, FILENAME_MAX
, name
, FILENAME_MAX
-1) != 0)
2301 return _Fiopen_wchar(nameW
, mode
, prot
);
2304 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PB_WHH@Z */
2305 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEB_WHH@Z */
2306 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBGHH@Z */
2307 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBGHH@Z */
2308 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_wchar
, 16)
2309 basic_filebuf_char
* __thiscall
basic_filebuf_char_open_wchar(basic_filebuf_char
*this, const wchar_t *name
, int mode
, int prot
)
2313 TRACE("(%p %s %d %d)\n", this, debugstr_w(name
), mode
, prot
);
2315 if(basic_filebuf_char_is_open(this))
2318 if(!(f
= _Fiopen_wchar(name
, mode
, prot
)))
2321 basic_filebuf_char__Init(this, f
, INITFL_open
);
2322 basic_filebuf_char__Initcvt(this, codecvt_char_use_facet(this->base
.loc
));
2326 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PB_WI@Z */
2327 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEB_WI@Z */
2328 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBGI@Z */
2329 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBGI@Z */
2330 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_wchar_mode
, 12)
2331 basic_filebuf_char
* __thiscall
basic_filebuf_char_open_wchar_mode(basic_filebuf_char
*this, const wchar_t *name
, unsigned int mode
)
2333 return basic_filebuf_char_open_wchar(this, name
, mode
, SH_DENYNO
);
2336 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z */
2337 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z */
2338 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open
, 16)
2339 basic_filebuf_char
* __thiscall
basic_filebuf_char_open(basic_filebuf_char
*this, const char *name
, int mode
, int prot
)
2341 wchar_t nameW
[FILENAME_MAX
];
2343 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
2345 if(mbstowcs_s(NULL
, nameW
, FILENAME_MAX
, name
, FILENAME_MAX
-1) != 0)
2347 return basic_filebuf_char_open_wchar(this, nameW
, mode
, prot
);
2350 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDI@Z */
2351 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDI@Z */
2352 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_mode
, 12)
2353 basic_filebuf_char
* __thiscall
basic_filebuf_char_open_mode(basic_filebuf_char
*this, const char *name
, unsigned int mode
)
2355 return basic_filebuf_char_open(this, name
, mode
, SH_DENYNO
);
2358 /* ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
2359 /* ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
2360 #define call_basic_filebuf_char_overflow(this, c) CALL_VTBL_FUNC(this, 4, \
2361 int, (basic_filebuf_char*, int), (this, c))
2362 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_overflow
, 8)
2363 int __thiscall
basic_filebuf_char_overflow(basic_filebuf_char
*this, int c
)
2365 char buf
[8], *dyn_buf
;
2366 char ch
= c
, *to_next
;
2367 const char *from_next
;
2371 TRACE("(%p %d)\n", this, c
);
2373 if(!basic_filebuf_char_is_open(this))
2379 return fwrite(&ch
, sizeof(char), 1, this->file
) ? c
: EOF
;
2383 ret
= codecvt_char_out(this->cvt
, &this->state
, from_next
, &ch
+1,
2384 &from_next
, buf
, buf
+sizeof(buf
), &to_next
);
2387 case CODECVT_partial
:
2392 if(!fwrite(buf
, to_next
-buf
, 1, this->file
))
2394 if(ret
== CODECVT_partial
)
2397 case CODECVT_noconv
:
2398 return fwrite(&ch
, sizeof(char), 1, this->file
) ? c
: EOF
;
2404 max_size
= codecvt_base_max_length(&this->cvt
->base
);
2405 dyn_buf
= malloc(max_size
);
2409 ret
= codecvt_char_out(this->cvt
, &this->state
, from_next
, &ch
+1,
2410 &from_next
, dyn_buf
, dyn_buf
+max_size
, &to_next
);
2414 ret
= fwrite(dyn_buf
, to_next
-dyn_buf
, 1, this->file
);
2416 return ret
? c
: EOF
;
2417 case CODECVT_partial
:
2418 ERR("buffer should be big enough to store all output\n");
2426 /* ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
2427 /* ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
2428 #define call_basic_filebuf_char_pbackfail(this, c) CALL_VTBL_FUNC(this, 8, \
2429 int, (basic_filebuf_char*, int), (this, c))
2430 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_pbackfail
, 8)
2431 int __thiscall
basic_filebuf_char_pbackfail(basic_filebuf_char
*this, int c
)
2433 TRACE("(%p %d)\n", this, c
);
2435 if(!basic_filebuf_char_is_open(this))
2438 if(basic_streambuf_char_gptr(&this->base
)>basic_streambuf_char_eback(&this->base
)
2439 && (c
==EOF
|| basic_streambuf_char_gptr(&this->base
)[-1]==(char)c
)) {
2440 basic_streambuf_char__Gndec(&this->base
);
2441 return c
==EOF
? !c
: c
;
2442 }else if(c
!=EOF
&& !this->cvt
) {
2443 return ungetc(c
, this->file
);
2449 /* ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2450 /* ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2451 #define call_basic_filebuf_char_uflow(this) CALL_VTBL_FUNC(this, 20, \
2452 int, (basic_filebuf_char*), (this))
2453 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_uflow
, 4)
2454 int __thiscall
basic_filebuf_char_uflow(basic_filebuf_char
*this)
2456 char ch
, buf
[128], *to_next
;
2457 const char *buf_next
;
2460 TRACE("(%p)\n", this);
2462 if(!basic_filebuf_char_is_open(this))
2465 if(basic_streambuf_char_gptr(&this->base
) < basic_streambuf_char_egptr(&this->base
))
2466 return *basic_streambuf_char__Gninc(&this->base
);
2468 c
= fgetc(this->file
);
2469 if(!this->cvt
|| !c
)
2473 for(i
=0; i
< sizeof(buf
)/sizeof(char); i
++) {
2476 switch(codecvt_char_in(this->cvt
, &this->state
, buf_next
,
2477 buf
+i
+1, &buf_next
, &ch
, &ch
+1, &to_next
)) {
2478 case CODECVT_partial
:
2480 if(to_next
== &ch
) {
2481 c
= fgetc(this->file
);
2487 for(i
--; i
>=buf_next
-buf
; i
--)
2488 ungetc(buf
[i
], this->file
);
2490 case CODECVT_noconv
:
2497 FIXME("buffer is to small\n");
2501 /* ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2502 /* ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2503 #define call_basic_filebuf_char_underflow(this) CALL_VTBL_FUNC(this, 16, \
2504 int, (basic_filebuf_char*), (this))
2505 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_underflow
, 4)
2506 int __thiscall
basic_filebuf_char_underflow(basic_filebuf_char
*this)
2510 TRACE("(%p)\n", this);
2512 if(basic_streambuf_char_gptr(&this->base
) < basic_streambuf_char_egptr(&this->base
))
2513 return *basic_streambuf_char_gptr(&this->base
);
2515 ret
= call_basic_filebuf_char_uflow(this);
2517 ret
= call_basic_filebuf_char_pbackfail(this, ret
);
2521 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
2522 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
2523 #define call_basic_filebuf_char_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 36, \
2524 fpos_int*, (basic_filebuf_char*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
2525 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_seekoff
, 20)
2526 fpos_int
* __thiscall
basic_filebuf_char_seekoff(basic_filebuf_char
*this,
2527 fpos_int
*ret
, streamoff off
, int way
, int mode
)
2531 TRACE("(%p %p %ld %d %d)\n", this, ret
, off
, way
, mode
);
2533 if(!basic_filebuf_char_is_open(this) || !basic_filebuf_char__Endwrite(this)
2534 || fseek(this->file
, off
, way
)) {
2541 fgetpos(this->file
, &pos
);
2544 ret
->state
= this->state
;
2548 /* ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2549 /* ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2550 #define call_basic_filebuf_char_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 40, \
2551 fpos_int*, (basic_filebuf_char*, fpos_int*, fpos_int, mode), (this, ret, pos, mode))
2552 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_seekpos
, 36)
2553 fpos_int
* __thiscall
basic_filebuf_char_seekpos(basic_filebuf_char
*this,
2554 fpos_int
*ret
, fpos_int pos
, int mode
)
2558 TRACE("(%p %p %s %d)\n", this, ret
, debugstr_fpos_int(&pos
), mode
);
2560 if(!basic_filebuf_char_is_open(this) || !basic_filebuf_char__Endwrite(this)
2561 || fseek(this->file
, (LONG
)pos
.pos
, SEEK_SET
)
2562 || (pos
.off
&& fseek(this->file
, pos
.off
, SEEK_CUR
))) {
2569 fgetpos(this->file
, &fpos
);
2572 ret
->state
= this->state
;
2576 /* ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PADH@Z */
2577 /* ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z */
2578 #define call_basic_filebuf_char_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 44, \
2579 basic_streambuf_char*, (basic_filebuf_char*, char*, streamsize), (this, buf, count))
2580 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_setbuf
, 12)
2581 basic_streambuf_char
* __thiscall
basic_filebuf_char_setbuf(basic_filebuf_char
*this, char *buf
, streamsize count
)
2583 TRACE("(%p %p %ld)\n", this, buf
, count
);
2585 if(!basic_filebuf_char_is_open(this))
2588 if(setvbuf(this->file
, buf
, (buf
==NULL
&& count
==0) ? _IONBF
: _IOFBF
, count
))
2591 basic_filebuf_char__Init(this, this->file
, INITFL_open
);
2595 /* ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2596 /* ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2597 #define call_basic_filebuf_char_sync(this) CALL_VTBL_FUNC(this, 48, \
2598 int, (basic_filebuf_char*), (this))
2599 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_sync
, 4)
2600 int __thiscall
basic_filebuf_char_sync(basic_filebuf_char
*this)
2602 TRACE("(%p)\n", this);
2604 if(!basic_filebuf_char_is_open(this))
2607 if(call_basic_filebuf_char_overflow(this, EOF
) == EOF
)
2609 return fflush(this->file
);
2612 /* ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z */
2613 /* ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z */
2614 #define call_basic_filebuf_char_imbue(this, loc) CALL_VTBL_FUNC(this, 52, \
2615 void, (basic_filebuf_char*, const locale*), (this, loc))
2616 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_imbue
, 8)
2617 void __thiscall
basic_filebuf_char_imbue(basic_filebuf_char
*this, const locale
*loc
)
2619 TRACE("(%p %p)\n", this, loc
);
2620 basic_filebuf_char__Initcvt(this, codecvt_char_use_facet(loc
));
2623 /* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEHH@Z */
2624 /* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAHH@Z */
2625 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Getstate
, 8)
2626 int __thiscall
basic_stringbuf_char__Getstate(basic_stringbuf_char
*this, IOSB_openmode mode
)
2630 if(!(mode
& OPENMODE_in
))
2631 state
|= STRINGBUF_no_read
;
2633 if(!(mode
& OPENMODE_out
))
2634 state
|= STRINGBUF_no_write
;
2636 if(mode
& OPENMODE_ate
)
2637 state
|= STRINGBUF_at_end
;
2639 if(mode
& OPENMODE_app
)
2640 state
|= STRINGBUF_append
;
2645 /* ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXPBDIH@Z */
2646 /* ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAXPEBD_KH@Z */
2647 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Init
, 16)
2648 void __thiscall
basic_stringbuf_char__Init(basic_stringbuf_char
*this, const char *str
, MSVCP_size_t count
, int state
)
2650 TRACE("(%p, %p, %ld, %d)\n", this, str
, count
, state
);
2652 basic_streambuf_char__Init_empty(&this->base
);
2654 this->state
= state
;
2655 this->seekhigh
= NULL
;
2658 char *buf
= MSVCRT_operator_new(count
);
2660 ERR("Out of memory\n");
2661 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
2664 memcpy(buf
, str
, count
);
2665 this->seekhigh
= buf
+ count
;
2667 this->state
|= STRINGBUF_allocated
;
2669 if(!(state
& STRINGBUF_no_read
))
2670 basic_streambuf_char_setg(&this->base
, buf
, buf
, buf
+ count
);
2672 if(!(state
& STRINGBUF_no_write
)) {
2673 basic_streambuf_char_setp_next(&this->base
, buf
, (state
& STRINGBUF_at_end
) ? buf
+ count
: buf
, buf
+ count
);
2675 if(!basic_streambuf_char_gptr(&this->base
))
2676 basic_streambuf_char_setg(&this->base
, buf
, 0, buf
);
2681 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
2682 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
2683 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor_str
, 12)
2684 basic_stringbuf_char
* __thiscall
basic_stringbuf_char_ctor_str(basic_stringbuf_char
*this,
2685 const basic_string_char
*str
, IOSB_openmode mode
)
2687 TRACE("(%p %p %d)\n", this, str
, mode
);
2689 basic_streambuf_char_ctor(&this->base
);
2690 this->base
.vtable
= &MSVCP_basic_stringbuf_char_vtable
;
2692 basic_stringbuf_char__Init(this, MSVCP_basic_string_char_c_str(str
),
2693 str
->size
, basic_stringbuf_char__Getstate(this, mode
));
2697 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
2698 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
2699 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor_mode
, 8)
2700 basic_stringbuf_char
* __thiscall
basic_stringbuf_char_ctor_mode(
2701 basic_stringbuf_char
*this, IOSB_openmode mode
)
2703 TRACE("(%p %d)\n", this, mode
);
2705 basic_streambuf_char_ctor(&this->base
);
2706 this->base
.vtable
= &MSVCP_basic_stringbuf_char_vtable
;
2708 basic_stringbuf_char__Init(this, NULL
, 0, basic_stringbuf_char__Getstate(this, mode
));
2712 /* ??_F?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
2713 /* ??_F?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
2714 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor
, 4)
2715 basic_stringbuf_char
* __thiscall
basic_stringbuf_char_ctor(basic_stringbuf_char
*this)
2717 return basic_stringbuf_char_ctor_mode(this, OPENMODE_in
|OPENMODE_out
);
2720 /* ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXXZ */
2721 /* ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAXXZ */
2722 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Tidy
, 4)
2723 void __thiscall
basic_stringbuf_char__Tidy(basic_stringbuf_char
*this)
2725 TRACE("(%p)\n", this);
2727 if(this->state
& STRINGBUF_allocated
) {
2728 MSVCRT_operator_delete(basic_streambuf_char_eback(&this->base
));
2729 this->seekhigh
= NULL
;
2730 this->state
&= ~STRINGBUF_allocated
;
2733 basic_streambuf_char__Init_empty(&this->base
);
2736 /* ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
2737 /* ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
2738 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_dtor
, 4)
2739 void __thiscall
basic_stringbuf_char_dtor(basic_stringbuf_char
*this)
2741 TRACE("(%p)\n", this);
2743 basic_stringbuf_char__Tidy(this);
2744 basic_streambuf_char_dtor(&this->base
);
2747 DEFINE_THISCALL_WRAPPER(MSVCP_basic_stringbuf_char_vector_dtor
, 8)
2748 basic_stringbuf_char
* __thiscall
MSVCP_basic_stringbuf_char_vector_dtor(basic_stringbuf_char
*this, unsigned int flags
)
2750 TRACE("(%p %x)\n", this, flags
);
2753 /* we have an array, with the number of elements stored before the first object */
2754 int i
, *ptr
= (int *) this - 1;
2756 for (i
= *ptr
- 1; i
>= 0; i
--)
2757 basic_stringbuf_char_dtor(this+i
);
2759 MSVCRT_operator_delete(ptr
);
2761 basic_stringbuf_char_dtor(this);
2764 MSVCRT_operator_delete(this);
2770 /* ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z */
2771 /* ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHH@Z */
2772 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_overflow
, 8)
2773 int __thiscall
basic_stringbuf_char_overflow(basic_stringbuf_char
*this, int meta
)
2775 MSVCP_size_t oldsize
, size
;
2778 TRACE("(%p %x)\n", this, meta
);
2782 if(this->state
& STRINGBUF_no_write
)
2785 ptr
= basic_streambuf_char_pptr(&this->base
);
2786 if((this->state
&STRINGBUF_append
) && ptr
<this->seekhigh
)
2787 basic_streambuf_char_setp_next(&this->base
, basic_streambuf_char_pbase(&this->base
),
2788 this->seekhigh
, basic_streambuf_char_epptr(&this->base
));
2790 if(ptr
&& ptr
<basic_streambuf_char_epptr(&this->base
))
2791 return (*basic_streambuf_char__Pninc(&this->base
) = meta
);
2793 oldsize
= (ptr
? basic_streambuf_char_epptr(&this->base
)-basic_streambuf_char_eback(&this->base
): 0);
2796 buf
= MSVCRT_operator_new(size
);
2798 ERR("Out of memory\n");
2799 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
2803 this->seekhigh
= buf
;
2804 basic_streambuf_char_setp(&this->base
, buf
, buf
+size
);
2805 if(this->state
& STRINGBUF_no_read
)
2806 basic_streambuf_char_setg(&this->base
, buf
, NULL
, buf
);
2808 basic_streambuf_char_setg(&this->base
, buf
, buf
, buf
+1);
2810 this->state
|= STRINGBUF_allocated
;
2812 ptr
= basic_streambuf_char_eback(&this->base
);
2813 memcpy(buf
, ptr
, oldsize
);
2815 this->seekhigh
= buf
+(this->seekhigh
-ptr
);
2816 basic_streambuf_char_setp_next(&this->base
, buf
,
2817 buf
+(basic_streambuf_char_pptr(&this->base
)-ptr
), buf
+size
);
2818 if(this->state
& STRINGBUF_no_read
)
2819 basic_streambuf_char_setg(&this->base
, buf
, NULL
, buf
);
2821 basic_streambuf_char_setg(&this->base
, buf
,
2822 buf
+(basic_streambuf_char_gptr(&this->base
)-ptr
),
2823 basic_streambuf_char_pptr(&this->base
)+1);
2825 MSVCRT_operator_delete(ptr
);
2828 return (*basic_streambuf_char__Pninc(&this->base
) = meta
);
2831 /* ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z */
2832 /* ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHH@Z */
2833 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_pbackfail
, 8)
2834 int __thiscall
basic_stringbuf_char_pbackfail(basic_stringbuf_char
*this, int c
)
2838 TRACE("(%p %x)\n", this, c
);
2840 cur
= basic_streambuf_char_gptr(&this->base
);
2841 if(!cur
|| cur
==basic_streambuf_char_eback(&this->base
)
2842 || (c
!=EOF
&& c
!=cur
[-1] && this->state
&STRINGBUF_no_write
))
2847 basic_streambuf_char_gbump(&this->base
, -1);
2848 return c
==EOF
? !EOF
: c
;
2851 /* ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHXZ */
2852 /* ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHXZ */
2853 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_underflow
, 4)
2854 int __thiscall
basic_stringbuf_char_underflow(basic_stringbuf_char
*this)
2858 TRACE("(%p)\n", this);
2860 cur
= basic_streambuf_char_gptr(&this->base
);
2861 if(!cur
|| this->state
&STRINGBUF_no_read
)
2864 ptr
= basic_streambuf_char_pptr(&this->base
);
2865 if(this->seekhigh
< ptr
)
2866 this->seekhigh
= ptr
;
2868 ptr
= basic_streambuf_char_egptr(&this->base
);
2869 if(this->seekhigh
> ptr
)
2870 basic_streambuf_char_setg(&this->base
, basic_streambuf_char_eback(&this->base
), cur
, this->seekhigh
);
2872 if(cur
< this->seekhigh
)
2877 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
2878 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
2879 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekoff
, 20)
2880 fpos_int
* __thiscall
basic_stringbuf_char_seekoff(basic_stringbuf_char
*this,
2881 fpos_int
*ret
, streamoff off
, int way
, int mode
)
2883 char *beg
, *cur_r
, *cur_w
;
2885 TRACE("(%p %p %ld %d %d)\n", this, ret
, off
, way
, mode
);
2887 cur_w
= basic_streambuf_char_pptr(&this->base
);
2888 if(cur_w
> this->seekhigh
)
2889 this->seekhigh
= cur_w
;
2894 beg
= basic_streambuf_char_eback(&this->base
);
2895 cur_r
= basic_streambuf_char_gptr(&this->base
);
2896 if((mode
& OPENMODE_in
) && cur_r
) {
2897 if(way
==SEEKDIR_cur
&& !(mode
& OPENMODE_out
))
2899 else if(way
== SEEKDIR_end
)
2900 off
+= this->seekhigh
-beg
;
2901 else if(way
!= SEEKDIR_beg
)
2904 if(off
<0 || off
>this->seekhigh
-beg
) {
2907 basic_streambuf_char_gbump(&this->base
, beg
-cur_r
+off
);
2908 if((mode
& OPENMODE_out
) && cur_w
) {
2909 basic_streambuf_char_setp_next(&this->base
, beg
,
2910 basic_streambuf_char_gptr(&this->base
),
2911 basic_streambuf_char_epptr(&this->base
));
2914 }else if((mode
& OPENMODE_out
) && cur_w
) {
2915 if(way
== SEEKDIR_cur
)
2917 else if(way
== SEEKDIR_end
)
2918 off
+= this->seekhigh
-beg
;
2919 else if(way
!= SEEKDIR_beg
)
2922 if(off
<0 || off
>this->seekhigh
-beg
)
2925 basic_streambuf_char_pbump(&this->base
, beg
-cur_w
+off
);
2934 /* ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2935 /* ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2936 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekpos
, 36)
2937 fpos_int
* __thiscall
basic_stringbuf_char_seekpos(basic_stringbuf_char
*this,
2938 fpos_int
*ret
, fpos_int pos
, int mode
)
2940 TRACE("(%p %p %s %d)\n", this, ret
, debugstr_fpos_int(&pos
), mode
);
2942 if(pos
.off
==0 && pos
.pos
==-1 && pos
.state
==0) {
2947 return basic_stringbuf_char_seekoff(this, ret
, pos
.off
, SEEKDIR_beg
, mode
);
2950 /* ?str@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
2951 /* ?str@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
2952 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_str_set
, 8)
2953 void __thiscall
basic_stringbuf_char_str_set(basic_stringbuf_char
*this, const basic_string_char
*str
)
2955 TRACE("(%p %p)\n", this, str
);
2957 basic_stringbuf_char__Tidy(this);
2958 basic_stringbuf_char__Init(this, MSVCP_basic_string_char_c_str(str
), str
->size
, this->state
);
2961 /* ?str@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
2962 /* ?str@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
2963 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_str_get
, 8)
2964 basic_string_char
* __thiscall
basic_stringbuf_char_str_get(const basic_stringbuf_char
*this, basic_string_char
*ret
)
2968 TRACE("(%p)\n", this);
2970 if(!(this->state
& STRINGBUF_no_write
) && basic_streambuf_char_pptr(&this->base
)) {
2973 ptr
= basic_streambuf_char_pbase(&this->base
);
2974 pptr
= basic_streambuf_char_pptr(&this->base
);
2976 return MSVCP_basic_string_char_ctor_cstr_len(ret
, ptr
, (this->seekhigh
< pptr
? pptr
: this->seekhigh
) - ptr
);
2979 if(!(this->state
& STRINGBUF_no_read
) && basic_streambuf_char_gptr(&this->base
)) {
2980 ptr
= basic_streambuf_char_eback(&this->base
);
2981 return MSVCP_basic_string_char_ctor_cstr_len(ret
, ptr
, basic_streambuf_char_egptr(&this->base
) - ptr
);
2984 return MSVCP_basic_string_char_ctor(ret
);
2987 /* ?_Getstate@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AAEHH@Z */
2988 /* ?_Getstate@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@AEAAHH@Z */
2989 /* ?_Getstate@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AAEHH@Z */
2990 /* ?_Getstate@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AEAAHH@Z */
2991 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Getstate
, 8)
2992 int __thiscall
basic_stringbuf_wchar__Getstate(basic_stringbuf_wchar
*this, IOSB_openmode mode
)
2996 if(!(mode
& OPENMODE_in
))
2997 state
|= STRINGBUF_no_read
;
2999 if(!(mode
& OPENMODE_out
))
3000 state
|= STRINGBUF_no_write
;
3002 if(mode
& OPENMODE_ate
)
3003 state
|= STRINGBUF_at_end
;
3005 if(mode
& OPENMODE_app
)
3006 state
|= STRINGBUF_append
;
3011 /* ?_Init@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXPB_WIH@Z */
3012 /* ?_Init@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAXPEB_W_KH@Z */
3013 /* ?_Init@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXPBGIH@Z */
3014 /* ?_Init@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAXPEBG_KH@Z */
3015 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Init
, 16)
3016 void __thiscall
basic_stringbuf_wchar__Init(basic_stringbuf_wchar
*this, const wchar_t *str
, MSVCP_size_t count
, int state
)
3018 TRACE("(%p, %p, %ld, %d)\n", this, str
, count
, state
);
3020 basic_streambuf_wchar__Init_empty(&this->base
);
3022 this->state
= state
;
3023 this->seekhigh
= NULL
;
3026 wchar_t *buf
= MSVCRT_operator_new(count
);
3028 ERR("Out of memory\n");
3029 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
3032 memcpy(buf
, str
, count
);
3033 this->seekhigh
= buf
+ count
;
3035 this->state
|= STRINGBUF_allocated
;
3037 if(!(state
& STRINGBUF_no_read
))
3038 basic_streambuf_wchar_setg(&this->base
, buf
, buf
, buf
+ count
);
3040 if(!(state
& STRINGBUF_no_write
)) {
3041 basic_streambuf_wchar_setp_next(&this->base
, buf
, (state
& STRINGBUF_at_end
) ? buf
+ count
: buf
, buf
+ count
);
3043 if(!basic_streambuf_wchar_gptr(&this->base
))
3044 basic_streambuf_wchar_setg(&this->base
, buf
, 0, buf
);
3049 /* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
3050 /* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
3051 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor_str
, 12)
3052 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_wchar_ctor_str(basic_stringbuf_wchar
*this,
3053 const basic_string_wchar
*str
, IOSB_openmode mode
)
3055 TRACE("(%p %p %d)\n", this, str
, mode
);
3057 basic_streambuf_wchar_ctor(&this->base
);
3058 this->base
.vtable
= &MSVCP_basic_stringbuf_wchar_vtable
;
3060 basic_stringbuf_wchar__Init(this, MSVCP_basic_string_wchar_c_str(str
),
3061 str
->size
, basic_stringbuf_wchar__Getstate(this, mode
));
3065 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
3066 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
3067 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor_str
, 12)
3068 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_short_ctor_str(basic_stringbuf_wchar
*this,
3069 const basic_string_wchar
*str
, IOSB_openmode mode
)
3071 basic_stringbuf_wchar_ctor_str(this, str
, mode
);
3072 this->base
.vtable
= &MSVCP_basic_stringbuf_short_vtable
;
3076 /* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
3077 /* ??0?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
3078 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor_mode
, 8)
3079 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_wchar_ctor_mode(
3080 basic_stringbuf_wchar
*this, IOSB_openmode mode
)
3082 TRACE("(%p %d)\n", this, mode
);
3084 basic_streambuf_wchar_ctor(&this->base
);
3085 this->base
.vtable
= &MSVCP_basic_stringbuf_wchar_vtable
;
3087 basic_stringbuf_wchar__Init(this, NULL
, 0, basic_stringbuf_wchar__Getstate(this, mode
));
3091 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
3092 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
3093 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor_mode
, 8)
3094 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_short_ctor_mode(
3095 basic_stringbuf_wchar
*this, IOSB_openmode mode
)
3097 basic_stringbuf_wchar_ctor_mode(this, mode
);
3098 this->base
.vtable
= &MSVCP_basic_stringbuf_short_vtable
;
3102 /* ??_F?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
3103 /* ??_F?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
3104 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_ctor
, 4)
3105 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_wchar_ctor(basic_stringbuf_wchar
*this)
3107 return basic_stringbuf_wchar_ctor_mode(this, OPENMODE_in
|OPENMODE_out
);
3110 /* ??_F?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
3111 /* ??_F?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
3112 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor
, 4)
3113 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_short_ctor(basic_stringbuf_wchar
*this)
3115 return basic_stringbuf_short_ctor_mode(this, OPENMODE_in
|OPENMODE_out
);
3118 /* ?_Tidy@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXXZ */
3119 /* ?_Tidy@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAXXZ */
3120 /* ?_Tidy@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXXZ */
3121 /* ?_Tidy@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAXXZ */
3122 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar__Tidy
, 4)
3123 void __thiscall
basic_stringbuf_wchar__Tidy(basic_stringbuf_wchar
*this)
3125 TRACE("(%p)\n", this);
3127 if(this->state
& STRINGBUF_allocated
) {
3128 MSVCRT_operator_delete(basic_streambuf_wchar_eback(&this->base
));
3129 this->seekhigh
= NULL
;
3130 this->state
&= ~STRINGBUF_allocated
;
3133 basic_streambuf_wchar__Init_empty(&this->base
);
3136 /* ??1?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
3137 /* ??1?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
3138 /* ??1?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
3139 /* ??1?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
3140 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_dtor
, 4)
3141 void __thiscall
basic_stringbuf_wchar_dtor(basic_stringbuf_wchar
*this)
3143 TRACE("(%p)\n", this);
3145 basic_stringbuf_wchar__Tidy(this);
3146 basic_streambuf_wchar_dtor(&this->base
);
3149 DEFINE_THISCALL_WRAPPER(MSVCP_basic_stringbuf_wchar_vector_dtor
, 8)
3150 basic_stringbuf_wchar
* __thiscall
MSVCP_basic_stringbuf_wchar_vector_dtor(basic_stringbuf_wchar
*this, unsigned int flags
)
3152 TRACE("(%p %x)\n", this, flags
);
3155 /* we have an array, with the number of elements stored before the first object */
3156 int i
, *ptr
= (int *) this - 1;
3158 for (i
= *ptr
- 1; i
>= 0; i
--)
3159 basic_stringbuf_wchar_dtor(this+i
);
3161 MSVCRT_operator_delete(ptr
);
3163 basic_stringbuf_wchar_dtor(this);
3166 MSVCRT_operator_delete(this);
3172 DEFINE_THISCALL_WRAPPER(MSVCP_basic_stringbuf_short_vector_dtor
, 8)
3173 basic_stringbuf_wchar
* __thiscall
MSVCP_basic_stringbuf_short_vector_dtor(basic_stringbuf_wchar
*this, unsigned int flags
)
3175 return MSVCP_basic_stringbuf_wchar_vector_dtor(this, flags
);
3178 /* ?overflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGG@Z */
3179 /* ?overflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGG@Z */
3180 /* ?overflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGG@Z */
3181 /* ?overflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGG@Z */
3182 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_overflow
, 8)
3183 unsigned short __thiscall
basic_stringbuf_wchar_overflow(basic_stringbuf_wchar
*this, unsigned short meta
)
3185 MSVCP_size_t oldsize
, size
;
3188 TRACE("(%p %x)\n", this, meta
);
3192 if(this->state
& STRINGBUF_no_write
)
3195 ptr
= basic_streambuf_wchar_pptr(&this->base
);
3196 if((this->state
&STRINGBUF_append
) && ptr
<this->seekhigh
)
3197 basic_streambuf_wchar_setp_next(&this->base
, basic_streambuf_wchar_pbase(&this->base
),
3198 this->seekhigh
, basic_streambuf_wchar_epptr(&this->base
));
3200 if(ptr
&& ptr
<basic_streambuf_wchar_epptr(&this->base
))
3201 return (*basic_streambuf_wchar__Pninc(&this->base
) = meta
);
3203 oldsize
= (ptr
? basic_streambuf_wchar_epptr(&this->base
)-basic_streambuf_wchar_eback(&this->base
): 0);
3206 buf
= MSVCRT_operator_new(size
);
3208 ERR("Out of memory\n");
3209 throw_exception(EXCEPTION_BAD_ALLOC
, NULL
);
3213 this->seekhigh
= buf
;
3214 basic_streambuf_wchar_setp(&this->base
, buf
, buf
+size
);
3215 if(this->state
& STRINGBUF_no_read
)
3216 basic_streambuf_wchar_setg(&this->base
, buf
, NULL
, buf
);
3218 basic_streambuf_wchar_setg(&this->base
, buf
, buf
, buf
+1);
3220 this->state
|= STRINGBUF_allocated
;
3222 ptr
= basic_streambuf_wchar_eback(&this->base
);
3223 memcpy(buf
, ptr
, oldsize
);
3225 this->seekhigh
= buf
+(this->seekhigh
-ptr
);
3226 basic_streambuf_wchar_setp_next(&this->base
, buf
,
3227 buf
+(basic_streambuf_wchar_pptr(&this->base
)-ptr
), buf
+size
);
3228 if(this->state
& STRINGBUF_no_read
)
3229 basic_streambuf_wchar_setg(&this->base
, buf
, NULL
, buf
);
3231 basic_streambuf_wchar_setg(&this->base
, buf
,
3232 buf
+(basic_streambuf_wchar_gptr(&this->base
)-ptr
),
3233 basic_streambuf_wchar_pptr(&this->base
)+1);
3235 MSVCRT_operator_delete(ptr
);
3238 return (*basic_streambuf_wchar__Pninc(&this->base
) = meta
);
3241 /* ?pbackfail@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGG@Z */
3242 /* ?pbackfail@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGG@Z */
3243 /* ?pbackfail@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGG@Z */
3244 /* ?pbackfail@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGG@Z */
3245 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_pbackfail
, 8)
3246 unsigned short __thiscall
basic_stringbuf_wchar_pbackfail(basic_stringbuf_wchar
*this, unsigned short c
)
3250 TRACE("(%p %x)\n", this, c
);
3252 cur
= basic_streambuf_wchar_gptr(&this->base
);
3253 if(!cur
|| cur
==basic_streambuf_wchar_eback(&this->base
)
3254 || (c
!=WEOF
&& c
!=cur
[-1] && this->state
&STRINGBUF_no_write
))
3259 basic_streambuf_wchar_gbump(&this->base
, -1);
3260 return c
==WEOF
? !WEOF
: c
;
3263 /* ?underflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAEGXZ */
3264 /* ?underflow@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAAGXZ */
3265 /* ?underflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGXZ */
3266 /* ?underflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGXZ */
3267 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_underflow
, 4)
3268 unsigned short __thiscall
basic_stringbuf_wchar_underflow(basic_stringbuf_wchar
*this)
3272 TRACE("(%p)\n", this);
3274 cur
= basic_streambuf_wchar_gptr(&this->base
);
3275 if(!cur
|| this->state
&STRINGBUF_no_read
)
3278 ptr
= basic_streambuf_wchar_pptr(&this->base
);
3279 if(this->seekhigh
< ptr
)
3280 this->seekhigh
= ptr
;
3282 ptr
= basic_streambuf_wchar_egptr(&this->base
);
3283 if(this->seekhigh
> ptr
)
3284 basic_streambuf_wchar_setg(&this->base
, basic_streambuf_wchar_eback(&this->base
), cur
, this->seekhigh
);
3286 if(cur
< this->seekhigh
)
3291 /* ?seekoff@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
3292 /* ?seekoff@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
3293 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
3294 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
3295 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_seekoff
, 20)
3296 fpos_int
* __thiscall
basic_stringbuf_wchar_seekoff(basic_stringbuf_wchar
*this,
3297 fpos_int
*ret
, streamoff off
, int way
, int mode
)
3299 wchar_t *beg
, *cur_r
, *cur_w
;
3301 TRACE("(%p %p %ld %d %d)\n", this, ret
, off
, way
, mode
);
3303 cur_w
= basic_streambuf_wchar_pptr(&this->base
);
3304 if(cur_w
> this->seekhigh
)
3305 this->seekhigh
= cur_w
;
3310 beg
= basic_streambuf_wchar_eback(&this->base
);
3311 cur_r
= basic_streambuf_wchar_gptr(&this->base
);
3312 if((mode
& OPENMODE_in
) && cur_r
) {
3313 if(way
==SEEKDIR_cur
&& !(mode
& OPENMODE_out
))
3315 else if(way
== SEEKDIR_end
)
3316 off
+= this->seekhigh
-beg
;
3317 else if(way
!= SEEKDIR_beg
)
3320 if(off
<0 || off
>this->seekhigh
-beg
) {
3323 basic_streambuf_wchar_gbump(&this->base
, beg
-cur_r
+off
);
3324 if((mode
& OPENMODE_out
) && cur_w
) {
3325 basic_streambuf_wchar_setp_next(&this->base
, beg
,
3326 basic_streambuf_wchar_gptr(&this->base
),
3327 basic_streambuf_wchar_epptr(&this->base
));
3330 }else if((mode
& OPENMODE_out
) && cur_w
) {
3331 if(way
== SEEKDIR_cur
)
3333 else if(way
== SEEKDIR_end
)
3334 off
+= this->seekhigh
-beg
;
3335 else if(way
!= SEEKDIR_beg
)
3338 if(off
<0 || off
>this->seekhigh
-beg
)
3341 basic_streambuf_wchar_pbump(&this->base
, beg
-cur_w
+off
);
3350 /* ?seekpos@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3351 /* ?seekpos@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3352 /* ?seekpos@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3353 /* ?seekpos@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3354 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_seekpos
, 36)
3355 fpos_int
* __thiscall
basic_stringbuf_wchar_seekpos(basic_stringbuf_wchar
*this,
3356 fpos_int
*ret
, fpos_int pos
, int mode
)
3358 TRACE("(%p %p %s %d)\n", this, ret
, debugstr_fpos_int(&pos
), mode
);
3360 if(pos
.off
==0 && pos
.pos
==-1 && pos
.state
==0) {
3365 return basic_stringbuf_wchar_seekoff(this, ret
, pos
.off
, SEEKDIR_beg
, mode
);
3368 /* ?str@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
3369 /* ?str@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
3370 /* ?str@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
3371 /* ?str@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
3372 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_str_set
, 8)
3373 void __thiscall
basic_stringbuf_wchar_str_set(basic_stringbuf_wchar
*this, const basic_string_wchar
*str
)
3375 TRACE("(%p %p)\n", this, str
);
3377 basic_stringbuf_wchar__Tidy(this);
3378 basic_stringbuf_wchar__Init(this, MSVCP_basic_string_wchar_c_str(str
), str
->size
, this->state
);
3381 /* ?str@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
3382 /* ?str@?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
3383 /* ?str@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
3384 /* ?str@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
3385 DEFINE_THISCALL_WRAPPER(basic_stringbuf_wchar_str_get
, 8)
3386 basic_string_wchar
* __thiscall
basic_stringbuf_wchar_str_get(const basic_stringbuf_wchar
*this, basic_string_wchar
*ret
)
3390 TRACE("(%p)\n", this);
3392 if(!(this->state
& STRINGBUF_no_write
) && basic_streambuf_wchar_pptr(&this->base
)) {
3395 ptr
= basic_streambuf_wchar_pbase(&this->base
);
3396 pptr
= basic_streambuf_wchar_pptr(&this->base
);
3398 return MSVCP_basic_string_wchar_ctor_cstr_len(ret
, ptr
, (this->seekhigh
< pptr
? pptr
: this->seekhigh
) - ptr
);
3401 if(!(this->state
& STRINGBUF_no_read
) && basic_streambuf_wchar_gptr(&this->base
)) {
3402 ptr
= basic_streambuf_wchar_eback(&this->base
);
3403 return MSVCP_basic_string_wchar_ctor_cstr_len(ret
, ptr
, basic_streambuf_wchar_egptr(&this->base
) - ptr
);
3406 return MSVCP_basic_string_wchar_ctor(ret
);
3409 /* ??0ios_base@std@@IAE@XZ */
3410 /* ??0ios_base@std@@IEAA@XZ */
3411 DEFINE_THISCALL_WRAPPER(ios_base_ctor
, 4)
3412 ios_base
* __thiscall
ios_base_ctor(ios_base
*this)
3414 TRACE("(%p)\n", this);
3415 this->vtable
= &MSVCP_ios_base_vtable
;
3419 /* ??0ios_base@std@@QAE@ABV01@@Z */
3420 /* ??0ios_base@std@@QEAA@AEBV01@@Z */
3421 DEFINE_THISCALL_WRAPPER(ios_base_copy_ctor
, 8)
3422 ios_base
* __thiscall
ios_base_copy_ctor(ios_base
*this, const ios_base
*copy
)
3424 TRACE("(%p %p)\n", this, copy
);
3426 this->vtable
= &MSVCP_ios_base_vtable
;
3430 /* ?_Callfns@ios_base@std@@AAEXW4event@12@@Z */
3431 /* ?_Callfns@ios_base@std@@AEAAXW4event@12@@Z */
3432 DEFINE_THISCALL_WRAPPER(ios_base_Callfns
, 8)
3433 void __thiscall
ios_base_Callfns(ios_base
*this, IOS_BASE_event event
)
3435 IOS_BASE_fnarray
*cur
;
3437 TRACE("(%p %x)\n", this, event
);
3439 for(cur
=this->calls
; cur
; cur
=cur
->next
)
3440 cur
->event_handler(event
, this, cur
->index
);
3443 /* ?_Tidy@ios_base@std@@AAAXXZ */
3444 /* ?_Tidy@ios_base@std@@AEAAXXZ */
3445 void CDECL
ios_base_Tidy(ios_base
*this)
3447 IOS_BASE_iosarray
*arr_cur
, *arr_next
;
3448 IOS_BASE_fnarray
*event_cur
, *event_next
;
3450 TRACE("(%p)\n", this);
3452 ios_base_Callfns(this, EVENT_erase_event
);
3454 for(arr_cur
=this->arr
; arr_cur
; arr_cur
=arr_next
) {
3455 arr_next
= arr_cur
->next
;
3456 MSVCRT_operator_delete(arr_cur
);
3460 for(event_cur
=this->calls
; event_cur
; event_cur
=event_next
) {
3461 event_next
= event_cur
->next
;
3462 MSVCRT_operator_delete(event_cur
);
3467 /* ?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z */
3468 /* ?_Ios_base_dtor@ios_base@std@@CAXPEAV12@@Z */
3469 void CDECL
ios_base_Ios_base_dtor(ios_base
*obj
)
3471 TRACE("(%p)\n", obj
);
3473 locale_dtor(obj
->loc
);
3474 MSVCRT_operator_delete(obj
->loc
);
3479 /* ??1ios_base@std@@UAE@XZ */
3480 /* ??1ios_base@std@@UEAA@XZ */
3481 DEFINE_THISCALL_WRAPPER(ios_base_dtor
, 4)
3482 void __thiscall
ios_base_dtor(ios_base
*this)
3484 ios_base_Ios_base_dtor(this);
3487 DEFINE_THISCALL_WRAPPER(MSVCP_ios_base_vector_dtor
, 8)
3488 ios_base
* __thiscall
MSVCP_ios_base_vector_dtor(ios_base
*this, unsigned int flags
)
3490 TRACE("(%p %x)\n", this, flags
);
3492 /* we have an array, with the number of elements stored before the first object */
3493 int i
, *ptr
= (int *)this-1;
3495 for(i
=*ptr
-1; i
>=0; i
--)
3496 ios_base_dtor(this+i
);
3497 MSVCRT_operator_delete(ptr
);
3499 ios_base_dtor(this);
3501 MSVCRT_operator_delete(this);
3507 DEFINE_THISCALL_WRAPPER(MSVCP_iosb_vector_dtor
, 8)
3508 void* __thiscall
MSVCP_iosb_vector_dtor(void *this, unsigned int flags
)
3510 TRACE("(%p %x)\n", this, flags
);
3512 int *ptr
= (int *)this-1;
3513 MSVCRT_operator_delete(ptr
);
3516 MSVCRT_operator_delete(this);
3522 /* ?_Findarr@ios_base@std@@AAEAAU_Iosarray@12@H@Z */
3523 /* ?_Findarr@ios_base@std@@AEAAAEAU_Iosarray@12@H@Z */
3524 DEFINE_THISCALL_WRAPPER(ios_base_Findarr
, 8)
3525 IOS_BASE_iosarray
* __thiscall
ios_base_Findarr(ios_base
*this, int index
)
3527 IOS_BASE_iosarray
*p
;
3529 TRACE("(%p %d)\n", this, index
);
3531 for(p
=this->arr
; p
; p
=p
->next
) {
3532 if(p
->index
== index
)
3536 for(p
=this->arr
; p
; p
=p
->next
) {
3537 if(!p
->long_val
&& !p
->ptr_val
) {
3543 p
= MSVCRT_operator_new(sizeof(IOS_BASE_iosarray
));
3544 p
->next
= this->arr
;
3552 /* ?iword@ios_base@std@@QAEAAJH@Z */
3553 /* ?iword@ios_base@std@@QEAAAEAJH@Z */
3554 DEFINE_THISCALL_WRAPPER(ios_base_iword
, 8)
3555 LONG
* __thiscall
ios_base_iword(ios_base
*this, int index
)
3557 TRACE("(%p %d)\n", this, index
);
3558 return &ios_base_Findarr(this, index
)->long_val
;
3561 /* ?pword@ios_base@std@@QAEAAPAXH@Z */
3562 /* ?pword@ios_base@std@@QEAAAEAPEAXH@Z */
3563 DEFINE_THISCALL_WRAPPER(ios_base_pword
, 8)
3564 void** __thiscall
ios_base_pword(ios_base
*this, int index
)
3566 TRACE("(%p %d)\n", this, index
);
3567 return &ios_base_Findarr(this, index
)->ptr_val
;
3570 /* ?register_callback@ios_base@std@@QAEXP6AXW4event@12@AAV12@H@ZH@Z */
3571 /* ?register_callback@ios_base@std@@QEAAXP6AXW4event@12@AEAV12@H@ZH@Z */
3572 DEFINE_THISCALL_WRAPPER(ios_base_register_callback
, 12)
3573 void __thiscall
ios_base_register_callback(ios_base
*this, IOS_BASE_event_callback callback
, int index
)
3575 IOS_BASE_fnarray
*event
;
3577 TRACE("(%p %p %d)\n", this, callback
, index
);
3579 event
= MSVCRT_operator_new(sizeof(IOS_BASE_fnarray
));
3580 event
->next
= this->calls
;
3581 event
->index
= index
;
3582 event
->event_handler
= callback
;
3583 this->calls
= event
;
3586 /* ?clear@ios_base@std@@QAEXH_N@Z */
3587 /* ?clear@ios_base@std@@QEAAXH_N@Z */
3588 DEFINE_THISCALL_WRAPPER(ios_base_clear_reraise
, 12)
3589 void __thiscall
ios_base_clear_reraise(ios_base
*this, IOSB_iostate state
, MSVCP_bool reraise
)
3591 TRACE("(%p %x %x)\n", this, state
, reraise
);
3593 this->state
= state
& IOSTATE_mask
;
3594 if(!(this->state
& this->except
))
3598 throw_exception(EXCEPTION_RERAISE
, NULL
);
3599 else if(this->state
& this->except
& IOSTATE_eofbit
)
3600 throw_exception(EXCEPTION_FAILURE
, "eofbit is set");
3601 else if(this->state
& this->except
& IOSTATE_failbit
)
3602 throw_exception(EXCEPTION_FAILURE
, "failbit is set");
3603 else if(this->state
& this->except
& IOSTATE_badbit
)
3604 throw_exception(EXCEPTION_FAILURE
, "badbit is set");
3605 else if(this->state
& this->except
& IOSTATE__Hardfail
)
3606 throw_exception(EXCEPTION_FAILURE
, "_Hardfail is set");
3609 /* ?clear@ios_base@std@@QAEXH@Z */
3610 /* ?clear@ios_base@std@@QEAAXH@Z */
3611 DEFINE_THISCALL_WRAPPER(ios_base_clear
, 8)
3612 void __thiscall
ios_base_clear(ios_base
*this, IOSB_iostate state
)
3614 ios_base_clear_reraise(this, state
, FALSE
);
3617 /* ?clear@ios_base@std@@QAEXI@Z */
3618 /* ?clear@ios_base@std@@QEAAXI@Z */
3619 DEFINE_THISCALL_WRAPPER(ios_base_clear_unsigned
, 8)
3620 void __thiscall
ios_base_clear_unsigned(ios_base
*this, unsigned int state
)
3622 ios_base_clear_reraise(this, (IOSB_iostate
)state
, FALSE
);
3625 /* ?exceptions@ios_base@std@@QAEXH@Z */
3626 /* ?exceptions@ios_base@std@@QEAAXH@Z */
3627 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_set
, 8)
3628 void __thiscall
ios_base_exceptions_set(ios_base
*this, IOSB_iostate state
)
3630 TRACE("(%p %x)\n", this, state
);
3631 this->except
= state
& IOSTATE_mask
;
3632 ios_base_clear(this, this->state
);
3635 /* ?exceptions@ios_base@std@@QAEXI@Z */
3636 /* ?exceptions@ios_base@std@@QEAAXI@Z */
3637 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_set_unsigned
, 8)
3638 void __thiscall
ios_base_exceptions_set_unsigned(ios_base
*this, unsigned int state
)
3640 TRACE("(%p %x)\n", this, state
);
3641 ios_base_exceptions_set(this, state
);
3644 /* ?exceptions@ios_base@std@@QBEHXZ */
3645 /* ?exceptions@ios_base@std@@QEBAHXZ */
3646 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_get
, 4)
3647 IOSB_iostate __thiscall
ios_base_exceptions_get(ios_base
*this)
3649 TRACE("(%p)\n", this);
3650 return this->except
;
3653 /* ?copyfmt@ios_base@std@@QAEAAV12@ABV12@@Z */
3654 /* ?copyfmt@ios_base@std@@QEAAAEAV12@AEBV12@@Z */
3655 DEFINE_THISCALL_WRAPPER(ios_base_copyfmt
, 8)
3656 ios_base
* __thiscall
ios_base_copyfmt(ios_base
*this, const ios_base
*rhs
)
3658 TRACE("(%p %p)\n", this, rhs
);
3661 IOS_BASE_iosarray
*arr_cur
;
3662 IOS_BASE_fnarray
*event_cur
;
3664 ios_base_Tidy(this);
3666 for(arr_cur
=rhs
->arr
; arr_cur
; arr_cur
=arr_cur
->next
) {
3667 if(arr_cur
->long_val
)
3668 *ios_base_iword(this, arr_cur
->index
) = arr_cur
->long_val
;
3669 if(arr_cur
->ptr_val
)
3670 *ios_base_pword(this, arr_cur
->index
) = arr_cur
->ptr_val
;
3672 this->stdstr
= rhs
->stdstr
;
3673 this->fmtfl
= rhs
->fmtfl
;
3674 this->prec
= rhs
->prec
;
3675 this->wide
= rhs
->wide
;
3676 locale_operator_assign(this->loc
, rhs
->loc
);
3678 for(event_cur
=rhs
->calls
; event_cur
; event_cur
=event_cur
->next
)
3679 ios_base_register_callback(this, event_cur
->event_handler
, event_cur
->index
);
3681 ios_base_Callfns(this, EVENT_copyfmt_event
);
3682 ios_base_exceptions_set(this, rhs
->except
);
3688 /* ??4ios_base@std@@QAEAAV01@ABV01@@Z */
3689 /* ??4ios_base@std@@QEAAAEAV01@AEBV01@@Z */
3690 DEFINE_THISCALL_WRAPPER(ios_base_assign
, 8)
3691 ios_base
* __thiscall
ios_base_assign(ios_base
*this, const ios_base
*right
)
3693 TRACE("(%p %p)\n", this, right
);
3696 this->state
= right
->state
;
3697 ios_base_copyfmt(this, right
);
3703 /* ?fail@ios_base@std@@QBE_NXZ */
3704 /* ?fail@ios_base@std@@QEBA_NXZ */
3705 DEFINE_THISCALL_WRAPPER(ios_base_fail
, 4)
3706 MSVCP_bool __thiscall
ios_base_fail(const ios_base
*this)
3708 TRACE("(%p)\n", this);
3709 return (this->state
& (IOSTATE_failbit
|IOSTATE_badbit
)) != 0;
3712 /* ??7ios_base@std@@QBE_NXZ */
3713 /* ??7ios_base@std@@QEBA_NXZ */
3714 DEFINE_THISCALL_WRAPPER(ios_base_op_succ
, 4)
3715 MSVCP_bool __thiscall
ios_base_op_succ(const ios_base
*this)
3717 TRACE("(%p)\n", this);
3718 return ios_base_fail(this);
3721 /* ??Bios_base@std@@QBEPAXXZ */
3722 /* ??Bios_base@std@@QEBAPEAXXZ */
3723 DEFINE_THISCALL_WRAPPER(ios_base_op_fail
, 4)
3724 void* __thiscall
ios_base_op_fail(const ios_base
*this)
3726 TRACE("(%p)\n", this);
3727 return ios_base_fail(this) ? NULL
: (void*)this;
3730 /* ?_Addstd@ios_base@std@@SAXPAV12@@Z */
3731 /* ?_Addstd@ios_base@std@@SAXPEAV12@@Z */
3732 void CDECL
ios_base_Addstd(ios_base
*add
)
3734 FIXME("(%p) stub\n", add
);
3737 /* ?_Index_func@ios_base@std@@CAAAHXZ */
3738 /* ?_Index_func@ios_base@std@@CAAEAHXZ */
3739 int* CDECL
ios_base_Index_func(void)
3742 return &ios_base_Index
;
3745 /* ?_Init@ios_base@std@@IAEXXZ */
3746 /* ?_Init@ios_base@std@@IEAAXXZ */
3747 DEFINE_THISCALL_WRAPPER(ios_base_Init
, 4)
3748 void __thiscall
ios_base_Init(ios_base
*this)
3750 TRACE("(%p)\n", this);
3753 this->state
= this->except
= IOSTATE_goodbit
;
3754 this->fmtfl
= FMTFLAG_skipws
| FMTFLAG_dec
;
3759 this->loc
= MSVCRT_operator_new(sizeof(locale
));
3760 locale_ctor(this->loc
);
3763 /* ?_Sync_func@ios_base@std@@CAAA_NXZ */
3764 /* ?_Sync_func@ios_base@std@@CAAEA_NXZ */
3765 MSVCP_bool
* CDECL
ios_base_Sync_func(void)
3768 return &ios_base_Sync
;
3771 /* ?bad@ios_base@std@@QBE_NXZ */
3772 /* ?bad@ios_base@std@@QEBA_NXZ */
3773 DEFINE_THISCALL_WRAPPER(ios_base_bad
, 4)
3774 MSVCP_bool __thiscall
ios_base_bad(const ios_base
*this)
3776 TRACE("(%p)\n", this);
3777 return (this->state
& IOSTATE_badbit
) != 0;
3780 /* ?eof@ios_base@std@@QBE_NXZ */
3781 /* ?eof@ios_base@std@@QEBA_NXZ */
3782 DEFINE_THISCALL_WRAPPER(ios_base_eof
, 4)
3783 MSVCP_bool __thiscall
ios_base_eof(const ios_base
*this)
3785 TRACE("(%p)\n", this);
3786 return (this->state
& IOSTATE_eofbit
) != 0;
3789 /* ?flags@ios_base@std@@QAEHH@Z */
3790 /* ?flags@ios_base@std@@QEAAHH@Z */
3791 DEFINE_THISCALL_WRAPPER(ios_base_flags_set
, 8)
3792 IOSB_fmtflags __thiscall
ios_base_flags_set(ios_base
*this, IOSB_fmtflags flags
)
3794 IOSB_fmtflags ret
= this->fmtfl
;
3796 TRACE("(%p %x)\n", this, flags
);
3798 this->fmtfl
= flags
& FMTFLAG_mask
;
3802 /* ?flags@ios_base@std@@QBEHXZ */
3803 /* ?flags@ios_base@std@@QEBAHXZ */
3804 DEFINE_THISCALL_WRAPPER(ios_base_flags_get
, 4)
3805 IOSB_fmtflags __thiscall
ios_base_flags_get(const ios_base
*this)
3807 TRACE("(%p)\n", this);
3811 /* ?getloc@ios_base@std@@QBE?AVlocale@2@XZ */
3812 /* ?getloc@ios_base@std@@QEBA?AVlocale@2@XZ */
3813 DEFINE_THISCALL_WRAPPER(ios_base_getloc
, 8)
3814 locale
* __thiscall
ios_base_getloc(const ios_base
*this, locale
*ret
)
3816 TRACE("(%p)\n", this);
3817 return locale_copy_ctor(ret
, this->loc
);
3820 /* ?good@ios_base@std@@QBE_NXZ */
3821 /* ?good@ios_base@std@@QEBA_NXZ */
3822 DEFINE_THISCALL_WRAPPER(ios_base_good
, 4)
3823 MSVCP_bool __thiscall
ios_base_good(const ios_base
*this)
3825 TRACE("(%p)\n", this);
3826 return this->state
== IOSTATE_goodbit
;
3829 /* ?imbue@ios_base@std@@QAE?AVlocale@2@ABV32@@Z */
3830 /* ?imbue@ios_base@std@@QEAA?AVlocale@2@AEBV32@@Z */
3831 DEFINE_THISCALL_WRAPPER(ios_base_imbue
, 12)
3832 locale
* __thiscall
ios_base_imbue(ios_base
*this, locale
*ret
, const locale
*loc
)
3834 TRACE("(%p %p)\n", this, loc
);
3836 locale_copy_ctor(this->loc
, loc
);
3840 /* ?precision@ios_base@std@@QAEHH@Z */
3841 /* ?precision@ios_base@std@@QEAA_J_J@Z */
3842 DEFINE_THISCALL_WRAPPER(ios_base_precision_set
, 8)
3843 streamsize __thiscall
ios_base_precision_set(ios_base
*this, streamsize precision
)
3845 streamsize ret
= this->prec
;
3847 TRACE("(%p %ld)\n", this, precision
);
3849 this->prec
= precision
;
3853 /* ?precision@ios_base@std@@QBEHXZ */
3854 /* ?precision@ios_base@std@@QEBA_JXZ */
3855 DEFINE_THISCALL_WRAPPER(ios_base_precision_get
, 4)
3856 streamsize __thiscall
ios_base_precision_get(const ios_base
*this)
3858 TRACE("(%p)\n", this);
3862 /* ?rdstate@ios_base@std@@QBEHXZ */
3863 /* ?rdstate@ios_base@std@@QEBAHXZ */
3864 DEFINE_THISCALL_WRAPPER(ios_base_rdstate
, 4)
3865 IOSB_iostate __thiscall
ios_base_rdstate(const ios_base
*this)
3867 TRACE("(%p)\n", this);
3871 /* ?setf@ios_base@std@@QAEHHH@Z */
3872 /* ?setf@ios_base@std@@QEAAHHH@Z */
3873 DEFINE_THISCALL_WRAPPER(ios_base_setf_mask
, 12)
3874 IOSB_fmtflags __thiscall
ios_base_setf_mask(ios_base
*this, IOSB_fmtflags flags
, IOSB_fmtflags mask
)
3876 IOSB_fmtflags ret
= this->fmtfl
;
3878 TRACE("(%p %x %x)\n", this, flags
, mask
);
3880 this->fmtfl
= (this->fmtfl
& (~mask
)) | (flags
& mask
& FMTFLAG_mask
);
3884 /* ?setf@ios_base@std@@QAEHH@Z */
3885 /* ?setf@ios_base@std@@QEAAHH@Z */
3886 DEFINE_THISCALL_WRAPPER(ios_base_setf
, 8)
3887 IOSB_fmtflags __thiscall
ios_base_setf(ios_base
*this, IOSB_fmtflags flags
)
3889 return ios_base_setf_mask(this, flags
, ~0);
3892 /* ?setstate@ios_base@std@@QAEXH_N@Z */
3893 /* ?setstate@ios_base@std@@QEAAXH_N@Z */
3894 DEFINE_THISCALL_WRAPPER(ios_base_setstate_reraise
, 12)
3895 void __thiscall
ios_base_setstate_reraise(ios_base
*this, IOSB_iostate state
, MSVCP_bool reraise
)
3897 TRACE("(%p %x %x)\n", this, state
, reraise
);
3899 if(state
!= IOSTATE_goodbit
)
3900 ios_base_clear_reraise(this, this->state
| state
, reraise
);
3903 /* ?setstate@ios_base@std@@QAEXH@Z */
3904 /* ?setstate@ios_base@std@@QEAAXH@Z */
3905 DEFINE_THISCALL_WRAPPER(ios_base_setstate
, 8)
3906 void __thiscall
ios_base_setstate(ios_base
*this, IOSB_iostate state
)
3908 ios_base_setstate_reraise(this, state
, FALSE
);
3911 /* ?setstate@ios_base@std@@QAEXI@Z */
3912 /* ?setstate@ios_base@std@@QEAAXI@Z */
3913 DEFINE_THISCALL_WRAPPER(ios_base_setstate_unsigned
, 8)
3914 void __thiscall
ios_base_setstate_unsigned(ios_base
*this, unsigned int state
)
3916 ios_base_setstate_reraise(this, (IOSB_iostate
)state
, FALSE
);
3919 /* ?sync_with_stdio@ios_base@std@@SA_N_N@Z */
3920 MSVCP_bool CDECL
ios_base_sync_with_stdio(MSVCP_bool sync
)
3925 TRACE("(%x)\n", sync
);
3927 _Lockit_ctor_locktype(&lock
, _LOCK_STREAM
);
3928 ret
= ios_base_Sync
;
3929 ios_base_Sync
= sync
;
3930 _Lockit_dtor(&lock
);
3934 /* ?unsetf@ios_base@std@@QAEXH@Z */
3935 /* ?unsetf@ios_base@std@@QEAAXH@Z */
3936 DEFINE_THISCALL_WRAPPER(ios_base_unsetf
, 8)
3937 void __thiscall
ios_base_unsetf(ios_base
*this, IOSB_fmtflags flags
)
3939 TRACE("(%p %x)\n", this, flags
);
3940 this->fmtfl
&= ~flags
;
3943 /* ?width@ios_base@std@@QAEHH@Z */
3944 /* ?width@ios_base@std@@QEAA_J_J@Z */
3945 DEFINE_THISCALL_WRAPPER(ios_base_width_set
, 8)
3946 streamsize __thiscall
ios_base_width_set(ios_base
*this, streamsize width
)
3948 streamsize ret
= this->wide
;
3950 TRACE("(%p %ld)\n", this, width
);
3956 /* ?width@ios_base@std@@QBEHXZ */
3957 /* ?width@ios_base@std@@QEBA_JXZ */
3958 DEFINE_THISCALL_WRAPPER(ios_base_width_get
, 4)
3959 streamsize __thiscall
ios_base_width_get(ios_base
*this)
3961 TRACE("(%p)\n", this);
3965 /* ?xalloc@ios_base@std@@SAHXZ */
3966 int CDECL
ios_base_xalloc(void)
3973 _Lockit_ctor_locktype(&lock
, _LOCK_STREAM
);
3974 ret
= ios_base_Index
++;
3975 _Lockit_dtor(&lock
);
3979 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ */
3980 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ */
3981 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor
, 4)
3982 basic_ios_char
* __thiscall
basic_ios_char_ctor(basic_ios_char
*this)
3984 TRACE("(%p)\n", this);
3986 ios_base_ctor(&this->base
);
3987 this->base
.vtable
= &MSVCP_basic_ios_char_vtable
;
3991 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
3992 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
3993 DEFINE_THISCALL_WRAPPER(basic_ios_char_init
, 12)
3994 void __thiscall
basic_ios_char_init(basic_ios_char
*this, basic_streambuf_char
*streambuf
, MSVCP_bool isstd
)
3996 TRACE("(%p %p %x)\n", this, streambuf
, isstd
);
3997 ios_base_Init(&this->base
);
3998 this->strbuf
= streambuf
;
3999 this->stream
= NULL
;
4003 ios_base_setstate(&this->base
, IOSTATE_badbit
);
4006 FIXME("standard streams not handled yet\n");
4009 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
4010 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
4011 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor_streambuf
, 8)
4012 basic_ios_char
* __thiscall
basic_ios_char_ctor_streambuf(basic_ios_char
*this, basic_streambuf_char
*strbuf
)
4014 TRACE("(%p %p)\n", this, strbuf
);
4016 basic_ios_char_ctor(this);
4017 basic_ios_char_init(this, strbuf
, FALSE
);
4021 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ */
4022 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ */
4023 DEFINE_THISCALL_WRAPPER(basic_ios_char_dtor
, 4)
4024 void __thiscall
basic_ios_char_dtor(basic_ios_char
*this)
4026 TRACE("(%p)\n", this);
4027 ios_base_dtor(&this->base
);
4030 DEFINE_THISCALL_WRAPPER(MSVCP_basic_ios_char_vector_dtor
, 8)
4031 basic_ios_char
* __thiscall
MSVCP_basic_ios_char_vector_dtor(basic_ios_char
*this, unsigned int flags
)
4033 TRACE("(%p %x)\n", this, flags
);
4035 /* we have an array, with the number of elements stored before the first object */
4036 int i
, *ptr
= (int *)this-1;
4038 for(i
=*ptr
-1; i
>=0; i
--)
4039 basic_ios_char_dtor(this+i
);
4040 MSVCRT_operator_delete(ptr
);
4042 basic_ios_char_dtor(this);
4044 MSVCRT_operator_delete(this);
4050 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
4051 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
4052 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear_reraise
, 12)
4053 void __thiscall
basic_ios_char_clear_reraise(basic_ios_char
*this, IOSB_iostate state
, MSVCP_bool reraise
)
4055 TRACE("(%p %x %x)\n", this, state
, reraise
);
4056 ios_base_clear_reraise(&this->base
, state
| (this->strbuf
? IOSTATE_goodbit
: IOSTATE_badbit
), reraise
);
4059 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
4060 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
4061 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear
, 8)
4062 void __thiscall
basic_ios_char_clear(basic_ios_char
*this, unsigned int state
)
4064 basic_ios_char_clear_reraise(this, (IOSB_iostate
)state
, FALSE
);
4067 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEAAV12@ABV12@@Z */
4068 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEBV12@@Z */
4069 DEFINE_THISCALL_WRAPPER(basic_ios_char_copyfmt
, 8)
4070 basic_ios_char
* __thiscall
basic_ios_char_copyfmt(basic_ios_char
*this, basic_ios_char
*copy
)
4072 TRACE("(%p %p)\n", this, copy
);
4076 this->stream
= copy
->stream
;
4077 this->fillch
= copy
->fillch
;
4078 ios_base_copyfmt(&this->base
, ©
->base
);
4082 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEDD@Z */
4083 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z */
4084 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_set
, 8)
4085 char __thiscall
basic_ios_char_fill_set(basic_ios_char
*this, char fill
)
4087 char ret
= this->fillch
;
4089 TRACE("(%p %c)\n", this, fill
);
4091 this->fillch
= fill
;
4095 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ */
4096 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ */
4097 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_get
, 4)
4098 char __thiscall
basic_ios_char_fill_get(basic_ios_char
*this)
4100 TRACE("(%p)\n", this);
4101 return this->fillch
;
4104 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
4105 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
4106 DEFINE_THISCALL_WRAPPER(basic_ios_char_imbue
, 12)
4107 locale
*__thiscall
basic_ios_char_imbue(basic_ios_char
*this, locale
*ret
, const locale
*loc
)
4109 TRACE("(%p %p %p)\n", this, ret
, loc
);
4112 basic_streambuf_char_pubimbue(this->strbuf
, ret
, loc
);
4116 return ios_base_imbue(&this->base
, ret
, loc
);
4119 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDDD@Z */
4120 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADDD@Z */
4121 DEFINE_THISCALL_WRAPPER(basic_ios_char_narrow
, 12)
4122 char __thiscall
basic_ios_char_narrow(basic_ios_char
*this, char ch
, char def
)
4124 TRACE("(%p %c %c)\n", this, ch
, def
);
4125 return ctype_char_narrow_ch(ctype_char_use_facet(this->strbuf
->loc
), ch
, def
);
4128 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PAV32@@Z */
4129 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAV32@@Z */
4130 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_set
, 8)
4131 basic_streambuf_char
* __thiscall
basic_ios_char_rdbuf_set(basic_ios_char
*this, basic_streambuf_char
*streambuf
)
4133 basic_streambuf_char
*ret
= this->strbuf
;
4135 TRACE("(%p %p)\n", this, streambuf
);
4137 this->strbuf
= streambuf
;
4138 basic_ios_char_clear(this, IOSTATE_goodbit
);
4142 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
4143 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
4144 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_get
, 4)
4145 basic_streambuf_char
* __thiscall
basic_ios_char_rdbuf_get(const basic_ios_char
*this)
4147 TRACE("(%p)\n", this);
4148 return this->strbuf
;
4151 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
4152 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
4153 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate_reraise
, 12)
4154 void __thiscall
basic_ios_char_setstate_reraise(basic_ios_char
*this, IOSB_iostate state
, MSVCP_bool reraise
)
4156 TRACE("(%p %x %x)\n", this, state
, reraise
);
4158 if(state
!= IOSTATE_goodbit
)
4159 basic_ios_char_clear_reraise(this, this->base
.state
| state
, reraise
);
4162 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
4163 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
4164 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate
, 8)
4165 void __thiscall
basic_ios_char_setstate(basic_ios_char
*this, unsigned int state
)
4167 basic_ios_char_setstate_reraise(this, (IOSB_iostate
)state
, FALSE
);
4170 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@PAV32@@Z */
4171 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@PEAV32@@Z */
4172 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_set
, 8)
4173 basic_ostream_char
* __thiscall
basic_ios_char_tie_set(basic_ios_char
*this, basic_ostream_char
*ostream
)
4175 basic_ostream_char
*ret
= this->stream
;
4177 TRACE("(%p %p)\n", this, ostream
);
4179 this->stream
= ostream
;
4183 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
4184 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
4185 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_get
, 4)
4186 basic_ostream_char
* __thiscall
basic_ios_char_tie_get(const basic_ios_char
*this)
4188 TRACE("(%p)\n", this);
4189 return this->stream
;
4192 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z */
4193 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z */
4194 DEFINE_THISCALL_WRAPPER(basic_ios_char_widen
, 8)
4195 char __thiscall
basic_ios_char_widen(basic_ios_char
*this, char ch
)
4197 TRACE("(%p %c)\n", this, ch
);
4198 return ctype_char_widen_ch(ctype_char_use_facet(this->strbuf
->loc
), ch
);
4202 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
4203 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
4204 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_ctor
, 4)
4205 basic_ios_wchar
* __thiscall
basic_ios_wchar_ctor(basic_ios_wchar
*this)
4207 TRACE("(%p)\n", this);
4209 ios_base_ctor(&this->base
);
4210 this->base
.vtable
= &MSVCP_basic_ios_wchar_vtable
;
4214 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@IAE@XZ */
4215 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@IEAA@XZ */
4216 DEFINE_THISCALL_WRAPPER(basic_ios_short_ctor
, 4)
4217 basic_ios_wchar
* __thiscall
basic_ios_short_ctor(basic_ios_wchar
*this)
4219 basic_ios_wchar_ctor(this);
4220 this->base
.vtable
= &MSVCP_basic_ios_short_vtable
;
4224 /* ?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAEXPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z */
4225 /* ?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z */
4226 /* ?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IAEXPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z */
4227 /* ?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z */
4228 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_init
, 12)
4229 void __thiscall
basic_ios_wchar_init(basic_ios_wchar
*this, basic_streambuf_wchar
*streambuf
, MSVCP_bool isstd
)
4231 TRACE("(%p %p %x)\n", this, streambuf
, isstd
);
4232 ios_base_Init(&this->base
);
4233 this->strbuf
= streambuf
;
4234 this->stream
= NULL
;
4238 ios_base_setstate(&this->base
, IOSTATE_badbit
);
4241 FIXME("standard streams not handled yet\n");
4244 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
4245 /* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
4246 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_ctor_streambuf
, 8)
4247 basic_ios_wchar
* __thiscall
basic_ios_wchar_ctor_streambuf(basic_ios_wchar
*this, basic_streambuf_wchar
*strbuf
)
4249 TRACE("(%p %p)\n", this, strbuf
);
4251 basic_ios_wchar_ctor(this);
4252 basic_ios_wchar_init(this, strbuf
, FALSE
);
4256 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
4257 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
4258 DEFINE_THISCALL_WRAPPER(basic_ios_short_ctor_streambuf
, 8)
4259 basic_ios_wchar
* __thiscall
basic_ios_short_ctor_streambuf(basic_ios_wchar
*this, basic_streambuf_wchar
*strbuf
)
4261 basic_ios_wchar_ctor_streambuf(this, strbuf
);
4262 this->base
.vtable
= &MSVCP_basic_ios_short_vtable
;
4266 /* ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
4267 /* ??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
4268 /* ??1?$basic_ios@GU?$char_traits@G@std@@@std@@UAE@XZ */
4269 /* ??1?$basic_ios@GU?$char_traits@G@std@@@std@@UEAA@XZ */
4270 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_dtor
, 4)
4271 void __thiscall
basic_ios_wchar_dtor(basic_ios_wchar
*this)
4273 TRACE("(%p)\n", this);
4274 ios_base_dtor(&this->base
);
4277 DEFINE_THISCALL_WRAPPER(MSVCP_basic_ios_wchar_vector_dtor
, 8)
4278 basic_ios_wchar
* __thiscall
MSVCP_basic_ios_wchar_vector_dtor(basic_ios_wchar
*this, unsigned int flags
)
4280 TRACE("(%p %x)\n", this, flags
);
4282 /* we have an array, with the number of elements stored before the first object */
4283 int i
, *ptr
= (int *)this-1;
4285 for(i
=*ptr
-1; i
>=0; i
--)
4286 basic_ios_wchar_dtor(this+i
);
4287 MSVCRT_operator_delete(ptr
);
4289 basic_ios_wchar_dtor(this);
4291 MSVCRT_operator_delete(this);
4297 DEFINE_THISCALL_WRAPPER(MSVCP_basic_ios_short_vector_dtor
, 8)
4298 basic_ios_wchar
* __thiscall
MSVCP_basic_ios_short_vector_dtor(basic_ios_wchar
*this, unsigned int flags
)
4300 return MSVCP_basic_ios_wchar_vector_dtor(this, flags
);
4303 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z */
4304 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z */
4305 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXH_N@Z */
4306 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z */
4307 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_clear_reraise
, 12)
4308 void __thiscall
basic_ios_wchar_clear_reraise(basic_ios_wchar
*this, IOSB_iostate state
, MSVCP_bool reraise
)
4310 TRACE("(%p %x %x)\n", this, state
, reraise
);
4311 ios_base_clear_reraise(&this->base
, state
| (this->strbuf
? IOSTATE_goodbit
: IOSTATE_badbit
), reraise
);
4314 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXI@Z */
4315 /* ?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z */
4316 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXI@Z */
4317 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z */
4318 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_clear
, 8)
4319 void __thiscall
basic_ios_wchar_clear(basic_ios_wchar
*this, unsigned int state
)
4321 basic_ios_wchar_clear_reraise(this, (IOSB_iostate
)state
, FALSE
);
4324 /* ?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEAAV12@ABV12@@Z */
4325 /* ?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEBV12@@Z */
4326 /* ?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEAAV12@ABV12@@Z */
4327 /* ?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEBV12@@Z */
4328 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_copyfmt
, 8)
4329 basic_ios_wchar
* __thiscall
basic_ios_wchar_copyfmt(basic_ios_wchar
*this, basic_ios_wchar
*copy
)
4331 TRACE("(%p %p)\n", this, copy
);
4335 this->stream
= copy
->stream
;
4336 this->fillch
= copy
->fillch
;
4337 ios_base_copyfmt(&this->base
, ©
->base
);
4341 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE_W_W@Z */
4342 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA_W_W@Z */
4343 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEGG@Z */
4344 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAGG@Z */
4345 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_fill_set
, 8)
4346 wchar_t __thiscall
basic_ios_wchar_fill_set(basic_ios_wchar
*this, wchar_t fill
)
4348 wchar_t ret
= this->fillch
;
4350 TRACE("(%p %c)\n", this, fill
);
4352 this->fillch
= fill
;
4356 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WXZ */
4357 /* ?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WXZ */
4358 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEGXZ */
4359 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGXZ */
4360 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_fill_get
, 4)
4361 wchar_t __thiscall
basic_ios_wchar_fill_get(basic_ios_wchar
*this)
4363 TRACE("(%p)\n", this);
4364 return this->fillch
;
4367 /* ?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
4368 /* ?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
4369 /* ?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
4370 /* ?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
4371 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_imbue
, 12)
4372 locale
*__thiscall
basic_ios_wchar_imbue(basic_ios_wchar
*this, locale
*ret
, const locale
*loc
)
4374 TRACE("(%p %p %p)\n", this, ret
, loc
);
4377 return basic_streambuf_wchar_pubimbue(this->strbuf
, ret
, loc
);
4379 locale_copy_ctor(ret
, loc
);
4383 /* ?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBED_WD@Z */
4384 /* ?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAD_WD@Z */
4385 /* ?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEDGD@Z */
4386 /* ?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBADGD@Z */
4387 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_narrow
, 12)
4388 char __thiscall
basic_ios_wchar_narrow(basic_ios_wchar
*this, wchar_t ch
, char def
)
4390 TRACE("(%p %c %c)\n", this, ch
, def
);
4391 return ctype_wchar_narrow_ch(ctype_wchar_use_facet(this->strbuf
->loc
), ch
, def
);
4394 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PAV32@@Z */
4395 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEAV32@@Z */
4396 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PAV32@@Z */
4397 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAV32@@Z */
4398 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_rdbuf_set
, 8)
4399 basic_streambuf_wchar
* __thiscall
basic_ios_wchar_rdbuf_set(basic_ios_wchar
*this, basic_streambuf_wchar
*streambuf
)
4401 basic_streambuf_wchar
*ret
= this->strbuf
;
4403 TRACE("(%p %p)\n", this, streambuf
);
4405 this->strbuf
= streambuf
;
4406 basic_ios_wchar_clear(this, IOSTATE_goodbit
);
4410 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ */
4411 /* ?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ */
4412 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ */
4413 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ */
4414 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_rdbuf_get
, 4)
4415 basic_streambuf_wchar
* __thiscall
basic_ios_wchar_rdbuf_get(const basic_ios_wchar
*this)
4417 TRACE("(%p)\n", this);
4418 return this->strbuf
;
4421 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXH_N@Z */
4422 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z */
4423 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXH_N@Z */
4424 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z */
4425 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_setstate_reraise
, 12)
4426 void __thiscall
basic_ios_wchar_setstate_reraise(basic_ios_wchar
*this, IOSB_iostate state
, MSVCP_bool reraise
)
4428 TRACE("(%p %x %x)\n", this, state
, reraise
);
4430 if(state
!= IOSTATE_goodbit
)
4431 basic_ios_wchar_clear_reraise(this, this->base
.state
| state
, reraise
);
4434 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXI@Z */
4435 /* ?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z */
4436 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXI@Z */
4437 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z */
4438 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_setstate
, 8)
4439 void __thiscall
basic_ios_wchar_setstate(basic_ios_wchar
*this, IOSB_iostate state
)
4441 basic_ios_wchar_setstate_reraise(this, state
, FALSE
);
4444 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PAV32@@Z */
4445 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PEAV32@@Z */
4446 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEPAV?$basic_ostream@GU?$char_traits@G@std@@@2@PAV32@@Z */
4447 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@PEAV32@@Z */
4448 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_tie_set
, 8)
4449 basic_ostream_wchar
* __thiscall
basic_ios_wchar_tie_set(basic_ios_wchar
*this, basic_ostream_wchar
*ostream
)
4451 basic_ostream_wchar
*ret
= this->stream
;
4453 TRACE("(%p %p)\n", this, ostream
);
4455 this->stream
= ostream
;
4459 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBEPAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ */
4460 /* ?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ */
4461 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ */
4462 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ */
4463 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_tie_get
, 4)
4464 basic_ostream_wchar
* __thiscall
basic_ios_wchar_tie_get(const basic_ios_wchar
*this)
4466 TRACE("(%p)\n", this);
4467 return this->stream
;
4470 /* ?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QBE_WD@Z */
4471 /* ?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WD@Z */
4472 /* ?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEGD@Z */
4473 /* ?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGD@Z */
4474 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_widen
, 8)
4475 wchar_t __thiscall
basic_ios_wchar_widen(basic_ios_wchar
*this, char ch
)
4477 TRACE("(%p %c)\n", this, ch
);
4478 return ctype_wchar_widen_ch(ctype_wchar_use_facet(this->strbuf
->loc
), ch
);
4481 /* Caution: basic_ostream uses virtual inheritance.
4482 * All constructors have additional parameter that says if base class should be initialized.
4483 * Base class needs to be accessed using vbtable.
4485 static inline basic_ios_char
* basic_ostream_char_get_basic_ios(basic_ostream_char
*this)
4487 return (basic_ios_char
*)((char*)this+this->vbtable
[1]);
4490 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
4491 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
4492 DEFINE_THISCALL_WRAPPER(basic_ostream_char_ctor
, 16)
4493 basic_ostream_char
* __thiscall
basic_ostream_char_ctor(basic_ostream_char
*this,
4494 basic_streambuf_char
*strbuf
, MSVCP_bool isstd
, MSVCP_bool virt_init
)
4496 basic_ios_char
*base
;
4498 TRACE("(%p %p %d %d)\n", this, strbuf
, isstd
, virt_init
);
4501 this->vbtable
= basic_ostream_char_vbtable
;
4502 base
= basic_ostream_char_get_basic_ios(this);
4503 basic_ios_char_ctor(base
);
4505 base
= basic_ostream_char_get_basic_ios(this);
4508 base
->base
.vtable
= &MSVCP_basic_ostream_char_vtable
;
4509 basic_ios_char_init(base
, strbuf
, isstd
);
4513 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@_N@Z */
4514 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z */
4515 DEFINE_THISCALL_WRAPPER(basic_ostream_char_ctor_uninitialized
, 16)
4516 basic_ostream_char
* __thiscall
basic_ostream_char_ctor_uninitialized(basic_ostream_char
*this,
4517 int uninitialized
, MSVCP_bool addstd
, MSVCP_bool virt_init
)
4519 basic_ios_char
*base
;
4521 TRACE("(%p %d %x)\n", this, uninitialized
, addstd
);
4524 this->vbtable
= basic_ostream_char_vbtable
;
4525 base
= basic_ostream_char_get_basic_ios(this);
4526 basic_ios_char_ctor(base
);
4528 base
= basic_ostream_char_get_basic_ios(this);
4531 base
->base
.vtable
= &MSVCP_basic_ostream_char_vtable
;
4533 ios_base_Addstd(&base
->base
);
4537 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
4538 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
4539 DEFINE_THISCALL_WRAPPER(basic_ostream_char_dtor
, 4)
4540 void __thiscall
basic_ostream_char_dtor(basic_ostream_char
*this)
4542 /* don't destroy virtual base here */
4543 TRACE("(%p)\n", this);
4546 /* ??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
4547 /* ??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
4548 DEFINE_THISCALL_WRAPPER(basic_ostream_char_vbase_dtor
, 4)
4549 void __thiscall
basic_ostream_char_vbase_dtor(basic_ostream_char
*this)
4551 TRACE("(%p)\n", this);
4552 basic_ostream_char_dtor(this);
4553 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(this));
4556 DEFINE_THISCALL_WRAPPER(MSVCP_basic_ostream_char_vector_dtor
, 8)
4557 basic_ostream_char
* __thiscall
MSVCP_basic_ostream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
4559 basic_ostream_char
*this = (basic_ostream_char
*)((char*)base
- basic_ostream_char_vbtable
[1] + basic_ostream_char_vbtable
[0]);
4561 TRACE("(%p %x)\n", this, flags
);
4564 /* we have an array, with the number of elements stored before the first object */
4565 int i
, *ptr
= (int *)this-1;
4567 for(i
=*ptr
-1; i
>=0; i
--)
4568 basic_ostream_char_vbase_dtor(this+i
);
4569 MSVCRT_operator_delete(ptr
);
4571 basic_ostream_char_vbase_dtor(this);
4573 MSVCRT_operator_delete(this);
4579 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ */
4580 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ */
4581 DEFINE_THISCALL_WRAPPER(basic_ostream_char_flush
, 4)
4582 basic_ostream_char
* __thiscall
basic_ostream_char_flush(basic_ostream_char
*this)
4584 /* this function is not matching C++ specification */
4585 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4587 TRACE("(%p)\n", this);
4589 if(basic_ios_char_rdbuf_get(base
) && ios_base_good(&base
->base
)
4590 && basic_streambuf_char_pubsync(basic_ios_char_rdbuf_get(base
))==-1)
4591 basic_ios_char_setstate(base
, IOSTATE_badbit
);
4595 /* ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
4596 /* ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
4597 DEFINE_THISCALL_WRAPPER(basic_ostream_char__Osfx
, 4)
4598 void __thiscall
basic_ostream_char__Osfx(basic_ostream_char
*this)
4600 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4602 TRACE("(%p)\n", this);
4604 if(base
->base
.fmtfl
& FMTFLAG_unitbuf
)
4605 basic_ostream_char_flush(this);
4608 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
4609 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
4610 DEFINE_THISCALL_WRAPPER(basic_ostream_char_osfx
, 4)
4611 void __thiscall
basic_ostream_char_osfx(basic_ostream_char
*this)
4613 TRACE("(%p)\n", this);
4614 basic_ostream_char__Osfx(this);
4617 static BOOL
basic_ostream_char_sentry_create(basic_ostream_char
*ostr
)
4619 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(ostr
);
4621 if(basic_ios_char_rdbuf_get(base
))
4622 basic_streambuf_char__Lock(base
->strbuf
);
4624 if(ios_base_good(&base
->base
) && base
->stream
)
4625 basic_ostream_char_flush(base
->stream
);
4627 return ios_base_good(&base
->base
);
4630 static void basic_ostream_char_sentry_destroy(basic_ostream_char
*ostr
)
4632 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(ostr
);
4634 if(ios_base_good(&base
->base
) && !__uncaught_exception())
4635 basic_ostream_char_osfx(ostr
);
4637 if(basic_ios_char_rdbuf_get(base
))
4638 basic_streambuf_char__Unlock(base
->strbuf
);
4641 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE_NXZ */
4642 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA_NXZ */
4643 DEFINE_THISCALL_WRAPPER(basic_ostream_char_opfx
, 4)
4644 MSVCP_bool __thiscall
basic_ostream_char_opfx(basic_ostream_char
*this)
4646 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4648 TRACE("(%p)\n", this);
4650 if(ios_base_good(&base
->base
) && base
->stream
)
4651 basic_ostream_char_flush(base
->stream
);
4652 return ios_base_good(&base
->base
);
4655 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z */
4656 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z */
4657 DEFINE_THISCALL_WRAPPER(basic_ostream_char_put
, 8)
4658 basic_ostream_char
* __thiscall
basic_ostream_char_put(basic_ostream_char
*this, char ch
)
4660 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4662 TRACE("(%p %c)\n", this, ch
);
4664 if(!basic_ostream_char_sentry_create(this)
4665 || basic_streambuf_char_sputc(base
->strbuf
, ch
)==EOF
) {
4666 basic_ostream_char_sentry_destroy(this);
4667 basic_ios_char_setstate(base
, IOSTATE_badbit
);
4671 basic_ostream_char_sentry_destroy(this);
4675 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@JH@Z */
4676 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
4677 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp
, 12)
4678 basic_ostream_char
* __thiscall
basic_ostream_char_seekp(basic_ostream_char
*this, streamoff off
, int way
)
4680 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4682 TRACE("(%p %ld %d)\n", this, off
, way
);
4684 if(!ios_base_fail(&base
->base
)) {
4687 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base
),
4688 &seek
, off
, way
, OPENMODE_out
);
4689 if(seek
.off
==0 && seek
.pos
==-1 && seek
.state
==0)
4690 basic_ios_char_setstate(base
, IOSTATE_failbit
);
4695 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
4696 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
4697 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp_fpos
, 28)
4698 basic_ostream_char
* __thiscall
basic_ostream_char_seekp_fpos(basic_ostream_char
*this, fpos_int pos
)
4700 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4702 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos
));
4704 if(!ios_base_fail(&base
->base
)) {
4707 basic_streambuf_char_pubseekpos(basic_ios_char_rdbuf_get(base
),
4708 &seek
, pos
, OPENMODE_out
);
4709 if(seek
.off
==0 && seek
.pos
==-1 && seek
.state
==0)
4710 basic_ios_char_setstate(base
, IOSTATE_failbit
);
4715 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
4716 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
4717 DEFINE_THISCALL_WRAPPER(basic_ostream_char_tellp
, 8)
4718 fpos_int
* __thiscall
basic_ostream_char_tellp(basic_ostream_char
*this, fpos_int
*ret
)
4720 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4722 TRACE("(%p)\n", this);
4724 if(!ios_base_fail(&base
->base
)) {
4725 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base
),
4726 ret
, 0, SEEKDIR_cur
, OPENMODE_out
);
4735 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@PBDH@Z */
4736 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z */
4737 DEFINE_THISCALL_WRAPPER(basic_ostream_char_write
, 12)
4738 basic_ostream_char
* __thiscall
basic_ostream_char_write(basic_ostream_char
*this, const char *str
, streamsize count
)
4740 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4742 TRACE("(%p %s %ld)\n", this, debugstr_a(str
), count
);
4744 if(!basic_ostream_char_sentry_create(this)
4745 || basic_streambuf_char_sputn(base
->strbuf
, str
, count
)!=count
) {
4746 basic_ostream_char_sentry_destroy(this);
4747 basic_ios_char_setstate(base
, IOSTATE_badbit
);
4751 basic_ostream_char_sentry_destroy(this);
4755 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@F@Z */
4756 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@F@Z */
4757 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_short
, 8)
4758 basic_ostream_char
* __thiscall
basic_ostream_char_print_short(basic_ostream_char
*this, short val
)
4760 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4761 int state
= IOSTATE_goodbit
;
4763 TRACE("(%p %d)\n", this, val
);
4765 if(basic_ostream_char_sentry_create(this)) {
4766 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
4767 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
4768 ostreambuf_iterator_char dest
= {0, strbuf
};
4770 num_put_char_put_long(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
),
4771 (ios_base_flags_get(&base
->base
) & FMTFLAG_basefield
& (FMTFLAG_oct
| FMTFLAG_hex
))
4772 ? (LONG
)((unsigned short)val
) : (LONG
)val
);
4774 basic_ostream_char_sentry_destroy(this);
4776 basic_ios_char_setstate(base
, state
);
4780 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@G@Z */
4781 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@G@Z */
4782 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ushort
, 8)
4783 basic_ostream_char
* __thiscall
basic_ostream_char_print_ushort(basic_ostream_char
*this, unsigned short val
)
4785 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4786 int state
= IOSTATE_goodbit
;
4788 TRACE("(%p %u)\n", this, val
);
4790 if(basic_ostream_char_sentry_create(this)) {
4791 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
4792 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
4793 ostreambuf_iterator_char dest
= {0, strbuf
};
4795 num_put_char_put_ulong(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
4797 basic_ostream_char_sentry_destroy(this);
4799 basic_ios_char_setstate(base
, state
);
4803 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@H@Z */
4804 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z */
4805 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@J@Z */
4806 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@J@Z */
4807 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int
, 8)
4808 basic_ostream_char
* __thiscall
basic_ostream_char_print_int(basic_ostream_char
*this, int val
)
4810 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4811 int state
= IOSTATE_goodbit
;
4813 TRACE("(%p %d)\n", this, val
);
4815 if(basic_ostream_char_sentry_create(this)) {
4816 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
4817 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
4818 ostreambuf_iterator_char dest
= {0, strbuf
};
4820 num_put_char_put_long(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
4822 basic_ostream_char_sentry_destroy(this);
4824 basic_ios_char_setstate(base
, state
);
4828 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@I@Z */
4829 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@I@Z */
4830 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@K@Z */
4831 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@K@Z */
4832 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint
, 8)
4833 basic_ostream_char
* __thiscall
basic_ostream_char_print_uint(basic_ostream_char
*this, unsigned int val
)
4835 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4836 int state
= IOSTATE_goodbit
;
4838 TRACE("(%p %u)\n", this, val
);
4840 if(basic_ostream_char_sentry_create(this)) {
4841 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
4842 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
4843 ostreambuf_iterator_char dest
= {0, strbuf
};
4845 num_put_char_put_ulong(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
4847 basic_ostream_char_sentry_destroy(this);
4849 basic_ios_char_setstate(base
, state
);
4853 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@M@Z */
4854 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z */
4855 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_float
, 8)
4856 basic_ostream_char
* __thiscall
basic_ostream_char_print_float(basic_ostream_char
*this, float val
)
4858 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4859 int state
= IOSTATE_goodbit
;
4861 TRACE("(%p %f)\n", this, val
);
4863 if(basic_ostream_char_sentry_create(this)) {
4864 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
4865 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
4866 ostreambuf_iterator_char dest
= {0, strbuf
};
4868 num_put_char_put_double(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
4870 basic_ostream_char_sentry_destroy(this);
4872 basic_ios_char_setstate(base
, state
);
4876 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@N@Z */
4877 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z */
4878 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_double
, 12)
4879 basic_ostream_char
* __thiscall
basic_ostream_char_print_double(basic_ostream_char
*this, double val
)
4881 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4882 int state
= IOSTATE_goodbit
;
4884 TRACE("(%p %lf)\n", this, val
);
4886 if(basic_ostream_char_sentry_create(this)) {
4887 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
4888 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
4889 ostreambuf_iterator_char dest
= {0, strbuf
};
4891 num_put_char_put_double(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
4893 basic_ostream_char_sentry_destroy(this);
4895 basic_ios_char_setstate(base
, state
);
4899 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@O@Z */
4900 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@O@Z */
4901 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ldouble
, 12)
4902 basic_ostream_char
* __thiscall
basic_ostream_char_print_ldouble(basic_ostream_char
*this, double val
)
4904 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4905 int state
= IOSTATE_goodbit
;
4907 TRACE("(%p %lf)\n", this, val
);
4909 if(basic_ostream_char_sentry_create(this)) {
4910 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
4911 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
4912 ostreambuf_iterator_char dest
= {0, strbuf
};
4914 num_put_char_put_ldouble(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
4916 basic_ostream_char_sentry_destroy(this);
4918 basic_ios_char_setstate(base
, state
);
4922 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
4923 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
4924 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_streambuf
, 8)
4925 basic_ostream_char
* __thiscall
basic_ostream_char_print_streambuf(basic_ostream_char
*this, basic_streambuf_char
*val
)
4927 FIXME("(%p %p) stub\n", this, val
);
4931 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PBX@Z */
4932 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEBX@Z */
4933 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ptr
, 8)
4934 basic_ostream_char
* __thiscall
basic_ostream_char_print_ptr(basic_ostream_char
*this, const void *val
)
4936 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4937 int state
= IOSTATE_goodbit
;
4939 TRACE("(%p %p)\n", this, val
);
4941 if(basic_ostream_char_sentry_create(this)) {
4942 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
4943 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
4944 ostreambuf_iterator_char dest
= {0, strbuf
};
4946 num_put_char_put_ptr(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
4948 basic_ostream_char_sentry_destroy(this);
4950 basic_ios_char_setstate(base
, state
);
4954 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_J@Z */
4955 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_J@Z */
4956 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int64
, 12)
4957 basic_ostream_char
* __thiscall
basic_ostream_char_print_int64(basic_ostream_char
*this, __int64 val
)
4959 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4960 int state
= IOSTATE_goodbit
;
4962 TRACE("(%p)\n", this);
4964 if(basic_ostream_char_sentry_create(this)) {
4965 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
4966 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
4967 ostreambuf_iterator_char dest
= {0, strbuf
};
4969 num_put_char_put_int64(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
4971 basic_ostream_char_sentry_destroy(this);
4973 basic_ios_char_setstate(base
, state
);
4977 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_K@Z */
4978 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z */
4979 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint64
, 12)
4980 basic_ostream_char
* __thiscall
basic_ostream_char_print_uint64(basic_ostream_char
*this, unsigned __int64 val
)
4982 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4983 int state
= IOSTATE_goodbit
;
4985 TRACE("(%p)\n", this);
4987 if(basic_ostream_char_sentry_create(this)) {
4988 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
4989 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
4990 ostreambuf_iterator_char dest
= {0, strbuf
};
4992 num_put_char_put_uint64(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
4994 basic_ostream_char_sentry_destroy(this);
4996 basic_ios_char_setstate(base
, state
);
5000 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_N@Z */
5001 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_N@Z */
5002 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_bool
, 8)
5003 basic_ostream_char
* __thiscall
basic_ostream_char_print_bool(basic_ostream_char
*this, MSVCP_bool val
)
5005 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5006 int state
= IOSTATE_goodbit
;
5008 TRACE("(%p %x)\n", this, val
);
5010 if(basic_ostream_char_sentry_create(this)) {
5011 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
5012 const num_put
*numput
= num_put_char_use_facet(strbuf
->loc
);
5013 ostreambuf_iterator_char dest
= {0, strbuf
};
5015 num_put_char_put_bool(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
5017 basic_ostream_char_sentry_destroy(this);
5019 basic_ios_char_setstate(base
, state
);
5023 /* ?endl@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
5024 /* ?endl@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
5025 basic_ostream_char
* __cdecl
basic_ostream_char_endl(basic_ostream_char
*ostr
)
5027 TRACE("(%p)\n", ostr
);
5029 basic_ostream_char_put(ostr
, '\n');
5030 basic_ostream_char_flush(ostr
);
5034 /* $?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
5035 /* ??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
5036 basic_ostream_char
* __cdecl
basic_ostream_char_print_bstr(basic_ostream_char
*ostr
, const basic_string_char
*str
)
5038 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(ostr
);
5039 IOSB_iostate state
= IOSTATE_goodbit
;
5041 TRACE("(%p %p)\n", ostr
, str
);
5043 if(basic_ostream_char_sentry_create(ostr
)) {
5044 MSVCP_size_t len
= MSVCP_basic_string_char_length(str
);
5045 streamsize pad
= (base
->base
.wide
>len
? base
->base
.wide
-len
: 0);
5047 if((base
->base
.fmtfl
& FMTFLAG_adjustfield
) != FMTFLAG_left
) {
5048 for(; pad
!=0; pad
--) {
5049 if(basic_streambuf_char_sputc(base
->strbuf
, base
->fillch
) == EOF
) {
5050 state
= IOSTATE_badbit
;
5056 if(state
== IOSTATE_goodbit
) {
5057 if(basic_streambuf_char_sputn(base
->strbuf
, MSVCP_basic_string_char_c_str(str
), len
) != len
)
5058 state
= IOSTATE_badbit
;
5061 for(; pad
!=0; pad
--) {
5062 if(basic_streambuf_char_sputc(base
->strbuf
, base
->fillch
) == EOF
) {
5063 state
= IOSTATE_badbit
;
5068 base
->base
.wide
= 0;
5070 state
= IOSTATE_badbit
;
5072 basic_ostream_char_sentry_destroy(ostr
);
5074 basic_ios_char_setstate(base
, state
);
5078 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
5079 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
5080 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func
, 8)
5081 basic_ostream_char
* __thiscall
basic_ostream_char_print_func(basic_ostream_char
*this,
5082 basic_ostream_char
* (__cdecl
*pfunc
)(basic_ostream_char
*))
5084 TRACE("(%p %p)\n", this, pfunc
);
5089 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@DU?$char_traits@D@std@@@1@AAV21@@Z@Z */
5090 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z */
5091 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func_basic_ios
, 8)
5092 basic_ostream_char
* __thiscall
basic_ostream_char_print_func_basic_ios(basic_ostream_char
*this,
5093 basic_ios_char
* (__cdecl
*pfunc
)(basic_ios_char
*))
5095 TRACE("(%p %p)\n", this, pfunc
);
5096 pfunc(basic_ostream_char_get_basic_ios(this));
5100 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
5101 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
5102 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func_ios_base
, 8)
5103 basic_ostream_char
* __thiscall
basic_ostream_char_print_func_ios_base(
5104 basic_ostream_char
*this, ios_base
* (__cdecl
*pfunc
)(ios_base
*))
5106 TRACE("(%p %p)\n", this, pfunc
);
5107 pfunc(&basic_ostream_char_get_basic_ios(this)->base
);
5111 /* Caution: basic_ostream uses virtual inheritance. */
5112 static inline basic_ios_wchar
* basic_ostream_wchar_get_basic_ios(basic_ostream_wchar
*this)
5114 return (basic_ios_wchar
*)((char*)this+this->vbtable
[1]);
5117 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
5118 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
5119 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_ctor
, 16)
5120 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_ctor(basic_ostream_wchar
*this,
5121 basic_streambuf_wchar
*strbuf
, MSVCP_bool isstd
, MSVCP_bool virt_init
)
5123 basic_ios_wchar
*base
;
5125 TRACE("(%p %p %d %d)\n", this, strbuf
, isstd
, virt_init
);
5128 this->vbtable
= basic_ostream_wchar_vbtable
;
5129 base
= basic_ostream_wchar_get_basic_ios(this);
5130 basic_ios_wchar_ctor(base
);
5132 base
= basic_ostream_wchar_get_basic_ios(this);
5135 base
->base
.vtable
= &MSVCP_basic_ostream_wchar_vtable
;
5136 basic_ios_wchar_init(base
, strbuf
, isstd
);
5140 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@_N@Z */
5141 /* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z */
5142 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_ctor_uninitialized
, 16)
5143 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_ctor_uninitialized(basic_ostream_wchar
*this,
5144 int uninitialized
, MSVCP_bool addstd
, MSVCP_bool virt_init
)
5146 basic_ios_wchar
*base
;
5148 TRACE("(%p %d %x)\n", this, uninitialized
, addstd
);
5151 this->vbtable
= basic_ostream_wchar_vbtable
;
5152 base
= basic_ostream_wchar_get_basic_ios(this);
5153 basic_ios_wchar_ctor(base
);
5155 base
= basic_ostream_wchar_get_basic_ios(this);
5158 base
->base
.vtable
= &MSVCP_basic_ostream_wchar_vtable
;
5160 ios_base_Addstd(&base
->base
);
5164 /* ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
5165 /* ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
5166 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_dtor
, 4)
5167 void __thiscall
basic_ostream_wchar_dtor(basic_ostream_wchar
*this)
5169 /* don't destroy virtual base here */
5170 TRACE("(%p)\n", this);
5173 /* ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
5174 /* ??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
5175 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_vbase_dtor
, 4)
5176 void __thiscall
basic_ostream_wchar_vbase_dtor(basic_ostream_wchar
*this)
5178 TRACE("(%p)\n", this);
5179 basic_ostream_wchar_dtor(this);
5180 basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(this));
5183 DEFINE_THISCALL_WRAPPER(MSVCP_basic_ostream_wchar_vector_dtor
, 8)
5184 basic_ostream_wchar
* __thiscall
MSVCP_basic_ostream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
5186 basic_ostream_wchar
*this = (basic_ostream_wchar
*)((char*)base
- basic_ostream_wchar_vbtable
[1] + basic_ostream_wchar_vbtable
[0]);
5188 TRACE("(%p %x)\n", this, flags
);
5191 /* we have an array, with the number of elements stored before the first object */
5192 int i
, *ptr
= (int *)this-1;
5194 for(i
=*ptr
-1; i
>=0; i
--)
5195 basic_ostream_wchar_vbase_dtor(this+i
);
5196 MSVCRT_operator_delete(ptr
);
5198 basic_ostream_wchar_vbase_dtor(this);
5200 MSVCRT_operator_delete(this);
5206 /* ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ */
5207 /* ?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ */
5208 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_flush
, 4)
5209 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_flush(basic_ostream_wchar
*this)
5211 /* this function is not matching C++ specification */
5212 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
5214 TRACE("(%p)\n", this);
5216 if(basic_ios_wchar_rdbuf_get(base
) && ios_base_good(&base
->base
)
5217 && basic_streambuf_wchar_pubsync(basic_ios_wchar_rdbuf_get(base
))==-1)
5218 basic_ios_wchar_setstate(base
, IOSTATE_badbit
);
5222 /* ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
5223 /* ?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
5224 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar__Osfx
, 4)
5225 void __thiscall
basic_ostream_wchar__Osfx(basic_ostream_wchar
*this)
5227 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
5229 TRACE("(%p)\n", this);
5231 if(base
->base
.fmtfl
& FMTFLAG_unitbuf
)
5232 basic_ostream_wchar_flush(this);
5235 /* ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
5236 /* ?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
5237 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_osfx
, 4)
5238 void __thiscall
basic_ostream_wchar_osfx(basic_ostream_wchar
*this)
5240 TRACE("(%p)\n", this);
5241 basic_ostream_wchar__Osfx(this);
5244 static BOOL
basic_ostream_wchar_sentry_create(basic_ostream_wchar
*ostr
)
5246 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(ostr
);
5248 if(basic_ios_wchar_rdbuf_get(base
))
5249 basic_streambuf_wchar__Lock(base
->strbuf
);
5251 if(ios_base_good(&base
->base
) && base
->stream
)
5252 basic_ostream_wchar_flush(base
->stream
);
5254 return ios_base_good(&base
->base
);
5257 static void basic_ostream_wchar_sentry_destroy(basic_ostream_wchar
*ostr
)
5259 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(ostr
);
5261 if(ios_base_good(&base
->base
) && !__uncaught_exception())
5262 basic_ostream_wchar_osfx(ostr
);
5264 if(basic_ios_wchar_rdbuf_get(base
))
5265 basic_streambuf_wchar__Unlock(base
->strbuf
);
5268 /* ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE_NXZ */
5269 /* ?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA_NXZ */
5270 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_opfx
, 4)
5271 MSVCP_bool __thiscall
basic_ostream_wchar_opfx(basic_ostream_wchar
*this)
5273 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
5275 TRACE("(%p)\n", this);
5277 if(ios_base_good(&base
->base
) && base
->stream
)
5278 basic_ostream_wchar_flush(base
->stream
);
5279 return ios_base_good(&base
->base
);
5282 /* ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@_W@Z */
5283 /* ?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z */
5284 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_put
, 8)
5285 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_put(basic_ostream_wchar
*this, wchar_t ch
)
5287 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
5289 TRACE("(%p %c)\n", this, ch
);
5291 if(!basic_ostream_wchar_sentry_create(this)
5292 || basic_streambuf_wchar_sputc(base
->strbuf
, ch
)==WEOF
) {
5293 basic_ostream_wchar_sentry_destroy(this);
5294 basic_ios_wchar_setstate(base
, IOSTATE_badbit
);
5298 basic_ostream_wchar_sentry_destroy(this);
5302 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@JH@Z */
5303 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z */
5304 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_seekp
, 12)
5305 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_seekp(basic_ostream_wchar
*this, streamoff off
, int way
)
5307 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
5309 TRACE("(%p %ld %d)\n", this, off
, way
);
5311 if(!ios_base_fail(&base
->base
)) {
5314 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base
),
5315 &seek
, off
, way
, OPENMODE_out
);
5316 if(seek
.off
==0 && seek
.pos
==-1 && seek
.state
==0)
5317 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
5322 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
5323 /* ?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
5324 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_seekp_fpos
, 28)
5325 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_seekp_fpos(basic_ostream_wchar
*this, fpos_int pos
)
5327 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
5329 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos
));
5331 if(!ios_base_fail(&base
->base
)) {
5334 basic_streambuf_wchar_pubseekpos(basic_ios_wchar_rdbuf_get(base
),
5335 &seek
, pos
, OPENMODE_out
);
5336 if(seek
.off
==0 && seek
.pos
==-1 && seek
.state
==0)
5337 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
5342 /* ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@XZ */
5343 /* ?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
5344 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_tellp
, 8)
5345 fpos_int
* __thiscall
basic_ostream_wchar_tellp(basic_ostream_wchar
*this, fpos_int
*ret
)
5347 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
5349 TRACE("(%p)\n", this);
5351 if(!ios_base_fail(&base
->base
)) {
5352 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base
),
5353 ret
, 0, SEEKDIR_cur
, OPENMODE_out
);
5362 /* ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PB_WH@Z */
5363 /* ?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEB_W_J@Z */
5364 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_write
, 12)
5365 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_write(basic_ostream_wchar
*this, const wchar_t *str
, streamsize count
)
5367 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
5369 TRACE("(%p %s %ld)\n", this, debugstr_w(str
), count
);
5371 if(!basic_ostream_wchar_sentry_create(this)
5372 || basic_streambuf_wchar_sputn(base
->strbuf
, str
, count
)!=count
) {
5373 basic_ostream_wchar_sentry_destroy(this);
5374 basic_ios_wchar_setstate(base
, IOSTATE_badbit
);
5378 basic_ostream_wchar_sentry_destroy(this);
5382 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@F@Z */
5383 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@F@Z */
5384 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_short
, 8)
5385 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_short(basic_ostream_wchar
*this, short val
)
5387 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
5388 int state
= IOSTATE_goodbit
;
5390 TRACE("(%p %d)\n", this, val
);
5392 if(basic_ostream_wchar_sentry_create(this)) {
5393 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
5394 const num_put
*numput
= num_put_wchar_use_facet(strbuf
->loc
);
5395 ostreambuf_iterator_wchar dest
= {0, strbuf
};
5397 num_put_wchar_put_long(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
),
5398 (ios_base_flags_get(&base
->base
) & FMTFLAG_basefield
& (FMTFLAG_oct
| FMTFLAG_hex
))
5399 ? (LONG
)((unsigned short)val
) : (LONG
)val
);
5401 basic_ostream_wchar_sentry_destroy(this);
5403 basic_ios_wchar_setstate(base
, state
);
5407 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@G@Z */
5408 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@G@Z */
5409 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ushort
, 8)
5410 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_ushort(basic_ostream_wchar
*this, unsigned short val
)
5412 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
5413 int state
= IOSTATE_goodbit
;
5415 TRACE("(%p %u)\n", this, val
);
5417 if(basic_ostream_wchar_sentry_create(this)) {
5418 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
5419 const num_put
*numput
= num_put_wchar_use_facet(strbuf
->loc
);
5420 ostreambuf_iterator_wchar dest
= {0, strbuf
};
5422 num_put_wchar_put_ulong(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
5424 basic_ostream_wchar_sentry_destroy(this);
5426 basic_ios_wchar_setstate(base
, state
);
5430 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@H@Z */
5431 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@H@Z */
5432 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@J@Z */
5433 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@J@Z */
5434 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_int
, 8)
5435 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_int(basic_ostream_wchar
*this, int val
)
5437 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
5438 int state
= IOSTATE_goodbit
;
5440 TRACE("(%p %d)\n", this, val
);
5442 if(basic_ostream_wchar_sentry_create(this)) {
5443 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
5444 const num_put
*numput
= num_put_wchar_use_facet(strbuf
->loc
);
5445 ostreambuf_iterator_wchar dest
= {0, strbuf
};
5447 num_put_wchar_put_long(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
5449 basic_ostream_wchar_sentry_destroy(this);
5451 basic_ios_wchar_setstate(base
, state
);
5455 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@I@Z */
5456 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@I@Z */
5457 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@K@Z */
5458 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@K@Z */
5459 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_uint
, 8)
5460 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_uint(basic_ostream_wchar
*this, unsigned int val
)
5462 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
5463 int state
= IOSTATE_goodbit
;
5465 TRACE("(%p %u)\n", this, val
);
5467 if(basic_ostream_wchar_sentry_create(this)) {
5468 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
5469 const num_put
*numput
= num_put_wchar_use_facet(strbuf
->loc
);
5470 ostreambuf_iterator_wchar dest
= {0, strbuf
};
5472 num_put_wchar_put_ulong(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
5474 basic_ostream_wchar_sentry_destroy(this);
5476 basic_ios_wchar_setstate(base
, state
);
5480 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@M@Z */
5481 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@M@Z */
5482 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_float
, 8)
5483 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_float(basic_ostream_wchar
*this, float val
)
5485 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
5486 int state
= IOSTATE_goodbit
;
5488 TRACE("(%p %f)\n", this, val
);
5490 if(basic_ostream_wchar_sentry_create(this)) {
5491 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
5492 const num_put
*numput
= num_put_wchar_use_facet(strbuf
->loc
);
5493 ostreambuf_iterator_wchar dest
= {0, strbuf
};
5495 num_put_wchar_put_double(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
5497 basic_ostream_wchar_sentry_destroy(this);
5499 basic_ios_wchar_setstate(base
, state
);
5503 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@N@Z */
5504 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@N@Z */
5505 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_double
, 12)
5506 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_double(basic_ostream_wchar
*this, double val
)
5508 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
5509 int state
= IOSTATE_goodbit
;
5511 TRACE("(%p %lf)\n", this, val
);
5513 if(basic_ostream_wchar_sentry_create(this)) {
5514 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
5515 const num_put
*numput
= num_put_wchar_use_facet(strbuf
->loc
);
5516 ostreambuf_iterator_wchar dest
= {0, strbuf
};
5518 num_put_wchar_put_double(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
5520 basic_ostream_wchar_sentry_destroy(this);
5522 basic_ios_wchar_setstate(base
, state
);
5526 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@O@Z */
5527 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@O@Z */
5528 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ldouble
, 12)
5529 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_ldouble(basic_ostream_wchar
*this, double val
)
5531 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
5532 int state
= IOSTATE_goodbit
;
5534 TRACE("(%p %lf)\n", this, val
);
5536 if(basic_ostream_wchar_sentry_create(this)) {
5537 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
5538 const num_put
*numput
= num_put_wchar_use_facet(strbuf
->loc
);
5539 ostreambuf_iterator_wchar dest
= {0, strbuf
};
5541 num_put_wchar_put_ldouble(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
5543 basic_ostream_wchar_sentry_destroy(this);
5545 basic_ios_wchar_setstate(base
, state
);
5549 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
5550 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
5551 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_streambuf
, 8)
5552 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_streambuf(basic_ostream_wchar
*this, basic_streambuf_wchar
*val
)
5554 FIXME("(%p %p) stub\n", this, val
);
5558 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@PBX@Z */
5559 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEBX@Z */
5560 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_ptr
, 8)
5561 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_ptr(basic_ostream_wchar
*this, const void *val
)
5563 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
5564 int state
= IOSTATE_goodbit
;
5566 TRACE("(%p %p)\n", this, val
);
5568 if(basic_ostream_wchar_sentry_create(this)) {
5569 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
5570 const num_put
*numput
= num_put_wchar_use_facet(strbuf
->loc
);
5571 ostreambuf_iterator_wchar dest
= {0, strbuf
};
5573 num_put_wchar_put_ptr(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
5575 basic_ostream_wchar_sentry_destroy(this);
5577 basic_ios_wchar_setstate(base
, state
);
5581 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_J@Z */
5582 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_J@Z */
5583 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_int64
, 12)
5584 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_int64(basic_ostream_wchar
*this, __int64 val
)
5586 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
5587 int state
= IOSTATE_goodbit
;
5589 TRACE("(%p)\n", this);
5591 if(basic_ostream_wchar_sentry_create(this)) {
5592 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
5593 const num_put
*numput
= num_put_wchar_use_facet(strbuf
->loc
);
5594 ostreambuf_iterator_wchar dest
= {0, strbuf
};
5596 num_put_wchar_put_int64(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
5598 basic_ostream_wchar_sentry_destroy(this);
5600 basic_ios_wchar_setstate(base
, state
);
5604 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_K@Z */
5605 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_K@Z */
5606 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_uint64
, 12)
5607 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_uint64(basic_ostream_wchar
*this, unsigned __int64 val
)
5609 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
5610 int state
= IOSTATE_goodbit
;
5612 TRACE("(%p)\n", this);
5614 if(basic_ostream_wchar_sentry_create(this)) {
5615 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
5616 const num_put
*numput
= num_put_wchar_use_facet(strbuf
->loc
);
5617 ostreambuf_iterator_wchar dest
= {0, strbuf
};
5619 num_put_wchar_put_uint64(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
5621 basic_ostream_wchar_sentry_destroy(this);
5623 basic_ios_wchar_setstate(base
, state
);
5627 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@_N@Z */
5628 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_N@Z */
5629 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_bool
, 8)
5630 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_bool(basic_ostream_wchar
*this, MSVCP_bool val
)
5632 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(this);
5633 int state
= IOSTATE_goodbit
;
5635 TRACE("(%p %x)\n", this, val
);
5637 if(basic_ostream_wchar_sentry_create(this)) {
5638 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
5639 const num_put
*numput
= num_put_wchar_use_facet(strbuf
->loc
);
5640 ostreambuf_iterator_wchar dest
= {0, strbuf
};
5642 num_put_wchar_put_bool(numput
, &dest
, dest
, &base
->base
, basic_ios_wchar_fill_get(base
), val
);
5644 basic_ostream_wchar_sentry_destroy(this);
5646 basic_ios_wchar_setstate(base
, state
);
5650 /* ?endl@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AAV21@@Z */
5651 /* ?endl@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z */
5652 basic_ostream_wchar
* __cdecl
basic_ostream_wchar_endl(basic_ostream_wchar
*ostr
)
5654 TRACE("(%p)\n", ostr
);
5656 basic_ostream_wchar_put(ostr
, '\n');
5657 basic_ostream_wchar_flush(ostr
);
5661 /* ??$?6_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YAAAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AAV10@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
5662 /* ??$?6_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@0@AEAV10@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
5663 basic_ostream_wchar
* __cdecl
basic_ostream_wchar_print_bstr(basic_ostream_wchar
*ostr
, const basic_string_wchar
*str
)
5665 basic_ios_wchar
*base
= basic_ostream_wchar_get_basic_ios(ostr
);
5666 IOSB_iostate state
= IOSTATE_goodbit
;
5668 TRACE("(%p %p)\n", ostr
, str
);
5670 if(basic_ostream_wchar_sentry_create(ostr
)) {
5671 MSVCP_size_t len
= MSVCP_basic_string_wchar_length(str
);
5672 streamsize pad
= (base
->base
.wide
>len
? base
->base
.wide
-len
: 0);
5674 if((base
->base
.fmtfl
& FMTFLAG_adjustfield
) != FMTFLAG_left
) {
5675 for(; pad
!=0; pad
--) {
5676 if(basic_streambuf_wchar_sputc(base
->strbuf
, base
->fillch
) == WEOF
) {
5677 state
= IOSTATE_badbit
;
5683 if(state
== IOSTATE_goodbit
) {
5684 if(basic_streambuf_wchar_sputn(base
->strbuf
, MSVCP_basic_string_wchar_c_str(str
), len
) != len
)
5685 state
= IOSTATE_badbit
;
5688 for(; pad
!=0; pad
--) {
5689 if(basic_streambuf_wchar_sputc(base
->strbuf
, base
->fillch
) == WEOF
) {
5690 state
= IOSTATE_badbit
;
5695 base
->base
.wide
= 0;
5697 state
= IOSTATE_badbit
;
5699 basic_ostream_wchar_sentry_destroy(ostr
);
5701 basic_ios_wchar_setstate(base
, state
);
5705 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
5706 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
5707 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func
, 8)
5708 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_func(basic_ostream_wchar
*this,
5709 basic_ostream_wchar
* (__cdecl
*pfunc
)(basic_ostream_wchar
*))
5711 TRACE("(%p %p)\n", this, pfunc
);
5716 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AAV21@@Z@Z */
5717 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z */
5718 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func_basic_ios
, 8)
5719 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_func_basic_ios(basic_ostream_wchar
*this,
5720 basic_ios_wchar
* (__cdecl
*pfunc
)(basic_ios_wchar
*))
5722 TRACE("(%p %p)\n", this, pfunc
);
5723 pfunc(basic_ostream_wchar_get_basic_ios(this));
5727 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
5728 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
5729 DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_print_func_ios_base
, 8)
5730 basic_ostream_wchar
* __thiscall
basic_ostream_wchar_print_func_ios_base(
5731 basic_ostream_wchar
*this, ios_base
* (__cdecl
*pfunc
)(ios_base
*))
5733 TRACE("(%p %p)\n", this, pfunc
);
5734 pfunc(&basic_ostream_wchar_get_basic_ios(this)->base
);
5738 /* Caution: basic_istream uses virtual inheritance. */
5739 static inline basic_ios_char
* basic_istream_char_get_basic_ios(basic_istream_char
*this)
5741 return (basic_ios_char
*)((char*)this+this->vbtable
[1]);
5744 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
5745 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
5746 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor_init
, 20)
5747 basic_istream_char
* __thiscall
basic_istream_char_ctor_init(basic_istream_char
*this, basic_streambuf_char
*strbuf
, MSVCP_bool isstd
, MSVCP_bool noinit
, MSVCP_bool virt_init
)
5749 basic_ios_char
*base
;
5751 TRACE("(%p %p %d %d %d)\n", this, strbuf
, isstd
, noinit
, virt_init
);
5754 this->vbtable
= basic_istream_char_vbtable
;
5755 base
= basic_istream_char_get_basic_ios(this);
5756 basic_ios_char_ctor(base
);
5758 base
= basic_istream_char_get_basic_ios(this);
5761 base
->base
.vtable
= &MSVCP_basic_istream_char_vtable
;
5764 basic_ios_char_init(base
, strbuf
, isstd
);
5768 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
5769 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
5770 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor
, 16)
5771 basic_istream_char
* __thiscall
basic_istream_char_ctor(basic_istream_char
*this, basic_streambuf_char
*strbuf
, MSVCP_bool isstd
, MSVCP_bool virt_init
)
5773 return basic_istream_char_ctor_init(this, strbuf
, isstd
, FALSE
, virt_init
);
5776 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
5777 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
5778 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor_uninitialized
, 12)
5779 basic_istream_char
* __thiscall
basic_istream_char_ctor_uninitialized(basic_istream_char
*this, int uninitialized
, MSVCP_bool virt_init
)
5781 basic_ios_char
*base
;
5783 TRACE("(%p %d %d)\n", this, uninitialized
, virt_init
);
5786 this->vbtable
= basic_istream_char_vbtable
;
5787 base
= basic_istream_char_get_basic_ios(this);
5788 basic_ios_char_ctor(base
);
5790 base
= basic_istream_char_get_basic_ios(this);
5793 base
->base
.vtable
= &MSVCP_basic_istream_char_vtable
;
5794 ios_base_Addstd(&base
->base
);
5798 /* ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ */
5799 /* ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
5800 DEFINE_THISCALL_WRAPPER(basic_istream_char_dtor
, 4)
5801 void __thiscall
basic_istream_char_dtor(basic_istream_char
*this)
5803 /* don't destroy virtual base here */
5804 TRACE("(%p)\n", this);
5807 /* ??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ */
5808 /* ??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
5809 DEFINE_THISCALL_WRAPPER(basic_istream_char_vbase_dtor
, 4)
5810 void __thiscall
basic_istream_char_vbase_dtor(basic_istream_char
*this)
5812 TRACE("(%p)\n", this);
5813 basic_istream_char_dtor(this);
5814 basic_ios_char_dtor(basic_istream_char_get_basic_ios(this));
5817 DEFINE_THISCALL_WRAPPER(MSVCP_basic_istream_char_vector_dtor
, 8)
5818 basic_istream_char
* __thiscall
MSVCP_basic_istream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
5820 basic_istream_char
*this = (basic_istream_char
*)((char*)base
- basic_istream_char_vbtable
[1] + basic_istream_char_vbtable
[0]);
5822 TRACE("(%p %x)\n", this, flags
);
5825 /* we have an array, with the number of elements stored before the first object */
5826 int i
, *ptr
= (int *)this-1;
5828 for(i
=*ptr
-1; i
>=0; i
--)
5829 basic_istream_char_vbase_dtor(this+i
);
5830 MSVCRT_operator_delete(ptr
);
5832 basic_istream_char_vbase_dtor(this);
5834 MSVCRT_operator_delete(this);
5840 /* ?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z */
5841 /* ?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z */
5842 DEFINE_THISCALL_WRAPPER(basic_istream_char__Ipfx
, 8)
5843 MSVCP_bool __thiscall
basic_istream_char__Ipfx(basic_istream_char
*this, MSVCP_bool noskip
)
5845 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
5847 TRACE("(%p %d)\n", this, noskip
);
5849 if(!ios_base_good(&base
->base
)) {
5850 basic_ios_char_setstate(base
, IOSTATE_failbit
);
5854 if(basic_ios_char_tie_get(base
))
5855 basic_ostream_char_flush(basic_ios_char_tie_get(base
));
5857 if(!noskip
&& (ios_base_flags_get(&base
->base
) & FMTFLAG_skipws
)) {
5858 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
5859 const ctype_char
*ctype
= ctype_char_use_facet(base
->strbuf
->loc
);
5862 for(ch
= basic_streambuf_char_sgetc(strbuf
); ;
5863 ch
= basic_streambuf_char_snextc(strbuf
)) {
5865 basic_ios_char_setstate(base
, IOSTATE_eofbit
);
5869 if(!ctype_char_is_ch(ctype
, _SPACE
|_BLANK
, ch
))
5877 /* ?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z */
5878 /* ?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z */
5879 DEFINE_THISCALL_WRAPPER(basic_istream_char_ipfx
, 8)
5880 MSVCP_bool __thiscall
basic_istream_char_ipfx(basic_istream_char
*this, MSVCP_bool noskip
)
5882 return basic_istream_char__Ipfx(this, noskip
);
5885 /* ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ */
5886 /* ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
5887 DEFINE_THISCALL_WRAPPER(basic_istream_char_isfx
, 4)
5888 void __thiscall
basic_istream_char_isfx(basic_istream_char
*this)
5890 TRACE("(%p)\n", this);
5893 static BOOL
basic_istream_char_sentry_create(basic_istream_char
*istr
, MSVCP_bool noskip
)
5895 basic_ios_char
*base
= basic_istream_char_get_basic_ios(istr
);
5897 if(basic_ios_char_rdbuf_get(base
))
5898 basic_streambuf_char__Lock(base
->strbuf
);
5900 return basic_istream_char_ipfx(istr
, noskip
);
5903 static void basic_istream_char_sentry_destroy(basic_istream_char
*istr
)
5905 basic_ios_char
*base
= basic_istream_char_get_basic_ios(istr
);
5907 if(basic_ios_char_rdbuf_get(base
))
5908 basic_streambuf_char__Unlock(base
->strbuf
);
5911 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QBEHXZ */
5912 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QEBA_JXZ */
5913 DEFINE_THISCALL_WRAPPER(basic_istream_char_gcount
, 4)
5914 int __thiscall
basic_istream_char_gcount(const basic_istream_char
*this)
5916 TRACE("(%p)\n", this);
5920 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
5921 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
5922 DEFINE_THISCALL_WRAPPER(basic_istream_char_get
, 4)
5923 int __thiscall
basic_istream_char_get(basic_istream_char
*this)
5925 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
5928 TRACE("(%p)\n", this);
5932 if(!basic_istream_char_sentry_create(this, TRUE
)) {
5933 basic_istream_char_sentry_destroy(this);
5937 ret
= basic_streambuf_char_sbumpc(basic_ios_char_rdbuf_get(base
));
5938 basic_istream_char_sentry_destroy(this);
5940 basic_ios_char_setstate(base
, IOSTATE_eofbit
|IOSTATE_failbit
);
5947 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAD@Z */
5948 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAD@Z */
5949 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_ch
, 8)
5950 basic_istream_char
* __thiscall
basic_istream_char_get_ch(basic_istream_char
*this, char *ch
)
5954 TRACE("(%p %p)\n", this, ch
);
5956 ret
= basic_istream_char_get(this);
5962 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADHD@Z */
5963 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z */
5964 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_str_delim
, 16)
5965 basic_istream_char
* __thiscall
basic_istream_char_get_str_delim(basic_istream_char
*this, char *str
, streamsize count
, char delim
)
5967 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
5970 TRACE("(%p %p %ld %c)\n", this, str
, count
, delim
);
5974 if(basic_istream_char_sentry_create(this, TRUE
)) {
5975 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
5977 for(ch
= basic_streambuf_char_sgetc(strbuf
); count
>1;
5978 ch
= basic_streambuf_char_snextc(strbuf
)) {
5979 if(ch
==EOF
|| ch
==delim
)
5987 basic_istream_char_sentry_destroy(this);
5989 basic_ios_char_setstate(base
, (!this->count
? IOSTATE_failbit
: IOSTATE_goodbit
) |
5990 (ch
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
5996 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
5997 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
5998 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_str
, 12)
5999 basic_istream_char
* __thiscall
basic_istream_char_get_str(basic_istream_char
*this, char *str
, streamsize count
)
6001 return basic_istream_char_get_str_delim(this, str
, count
, '\n');
6004 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z */
6005 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z */
6006 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_streambuf_delim
, 12)
6007 basic_istream_char
* __thiscall
basic_istream_char_get_streambuf_delim(basic_istream_char
*this, basic_streambuf_char
*strbuf
, char delim
)
6009 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6012 TRACE("(%p %p %c)\n", this, strbuf
, delim
);
6016 if(basic_istream_char_sentry_create(this, TRUE
)) {
6017 basic_streambuf_char
*strbuf_read
= basic_ios_char_rdbuf_get(base
);
6019 for(ch
= basic_streambuf_char_sgetc(strbuf_read
); ;
6020 ch
= basic_streambuf_char_snextc(strbuf_read
)) {
6021 if(ch
==EOF
|| ch
==delim
)
6024 if(basic_streambuf_char_sputc(strbuf
, ch
) == EOF
)
6029 basic_istream_char_sentry_destroy(this);
6031 basic_ios_char_setstate(base
, (!this->count
? IOSTATE_failbit
: IOSTATE_goodbit
) |
6032 (ch
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
6036 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z */
6037 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z */
6038 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_streambuf
, 8)
6039 basic_istream_char
* __thiscall
basic_istream_char_get_streambuf(basic_istream_char
*this, basic_streambuf_char
*strbuf
)
6041 return basic_istream_char_get_streambuf_delim(this, strbuf
, '\n');
6044 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADHD@Z */
6045 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z */
6046 DEFINE_THISCALL_WRAPPER(basic_istream_char_getline_delim
, 16)
6047 basic_istream_char
* __thiscall
basic_istream_char_getline_delim(basic_istream_char
*this, char *str
, streamsize count
, char delim
)
6049 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6052 TRACE("(%p %p %ld %c)\n", this, str
, count
, delim
);
6056 if(basic_istream_char_sentry_create(this, TRUE
) && count
>0) {
6057 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6060 ch
= basic_streambuf_char_sbumpc(strbuf
);
6062 if(ch
==EOF
|| ch
==delim
)
6072 else if(ch
!= EOF
) {
6073 ch
= basic_streambuf_char_sgetc(strbuf
);
6076 basic_streambuf_char__Gninc(strbuf
);
6081 basic_istream_char_sentry_destroy(this);
6083 basic_ios_char_setstate(base
, (ch
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
) |
6084 (!this->count
|| (ch
!=delim
&& ch
!=EOF
) ? IOSTATE_failbit
: IOSTATE_goodbit
));
6090 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
6091 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
6092 DEFINE_THISCALL_WRAPPER(basic_istream_char_getline
, 12)
6093 basic_istream_char
* __thiscall
basic_istream_char_getline(basic_istream_char
*this, char *str
, streamsize count
)
6095 return basic_istream_char_getline_delim(this, str
, count
, '\n');
6098 /* ?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@HH@Z */
6099 /* ?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
6100 DEFINE_THISCALL_WRAPPER(basic_istream_char_ignore
, 12)
6101 basic_istream_char
* __thiscall
basic_istream_char_ignore(basic_istream_char
*this, streamsize count
, int delim
)
6103 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6106 TRACE("(%p %ld %d)\n", this, count
, delim
);
6110 if(basic_istream_char_sentry_create(this, TRUE
)) {
6111 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6114 ch
= basic_streambuf_char_sbumpc(strbuf
);
6116 if(ch
==EOF
|| ch
==delim
)
6120 if(count
!= INT_MAX
)
6124 basic_istream_char_sentry_destroy(this);
6127 basic_ios_char_setstate(base
, IOSTATE_eofbit
);
6131 /* ?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
6132 /* ?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
6133 DEFINE_THISCALL_WRAPPER(basic_istream_char_peek
, 4)
6134 int __thiscall
basic_istream_char_peek(basic_istream_char
*this)
6136 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6139 TRACE("(%p)\n", this);
6143 if(basic_istream_char_sentry_create(this, TRUE
))
6144 ret
= basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base
));
6145 basic_istream_char_sentry_destroy(this);
6149 /* ?_Read_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADIH@Z */
6150 /* ?_Read_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_K_J@Z */
6151 DEFINE_THISCALL_WRAPPER(basic_istream_char__Read_s
, 16)
6152 basic_istream_char
* __thiscall
basic_istream_char__Read_s(basic_istream_char
*this, char *str
, MSVCP_size_t size
, streamsize count
)
6154 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6155 IOSB_iostate state
= IOSTATE_goodbit
;
6157 TRACE("(%p %p %lu %ld)\n", this, str
, size
, count
);
6159 if(basic_istream_char_sentry_create(this, TRUE
)) {
6160 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6162 this->count
= basic_streambuf_char__Sgetn_s(strbuf
, str
, size
, count
);
6163 if(this->count
!= count
)
6164 state
|= IOSTATE_failbit
| IOSTATE_eofbit
;
6168 basic_istream_char_sentry_destroy(this);
6170 basic_ios_char_setstate(base
, state
);
6174 /* ?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
6175 /* ?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
6176 DEFINE_THISCALL_WRAPPER(basic_istream_char_read
, 12)
6177 basic_istream_char
* __thiscall
basic_istream_char_read(basic_istream_char
*this, char *str
, streamsize count
)
6179 return basic_istream_char__Read_s(this, str
, count
, count
);
6182 /* ?_Readsome_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHPADIH@Z */
6183 /* ?_Readsome_s@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_K_J@Z */
6184 DEFINE_THISCALL_WRAPPER(basic_istream_char__Readsome_s
, 16)
6185 streamsize __thiscall
basic_istream_char__Readsome_s(basic_istream_char
*this, char *str
, MSVCP_size_t size
, streamsize count
)
6187 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6188 IOSB_iostate state
= IOSTATE_goodbit
;
6190 TRACE("(%p %p %lu %ld)\n", this, str
, size
, count
);
6194 if(basic_istream_char_sentry_create(this, TRUE
)) {
6195 streamsize avail
= basic_streambuf_char_in_avail(basic_ios_char_rdbuf_get(base
));
6200 state
|= IOSTATE_eofbit
;
6202 basic_istream_char__Read_s(this, str
, size
, avail
);
6204 state
|= IOSTATE_failbit
;
6206 basic_istream_char_sentry_destroy(this);
6208 basic_ios_char_setstate(base
, state
);
6212 /* ?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHPADH@Z */
6213 /* ?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z */
6214 DEFINE_THISCALL_WRAPPER(basic_istream_char_readsome
, 12)
6215 streamsize __thiscall
basic_istream_char_readsome(basic_istream_char
*this, char *str
, streamsize count
)
6217 return basic_istream_char__Readsome_s(this, str
, count
, count
);
6220 /* ?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z */
6221 /* ?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z */
6222 DEFINE_THISCALL_WRAPPER(basic_istream_char_putback
, 8)
6223 basic_istream_char
* __thiscall
basic_istream_char_putback(basic_istream_char
*this, char ch
)
6225 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6226 IOSB_iostate state
= IOSTATE_goodbit
;
6228 TRACE("(%p %c)\n", this, ch
);
6232 if(basic_istream_char_sentry_create(this, TRUE
)) {
6233 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6235 if(!ios_base_good(&base
->base
))
6236 state
|= IOSTATE_failbit
;
6237 else if(!strbuf
|| basic_streambuf_char_sputbackc(strbuf
, ch
)==EOF
)
6238 state
|= IOSTATE_badbit
;
6240 basic_istream_char_sentry_destroy(this);
6242 basic_ios_char_setstate(base
, state
);
6246 /* ?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ */
6247 /* ?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ */
6248 DEFINE_THISCALL_WRAPPER(basic_istream_char_unget
, 4)
6249 basic_istream_char
* __thiscall
basic_istream_char_unget(basic_istream_char
*this)
6251 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6252 IOSB_iostate state
= IOSTATE_goodbit
;
6254 TRACE("(%p)\n", this);
6258 if(basic_istream_char_sentry_create(this, TRUE
)) {
6259 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6261 if(!ios_base_good(&base
->base
))
6262 state
|= IOSTATE_failbit
;
6263 else if(!strbuf
|| basic_streambuf_char_sungetc(strbuf
)==EOF
)
6264 state
|= IOSTATE_badbit
;
6266 basic_istream_char_sentry_destroy(this);
6268 basic_ios_char_setstate(base
, state
);
6272 /* ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
6273 /* ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
6274 DEFINE_THISCALL_WRAPPER(basic_istream_char_sync
, 4)
6275 int __thiscall
basic_istream_char_sync(basic_istream_char
*this)
6277 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6278 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6280 TRACE("(%p)\n", this);
6285 if(basic_istream_char_sentry_create(this, TRUE
)) {
6286 if(basic_streambuf_char_pubsync(strbuf
) != -1) {
6287 basic_istream_char_sentry_destroy(this);
6291 basic_istream_char_sentry_destroy(this);
6293 basic_ios_char_setstate(base
, IOSTATE_badbit
);
6297 /* ?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
6298 /* ?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
6299 DEFINE_THISCALL_WRAPPER(basic_istream_char_tellg
, 8)
6300 fpos_int
* __thiscall
basic_istream_char_tellg(basic_istream_char
*this, fpos_int
*ret
)
6302 TRACE("(%p %p)\n", this, ret
);
6304 if(basic_istream_char_sentry_create(this, TRUE
)) {
6305 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6306 if(!ios_base_fail(&base
->base
)) {
6307 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base
),
6308 ret
, 0, SEEKDIR_cur
, OPENMODE_in
);
6309 basic_istream_char_sentry_destroy(this);
6311 if(ret
->off
==0 && ret
->pos
==-1 && ret
->state
==0)
6312 basic_ios_char_setstate(base
, IOSTATE_failbit
);
6316 basic_istream_char_sentry_destroy(this);
6324 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@JH@Z */
6325 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
6326 DEFINE_THISCALL_WRAPPER(basic_istream_char_seekg
, 12)
6327 basic_istream_char
* __thiscall
basic_istream_char_seekg(basic_istream_char
*this, streamoff off
, int dir
)
6329 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6331 TRACE("(%p %ld %d)\n", this, off
, dir
);
6333 if(basic_istream_char_sentry_create(this, TRUE
)) {
6334 if(!ios_base_fail(&base
->base
)) {
6335 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6338 basic_streambuf_char_pubseekoff(strbuf
, &ret
, off
, dir
, OPENMODE_in
);
6339 basic_istream_char_sentry_destroy(this);
6341 if(ret
.off
==0 && ret
.pos
==-1 && ret
.state
==0)
6342 basic_ios_char_setstate(base
, IOSTATE_failbit
);
6344 basic_ios_char_clear(base
, IOSTATE_goodbit
);
6348 basic_istream_char_sentry_destroy(this);
6350 basic_ios_char_setstate(base
, IOSTATE_failbit
);
6354 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
6355 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
6356 DEFINE_THISCALL_WRAPPER(basic_istream_char_seekg_fpos
, 28)
6357 basic_istream_char
* __thiscall
basic_istream_char_seekg_fpos(basic_istream_char
*this, fpos_int pos
)
6359 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6361 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos
));
6363 if(basic_istream_char_sentry_create(this, TRUE
)) {
6364 if(!ios_base_fail(&base
->base
)) {
6365 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6368 basic_streambuf_char_pubseekpos(strbuf
, &ret
, pos
, OPENMODE_in
);
6369 basic_istream_char_sentry_destroy(this);
6371 if(ret
.off
==0 && ret
.pos
==-1 && ret
.state
==0)
6372 basic_ios_char_setstate(base
, IOSTATE_failbit
);
6374 basic_ios_char_clear(base
, IOSTATE_goodbit
);
6378 basic_istream_char_sentry_destroy(this);
6380 basic_ios_char_setstate(base
, IOSTATE_failbit
);
6384 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAF@Z */
6385 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAF@Z */
6386 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_short
, 8)
6387 basic_istream_char
* __thiscall
basic_istream_char_read_short(basic_istream_char
*this, short *v
)
6389 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6390 int state
= IOSTATE_goodbit
;
6392 TRACE("(%p %p)\n", this, v
);
6394 if(basic_istream_char_sentry_create(this, FALSE
)) {
6395 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6396 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
6397 istreambuf_iterator_char first
={0}, last
={0};
6400 first
.strbuf
= strbuf
;
6401 num_get_char_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, &tmp
);
6403 if(!(state
&IOSTATE_failbit
) && tmp
==(LONG
)((short)tmp
))
6406 state
|= IOSTATE_failbit
;
6408 basic_istream_char_sentry_destroy(this);
6410 basic_ios_char_setstate(base
, state
);
6414 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAG@Z */
6415 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAG@Z */
6416 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ushort
, 8)
6417 basic_istream_char
* __thiscall
basic_istream_char_read_ushort(basic_istream_char
*this, unsigned short *v
)
6419 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6420 int state
= IOSTATE_goodbit
;
6422 TRACE("(%p %p)\n", this, v
);
6424 if(basic_istream_char_sentry_create(this, FALSE
)) {
6425 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6426 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
6427 istreambuf_iterator_char first
={0}, last
={0};
6429 first
.strbuf
= strbuf
;
6430 num_get_char_get_ushort(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6432 basic_istream_char_sentry_destroy(this);
6434 basic_ios_char_setstate(base
, state
);
6438 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z */
6439 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAH@Z */
6440 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_int
, 8)
6441 basic_istream_char
* __thiscall
basic_istream_char_read_int(basic_istream_char
*this, int *v
)
6443 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6444 int state
= IOSTATE_goodbit
;
6446 TRACE("(%p %p)\n", this, v
);
6448 if(basic_istream_char_sentry_create(this, FALSE
)) {
6449 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6450 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
6451 istreambuf_iterator_char first
={0}, last
={0};
6453 first
.strbuf
= strbuf
;
6454 num_get_char_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6456 basic_istream_char_sentry_destroy(this);
6458 basic_ios_char_setstate(base
, state
);
6462 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAI@Z */
6463 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAI@Z */
6464 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_uint
, 8)
6465 basic_istream_char
* __thiscall
basic_istream_char_read_uint(basic_istream_char
*this, unsigned int *v
)
6467 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6468 int state
= IOSTATE_goodbit
;
6470 TRACE("(%p %p)\n", this, v
);
6472 if(basic_istream_char_sentry_create(this, FALSE
)) {
6473 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6474 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
6475 istreambuf_iterator_char first
={0}, last
={0};
6477 first
.strbuf
= strbuf
;
6478 num_get_char_get_uint(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6480 basic_istream_char_sentry_destroy(this);
6482 basic_ios_char_setstate(base
, state
);
6486 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAJ@Z */
6487 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAJ@Z */
6488 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_long
, 8)
6489 basic_istream_char
* __thiscall
basic_istream_char_read_long(basic_istream_char
*this, LONG
*v
)
6491 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6492 int state
= IOSTATE_goodbit
;
6494 TRACE("(%p %p)\n", this, v
);
6496 if(basic_istream_char_sentry_create(this, FALSE
)) {
6497 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6498 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
6499 istreambuf_iterator_char first
={0}, last
={0};
6501 first
.strbuf
= strbuf
;
6502 num_get_char_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6504 basic_istream_char_sentry_destroy(this);
6506 basic_ios_char_setstate(base
, state
);
6510 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAK@Z */
6511 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAK@Z */
6512 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ulong
, 8)
6513 basic_istream_char
* __thiscall
basic_istream_char_read_ulong(basic_istream_char
*this, ULONG
*v
)
6515 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6516 int state
= IOSTATE_goodbit
;
6518 TRACE("(%p %p)\n", this, v
);
6520 if(basic_istream_char_sentry_create(this, FALSE
)) {
6521 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6522 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
6523 istreambuf_iterator_char first
={0}, last
={0};
6525 first
.strbuf
= strbuf
;
6526 num_get_char_get_ulong(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6528 basic_istream_char_sentry_destroy(this);
6530 basic_ios_char_setstate(base
, state
);
6534 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAM@Z */
6535 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAM@Z */
6536 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_float
, 8)
6537 basic_istream_char
* __thiscall
basic_istream_char_read_float(basic_istream_char
*this, float *v
)
6539 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6540 int state
= IOSTATE_goodbit
;
6542 TRACE("(%p %p)\n", this, v
);
6544 if(basic_istream_char_sentry_create(this, FALSE
)) {
6545 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6546 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
6547 istreambuf_iterator_char first
={0}, last
={0};
6549 first
.strbuf
= strbuf
;
6550 num_get_char_get_float(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6552 basic_istream_char_sentry_destroy(this);
6554 basic_ios_char_setstate(base
, state
);
6558 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAN@Z */
6559 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAN@Z */
6560 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_double
, 8)
6561 basic_istream_char
* __thiscall
basic_istream_char_read_double(basic_istream_char
*this, double *v
)
6563 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6564 int state
= IOSTATE_goodbit
;
6566 TRACE("(%p %p)\n", this, v
);
6568 if(basic_istream_char_sentry_create(this, FALSE
)) {
6569 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6570 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
6571 istreambuf_iterator_char first
={0}, last
={0};
6573 first
.strbuf
= strbuf
;
6574 num_get_char_get_double(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6576 basic_istream_char_sentry_destroy(this);
6578 basic_ios_char_setstate(base
, state
);
6582 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAO@Z */
6583 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAO@Z */
6584 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ldouble
, 8)
6585 basic_istream_char
* __thiscall
basic_istream_char_read_ldouble(basic_istream_char
*this, double *v
)
6587 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6588 int state
= IOSTATE_goodbit
;
6590 TRACE("(%p %p)\n", this, v
);
6592 if(basic_istream_char_sentry_create(this, FALSE
)) {
6593 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6594 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
6595 istreambuf_iterator_char first
={0}, last
={0};
6597 first
.strbuf
= strbuf
;
6598 num_get_char_get_ldouble(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6600 basic_istream_char_sentry_destroy(this);
6602 basic_ios_char_setstate(base
, state
);
6606 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAPAX@Z */
6607 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
6608 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ptr
, 8)
6609 basic_istream_char
* __thiscall
basic_istream_char_read_ptr(basic_istream_char
*this, void **v
)
6611 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6612 int state
= IOSTATE_goodbit
;
6614 TRACE("(%p %p)\n", this, v
);
6616 if(basic_istream_char_sentry_create(this, FALSE
)) {
6617 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6618 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
6619 istreambuf_iterator_char first
={0}, last
={0};
6621 first
.strbuf
= strbuf
;
6622 num_get_char_get_void(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6624 basic_istream_char_sentry_destroy(this);
6626 basic_ios_char_setstate(base
, state
);
6630 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_J@Z */
6631 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_J@Z */
6632 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_int64
, 8)
6633 basic_istream_char
* __thiscall
basic_istream_char_read_int64(basic_istream_char
*this, __int64
*v
)
6635 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6636 int state
= IOSTATE_goodbit
;
6638 TRACE("(%p %p)\n", this, v
);
6640 if(basic_istream_char_sentry_create(this, FALSE
)) {
6641 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6642 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
6643 istreambuf_iterator_char first
={0}, last
={0};
6645 first
.strbuf
= strbuf
;
6646 num_get_char_get_int64(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6648 basic_istream_char_sentry_destroy(this);
6650 basic_ios_char_setstate(base
, state
);
6654 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_K@Z */
6655 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_K@Z */
6656 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_uint64
, 8)
6657 basic_istream_char
* __thiscall
basic_istream_char_read_uint64(basic_istream_char
*this, unsigned __int64
*v
)
6659 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6660 int state
= IOSTATE_goodbit
;
6662 TRACE("(%p %p)\n", this, v
);
6664 if(basic_istream_char_sentry_create(this, FALSE
)) {
6665 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6666 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
6667 istreambuf_iterator_char first
={0}, last
={0};
6669 first
.strbuf
= strbuf
;
6670 num_get_char_get_uint64(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6672 basic_istream_char_sentry_destroy(this);
6674 basic_ios_char_setstate(base
, state
);
6678 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_N@Z */
6679 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_N@Z */
6680 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_bool
, 8)
6681 basic_istream_char
* __thiscall
basic_istream_char_read_bool(basic_istream_char
*this, MSVCP_bool
*v
)
6683 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6684 int state
= IOSTATE_goodbit
;
6686 TRACE("(%p %p)\n", this, v
);
6688 if(basic_istream_char_sentry_create(this, FALSE
)) {
6689 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6690 const num_get
*numget
= num_get_char_use_facet(strbuf
->loc
);
6691 istreambuf_iterator_char first
={0}, last
={0};
6693 first
.strbuf
= strbuf
;
6694 num_get_char_get_bool(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6696 basic_istream_char_sentry_destroy(this);
6698 basic_ios_char_setstate(base
, state
);
6702 /* ??$getline@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@D@Z */
6703 /* ??$getline@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@D@Z */
6704 basic_istream_char
* __cdecl
basic_istream_char_getline_bstr_delim(
6705 basic_istream_char
*istream
, basic_string_char
*str
, char delim
)
6707 IOSB_iostate state
= IOSTATE_failbit
;
6710 TRACE("(%p %p %c)\n", istream
, str
, delim
);
6712 if(basic_istream_char_sentry_create(istream
, TRUE
)) {
6713 MSVCP_basic_string_char_clear(str
);
6715 for(c
= basic_istream_char_get(istream
); c
!=delim
&& c
!=EOF
;
6716 c
= basic_istream_char_get(istream
)) {
6717 state
= IOSTATE_goodbit
;
6718 MSVCP_basic_string_char_append_ch(str
, c
);
6721 basic_istream_char_sentry_destroy(istream
);
6723 basic_ios_char_setstate(basic_istream_char_get_basic_ios(istream
),
6724 state
| (c
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
6728 /* ??$getline@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
6729 /* ??$getline@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
6730 basic_istream_char
* __cdecl
basic_istream_char_getline_bstr(
6731 basic_istream_char
*istream
, basic_string_char
*str
)
6733 return basic_istream_char_getline_bstr_delim(istream
, str
, '\n');
6736 /* ??$?5DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
6737 /* ??$?5DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
6738 basic_istream_char
* __cdecl
basic_istream_char_get_bstr(
6739 basic_istream_char
*istream
, basic_string_char
*str
)
6741 IOSB_iostate state
= IOSTATE_failbit
;
6744 TRACE("(%p %p)\n", istream
, str
);
6746 if(basic_istream_char_sentry_create(istream
, FALSE
)) {
6747 basic_ios_char
*base
= basic_istream_char_get_basic_ios(istream
);
6748 const ctype_char
*ctype
= ctype_char_use_facet(base
->strbuf
->loc
);
6750 MSVCP_basic_string_char_clear(str
);
6752 for(c
= basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base
));
6753 c
!=EOF
&& !ctype_char_is_ch(ctype
, _SPACE
|_BLANK
, c
);
6754 c
= basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base
))) {
6755 state
= IOSTATE_goodbit
;
6756 MSVCP_basic_string_char_append_ch(str
, c
);
6759 basic_istream_char_sentry_destroy(istream
);
6761 basic_ios_char_setstate(basic_istream_char_get_basic_ios(istream
),
6762 state
| (c
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
6766 /* ??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAD@Z */
6767 /* ??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAD@Z */
6768 basic_istream_char
* __cdecl
basic_istream_char_read_ch(basic_istream_char
*istream
, char *ch
)
6770 IOSB_iostate state
= IOSTATE_failbit
;
6773 TRACE("(%p %p)\n", istream
, ch
);
6775 if(basic_istream_char_sentry_create(istream
, FALSE
)) {
6776 c
= basic_streambuf_char_sbumpc(basic_ios_char_rdbuf_get(
6777 basic_istream_char_get_basic_ios(istream
)));
6779 state
= IOSTATE_goodbit
;
6783 basic_istream_char_sentry_destroy(istream
);
6785 basic_ios_char_setstate(basic_istream_char_get_basic_ios(istream
),
6786 state
| (c
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
6790 /* Caution: basic_istream uses virtual inheritance. */
6791 static inline basic_ios_wchar
* basic_istream_wchar_get_basic_ios(basic_istream_wchar
*this)
6793 return (basic_ios_wchar
*)((char*)this+this->vbtable
[1]);
6796 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z */
6797 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z */
6798 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ctor_init
, 20)
6799 basic_istream_wchar
* __thiscall
basic_istream_wchar_ctor_init(basic_istream_wchar
*this, basic_streambuf_wchar
*strbuf
, MSVCP_bool isstd
, MSVCP_bool noinit
, MSVCP_bool virt_init
)
6801 basic_ios_wchar
*base
;
6803 TRACE("(%p %p %d %d %d)\n", this, strbuf
, isstd
, noinit
, virt_init
);
6806 this->vbtable
= basic_istream_wchar_vbtable
;
6807 base
= basic_istream_wchar_get_basic_ios(this);
6808 basic_ios_wchar_ctor(base
);
6810 base
= basic_istream_wchar_get_basic_ios(this);
6813 base
->base
.vtable
= &MSVCP_basic_istream_wchar_vtable
;
6816 basic_ios_wchar_init(base
, strbuf
, isstd
);
6820 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
6821 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
6822 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ctor
, 16)
6823 basic_istream_wchar
* __thiscall
basic_istream_wchar_ctor(basic_istream_wchar
*this, basic_streambuf_wchar
*strbuf
, MSVCP_bool isstd
, MSVCP_bool virt_init
)
6825 return basic_istream_wchar_ctor_init(this, strbuf
, isstd
, FALSE
, virt_init
);
6828 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@W4_Uninitialized@1@@Z */
6829 /* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
6830 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ctor_uninitialized
, 12)
6831 basic_istream_wchar
* __thiscall
basic_istream_wchar_ctor_uninitialized(basic_istream_wchar
*this, int uninitialized
, MSVCP_bool virt_init
)
6833 basic_ios_wchar
*base
;
6835 TRACE("(%p %d %d)\n", this, uninitialized
, virt_init
);
6838 this->vbtable
= basic_istream_wchar_vbtable
;
6839 base
= basic_istream_wchar_get_basic_ios(this);
6840 basic_ios_wchar_ctor(base
);
6842 base
= basic_istream_wchar_get_basic_ios(this);
6845 base
->base
.vtable
= &MSVCP_basic_istream_wchar_vtable
;
6846 ios_base_Addstd(&base
->base
);
6850 /* ??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
6851 /* ??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
6852 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_dtor
, 4)
6853 void __thiscall
basic_istream_wchar_dtor(basic_istream_wchar
*this)
6855 /* don't destroy virtual base here */
6856 TRACE("(%p)\n", this);
6859 /* ??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
6860 /* ??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
6861 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_vbase_dtor
, 4)
6862 void __thiscall
basic_istream_wchar_vbase_dtor(basic_istream_wchar
*this)
6864 TRACE("(%p)\n", this);
6865 basic_istream_wchar_dtor(this);
6866 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(this));
6869 DEFINE_THISCALL_WRAPPER(MSVCP_basic_istream_wchar_vector_dtor
, 8)
6870 basic_istream_wchar
* __thiscall
MSVCP_basic_istream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
6872 basic_istream_wchar
*this = (basic_istream_wchar
*)((char*)base
- basic_istream_wchar_vbtable
[1] + basic_istream_wchar_vbtable
[0]);
6874 TRACE("(%p %x)\n", this, flags
);
6877 /* we have an array, with the number of elements stored before the first object */
6878 int i
, *ptr
= (int *)this-1;
6880 for(i
=*ptr
-1; i
>=0; i
--)
6881 basic_istream_wchar_vbase_dtor(this+i
);
6882 MSVCRT_operator_delete(ptr
);
6884 basic_istream_wchar_vbase_dtor(this);
6886 MSVCRT_operator_delete(this);
6892 /* ?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE_N_N@Z */
6893 /* ?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z */
6894 DEFINE_THISCALL_WRAPPER(basic_istream_wchar__Ipfx
, 8)
6895 MSVCP_bool __thiscall
basic_istream_wchar__Ipfx(basic_istream_wchar
*this, MSVCP_bool noskip
)
6897 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
6899 TRACE("(%p %d)\n", this, noskip
);
6901 if(!ios_base_good(&base
->base
)) {
6902 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
6906 if(basic_ios_wchar_tie_get(base
))
6907 basic_ostream_wchar_flush(basic_ios_wchar_tie_get(base
));
6909 if(!noskip
&& (ios_base_flags_get(&base
->base
) & FMTFLAG_skipws
)) {
6910 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
6911 const ctype_wchar
*ctype
= ctype_wchar_use_facet(base
->strbuf
->loc
);
6914 for(ch
= basic_streambuf_wchar_sgetc(strbuf
); ;
6915 ch
= basic_streambuf_wchar_snextc(strbuf
)) {
6917 basic_ios_wchar_setstate(base
, IOSTATE_eofbit
);
6921 if(!ctype_wchar_is_ch(ctype
, _SPACE
|_BLANK
, ch
))
6929 /* ?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE_N_N@Z */
6930 /* ?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z */
6931 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ipfx
, 8)
6932 MSVCP_bool __thiscall
basic_istream_wchar_ipfx(basic_istream_wchar
*this, MSVCP_bool noskip
)
6934 return basic_istream_wchar__Ipfx(this, noskip
);
6937 /* ?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
6938 /* ?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
6939 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_isfx
, 4)
6940 void __thiscall
basic_istream_wchar_isfx(basic_istream_wchar
*this)
6942 TRACE("(%p)\n", this);
6945 static BOOL
basic_istream_wchar_sentry_create(basic_istream_wchar
*istr
, MSVCP_bool noskip
)
6947 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(istr
);
6949 if(basic_ios_wchar_rdbuf_get(base
))
6950 basic_streambuf_wchar__Lock(base
->strbuf
);
6952 return basic_istream_wchar_ipfx(istr
, noskip
);
6955 static void basic_istream_wchar_sentry_destroy(basic_istream_wchar
*istr
)
6957 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(istr
);
6959 if(basic_ios_wchar_rdbuf_get(base
))
6960 basic_streambuf_wchar__Unlock(base
->strbuf
);
6963 /* ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QBEHXZ */
6964 /* ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEBA_JXZ */
6965 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_gcount
, 4)
6966 int __thiscall
basic_istream_wchar_gcount(const basic_istream_wchar
*this)
6968 TRACE("(%p)\n", this);
6972 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
6973 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
6974 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get
, 4)
6975 unsigned short __thiscall
basic_istream_wchar_get(basic_istream_wchar
*this)
6977 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
6980 TRACE("(%p)\n", this);
6984 if(!basic_istream_wchar_sentry_create(this, TRUE
)) {
6985 basic_istream_wchar_sentry_destroy(this);
6989 ret
= basic_streambuf_wchar_sbumpc(basic_ios_wchar_rdbuf_get(base
));
6990 basic_istream_wchar_sentry_destroy(this);
6992 basic_ios_wchar_setstate(base
, IOSTATE_eofbit
|IOSTATE_failbit
);
6999 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AA_W@Z */
7000 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEA_W@Z */
7001 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_ch
, 8)
7002 basic_istream_wchar
* __thiscall
basic_istream_wchar_get_ch(basic_istream_wchar
*this, wchar_t *ch
)
7006 TRACE("(%p %p)\n", this, ch
);
7008 ret
= basic_istream_wchar_get(this);
7014 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH_W@Z */
7015 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z */
7016 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_str_delim
, 16)
7017 basic_istream_wchar
* __thiscall
basic_istream_wchar_get_str_delim(basic_istream_wchar
*this, wchar_t *str
, streamsize count
, wchar_t delim
)
7019 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7020 unsigned short ch
= delim
;
7022 TRACE("(%p %p %ld %c)\n", this, str
, count
, delim
);
7026 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
7027 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7029 for(ch
= basic_streambuf_wchar_sgetc(strbuf
); count
>1;
7030 ch
= basic_streambuf_wchar_snextc(strbuf
)) {
7031 if(ch
==WEOF
|| ch
==delim
)
7039 basic_istream_wchar_sentry_destroy(this);
7041 basic_ios_wchar_setstate(base
, (!this->count
? IOSTATE_failbit
: IOSTATE_goodbit
) |
7042 (ch
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
7048 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
7049 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
7050 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_str
, 12)
7051 basic_istream_wchar
* __thiscall
basic_istream_wchar_get_str(basic_istream_wchar
*this, wchar_t *str
, streamsize count
)
7053 return basic_istream_wchar_get_str_delim(this, str
, count
, '\n');
7056 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z */
7057 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z */
7058 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_streambuf_delim
, 12)
7059 basic_istream_wchar
* __thiscall
basic_istream_wchar_get_streambuf_delim(basic_istream_wchar
*this, basic_streambuf_wchar
*strbuf
, wchar_t delim
)
7061 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7062 unsigned short ch
= delim
;
7064 TRACE("(%p %p %c)\n", this, strbuf
, delim
);
7068 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
7069 basic_streambuf_wchar
*strbuf_read
= basic_ios_wchar_rdbuf_get(base
);
7071 for(ch
= basic_streambuf_wchar_sgetc(strbuf_read
); ;
7072 ch
= basic_streambuf_wchar_snextc(strbuf_read
)) {
7073 if(ch
==WEOF
|| ch
==delim
)
7076 if(basic_streambuf_wchar_sputc(strbuf
, ch
) == WEOF
)
7081 basic_istream_wchar_sentry_destroy(this);
7083 basic_ios_wchar_setstate(base
, (!this->count
? IOSTATE_failbit
: IOSTATE_goodbit
) |
7084 (ch
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
7088 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@AAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z */
7089 /* ?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z */
7090 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_get_streambuf
, 8)
7091 basic_istream_wchar
* __thiscall
basic_istream_wchar_get_streambuf(basic_istream_wchar
*this, basic_streambuf_wchar
*strbuf
)
7093 return basic_istream_wchar_get_streambuf_delim(this, strbuf
, '\n');
7096 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH_W@Z */
7097 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z */
7098 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_getline_delim
, 16)
7099 basic_istream_wchar
* __thiscall
basic_istream_wchar_getline_delim(basic_istream_wchar
*this, wchar_t *str
, streamsize count
, wchar_t delim
)
7101 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7102 unsigned short ch
= delim
;
7104 TRACE("(%p %p %ld %c)\n", this, str
, count
, delim
);
7108 if(basic_istream_wchar_sentry_create(this, TRUE
) && count
>0) {
7109 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7112 ch
= basic_streambuf_wchar_sbumpc(strbuf
);
7114 if(ch
==WEOF
|| ch
==delim
)
7124 else if(ch
!= WEOF
) {
7125 ch
= basic_streambuf_wchar_sgetc(strbuf
);
7128 basic_streambuf_wchar__Gninc(strbuf
);
7133 basic_istream_wchar_sentry_destroy(this);
7135 basic_ios_wchar_setstate(base
, (ch
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
) |
7136 (!this->count
|| (ch
!=delim
&& ch
!=WEOF
) ? IOSTATE_failbit
: IOSTATE_goodbit
));
7142 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
7143 /* ?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
7144 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_getline
, 12)
7145 basic_istream_wchar
* __thiscall
basic_istream_wchar_getline(basic_istream_wchar
*this, wchar_t *str
, streamsize count
)
7147 return basic_istream_wchar_getline_delim(this, str
, count
, '\n');
7150 /* ?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@HG@Z */
7151 /* ?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JG@Z */
7152 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ignore
, 12)
7153 basic_istream_wchar
* __thiscall
basic_istream_wchar_ignore(basic_istream_wchar
*this, streamsize count
, unsigned short delim
)
7155 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7156 unsigned short ch
= delim
;
7158 TRACE("(%p %ld %d)\n", this, count
, delim
);
7162 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
7163 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7166 ch
= basic_streambuf_wchar_sbumpc(strbuf
);
7168 if(ch
==WEOF
|| ch
==delim
)
7172 if(count
!= INT_MAX
)
7176 basic_istream_wchar_sentry_destroy(this);
7179 basic_ios_wchar_setstate(base
, IOSTATE_eofbit
);
7183 /* ?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEGXZ */
7184 /* ?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ */
7185 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_peek
, 4)
7186 unsigned short __thiscall
basic_istream_wchar_peek(basic_istream_wchar
*this)
7188 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7189 unsigned short ret
= WEOF
;
7191 TRACE("(%p)\n", this);
7195 if(basic_istream_wchar_sentry_create(this, TRUE
))
7196 ret
= basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base
));
7197 basic_istream_wchar_sentry_destroy(this);
7201 /* ?_Read_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WIH@Z */
7202 /* ?_Read_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_K_J@Z */
7203 DEFINE_THISCALL_WRAPPER(basic_istream_wchar__Read_s
, 16)
7204 basic_istream_wchar
* __thiscall
basic_istream_wchar__Read_s(basic_istream_wchar
*this, wchar_t *str
, MSVCP_size_t size
, streamsize count
)
7206 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7207 IOSB_iostate state
= IOSTATE_goodbit
;
7209 TRACE("(%p %p %lu %ld)\n", this, str
, size
, count
);
7211 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
7212 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7214 this->count
= basic_streambuf_wchar__Sgetn_s(strbuf
, str
, size
, count
);
7215 if(this->count
!= count
)
7216 state
|= IOSTATE_failbit
| IOSTATE_eofbit
;
7220 basic_istream_wchar_sentry_destroy(this);
7222 basic_ios_wchar_setstate(base
, state
);
7226 /* ?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@PA_WH@Z */
7227 /* ?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z */
7228 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read
, 12)
7229 basic_istream_wchar
* __thiscall
basic_istream_wchar_read(basic_istream_wchar
*this, wchar_t *str
, streamsize count
)
7231 return basic_istream_wchar__Read_s(this, str
, count
, count
);
7234 /* ?_Readsome_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHPA_WIH@Z */
7235 /* ?_Readsome_s@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_K_J@Z */
7236 DEFINE_THISCALL_WRAPPER(basic_istream_wchar__Readsome_s
, 16)
7237 streamsize __thiscall
basic_istream_wchar__Readsome_s(basic_istream_wchar
*this, wchar_t *str
, MSVCP_size_t size
, streamsize count
)
7239 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7240 IOSB_iostate state
= IOSTATE_goodbit
;
7242 TRACE("(%p %p %lu %ld)\n", this, str
, size
, count
);
7246 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
7247 streamsize avail
= basic_streambuf_wchar_in_avail(basic_ios_wchar_rdbuf_get(base
));
7252 state
|= IOSTATE_eofbit
;
7254 basic_istream_wchar__Read_s(this, str
, size
, avail
);
7256 state
|= IOSTATE_failbit
;
7258 basic_istream_wchar_sentry_destroy(this);
7260 basic_ios_wchar_setstate(base
, state
);
7264 /* ?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHPA_WH@Z */
7265 /* ?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z */
7266 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_readsome
, 12)
7267 streamsize __thiscall
basic_istream_wchar_readsome(basic_istream_wchar
*this, wchar_t *str
, streamsize count
)
7269 return basic_istream_wchar__Readsome_s(this, str
, count
, count
);
7272 /* ?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@_W@Z */
7273 /* ?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z */
7274 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_putback
, 8)
7275 basic_istream_wchar
* __thiscall
basic_istream_wchar_putback(basic_istream_wchar
*this, wchar_t ch
)
7277 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7278 IOSB_iostate state
= IOSTATE_goodbit
;
7280 TRACE("(%p %c)\n", this, ch
);
7284 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
7285 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7287 if(!ios_base_good(&base
->base
))
7288 state
|= IOSTATE_failbit
;
7289 else if(!strbuf
|| basic_streambuf_wchar_sputbackc(strbuf
, ch
)==WEOF
)
7290 state
|= IOSTATE_badbit
;
7292 basic_istream_wchar_sentry_destroy(this);
7294 basic_ios_wchar_setstate(base
, state
);
7298 /* ?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@XZ */
7299 /* ?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ */
7300 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_unget
, 4)
7301 basic_istream_wchar
* __thiscall
basic_istream_wchar_unget(basic_istream_wchar
*this)
7303 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7304 IOSB_iostate state
= IOSTATE_goodbit
;
7306 TRACE("(%p)\n", this);
7310 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
7311 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7313 if(!ios_base_good(&base
->base
))
7314 state
|= IOSTATE_failbit
;
7315 else if(!strbuf
|| basic_streambuf_wchar_sungetc(strbuf
)==WEOF
)
7316 state
|= IOSTATE_badbit
;
7318 basic_istream_wchar_sentry_destroy(this);
7320 basic_ios_wchar_setstate(base
, state
);
7324 /* ?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEHXZ */
7325 /* ?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAHXZ */
7326 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_sync
, 4)
7327 int __thiscall
basic_istream_wchar_sync(basic_istream_wchar
*this)
7329 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7330 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7332 TRACE("(%p)\n", this);
7337 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
7338 if(basic_streambuf_wchar_pubsync(strbuf
) != -1) {
7339 basic_istream_wchar_sentry_destroy(this);
7343 basic_istream_wchar_sentry_destroy(this);
7345 basic_ios_wchar_setstate(base
, IOSTATE_badbit
);
7349 /* ?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE?AV?$fpos@H@2@XZ */
7350 /* ?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
7351 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_tellg
, 8)
7352 fpos_int
* __thiscall
basic_istream_wchar_tellg(basic_istream_wchar
*this, fpos_int
*ret
)
7354 TRACE("(%p %p)\n", this, ret
);
7356 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
7357 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7358 if(!ios_base_fail(&base
->base
)) {
7359 basic_streambuf_wchar_pubseekoff(basic_ios_wchar_rdbuf_get(base
),
7360 ret
, 0, SEEKDIR_cur
, OPENMODE_in
);
7361 basic_istream_wchar_sentry_destroy(this);
7363 if(ret
->off
==0 && ret
->pos
==-1 && ret
->state
==0)
7364 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
7368 basic_istream_wchar_sentry_destroy(this);
7376 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@JH@Z */
7377 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z */
7378 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_seekg
, 12)
7379 basic_istream_wchar
* __thiscall
basic_istream_wchar_seekg(basic_istream_wchar
*this, streamoff off
, int dir
)
7381 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7383 TRACE("(%p %ld %d)\n", this, off
, dir
);
7385 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
7386 if(!ios_base_fail(&base
->base
)) {
7387 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7390 basic_streambuf_wchar_pubseekoff(strbuf
, &ret
, off
, dir
, OPENMODE_in
);
7391 basic_istream_wchar_sentry_destroy(this);
7393 if(ret
.off
==0 && ret
.pos
==-1 && ret
.state
==0)
7394 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
7396 basic_ios_wchar_clear(base
, IOSTATE_goodbit
);
7400 basic_istream_wchar_sentry_destroy(this);
7402 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
7406 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
7407 /* ?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
7408 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_seekg_fpos
, 28)
7409 basic_istream_wchar
* __thiscall
basic_istream_wchar_seekg_fpos(basic_istream_wchar
*this, fpos_int pos
)
7411 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7413 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos
));
7415 if(basic_istream_wchar_sentry_create(this, TRUE
)) {
7416 if(!ios_base_fail(&base
->base
)) {
7417 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7420 basic_streambuf_wchar_pubseekpos(strbuf
, &ret
, pos
, OPENMODE_in
);
7421 basic_istream_wchar_sentry_destroy(this);
7423 if(ret
.off
==0 && ret
.pos
==-1 && ret
.state
==0)
7424 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
7426 basic_ios_wchar_clear(base
, IOSTATE_goodbit
);
7430 basic_istream_wchar_sentry_destroy(this);
7432 basic_ios_wchar_setstate(base
, IOSTATE_failbit
);
7436 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAF@Z */
7437 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAF@Z */
7438 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_short
, 8)
7439 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_short(basic_istream_wchar
*this, short *v
)
7441 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7442 int state
= IOSTATE_goodbit
;
7444 TRACE("(%p %p)\n", this, v
);
7446 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
7447 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7448 const num_get
*numget
= num_get_wchar_use_facet(strbuf
->loc
);
7449 istreambuf_iterator_wchar first
={0}, last
={0};
7452 first
.strbuf
= strbuf
;
7453 num_get_wchar_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, &tmp
);
7455 if(!(state
&IOSTATE_failbit
) && tmp
==(LONG
)((short)tmp
))
7458 state
|= IOSTATE_failbit
;
7460 basic_istream_wchar_sentry_destroy(this);
7462 basic_ios_wchar_setstate(base
, state
);
7466 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAG@Z */
7467 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAG@Z */
7468 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ushort
, 8)
7469 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_ushort(basic_istream_wchar
*this, unsigned short *v
)
7471 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7472 int state
= IOSTATE_goodbit
;
7474 TRACE("(%p %p)\n", this, v
);
7476 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
7477 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7478 const num_get
*numget
= num_get_wchar_use_facet(strbuf
->loc
);
7479 istreambuf_iterator_wchar first
={0}, last
={0};
7481 first
.strbuf
= strbuf
;
7482 num_get_wchar_get_ushort(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7484 basic_istream_wchar_sentry_destroy(this);
7486 basic_ios_wchar_setstate(base
, state
);
7490 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAH@Z */
7491 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAH@Z */
7492 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_int
, 8)
7493 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_int(basic_istream_wchar
*this, int *v
)
7495 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7496 int state
= IOSTATE_goodbit
;
7498 TRACE("(%p %p)\n", this, v
);
7500 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
7501 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7502 const num_get
*numget
= num_get_wchar_use_facet(strbuf
->loc
);
7503 istreambuf_iterator_wchar first
={0}, last
={0};
7505 first
.strbuf
= strbuf
;
7506 num_get_wchar_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7508 basic_istream_wchar_sentry_destroy(this);
7510 basic_ios_wchar_setstate(base
, state
);
7514 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAI@Z */
7515 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAI@Z */
7516 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_uint
, 8)
7517 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_uint(basic_istream_wchar
*this, unsigned int *v
)
7519 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7520 int state
= IOSTATE_goodbit
;
7522 TRACE("(%p %p)\n", this, v
);
7524 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
7525 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7526 const num_get
*numget
= num_get_wchar_use_facet(strbuf
->loc
);
7527 istreambuf_iterator_wchar first
={0}, last
={0};
7529 first
.strbuf
= strbuf
;
7530 num_get_wchar_get_uint(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7532 basic_istream_wchar_sentry_destroy(this);
7534 basic_ios_wchar_setstate(base
, state
);
7538 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAJ@Z */
7539 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAJ@Z */
7540 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_long
, 8)
7541 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_long(basic_istream_wchar
*this, LONG
*v
)
7543 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7544 int state
= IOSTATE_goodbit
;
7546 TRACE("(%p %p)\n", this, v
);
7548 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
7549 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7550 const num_get
*numget
= num_get_wchar_use_facet(strbuf
->loc
);
7551 istreambuf_iterator_wchar first
={0}, last
={0};
7553 first
.strbuf
= strbuf
;
7554 num_get_wchar_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7556 basic_istream_wchar_sentry_destroy(this);
7558 basic_ios_wchar_setstate(base
, state
);
7562 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAK@Z */
7563 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAK@Z */
7564 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ulong
, 8)
7565 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_ulong(basic_istream_wchar
*this, ULONG
*v
)
7567 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7568 int state
= IOSTATE_goodbit
;
7570 TRACE("(%p %p)\n", this, v
);
7572 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
7573 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7574 const num_get
*numget
= num_get_wchar_use_facet(strbuf
->loc
);
7575 istreambuf_iterator_wchar first
={0}, last
={0};
7577 first
.strbuf
= strbuf
;
7578 num_get_wchar_get_ulong(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7580 basic_istream_wchar_sentry_destroy(this);
7582 basic_ios_wchar_setstate(base
, state
);
7586 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAM@Z */
7587 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAM@Z */
7588 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_float
, 8)
7589 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_float(basic_istream_wchar
*this, float *v
)
7591 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7592 int state
= IOSTATE_goodbit
;
7594 TRACE("(%p %p)\n", this, v
);
7596 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
7597 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7598 const num_get
*numget
= num_get_wchar_use_facet(strbuf
->loc
);
7599 istreambuf_iterator_wchar first
={0}, last
={0};
7601 first
.strbuf
= strbuf
;
7602 num_get_wchar_get_float(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7604 basic_istream_wchar_sentry_destroy(this);
7606 basic_ios_wchar_setstate(base
, state
);
7610 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAN@Z */
7611 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAN@Z */
7612 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_double
, 8)
7613 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_double(basic_istream_wchar
*this, double *v
)
7615 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7616 int state
= IOSTATE_goodbit
;
7618 TRACE("(%p %p)\n", this, v
);
7620 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
7621 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7622 const num_get
*numget
= num_get_wchar_use_facet(strbuf
->loc
);
7623 istreambuf_iterator_wchar first
={0}, last
={0};
7625 first
.strbuf
= strbuf
;
7626 num_get_wchar_get_double(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7628 basic_istream_wchar_sentry_destroy(this);
7630 basic_ios_wchar_setstate(base
, state
);
7634 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAO@Z */
7635 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAO@Z */
7636 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ldouble
, 8)
7637 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_ldouble(basic_istream_wchar
*this, double *v
)
7639 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7640 int state
= IOSTATE_goodbit
;
7642 TRACE("(%p %p)\n", this, v
);
7644 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
7645 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7646 const num_get
*numget
= num_get_wchar_use_facet(strbuf
->loc
);
7647 istreambuf_iterator_wchar first
={0}, last
={0};
7649 first
.strbuf
= strbuf
;
7650 num_get_wchar_get_ldouble(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7652 basic_istream_wchar_sentry_destroy(this);
7654 basic_ios_wchar_setstate(base
, state
);
7658 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AAPAX@Z */
7659 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
7660 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_ptr
, 8)
7661 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_ptr(basic_istream_wchar
*this, void **v
)
7663 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7664 int state
= IOSTATE_goodbit
;
7666 TRACE("(%p %p)\n", this, v
);
7668 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
7669 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7670 const num_get
*numget
= num_get_wchar_use_facet(strbuf
->loc
);
7671 istreambuf_iterator_wchar first
={0}, last
={0};
7673 first
.strbuf
= strbuf
;
7674 num_get_wchar_get_void(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7676 basic_istream_wchar_sentry_destroy(this);
7678 basic_ios_wchar_setstate(base
, state
);
7682 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_J@Z */
7683 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_J@Z */
7684 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_int64
, 8)
7685 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_int64(basic_istream_wchar
*this, __int64
*v
)
7687 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7688 int state
= IOSTATE_goodbit
;
7690 TRACE("(%p %p)\n", this, v
);
7692 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
7693 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7694 const num_get
*numget
= num_get_wchar_use_facet(strbuf
->loc
);
7695 istreambuf_iterator_wchar first
={0}, last
={0};
7697 first
.strbuf
= strbuf
;
7698 num_get_wchar_get_int64(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7700 basic_istream_wchar_sentry_destroy(this);
7702 basic_ios_wchar_setstate(base
, state
);
7706 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_K@Z */
7707 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_K@Z */
7708 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_uint64
, 8)
7709 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_uint64(basic_istream_wchar
*this, unsigned __int64
*v
)
7711 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7712 int state
= IOSTATE_goodbit
;
7714 TRACE("(%p %p)\n", this, v
);
7716 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
7717 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7718 const num_get
*numget
= num_get_wchar_use_facet(strbuf
->loc
);
7719 istreambuf_iterator_wchar first
={0}, last
={0};
7721 first
.strbuf
= strbuf
;
7722 num_get_wchar_get_uint64(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7724 basic_istream_wchar_sentry_destroy(this);
7726 basic_ios_wchar_setstate(base
, state
);
7730 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@AA_N@Z */
7731 /* ??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_N@Z */
7732 DEFINE_THISCALL_WRAPPER(basic_istream_wchar_read_bool
, 8)
7733 basic_istream_wchar
* __thiscall
basic_istream_wchar_read_bool(basic_istream_wchar
*this, MSVCP_bool
*v
)
7735 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(this);
7736 int state
= IOSTATE_goodbit
;
7738 TRACE("(%p %p)\n", this, v
);
7740 if(basic_istream_wchar_sentry_create(this, FALSE
)) {
7741 basic_streambuf_wchar
*strbuf
= basic_ios_wchar_rdbuf_get(base
);
7742 const num_get
*numget
= num_get_wchar_use_facet(strbuf
->loc
);
7743 istreambuf_iterator_wchar first
={0}, last
={0};
7745 first
.strbuf
= strbuf
;
7746 num_get_wchar_get_bool(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7748 basic_istream_wchar_sentry_destroy(this);
7750 basic_ios_wchar_setstate(base
, state
);
7754 /* ??$getline@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@_W@Z */
7755 /* ??$getline@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@_W@Z */
7756 basic_istream_wchar
* __cdecl
basic_istream_wchar_getline_bstr_delim(
7757 basic_istream_wchar
*istream
, basic_string_wchar
*str
, wchar_t delim
)
7759 IOSB_iostate state
= IOSTATE_failbit
;
7762 TRACE("(%p %p %c)\n", istream
, str
, delim
);
7764 if(basic_istream_wchar_sentry_create(istream
, TRUE
)) {
7765 MSVCP_basic_string_wchar_clear(str
);
7767 for(c
= basic_istream_wchar_get(istream
); c
!=delim
&& c
!=WEOF
;
7768 c
= basic_istream_wchar_get(istream
)) {
7769 state
= IOSTATE_goodbit
;
7770 MSVCP_basic_string_wchar_append_ch(str
, c
);
7773 basic_istream_wchar_sentry_destroy(istream
);
7775 basic_ios_wchar_setstate(basic_istream_wchar_get_basic_ios(istream
),
7776 state
| (c
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
7780 /* ??$getline@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
7781 /* ??$getline@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
7782 basic_istream_wchar
* __cdecl
basic_istream_wchar_getline_bstr(
7783 basic_istream_wchar
*istream
, basic_string_wchar
*str
)
7785 return basic_istream_wchar_getline_bstr_delim(istream
, str
, '\n');
7788 /* ??$?5_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
7789 /* ??$?5_WU?$char_traits@_W@std@@V?$allocator@_W@1@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEAV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@0@@Z */
7790 basic_istream_wchar
* __cdecl
basic_istream_wchar_get_bstr(
7791 basic_istream_wchar
*istream
, basic_string_wchar
*str
)
7793 IOSB_iostate state
= IOSTATE_failbit
;
7796 TRACE("(%p %p)\n", istream
, str
);
7798 if(basic_istream_wchar_sentry_create(istream
, FALSE
)) {
7799 basic_ios_wchar
*base
= basic_istream_wchar_get_basic_ios(istream
);
7800 const ctype_wchar
*ctype
= ctype_wchar_use_facet(base
->strbuf
->loc
);
7802 MSVCP_basic_string_wchar_clear(str
);
7804 for(c
= basic_streambuf_wchar_sgetc(basic_ios_wchar_rdbuf_get(base
));
7805 c
!=WEOF
&& !ctype_wchar_is_ch(ctype
, _SPACE
|_BLANK
, c
);
7806 c
= basic_streambuf_wchar_snextc(basic_ios_wchar_rdbuf_get(base
))) {
7807 state
= IOSTATE_goodbit
;
7808 MSVCP_basic_string_wchar_append_ch(str
, c
);
7811 basic_istream_wchar_sentry_destroy(istream
);
7813 basic_ios_wchar_setstate(basic_istream_wchar_get_basic_ios(istream
),
7814 state
| (c
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
7818 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AAV10@AA_W@Z */
7819 /* ??$?5_WU?$char_traits@_W@std@@@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@0@AEAV10@AEA_W@Z */
7820 basic_istream_wchar
* __cdecl
basic_istream_wchar_read_ch(basic_istream_wchar
*istream
, wchar_t *ch
)
7822 IOSB_iostate state
= IOSTATE_failbit
;
7823 unsigned short c
= 0;
7825 TRACE("(%p %p)\n", istream
, ch
);
7827 if(basic_istream_wchar_sentry_create(istream
, FALSE
)) {
7828 c
= basic_streambuf_wchar_sbumpc(basic_ios_wchar_rdbuf_get(
7829 basic_istream_wchar_get_basic_ios(istream
)));
7831 state
= IOSTATE_goodbit
;
7835 basic_istream_wchar_sentry_destroy(istream
);
7837 basic_ios_wchar_setstate(basic_istream_wchar_get_basic_ios(istream
),
7838 state
| (c
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
7842 /* ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
7843 /* ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
7844 DEFINE_THISCALL_WRAPPER(basic_iostream_char_ctor
, 12)
7845 basic_iostream_char
* __thiscall
basic_iostream_char_ctor(basic_iostream_char
*this, basic_streambuf_char
*strbuf
, MSVCP_bool virt_init
)
7847 basic_ios_char
*basic_ios
;
7849 TRACE("(%p %p %d)\n", this, strbuf
, virt_init
);
7852 this->base1
.vbtable
= basic_iostream_char_vbtable1
;
7853 this->base2
.vbtable
= basic_iostream_char_vbtable2
;
7854 basic_ios
= basic_istream_char_get_basic_ios(&this->base1
);
7855 basic_ios_char_ctor(basic_ios
);
7857 basic_ios
= basic_istream_char_get_basic_ios(&this->base1
);
7860 basic_ios
->base
.vtable
= &MSVCP_basic_iostream_char_vtable
;
7862 basic_istream_char_ctor(&this->base1
, strbuf
, FALSE
, FALSE
);
7863 basic_ostream_char_ctor_uninitialized(&this->base2
, 0, FALSE
, FALSE
);
7867 /* ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
7868 /* ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
7869 DEFINE_THISCALL_WRAPPER(basic_iostream_char_dtor
, 4)
7870 void __thiscall
basic_iostream_char_dtor(basic_iostream_char
*this)
7872 TRACE("(%p)\n", this);
7873 basic_ostream_char_dtor(&this->base2
);
7874 basic_istream_char_dtor(&this->base1
);
7877 /* ??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
7878 /* ??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
7879 DEFINE_THISCALL_WRAPPER(basic_iostream_char_vbase_dtor
, 4)
7880 void __thiscall
basic_iostream_char_vbase_dtor(basic_iostream_char
*this)
7882 TRACE("(%p)\n", this);
7883 basic_iostream_char_dtor(this);
7884 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base1
));
7887 DEFINE_THISCALL_WRAPPER(MSVCP_basic_iostream_char_vector_dtor
, 8)
7888 basic_iostream_char
* __thiscall
MSVCP_basic_iostream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
7890 basic_iostream_char
*this = (basic_iostream_char
*)((char*)base
- basic_iostream_char_vbtable1
[1] + basic_iostream_char_vbtable1
[0]);
7892 TRACE("(%p %x)\n", this, flags
);
7895 /* we have an array, with the number of elements stored before the first object */
7896 int i
, *ptr
= (int *)this-1;
7898 for(i
=*ptr
-1; i
>=0; i
--)
7899 basic_iostream_char_vbase_dtor(this+i
);
7900 MSVCRT_operator_delete(ptr
);
7902 basic_iostream_char_vbase_dtor(this);
7904 MSVCRT_operator_delete(this);
7910 /* ??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
7911 /* ??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
7912 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_ctor
, 12)
7913 basic_iostream_wchar
* __thiscall
basic_iostream_wchar_ctor(basic_iostream_wchar
*this, basic_streambuf_wchar
*strbuf
, MSVCP_bool virt_init
)
7915 basic_ios_wchar
*basic_ios
;
7917 TRACE("(%p %p %d)\n", this, strbuf
, virt_init
);
7920 this->base1
.vbtable
= basic_iostream_wchar_vbtable1
;
7921 this->base2
.vbtable
= basic_iostream_wchar_vbtable2
;
7922 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base1
);
7923 basic_ios_wchar_ctor(basic_ios
);
7925 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base1
);
7928 basic_ios
->base
.vtable
= &MSVCP_basic_iostream_wchar_vtable
;
7930 basic_istream_wchar_ctor(&this->base1
, strbuf
, FALSE
, FALSE
);
7931 basic_ostream_wchar_ctor_uninitialized(&this->base2
, 0, FALSE
, FALSE
);
7935 /* ??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
7936 /* ??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
7937 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_dtor
, 4)
7938 void __thiscall
basic_iostream_wchar_dtor(basic_iostream_wchar
*this)
7940 TRACE("(%p)\n", this);
7941 basic_ostream_wchar_dtor(&this->base2
);
7942 basic_istream_wchar_dtor(&this->base1
);
7945 /* ??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
7946 /* ??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ */
7947 DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_vbase_dtor
, 4)
7948 void __thiscall
basic_iostream_wchar_vbase_dtor(basic_iostream_wchar
*this)
7950 TRACE("(%p)\n", this);
7951 basic_iostream_wchar_dtor(this);
7952 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base1
));
7955 DEFINE_THISCALL_WRAPPER(MSVCP_basic_iostream_wchar_vector_dtor
, 8)
7956 basic_iostream_wchar
* __thiscall
MSVCP_basic_iostream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
7958 basic_iostream_wchar
*this = (basic_iostream_wchar
*)((char*)base
- basic_iostream_wchar_vbtable1
[1] + basic_iostream_wchar_vbtable1
[0]);
7960 TRACE("(%p %x)\n", this, flags
);
7963 /* we have an array, with the number of elements stored before the first object */
7964 int i
, *ptr
= (int *)this-1;
7966 for(i
=*ptr
-1; i
>=0; i
--)
7967 basic_iostream_wchar_vbase_dtor(this+i
);
7968 MSVCRT_operator_delete(ptr
);
7970 basic_iostream_wchar_vbase_dtor(this);
7972 MSVCRT_operator_delete(this);
7978 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
7979 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
7980 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor
, 8)
7981 basic_ofstream_char
* __thiscall
basic_ofstream_char_ctor(basic_ofstream_char
*this, MSVCP_bool virt_init
)
7983 basic_ios_char
*basic_ios
;
7985 TRACE("(%p %d)\n", this, virt_init
);
7988 this->base
.vbtable
= basic_ofstream_char_vbtable
;
7989 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
7990 basic_ios_char_ctor(basic_ios
);
7992 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
7995 basic_filebuf_char_ctor(&this->filebuf
);
7996 basic_ostream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
7997 basic_ios
->base
.vtable
= &MSVCP_basic_ofstream_char_vtable
;
8001 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
8002 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
8003 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_file
, 12)
8004 basic_ofstream_char
* __thiscall
basic_ofstream_char_ctor_file(
8005 basic_ofstream_char
*this, FILE *file
, MSVCP_bool virt_init
)
8007 basic_ios_char
*basic_ios
;
8009 TRACE("(%p %p %d)\n", this, file
, virt_init
);
8012 this->base
.vbtable
= basic_ofstream_char_vbtable
;
8013 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
8014 basic_ios_char_ctor(basic_ios
);
8016 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
8019 basic_filebuf_char_ctor_file(&this->filebuf
, file
);
8020 basic_ostream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
8021 basic_ios
->base
.vtable
= &MSVCP_basic_ofstream_char_vtable
;
8025 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
8026 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
8027 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_name
, 20)
8028 basic_ofstream_char
* __thiscall
basic_ofstream_char_ctor_name(basic_ofstream_char
*this,
8029 const char *name
, int mode
, int prot
, MSVCP_bool virt_init
)
8031 TRACE("(%p %s %d %d %d)\n", this, name
, mode
, prot
, virt_init
);
8033 basic_ofstream_char_ctor(this, virt_init
);
8035 if(!basic_filebuf_char_open(&this->filebuf
, name
, mode
|OPENMODE_out
, prot
)) {
8036 basic_ios_char
*basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
8037 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8042 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PBGHH@Z */
8043 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEBGHH@Z */
8044 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PB_WHH@Z */
8045 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEB_WHH@Z */
8046 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_name_wchar
, 20)
8047 basic_ofstream_char
* __thiscall
basic_ofstream_char_ctor_name_wchar(basic_ofstream_char
*this,
8048 const wchar_t *name
, int mode
, int prot
, MSVCP_bool virt_init
)
8050 TRACE("(%p %s %d %d %d)\n", this, debugstr_w(name
), mode
, prot
, virt_init
);
8052 basic_ofstream_char_ctor(this, virt_init
);
8054 if(!basic_filebuf_char_open_wchar(&this->filebuf
, name
, mode
|OPENMODE_out
, prot
)) {
8055 basic_ios_char
*basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
8056 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8061 /* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
8062 /* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
8063 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_dtor
, 4)
8064 void __thiscall
basic_ofstream_char_dtor(basic_ofstream_char
*this)
8066 TRACE("(%p)\n", this);
8068 basic_ostream_char_dtor(&this->base
);
8069 basic_filebuf_char_dtor(&this->filebuf
);
8072 /* ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
8073 /* ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
8074 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_vbase_dtor
, 4)
8075 void __thiscall
basic_ofstream_char_vbase_dtor(basic_ofstream_char
*this)
8077 TRACE("(%p)\n", this);
8079 basic_ofstream_char_dtor(this);
8080 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base
));
8083 DEFINE_THISCALL_WRAPPER(MSVCP_basic_ofstream_char_vector_dtor
, 8)
8084 basic_ofstream_char
* __thiscall
MSVCP_basic_ofstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
8086 basic_ofstream_char
*this = (basic_ofstream_char
*)((char*)base
- basic_ofstream_char_vbtable
[1] + basic_ofstream_char_vbtable
[0]);
8088 TRACE("(%p %x)\n", this, flags
);
8091 /* we have an array, with the number of elements stored before the first object */
8092 int i
, *ptr
= (int *)this-1;
8094 for(i
=*ptr
-1; i
>=0; i
--)
8095 basic_ofstream_char_vbase_dtor(this+i
);
8096 MSVCRT_operator_delete(ptr
);
8098 basic_ofstream_char_vbase_dtor(this);
8100 MSVCRT_operator_delete(this);
8106 /* ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
8107 /* ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
8108 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_close
, 4)
8109 void __thiscall
basic_ofstream_char_close(basic_ofstream_char
*this)
8111 TRACE("(%p)\n", this);
8113 if(!basic_filebuf_char_close(&this->filebuf
)) {
8114 basic_ios_char
*basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
8115 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8119 /* ?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
8120 /* ?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
8121 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_is_open
, 4)
8122 MSVCP_bool __thiscall
basic_ofstream_char_is_open(const basic_ofstream_char
*this)
8124 TRACE("(%p)\n", this);
8125 return basic_filebuf_char_is_open(&this->filebuf
);
8128 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
8129 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
8130 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open
, 16)
8131 void __thiscall
basic_ofstream_char_open(basic_ofstream_char
*this,
8132 const char *name
, int mode
, int prot
)
8134 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
8136 if(!basic_filebuf_char_open(&this->filebuf
, name
, mode
|OPENMODE_out
, prot
)) {
8137 basic_ios_char
*basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
8138 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8142 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
8143 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
8144 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open_old
, 12)
8145 void __thiscall
basic_ofstream_char_open_old(basic_ofstream_char
*this,
8146 const char *name
, unsigned int mode
)
8148 basic_ofstream_char_open(this, name
, mode
, _SH_DENYNO
);
8151 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBGHH@Z */
8152 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBGHH@Z */
8153 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPB_WHH@Z */
8154 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEB_WHH@Z */
8155 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open_wchar
, 16)
8156 void __thiscall
basic_ofstream_char_open_wchar(basic_ofstream_char
*this,
8157 const wchar_t *name
, int mode
, int prot
)
8159 TRACE("(%p %s %d %d)\n", this, debugstr_w(name
), mode
, prot
);
8161 if(!basic_filebuf_char_open_wchar(&this->filebuf
, name
, mode
|OPENMODE_out
, prot
)) {
8162 basic_ios_char
*basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
8163 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8167 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBGI@Z */
8168 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBGI@Z */
8169 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPB_WI@Z */
8170 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEB_WI@Z */
8171 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open_wchar_old
, 12)
8172 void __thiscall
basic_ofstream_char_open_wchar_old(basic_ofstream_char
*this,
8173 const wchar_t *name
, unsigned int mode
)
8175 basic_ofstream_char_open_wchar(this, name
, mode
, _SH_DENYNO
);
8178 /* ?rdbuf@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
8179 /* ?rdbuf@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
8180 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_rdbuf
, 4)
8181 basic_filebuf_char
* __thiscall
basic_ofstream_char_rdbuf(const basic_ofstream_char
*this)
8183 TRACE("(%p)\n", this);
8184 return (basic_filebuf_char
*)&this->filebuf
;
8187 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
8188 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
8189 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor
, 8)
8190 basic_ifstream_char
* __thiscall
basic_ifstream_char_ctor(basic_ifstream_char
*this, MSVCP_bool virt_init
)
8192 basic_ios_char
*basic_ios
;
8194 TRACE("(%p %d)\n", this, virt_init
);
8197 this->base
.vbtable
= basic_ifstream_char_vbtable
;
8198 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
8199 basic_ios_char_ctor(basic_ios
);
8201 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
8204 basic_filebuf_char_ctor(&this->filebuf
);
8205 basic_istream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
8206 basic_ios
->base
.vtable
= &MSVCP_basic_ifstream_char_vtable
;
8210 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
8211 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
8212 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_file
, 12)
8213 basic_ifstream_char
* __thiscall
basic_ifstream_char_ctor_file(
8214 basic_ifstream_char
*this, FILE *file
, MSVCP_bool virt_init
)
8216 basic_ios_char
*basic_ios
;
8218 TRACE("(%p %p %d)\n", this, file
, virt_init
);
8221 this->base
.vbtable
= basic_ifstream_char_vbtable
;
8222 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
8223 basic_ios_char_ctor(basic_ios
);
8225 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
8228 basic_filebuf_char_ctor_file(&this->filebuf
, file
);
8229 basic_istream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
8230 basic_ios
->base
.vtable
= &MSVCP_basic_ifstream_char_vtable
;
8234 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
8235 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
8236 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_name
, 20)
8237 basic_ifstream_char
* __thiscall
basic_ifstream_char_ctor_name(basic_ifstream_char
*this,
8238 const char *name
, int mode
, int prot
, MSVCP_bool virt_init
)
8240 TRACE("(%p %s %d %d %d)\n", this, name
, mode
, prot
, virt_init
);
8242 basic_ifstream_char_ctor(this, virt_init
);
8244 if(!basic_filebuf_char_open(&this->filebuf
, name
, mode
|OPENMODE_in
, prot
)) {
8245 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
8246 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8251 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBGHH@Z */
8252 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEBGHH@Z */
8253 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PB_WHH@Z */
8254 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEB_WHH@Z */
8255 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_name_wchar
, 20)
8256 basic_ifstream_char
* __thiscall
basic_ifstream_char_ctor_name_wchar(basic_ifstream_char
*this,
8257 const wchar_t *name
, int mode
, int prot
, MSVCP_bool virt_init
)
8259 TRACE("(%p %s %d %d %d)\n", this, debugstr_w(name
), mode
, prot
, virt_init
);
8261 basic_ifstream_char_ctor(this, virt_init
);
8263 if(!basic_filebuf_char_open_wchar(&this->filebuf
, name
, mode
|OPENMODE_in
, prot
)) {
8264 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
8265 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8270 /* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
8271 /* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
8272 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_dtor
, 4)
8273 void __thiscall
basic_ifstream_char_dtor(basic_ifstream_char
*this)
8275 TRACE("(%p)\n", this);
8277 basic_istream_char_dtor(&this->base
);
8278 basic_filebuf_char_dtor(&this->filebuf
);
8281 /* ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
8282 /* ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
8283 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_vbase_dtor
, 4)
8284 void __thiscall
basic_ifstream_char_vbase_dtor(basic_ifstream_char
*this)
8286 TRACE("(%p)\n", this);
8288 basic_ifstream_char_dtor(this);
8289 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base
));
8292 DEFINE_THISCALL_WRAPPER(MSVCP_basic_ifstream_char_vector_dtor
, 8)
8293 basic_ifstream_char
* __thiscall
MSVCP_basic_ifstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
8295 basic_ifstream_char
*this = (basic_ifstream_char
*)((char*)base
- basic_ifstream_char_vbtable
[1] + basic_ifstream_char_vbtable
[0]);
8297 TRACE("(%p %x)\n", this, flags
);
8300 /* we have an array, with the number of elements stored before the first object */
8301 int i
, *ptr
= (int *)this-1;
8303 for(i
=*ptr
-1; i
>=0; i
--)
8304 basic_ifstream_char_vbase_dtor(this+i
);
8305 MSVCRT_operator_delete(ptr
);
8307 basic_ifstream_char_vbase_dtor(this);
8309 MSVCRT_operator_delete(this);
8315 /* ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
8316 /* ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
8317 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_close
, 4)
8318 void __thiscall
basic_ifstream_char_close(basic_ifstream_char
*this)
8320 TRACE("(%p)\n", this);
8322 if(!basic_filebuf_char_close(&this->filebuf
)) {
8323 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
8324 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8328 /* ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
8329 /* ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
8330 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_is_open
, 4)
8331 MSVCP_bool __thiscall
basic_ifstream_char_is_open(const basic_ifstream_char
*this)
8333 TRACE("(%p)\n", this);
8334 return basic_filebuf_char_is_open(&this->filebuf
);
8337 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
8338 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
8339 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open
, 16)
8340 void __thiscall
basic_ifstream_char_open(basic_ifstream_char
*this,
8341 const char *name
, int mode
, int prot
)
8343 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
8345 if(!basic_filebuf_char_open(&this->filebuf
, name
, mode
|OPENMODE_in
, prot
)) {
8346 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
8347 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8351 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
8352 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
8353 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open_old
, 12)
8354 void __thiscall
basic_ifstream_char_open_old(basic_ifstream_char
*this,
8355 const char *name
, unsigned int mode
)
8357 basic_ifstream_char_open(this, name
, mode
, _SH_DENYNO
);
8360 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBGHH@Z */
8361 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBGHH@Z */
8362 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPB_WHH@Z */
8363 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEB_WHH@Z */
8364 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open_wchar
, 16)
8365 void __thiscall
basic_ifstream_char_open_wchar(basic_ifstream_char
*this,
8366 const wchar_t *name
, int mode
, int prot
)
8368 TRACE("(%p %s %d %d)\n", this, debugstr_w(name
), mode
, prot
);
8370 if(!basic_filebuf_char_open_wchar(&this->filebuf
, name
, mode
|OPENMODE_in
, prot
)) {
8371 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
8372 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8376 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBGI@Z */
8377 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBGI@Z */
8378 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPB_WI@Z */
8379 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEB_WI@Z */
8380 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open_wchar_old
, 12)
8381 void __thiscall
basic_ifstream_char_open_wchar_old(basic_ifstream_char
*this,
8382 const wchar_t *name
, unsigned int mode
)
8384 basic_ifstream_char_open_wchar(this, name
, mode
, _SH_DENYNO
);
8387 /* ?rdbuf@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
8388 /* ?rdbuf@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
8389 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_rdbuf
, 4)
8390 basic_filebuf_char
* __thiscall
basic_ifstream_char_rdbuf(const basic_ifstream_char
*this)
8392 TRACE("(%p)\n", this);
8393 return (basic_filebuf_char
*)&this->filebuf
;
8396 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
8397 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
8398 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor
, 8)
8399 basic_fstream_char
* __thiscall
basic_fstream_char_ctor(basic_fstream_char
*this, MSVCP_bool virt_init
)
8401 basic_ios_char
*basic_ios
;
8403 TRACE("(%p %d)\n", this, virt_init
);
8406 this->base
.base1
.vbtable
= basic_fstream_char_vbtable1
;
8407 this->base
.base2
.vbtable
= basic_fstream_char_vbtable2
;
8408 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
8409 basic_ios_char_ctor(basic_ios
);
8411 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
8414 basic_filebuf_char_ctor(&this->filebuf
);
8415 basic_iostream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
);
8416 basic_ios
->base
.vtable
= &MSVCP_basic_fstream_char_vtable
;
8420 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
8421 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
8422 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_file
, 12)
8423 basic_fstream_char
* __thiscall
basic_fstream_char_ctor_file(basic_fstream_char
*this,
8424 FILE *file
, MSVCP_bool virt_init
)
8426 basic_ios_char
*basic_ios
;
8428 TRACE("(%p %p %d)\n", this, file
, virt_init
);
8431 this->base
.base1
.vbtable
= basic_fstream_char_vbtable1
;
8432 this->base
.base2
.vbtable
= basic_fstream_char_vbtable2
;
8433 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
8434 basic_ios_char_ctor(basic_ios
);
8436 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
8439 basic_filebuf_char_ctor_file(&this->filebuf
, file
);
8440 basic_iostream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
);
8441 basic_ios
->base
.vtable
= &MSVCP_basic_fstream_char_vtable
;
8445 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z */
8446 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDHH@Z */
8447 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_name
, 20)
8448 basic_fstream_char
* __thiscall
basic_fstream_char_ctor_name(basic_fstream_char
*this,
8449 const char *name
, int mode
, int prot
, MSVCP_bool virt_init
)
8451 TRACE("(%p %s %d %d %d)\n", this, name
, mode
, prot
, virt_init
);
8453 basic_fstream_char_ctor(this, virt_init
);
8455 if(!basic_filebuf_char_open(&this->filebuf
, name
, mode
, prot
)) {
8456 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
8457 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8462 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBGHH@Z */
8463 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEBGHH@Z */
8464 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PB_WHH@Z */
8465 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEB_WHH@Z */
8466 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_name_wchar
, 20)
8467 basic_fstream_char
* __thiscall
basic_fstream_char_ctor_name_wchar(basic_fstream_char
*this,
8468 const wchar_t *name
, int mode
, int prot
, MSVCP_bool virt_init
)
8470 TRACE("(%p %s %d %d %d)\n", this, debugstr_w(name
), mode
, prot
, virt_init
);
8472 basic_fstream_char_ctor(this, virt_init
);
8474 if(!basic_filebuf_char_open_wchar(&this->filebuf
, name
, mode
, prot
)) {
8475 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
8476 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8481 /* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
8482 /* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
8483 DEFINE_THISCALL_WRAPPER(basic_fstream_char_dtor
, 4)
8484 void __thiscall
basic_fstream_char_dtor(basic_fstream_char
*this)
8486 TRACE("(%p)\n", this);
8488 basic_iostream_char_dtor(&this->base
);
8489 basic_filebuf_char_dtor(&this->filebuf
);
8492 /* ??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
8493 /* ??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
8494 DEFINE_THISCALL_WRAPPER(basic_fstream_char_vbase_dtor
, 4)
8495 void __thiscall
basic_fstream_char_vbase_dtor(basic_fstream_char
*this)
8497 TRACE("(%p)\n", this);
8499 basic_fstream_char_dtor(this);
8500 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base
.base1
));
8503 DEFINE_THISCALL_WRAPPER(MSVCP_basic_fstream_char_vector_dtor
, 8)
8504 basic_fstream_char
* __thiscall
MSVCP_basic_fstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
8506 basic_fstream_char
*this = (basic_fstream_char
*)((char*)base
- basic_fstream_char_vbtable1
[1] + basic_fstream_char_vbtable1
[0]);
8508 TRACE("(%p %x)\n", this, flags
);
8511 /* we have an array, with the number of elements stored before the first object */
8512 int i
, *ptr
= (int *)this-1;
8514 for(i
=*ptr
-1; i
>=0; i
--)
8515 basic_fstream_char_vbase_dtor(this+i
);
8516 MSVCRT_operator_delete(ptr
);
8518 basic_fstream_char_vbase_dtor(this);
8520 MSVCRT_operator_delete(this);
8526 /* ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
8527 /* ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
8528 DEFINE_THISCALL_WRAPPER(basic_fstream_char_close
, 4)
8529 void __thiscall
basic_fstream_char_close(basic_fstream_char
*this)
8531 TRACE("(%p)\n", this);
8533 if(!basic_filebuf_char_close(&this->filebuf
)) {
8534 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
8535 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8539 /* ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
8540 /* ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
8541 DEFINE_THISCALL_WRAPPER(basic_fstream_char_is_open
, 4)
8542 MSVCP_bool __thiscall
basic_fstream_char_is_open(const basic_fstream_char
*this)
8544 TRACE("(%p)\n", this);
8545 return basic_filebuf_char_is_open(&this->filebuf
);
8548 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z */
8549 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z */
8550 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open
, 16)
8551 void __thiscall
basic_fstream_char_open(basic_fstream_char
*this,
8552 const char *name
, int mode
, int prot
)
8554 TRACE("(%p %s %d %d)\n", this, name
, mode
, prot
);
8556 if(!basic_filebuf_char_open(&this->filebuf
, name
, mode
, prot
)) {
8557 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
8558 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8562 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDI@Z */
8563 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDI@Z */
8564 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open_old
, 12)
8565 void __thiscall
basic_fstream_char_open_old(basic_fstream_char
*this,
8566 const char *name
, unsigned int mode
)
8568 basic_fstream_char_open(this, name
, mode
, _SH_DENYNO
);
8571 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBGHH@Z */
8572 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBGHH@Z */
8573 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPB_WHH@Z */
8574 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEB_WHH@Z */
8575 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open_wchar
, 16)
8576 void __thiscall
basic_fstream_char_open_wchar(basic_fstream_char
*this,
8577 const wchar_t *name
, int mode
, int prot
)
8579 TRACE("(%p %s %d %d)\n", this, debugstr_w(name
), mode
, prot
);
8581 if(!basic_filebuf_char_open_wchar(&this->filebuf
, name
, mode
, prot
)) {
8582 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
8583 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8587 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBGI@Z */
8588 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBGI@Z */
8589 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPB_WI@Z */
8590 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEB_WI@Z */
8591 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open_wchar_old
, 12)
8592 void __thiscall
basic_fstream_char_open_wchar_old(basic_fstream_char
*this,
8593 const wchar_t *name
, unsigned int mode
)
8595 basic_fstream_char_open_wchar(this, name
, mode
, _SH_DENYNO
);
8598 /* ?rdbuf@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
8599 /* ?rdbuf@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
8600 DEFINE_THISCALL_WRAPPER(basic_fstream_char_rdbuf
, 4)
8601 basic_filebuf_char
* __thiscall
basic_fstream_char_rdbuf(const basic_fstream_char
*this)
8603 TRACE("(%p)\n", this);
8604 return (basic_filebuf_char
*)&this->filebuf
;
8607 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
8608 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
8609 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_str
, 16)
8610 basic_ostringstream_char
* __thiscall
basic_ostringstream_char_ctor_str(basic_ostringstream_char
*this,
8611 const basic_string_char
*str
, int mode
, MSVCP_bool virt_init
)
8613 basic_ios_char
*basic_ios
;
8615 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
8618 this->base
.vbtable
= basic_ostringstream_char_vbtable
;
8619 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
8620 basic_ios_char_ctor(basic_ios
);
8622 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
8625 basic_stringbuf_char_ctor_str(&this->strbuf
, str
, mode
|OPENMODE_out
);
8626 basic_ostream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
8627 basic_ios
->base
.vtable
= &MSVCP_basic_ostringstream_char_vtable
;
8631 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
8632 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
8633 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_mode
, 12)
8634 basic_ostringstream_char
* __thiscall
basic_ostringstream_char_ctor_mode(
8635 basic_ostringstream_char
*this, int mode
, MSVCP_bool virt_init
)
8637 basic_ios_char
*basic_ios
;
8639 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
8642 this->base
.vbtable
= basic_ostringstream_char_vbtable
;
8643 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
8644 basic_ios_char_ctor(basic_ios
);
8646 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
8649 basic_stringbuf_char_ctor_mode(&this->strbuf
, mode
|OPENMODE_out
);
8650 basic_ostream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
8651 basic_ios
->base
.vtable
= &MSVCP_basic_ostringstream_char_vtable
;
8655 /* ??_F?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
8656 /* ??_F?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
8657 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor
, 8)
8658 basic_ostringstream_char
* __thiscall
basic_ostringstream_char_ctor(
8659 basic_ostringstream_char
*this, MSVCP_bool virt_init
)
8661 return basic_ostringstream_char_ctor_mode(this, 0, virt_init
);
8664 /* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
8665 /* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
8666 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_dtor
, 4)
8667 void __thiscall
basic_ostringstream_char_dtor(basic_ostringstream_char
*this)
8669 TRACE("(%p)\n", this);
8671 basic_stringbuf_char_dtor(&this->strbuf
);
8672 basic_ostream_char_dtor(&this->base
);
8675 /* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
8676 /* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
8677 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_vbase_dtor
, 4)
8678 void __thiscall
basic_ostringstream_char_vbase_dtor(basic_ostringstream_char
*this)
8680 TRACE("(%p)\n", this);
8682 basic_ostringstream_char_dtor(this);
8683 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base
));
8686 DEFINE_THISCALL_WRAPPER(MSVCP_basic_ostringstream_char_vector_dtor
, 8)
8687 basic_ostringstream_char
* __thiscall
MSVCP_basic_ostringstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
8689 basic_ostringstream_char
*this = (basic_ostringstream_char
*)((char*)base
- basic_ostringstream_char_vbtable
[1] + basic_ostringstream_char_vbtable
[0]);
8691 TRACE("(%p %x)\n", this, flags
);
8694 /* we have an array, with the number of elements stored before the first object */
8695 int i
, *ptr
= (int *)this-1;
8697 for(i
=*ptr
-1; i
>=0; i
--)
8698 basic_ostringstream_char_vbase_dtor(this+i
);
8699 MSVCRT_operator_delete(ptr
);
8701 basic_ostringstream_char_vbase_dtor(this);
8703 MSVCRT_operator_delete(this);
8709 /* ?rdbuf@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
8710 /* ?rdbuf@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
8711 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_rdbuf
, 4)
8712 basic_stringbuf_char
* __thiscall
basic_ostringstream_char_rdbuf(const basic_ostringstream_char
*this)
8714 TRACE("(%p)\n", this);
8715 return (basic_stringbuf_char
*)&this->strbuf
;
8718 /* ?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
8719 /* ?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
8720 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_str_set
, 8)
8721 void __thiscall
basic_ostringstream_char_str_set(basic_ostringstream_char
*this, const basic_string_char
*str
)
8723 TRACE("(%p %p)\n", this, str
);
8724 basic_stringbuf_char_str_set(&this->strbuf
, str
);
8727 /* ?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
8728 /* ?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
8729 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_str_get
, 8)
8730 basic_string_char
* __thiscall
basic_ostringstream_char_str_get(const basic_ostringstream_char
*this, basic_string_char
*ret
)
8732 TRACE("(%p %p)\n", this, ret
);
8733 return basic_stringbuf_char_str_get(&this->strbuf
, ret
);
8736 /* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
8737 /* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
8738 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor_str
, 16)
8739 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_wchar_ctor_str(basic_ostringstream_wchar
*this,
8740 const basic_string_wchar
*str
, int mode
, MSVCP_bool virt_init
)
8742 basic_ios_wchar
*basic_ios
;
8744 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
8747 this->base
.vbtable
= basic_ostringstream_wchar_vbtable
;
8748 basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
8749 basic_ios_wchar_ctor(basic_ios
);
8751 basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
8754 basic_stringbuf_wchar_ctor_str(&this->strbuf
, str
, mode
|OPENMODE_out
);
8755 basic_ostream_wchar_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
8756 basic_ios
->base
.vtable
= &MSVCP_basic_ostringstream_wchar_vtable
;
8760 /* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
8761 /* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
8762 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor_mode
, 12)
8763 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_wchar_ctor_mode(
8764 basic_ostringstream_wchar
*this, int mode
, MSVCP_bool virt_init
)
8766 basic_ios_wchar
*basic_ios
;
8768 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
8771 this->base
.vbtable
= basic_ostringstream_wchar_vbtable
;
8772 basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
8773 basic_ios_wchar_ctor(basic_ios
);
8775 basic_ios
= basic_ostream_wchar_get_basic_ios(&this->base
);
8778 basic_stringbuf_wchar_ctor_mode(&this->strbuf
, mode
|OPENMODE_out
);
8779 basic_ostream_wchar_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
8780 basic_ios
->base
.vtable
= &MSVCP_basic_ostringstream_wchar_vtable
;
8784 /* ??_F?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
8785 /* ??_F?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
8786 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor
, 8)
8787 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_wchar_ctor(
8788 basic_ostringstream_wchar
*this, MSVCP_bool virt_init
)
8790 return basic_ostringstream_wchar_ctor_mode(this, 0, virt_init
);
8793 /* ??1?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
8794 /* ??1?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
8795 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_dtor
, 4)
8796 void __thiscall
basic_ostringstream_wchar_dtor(basic_ostringstream_wchar
*this)
8798 TRACE("(%p)\n", this);
8800 basic_stringbuf_wchar_dtor(&this->strbuf
);
8801 basic_ostream_wchar_dtor(&this->base
);
8804 /* ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
8805 /* ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
8806 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_vbase_dtor
, 4)
8807 void __thiscall
basic_ostringstream_wchar_vbase_dtor(basic_ostringstream_wchar
*this)
8809 TRACE("(%p)\n", this);
8811 basic_ostringstream_wchar_dtor(this);
8812 basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(&this->base
));
8815 DEFINE_THISCALL_WRAPPER(MSVCP_basic_ostringstream_wchar_vector_dtor
, 8)
8816 basic_ostringstream_wchar
* __thiscall
MSVCP_basic_ostringstream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
8818 basic_ostringstream_wchar
*this = (basic_ostringstream_wchar
*)((char*)base
- basic_ostringstream_wchar_vbtable
[1] + basic_ostringstream_wchar_vbtable
[0]);
8820 TRACE("(%p %x)\n", this, flags
);
8823 /* we have an array, with the number of elements stored before the first object */
8824 int i
, *ptr
= (int *)this-1;
8826 for(i
=*ptr
-1; i
>=0; i
--)
8827 basic_ostringstream_wchar_vbase_dtor(this+i
);
8828 MSVCRT_operator_delete(ptr
);
8830 basic_ostringstream_wchar_vbase_dtor(this);
8832 MSVCRT_operator_delete(this);
8838 /* ?rdbuf@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPAV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
8839 /* ?rdbuf@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEAV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
8840 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_rdbuf
, 4)
8841 basic_stringbuf_wchar
* __thiscall
basic_ostringstream_wchar_rdbuf(const basic_ostringstream_wchar
*this)
8843 TRACE("(%p)\n", this);
8844 return (basic_stringbuf_wchar
*)&this->strbuf
;
8847 /* ?str@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
8848 /* ?str@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
8849 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_str_set
, 8)
8850 void __thiscall
basic_ostringstream_wchar_str_set(basic_ostringstream_wchar
*this, const basic_string_wchar
*str
)
8852 TRACE("(%p %p)\n", this, str
);
8853 basic_stringbuf_wchar_str_set(&this->strbuf
, str
);
8856 /* ?str@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
8857 /* ?str@?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
8858 DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_str_get
, 8)
8859 basic_string_wchar
* __thiscall
basic_ostringstream_wchar_str_get(const basic_ostringstream_wchar
*this, basic_string_wchar
*ret
)
8861 TRACE("(%p %p)\n", this, ret
);
8862 return basic_stringbuf_wchar_str_get(&this->strbuf
, ret
);
8865 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
8866 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
8867 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_str
, 16)
8868 basic_istringstream_char
* __thiscall
basic_istringstream_char_ctor_str(basic_istringstream_char
*this,
8869 const basic_string_char
*str
, int mode
, MSVCP_bool virt_init
)
8871 basic_ios_char
*basic_ios
;
8873 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
8876 this->base
.vbtable
= basic_istringstream_char_vbtable
;
8877 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
8878 basic_ios_char_ctor(basic_ios
);
8880 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
8883 basic_stringbuf_char_ctor_str(&this->strbuf
, str
, mode
|OPENMODE_in
);
8884 basic_istream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
8885 basic_ios
->base
.vtable
= &MSVCP_basic_istringstream_char_vtable
;
8889 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
8890 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
8891 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_mode
, 12)
8892 basic_istringstream_char
* __thiscall
basic_istringstream_char_ctor_mode(
8893 basic_istringstream_char
*this, int mode
, MSVCP_bool virt_init
)
8895 basic_ios_char
*basic_ios
;
8897 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
8900 this->base
.vbtable
= basic_istringstream_char_vbtable
;
8901 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
8902 basic_ios_char_ctor(basic_ios
);
8904 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
8907 basic_stringbuf_char_ctor_mode(&this->strbuf
, mode
|OPENMODE_in
);
8908 basic_istream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
8909 basic_ios
->base
.vtable
= &MSVCP_basic_istringstream_char_vtable
;
8913 /* ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
8914 /* ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
8915 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor
, 8)
8916 basic_istringstream_char
* __thiscall
basic_istringstream_char_ctor(
8917 basic_istringstream_char
*this, MSVCP_bool virt_init
)
8919 return basic_istringstream_char_ctor_mode(this, 0, virt_init
);
8922 /* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
8923 /* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
8924 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_dtor
, 4)
8925 void __thiscall
basic_istringstream_char_dtor(basic_istringstream_char
*this)
8927 TRACE("(%p)\n", this);
8929 basic_stringbuf_char_dtor(&this->strbuf
);
8930 basic_istream_char_dtor(&this->base
);
8933 /* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
8934 /* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
8935 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_vbase_dtor
, 4)
8936 void __thiscall
basic_istringstream_char_vbase_dtor(basic_istringstream_char
*this)
8938 TRACE("(%p)\n", this);
8940 basic_istringstream_char_dtor(this);
8941 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base
));
8944 DEFINE_THISCALL_WRAPPER(MSVCP_basic_istringstream_char_vector_dtor
, 8)
8945 basic_istringstream_char
* __thiscall
MSVCP_basic_istringstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
8947 basic_istringstream_char
*this = (basic_istringstream_char
*)((char*)base
- basic_istringstream_char_vbtable
[1] + basic_istringstream_char_vbtable
[0]);
8949 TRACE("(%p %x)\n", this, flags
);
8952 /* we have an array, with the number of elements stored before the first object */
8953 int i
, *ptr
= (int *)this-1;
8955 for(i
=*ptr
-1; i
>=0; i
--)
8956 basic_istringstream_char_vbase_dtor(this+i
);
8957 MSVCRT_operator_delete(ptr
);
8959 basic_istringstream_char_vbase_dtor(this);
8961 MSVCRT_operator_delete(this);
8967 /* ?rdbuf@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
8968 /* ?rdbuf@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
8969 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_rdbuf
, 4)
8970 basic_stringbuf_char
* __thiscall
basic_istringstream_char_rdbuf(const basic_istringstream_char
*this)
8972 TRACE("(%p)\n", this);
8973 return (basic_stringbuf_char
*)&this->strbuf
;
8976 /* ?str@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
8977 /* ?str@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
8978 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_str_set
, 8)
8979 void __thiscall
basic_istringstream_char_str_set(basic_istringstream_char
*this, const basic_string_char
*str
)
8981 TRACE("(%p %p)\n", this, str
);
8982 basic_stringbuf_char_str_set(&this->strbuf
, str
);
8985 /* ?str@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
8986 /* ?str@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
8987 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_str_get
, 8)
8988 basic_string_char
* __thiscall
basic_istringstream_char_str_get(const basic_istringstream_char
*this, basic_string_char
*ret
)
8990 TRACE("(%p %p)\n", this, ret
);
8991 return basic_stringbuf_char_str_get(&this->strbuf
, ret
);
8994 /* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
8995 /* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
8996 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor_str
, 16)
8997 basic_istringstream_wchar
* __thiscall
basic_istringstream_wchar_ctor_str(basic_istringstream_wchar
*this,
8998 const basic_string_wchar
*str
, int mode
, MSVCP_bool virt_init
)
9000 basic_ios_wchar
*basic_ios
;
9002 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
9005 this->base
.vbtable
= basic_istringstream_wchar_vbtable
;
9006 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
9007 basic_ios_wchar_ctor(basic_ios
);
9009 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
9012 basic_stringbuf_wchar_ctor_str(&this->strbuf
, str
, mode
|OPENMODE_in
);
9013 basic_istream_wchar_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
9014 basic_ios
->base
.vtable
= &MSVCP_basic_istringstream_wchar_vtable
;
9018 /* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
9019 /* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
9020 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor_mode
, 12)
9021 basic_istringstream_wchar
* __thiscall
basic_istringstream_wchar_ctor_mode(
9022 basic_istringstream_wchar
*this, int mode
, MSVCP_bool virt_init
)
9024 basic_ios_wchar
*basic_ios
;
9026 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
9029 this->base
.vbtable
= basic_istringstream_wchar_vbtable
;
9030 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
9031 basic_ios_wchar_ctor(basic_ios
);
9033 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
);
9036 basic_stringbuf_wchar_ctor_mode(&this->strbuf
, mode
|OPENMODE_in
);
9037 basic_istream_wchar_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
9038 basic_ios
->base
.vtable
= &MSVCP_basic_istringstream_wchar_vtable
;
9042 /* ??_F?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
9043 /* ??_F?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
9044 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor
, 8)
9045 basic_istringstream_wchar
* __thiscall
basic_istringstream_wchar_ctor(
9046 basic_istringstream_wchar
*this, MSVCP_bool virt_init
)
9048 return basic_istringstream_wchar_ctor_mode(this, 0, virt_init
);
9051 /* ??1?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
9052 /* ??1?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
9053 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_dtor
, 4)
9054 void __thiscall
basic_istringstream_wchar_dtor(basic_istringstream_wchar
*this)
9056 TRACE("(%p)\n", this);
9058 basic_stringbuf_wchar_dtor(&this->strbuf
);
9059 basic_istream_wchar_dtor(&this->base
);
9062 /* ??_D?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
9063 /* ??_D?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
9064 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_vbase_dtor
, 4)
9065 void __thiscall
basic_istringstream_wchar_vbase_dtor(basic_istringstream_wchar
*this)
9067 TRACE("(%p)\n", this);
9069 basic_istringstream_wchar_dtor(this);
9070 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base
));
9073 DEFINE_THISCALL_WRAPPER(MSVCP_basic_istringstream_wchar_vector_dtor
, 8)
9074 basic_istringstream_wchar
* __thiscall
MSVCP_basic_istringstream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
9076 basic_istringstream_wchar
*this = (basic_istringstream_wchar
*)((char*)base
- basic_istringstream_wchar_vbtable
[1] + basic_istringstream_wchar_vbtable
[0]);
9078 TRACE("(%p %x)\n", this, flags
);
9081 /* we have an array, with the number of elements stored before the first object */
9082 int i
, *ptr
= (int *)this-1;
9084 for(i
=*ptr
-1; i
>=0; i
--)
9085 basic_istringstream_wchar_vbase_dtor(this+i
);
9086 MSVCRT_operator_delete(ptr
);
9088 basic_istringstream_wchar_vbase_dtor(this);
9090 MSVCRT_operator_delete(this);
9096 /* ?rdbuf@?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPAV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
9097 /* ?rdbuf@?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEAV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
9098 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_rdbuf
, 4)
9099 basic_stringbuf_wchar
* __thiscall
basic_istringstream_wchar_rdbuf(const basic_istringstream_wchar
*this)
9101 TRACE("(%p)\n", this);
9102 return (basic_stringbuf_wchar
*)&this->strbuf
;
9105 /* ?str@?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
9106 /* ?str@?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
9107 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_str_set
, 8)
9108 void __thiscall
basic_istringstream_wchar_str_set(basic_istringstream_wchar
*this, const basic_string_wchar
*str
)
9110 TRACE("(%p %p)\n", this, str
);
9111 basic_stringbuf_wchar_str_set(&this->strbuf
, str
);
9114 /* ?str@?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
9115 /* ?str@?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
9116 DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_str_get
, 8)
9117 basic_string_wchar
* __thiscall
basic_istringstream_wchar_str_get(const basic_istringstream_wchar
*this, basic_string_wchar
*ret
)
9119 TRACE("(%p %p)\n", this, ret
);
9120 return basic_stringbuf_wchar_str_get(&this->strbuf
, ret
);
9123 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
9124 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
9125 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_str
, 16)
9126 basic_stringstream_char
* __thiscall
basic_stringstream_char_ctor_str(basic_stringstream_char
*this,
9127 const basic_string_char
*str
, int mode
, MSVCP_bool virt_init
)
9129 basic_ios_char
*basic_ios
;
9131 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
9134 this->base
.base1
.vbtable
= basic_stringstream_char_vbtable1
;
9135 this->base
.base2
.vbtable
= basic_stringstream_char_vbtable2
;
9136 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
9137 basic_ios_char_ctor(basic_ios
);
9139 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
9142 basic_stringbuf_char_ctor_str(&this->strbuf
, str
, mode
);
9143 basic_iostream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
);
9144 basic_ios
->base
.vtable
= &MSVCP_basic_stringstream_char_vtable
;
9148 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
9149 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
9150 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_mode
, 12)
9151 basic_stringstream_char
* __thiscall
basic_stringstream_char_ctor_mode(
9152 basic_stringstream_char
*this, int mode
, MSVCP_bool virt_init
)
9154 basic_ios_char
*basic_ios
;
9156 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
9159 this->base
.base1
.vbtable
= basic_stringstream_char_vbtable1
;
9160 this->base
.base2
.vbtable
= basic_stringstream_char_vbtable2
;
9161 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
9162 basic_ios_char_ctor(basic_ios
);
9164 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
9167 basic_stringbuf_char_ctor_mode(&this->strbuf
, mode
);
9168 basic_iostream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
);
9169 basic_ios
->base
.vtable
= &MSVCP_basic_stringstream_char_vtable
;
9173 /* ??_F?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
9174 /* ??_F?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
9175 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor
, 8)
9176 basic_stringstream_char
* __thiscall
basic_stringstream_char_ctor(
9177 basic_stringstream_char
*this, MSVCP_bool virt_init
)
9179 return basic_stringstream_char_ctor_mode(
9180 this, OPENMODE_out
|OPENMODE_in
, virt_init
);
9183 /* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
9184 /* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
9185 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_dtor
, 4)
9186 void __thiscall
basic_stringstream_char_dtor(basic_stringstream_char
*this)
9188 TRACE("(%p)\n", this);
9190 basic_iostream_char_dtor(&this->base
);
9191 basic_stringbuf_char_dtor(&this->strbuf
);
9194 /* ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
9195 /* ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
9196 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_vbase_dtor
, 4)
9197 void __thiscall
basic_stringstream_char_vbase_dtor(basic_stringstream_char
*this)
9199 TRACE("(%p)\n", this);
9201 basic_stringstream_char_dtor(this);
9202 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base
.base1
));
9205 DEFINE_THISCALL_WRAPPER(MSVCP_basic_stringstream_char_vector_dtor
, 8)
9206 basic_stringstream_char
* __thiscall
MSVCP_basic_stringstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
9208 basic_stringstream_char
*this = (basic_stringstream_char
*)((char*)base
- basic_stringstream_char_vbtable1
[1] + basic_stringstream_char_vbtable1
[0]);
9210 TRACE("(%p %x)\n", this, flags
);
9213 /* we have an array, with the number of elements stored before the first object */
9214 int i
, *ptr
= (int *)this-1;
9216 for(i
=*ptr
-1; i
>=0; i
--)
9217 basic_stringstream_char_vbase_dtor(this+i
);
9218 MSVCRT_operator_delete(ptr
);
9220 basic_stringstream_char_vbase_dtor(this);
9222 MSVCRT_operator_delete(this);
9228 /* ?rdbuf@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
9229 /* ?rdbuf@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
9230 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_rdbuf
, 4)
9231 basic_stringbuf_char
* __thiscall
basic_stringstream_char_rdbuf(const basic_stringstream_char
*this)
9233 TRACE("(%p)\n", this);
9234 return (basic_stringbuf_char
*)&this->strbuf
;
9237 /* ?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
9238 /* ?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
9239 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_str_set
, 8)
9240 void __thiscall
basic_stringstream_char_str_set(basic_stringstream_char
*this, const basic_string_char
*str
)
9242 TRACE("(%p %p)\n", this, str
);
9243 basic_stringbuf_char_str_set(&this->strbuf
, str
);
9246 /* ?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
9247 /* ?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
9248 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_str_get
, 8)
9249 basic_string_char
* __thiscall
basic_stringstream_char_str_get(const basic_stringstream_char
*this, basic_string_char
*ret
)
9251 TRACE("(%p %p)\n", this, ret
);
9252 return basic_stringbuf_char_str_get(&this->strbuf
, ret
);
9255 /* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
9256 /* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
9257 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor_str
, 16)
9258 basic_stringstream_wchar
* __thiscall
basic_stringstream_wchar_ctor_str(basic_stringstream_wchar
*this,
9259 const basic_string_wchar
*str
, int mode
, MSVCP_bool virt_init
)
9261 basic_ios_wchar
*basic_ios
;
9263 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
9266 this->base
.base1
.vbtable
= basic_stringstream_wchar_vbtable1
;
9267 this->base
.base2
.vbtable
= basic_stringstream_wchar_vbtable2
;
9268 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
9269 basic_ios_wchar_ctor(basic_ios
);
9271 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
9274 basic_stringbuf_wchar_ctor_str(&this->strbuf
, str
, mode
);
9275 basic_iostream_wchar_ctor(&this->base
, &this->strbuf
.base
, FALSE
);
9276 basic_ios
->base
.vtable
= &MSVCP_basic_stringstream_wchar_vtable
;
9280 /* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z */
9281 /* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@H@Z */
9282 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor_mode
, 12)
9283 basic_stringstream_wchar
* __thiscall
basic_stringstream_wchar_ctor_mode(
9284 basic_stringstream_wchar
*this, int mode
, MSVCP_bool virt_init
)
9286 basic_ios_wchar
*basic_ios
;
9288 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
9291 this->base
.base1
.vbtable
= basic_stringstream_wchar_vbtable1
;
9292 this->base
.base2
.vbtable
= basic_stringstream_wchar_vbtable2
;
9293 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
9294 basic_ios_wchar_ctor(basic_ios
);
9296 basic_ios
= basic_istream_wchar_get_basic_ios(&this->base
.base1
);
9299 basic_stringbuf_wchar_ctor_mode(&this->strbuf
, mode
);
9300 basic_iostream_wchar_ctor(&this->base
, &this->strbuf
.base
, FALSE
);
9301 basic_ios
->base
.vtable
= &MSVCP_basic_stringstream_wchar_vtable
;
9305 /* ??_F?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
9306 /* ??_F?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
9307 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor
, 8)
9308 basic_stringstream_wchar
* __thiscall
basic_stringstream_wchar_ctor(
9309 basic_stringstream_wchar
*this, MSVCP_bool virt_init
)
9311 return basic_stringstream_wchar_ctor_mode(
9312 this, OPENMODE_out
|OPENMODE_in
, virt_init
);
9315 /* ??1?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
9316 /* ??1?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
9317 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_dtor
, 4)
9318 void __thiscall
basic_stringstream_wchar_dtor(basic_stringstream_wchar
*this)
9320 TRACE("(%p)\n", this);
9322 basic_iostream_wchar_dtor(&this->base
);
9323 basic_stringbuf_wchar_dtor(&this->strbuf
);
9326 /* ??_D?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
9327 /* ??_D?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXXZ */
9328 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_vbase_dtor
, 4)
9329 void __thiscall
basic_stringstream_wchar_vbase_dtor(basic_stringstream_wchar
*this)
9331 TRACE("(%p)\n", this);
9333 basic_stringstream_wchar_dtor(this);
9334 basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base
.base1
));
9337 DEFINE_THISCALL_WRAPPER(MSVCP_basic_stringstream_wchar_vector_dtor
, 8)
9338 basic_stringstream_wchar
* __thiscall
MSVCP_basic_stringstream_wchar_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
9340 basic_stringstream_wchar
*this = (basic_stringstream_wchar
*)((char*)base
- basic_stringstream_wchar_vbtable1
[1] + basic_stringstream_wchar_vbtable1
[0]);
9342 TRACE("(%p %x)\n", this, flags
);
9345 /* we have an array, with the number of elements stored before the first object */
9346 int i
, *ptr
= (int *)this-1;
9348 for(i
=*ptr
-1; i
>=0; i
--)
9349 basic_stringstream_wchar_vbase_dtor(this+i
);
9350 MSVCRT_operator_delete(ptr
);
9352 basic_stringstream_wchar_vbase_dtor(this);
9354 MSVCRT_operator_delete(this);
9360 /* ?rdbuf@?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPAV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
9361 /* ?rdbuf@?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEAV?$basic_stringbuf@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
9362 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_rdbuf
, 4)
9363 basic_stringbuf_wchar
* __thiscall
basic_stringstream_wchar_rdbuf(const basic_stringstream_wchar
*this)
9365 TRACE("(%p)\n", this);
9366 return (basic_stringbuf_wchar
*)&this->strbuf
;
9369 /* ?str@?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
9370 /* ?str@?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
9371 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_str_set
, 8)
9372 void __thiscall
basic_stringstream_wchar_str_set(basic_stringstream_wchar
*this, const basic_string_wchar
*str
)
9374 TRACE("(%p %p)\n", this, str
);
9375 basic_stringbuf_wchar_str_set(&this->strbuf
, str
);
9378 /* ?str@?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
9379 /* ?str@?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
9380 DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_str_get
, 8)
9381 basic_string_wchar
* __thiscall
basic_stringstream_wchar_str_get(const basic_stringstream_wchar
*this, basic_string_wchar
*ret
)
9383 TRACE("(%p %p)\n", this, ret
);
9384 return basic_stringbuf_wchar_str_get(&this->strbuf
, ret
);
9387 static void __cdecl
setprecision_func(ios_base
*base
, streamsize prec
)
9389 ios_base_precision_set(base
, prec
);
9392 /* ?setprecision@std@@YA?AU?$_Smanip@H@1@H@Z */
9393 /* ?setprecision@std@@YA?AU?$_Smanip@_J@1@_J@Z */
9394 manip_streamsize
* __cdecl
setprecision(manip_streamsize
*ret
, streamsize prec
)
9396 TRACE("(%p %ld)\n", ret
, prec
);
9398 ret
->pfunc
= setprecision_func
;
9403 static void __cdecl
setw_func(ios_base
*base
, streamsize width
)
9405 ios_base_width_set(base
, width
);
9408 /* ?setw@std@@YA?AU?$_Smanip@H@1@H@Z */
9409 /* ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z */
9410 manip_streamsize
* __cdecl
setw(manip_streamsize
*ret
, streamsize width
)
9412 TRACE("(%p %ld)\n", ret
, width
);
9414 ret
->pfunc
= setw_func
;
9419 static basic_filebuf_char filebuf_stdin
;
9420 /* ?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A */
9422 basic_istream_char obj
;
9423 basic_ios_char vbase
;
9425 /* ?_Ptr_cin@std@@3PAV?$basic_istream@DU?$char_traits@D@std@@@1@A */
9426 /* ?_Ptr_cin@std@@3PEAV?$basic_istream@DU?$char_traits@D@std@@@1@EA */
9427 basic_istream_char
*_Ptr_cin
= &cin
.obj
;
9429 static basic_filebuf_char filebuf_stdout
;
9430 /* ?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
9432 basic_ostream_char obj
;
9433 basic_ios_char vbase
;
9435 /* ?_Ptr_cout@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
9436 /* ?_Ptr_cout@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
9437 basic_ostream_char
*_Ptr_cout
= &cout
.obj
;
9439 static basic_filebuf_char filebuf_stderr
;
9440 /* ?cerr@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
9442 basic_ostream_char obj
;
9443 basic_ios_char vbase
;
9445 /* ?_Ptr_cerr@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
9446 /* ?_Ptr_cerr@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
9447 basic_ostream_char
*_Ptr_cerr
= &cerr
.obj
;
9449 static basic_filebuf_char filebuf_log
;
9450 /* ?clog@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
9452 basic_ostream_char obj
;
9453 basic_ios_char vbase
;
9455 /* ?_Ptr_clog@std@@3PAV?$basic_ostream@DU?$char_traits@D@std@@@1@A */
9456 /* ?_Ptr_clog@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA */
9457 basic_ostream_char
*_Ptr_clog
= &clog
.obj
;
9461 basic_filebuf_char_ctor_file(&filebuf_stdin
, stdin
);
9462 basic_istream_char_ctor(&cin
.obj
, &filebuf_stdin
.base
, FALSE
/*FIXME*/, TRUE
);
9464 basic_filebuf_char_ctor_file(&filebuf_stdout
, stdout
);
9465 basic_ostream_char_ctor(&cout
.obj
, &filebuf_stdout
.base
, FALSE
/*FIXME*/, TRUE
);
9467 basic_filebuf_char_ctor_file(&filebuf_stderr
, stderr
);
9468 basic_ostream_char_ctor(&cerr
.obj
, &filebuf_stderr
.base
, FALSE
/*FIXME*/, TRUE
);
9470 basic_filebuf_char_ctor_file(&filebuf_log
, stderr
);
9471 basic_ostream_char_ctor(&clog
.obj
, &filebuf_log
.base
, FALSE
/*FIXME*/, TRUE
);
9476 basic_istream_char_dtor(&cin
.obj
);
9477 basic_filebuf_char_dtor(&filebuf_stdin
);
9479 basic_ostream_char_dtor(&cout
.obj
);
9480 basic_filebuf_char_dtor(&filebuf_stdout
);
9482 basic_ostream_char_dtor(&cerr
.obj
);
9483 basic_filebuf_char_dtor(&filebuf_stderr
);
9485 basic_ostream_char_dtor(&clog
.obj
);
9486 basic_filebuf_char_dtor(&filebuf_log
);