00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 #ifndef __STLSOFT_DOCUMENTATION_SKIP_SECTION
00047 # define WINSTL_VER_H_WINSTL_MAJOR 2
00048 # define WINSTL_VER_H_WINSTL_MINOR 0
00049 # define WINSTL_VER_H_WINSTL_REVISION 1
00050 # define WINSTL_VER_H_WINSTL_EDIT 114
00051 #endif
00052
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00137
00140
00143
00146
00147 #define _WINSTL_VER_MAJOR 1
00148 #define _WINSTL_VER_MINOR 5
00149 #define _WINSTL_VER_REVISION 1
00150 #ifndef __STLSOFT_DOCUMENTATION_SKIP_SECTION
00151 # define _WINSTL_VER_1_0_1 0x00010001
00152 # define _WINSTL_VER_1_0_2 0x00010002
00153 # define _WINSTL_VER_1_1_1 0x00010101
00154 # define _WINSTL_VER_1_2_1 0x00010201
00155 # define _WINSTL_VER_1_3_1 0x00010301
00156 # define _WINSTL_VER_1_3_2 0x00010302
00157 # define _WINSTL_VER_1_3_3 0x00010303
00158 # define _WINSTL_VER_1_3_4 0x00010304
00159 # define _WINSTL_VER_1_3_5 0x00010305
00160 # define _WINSTL_VER_1_3_6 0x00010306
00161 # define _WINSTL_VER_1_3_7 0x00010307
00162 # define _WINSTL_VER_1_4_1 0x00010401
00163 # define _WINSTL_VER_1_5_1 0x00010501
00164 #endif
00165
00166 #define _WINSTL_VER _WINSTL_VER_1_5_1
00167
00168
00169
00170
00171
00172
00173 #ifndef __STLSOFT_DOCUMENTATION_SKIP_SECTION
00174 # ifndef STRICT
00175 # if defined(_WINSTL_STRICT) || \
00176 ( !defined(_WINSTL_NO_STRICT) && \
00177 !defined(NO_STRICT))
00178 # define STRICT 1
00179 # endif
00180 # endif
00181 #endif
00182
00183 #ifndef STLSOFT_INCL_H_STLSOFT
00184 # include "stlsoft.h"
00185 #endif
00186 #include <windows.h>
00187
00188
00189
00190
00191
00192 #if !defined(_STLSOFT_VER_1_5_1) || \
00193 _STLSOFT_VER < _STLSOFT_VER_1_5_1
00194 # error This version of the WinSTL libraries requires STLSoft version 1.5.1 or later
00195 #endif
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205 #if !defined(WIN32) && \
00206 !defined(_WIN32)
00207 # error The WinSTL libraries is currently only compatible with the Win32 API
00208 #endif
00209
00210
00211 #ifdef _MBCS
00212 # ifdef _WINSTL_STRICT
00213 # error The WinSTL libraries are not compatible with variable length character representation schemes such as MBCS
00214 # else
00215 # ifdef _STLSOFT_COMPILE_VERBOSE
00216 # pragma message("The WinSTL libraries are not compatible with variable length character representation schemes such as MBCS")
00217 # endif
00218 # endif
00219 #endif
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234 #if defined(__STLSOFT_COMPILER_IS_BORLAND)
00235
00236 # if __BORLANDC__ < 0x0550
00237 # error Versions of Borland C++ prior to 5.5 are not supported by the WinSTL libraries
00238 # endif
00239
00240 #elif defined(__STLSOFT_COMPILER_IS_COMO)
00241
00242 # if __COMO_VERSION__ < 4300
00243 # error Versions of Comeau C++ prior to 4.3 are not supported by the WinSTL libraries
00244 # endif
00245
00246 #elif defined(__STLSOFT_COMPILER_IS_DMC)
00247
00248 # if __DMC__ < 0x0826
00249 # error Versions of Digital Mars C/C++ prior to 8.26 are not supported by the WinSTL libraries
00250 # endif
00251
00252 #elif defined(__STLSOFT_COMPILER_IS_GCC)
00253
00254 # if __GNUC__ < 3
00255 # error Versions of GNU C/C++ prior to 3.0 are not supported by the WinSTL libraries
00256 # endif
00257
00258 #elif defined(__STLSOFT_COMPILER_IS_INTEL)
00259
00260 # if (__INTEL_COMPILER < 600)
00261 # error Versions of Intel C++ prior to 6.0 are not supported by the WinSTL libraries
00262 # endif
00263
00264 #elif defined(__STLSOFT_COMPILER_IS_MWERKS)
00265
00266 # if (__MWERKS__ & 0xFF00) < 0x2400
00267 # error Versions of Metrowerks CodeWarrior C++ prior to 7.0 are not supported by the WinSTL libraries
00268 # endif
00269
00270 #elif defined(__STLSOFT_COMPILER_IS_MSVC)
00271
00272 # if _MSC_VER < 1020
00273 # error Versions of Visual C++ prior to 4.2 are not supported by the WinSTL libraries
00274 # endif
00275
00276 #elif defined(__STLSOFT_COMPILER_IS_VECTORC)
00277
00278
00279 #elif defined(__STLSOFT_COMPILER_IS_WATCOM)
00280
00281 # if (__WATCOMC__ < 1200)
00282 # error Versions of Watcom C/C++ prior to 12.0 are not supported by the WinSTL libraries
00283 # endif
00284
00285 #else
00286
00287 # ifdef _STLSOFT_FORCE_ANY_COMPILER
00288 # define _WINSTL_COMPILER_IS_UNKNOWN
00289 # ifdef _STLSOFT_COMPILE_VERBOSE
00290 # pragma message("Compiler is unknown to WinSTL")
00291 # endif
00292 # else
00293 # error Currently only Borland C++, Comeau, Digital Mars C/C++, GNU C++, Intel C/C++, Metrowerks CodeWarrior, Visual C++ and Watcom compilers are supported by the WinSTL libraries
00294 # endif
00295 #endif
00296
00297
00298
00299
00300
00301
00302
00306 #define winstl_assert(expr) stlsoft_assert(expr)
00307
00312 #define winstl_message_assert(msg, expr) stlsoft_message_assert(msg, expr)
00313
00317 #define winstl_static_assert(expr) stlsoft_static_assert(expr)
00318
00319
00320
00321
00322
00323
00324
00325
00326
00327
00328
00329
00330
00331
00332
00333
00334
00335
00336
00337
00338
00339
00340
00341
00342
00343
00344
00345
00346
00347
00348
00349
00350
00351
00352
00353
00354
00355
00356
00357
00358
00359
00360 #ifdef _STLSOFT_NO_NAMESPACES
00361 # define _WINSTL_NO_NAMESPACES
00362 #endif
00363
00364
00365 #ifdef _WINSTL_NO_NAMESPACES
00366 # define _WINSTL_NO_NAMESPACE
00367 #endif
00368
00369 #ifndef _WINSTL_NO_NAMESPACE
00370 # if defined(_STLSOFT_NO_NAMESPACE) || \
00371 defined(__STLSOFT_DOCUMENTATION_SKIP_SECTION)
00372
00375 namespace winstl
00376 {
00377 # else
00378
00379
00380 namespace stlsoft
00381 {
00382
00383 namespace winstl_project
00384 {
00385
00386 # endif
00387 #else
00388 stlsoft_ns_using(move_lhs_from_rhs)
00389 #endif
00390
00393
00396
00397 #ifndef _WINSTL_NO_NAMESPACE
00398 # define winstl_ns_qual(x) ::winstl::x
00399 # define winstl_ns_using(x) using ::winstl::x;
00400 #else
00401 # define winstl_ns_qual(x) x
00402 # define winstl_ns_using(x)
00403 #endif
00404
00407
00410
00411 #ifdef __STLSOFT_CF_std_NAMESPACE
00412 # define winstl_ns_qual_std(x) ::std::x
00413 # define winstl_ns_using_std(x) using ::std::x;
00414 #else
00415 # define winstl_ns_qual_std(x) x
00416 # define winstl_ns_using_std(x)
00417 #endif
00418
00419
00420
00421
00422
00423
00424
00425
00426 typedef stlsoft_ns_qual(ss_char_a_t) ws_char_a_t;
00427 typedef stlsoft_ns_qual(ss_char_w_t) ws_char_w_t;
00428 typedef stlsoft_ns_qual(ss_sint8_t) ws_sint8_t;
00429 typedef stlsoft_ns_qual(ss_uint8_t) ws_uint8_t;
00430 typedef stlsoft_ns_qual(ss_int16_t) ws_int16_t;
00431 typedef stlsoft_ns_qual(ss_sint16_t) ws_sint16_t;
00432 typedef stlsoft_ns_qual(ss_uint16_t) ws_uint16_t;
00433 typedef stlsoft_ns_qual(ss_int32_t) ws_int32_t;
00434 typedef stlsoft_ns_qual(ss_sint32_t) ws_sint32_t;
00435 typedef stlsoft_ns_qual(ss_uint32_t) ws_uint32_t;
00436 #ifdef STLSOFT_CF_64BIT_INT_SUPPORT
00437 typedef stlsoft_ns_qual(ss_int64_t) ws_int64_t;
00438 typedef stlsoft_ns_qual(ss_sint64_t) ws_sint64_t;
00439 typedef stlsoft_ns_qual(ss_uint64_t) ws_uint64_t;
00440 #endif
00441 typedef stlsoft_ns_qual(ss_int_t) ws_int_t;
00442 typedef stlsoft_ns_qual(ss_sint_t) ws_sint_t;
00443 typedef stlsoft_ns_qual(ss_uint_t) ws_uint_t;
00444 typedef stlsoft_ns_qual(ss_long_t) ws_long_t;
00445 typedef stlsoft_ns_qual(ss_byte_t) ws_byte_t;
00446 typedef stlsoft_ns_qual(ss_bool_t) ws_bool_t;
00447 typedef DWORD ws_dword_t;
00448 typedef stlsoft_ns_qual(ss_size_t) ws_size_t;
00449 typedef stlsoft_ns_qual(ss_ptrdiff_t) ws_ptrdiff_t;
00450 typedef stlsoft_ns_qual(ss_streampos_t) ws_streampos_t;
00451 typedef stlsoft_ns_qual(ss_streamoff_t) ws_streamoff_t;
00452
00453 #ifndef _WINSTL_NO_NAMESPACE
00454 typedef ws_char_a_t char_a_t;
00455 typedef ws_char_w_t char_w_t;
00456
00457 typedef ws_sint8_t sint8_t;
00458 typedef ws_uint8_t uint8_t;
00459 typedef ws_int16_t int16_t;
00460 typedef ws_sint16_t sint16_t;
00461 typedef ws_uint16_t uint16_t;
00462 typedef ws_int32_t int32_t;
00463 typedef ws_sint32_t sint32_t;
00464 typedef ws_uint32_t uint32_t;
00465 # ifdef STLSOFT_CF_64BIT_INT_SUPPORT
00466 typedef ws_int64_t int64_t;
00467 typedef ws_sint64_t sint64_t;
00468 typedef ws_uint64_t uint64_t;
00469 # endif
00470
00471 typedef ws_int_t int_t;
00472 typedef ws_sint_t sint_t;
00473 typedef ws_uint_t uint_t;
00474 typedef ws_long_t long_t;
00475 typedef ws_byte_t byte_t;
00476 typedef ws_bool_t bool_t;
00477 typedef ws_dword_t dword_t;
00478 # if !defined(__STLSOFT_COMPILER_IS_DMC)
00479 typedef ws_size_t size_t;
00480 typedef ws_ptrdiff_t ptrdiff_t;
00481 typedef ws_streampos_t streampos_t;
00482 typedef ws_streamoff_t streamoff_t;
00483 # endif
00484 #endif
00485
00486 #ifndef __STLSOFT_DOCUMENTATION_SKIP_SECTION
00487
00488
00489
00490
00491
00492
00493
00494
00495 #define ws_true_v ss_true_v
00496 #define ws_false_v ss_false_v
00497
00498 #endif
00499
00500
00501
00502
00503 #ifndef __STLSOFT_DOCUMENTATION_SKIP_SECTION
00504
00505 # define winstl_throw_0() stlsoft_throw_0()
00506 # define winstl_throw_1(x1) stlsoft_throw_1(x1)
00507 # define winstl_throw_2(x1, x2) stlsoft_throw_2(x1, x2)
00508 # define winstl_throw_3(x1, x2, x3) stlsoft_throw_3(x1, x2, x3)
00509 # define winstl_throw_4(x1, x2, x3, x4) stlsoft_throw_4(x1, x2, x3, x4)
00510 # define winstl_throw_5(x1, x2, x3, x4, x5) stlsoft_throw_5(x1, x2, x3, x4, x5)
00511 # define winstl_throw_6(x1, x2, x3, x4, x5, x6) stlsoft_throw_6(x1, x2, x3, x4, x5, x6)
00512 # define winstl_throw_7(x1, x2, x3, x4, x5, x6, x7) stlsoft_throw_7(x1, x2, x3, x4, x5, x6, x7)
00513 # define winstl_throw_8(x1, x2, x3, x4, x5, x6, x7, x8) stlsoft_throw_8(x1, x2, x3, x4, x5, x6, x7, x8)
00514 #endif
00515
00517 #define winstl_num_elements(ar) stlsoft_num_elements(ar)
00518
00520 #define winstl_destroy_instance(t, _type, p) stlsoft_destroy_instance(t, _type, p)
00521
00523 #define winstl_gen_opaque(_htype) stlsoft_gen_opaque(_htype)
00524
00525
00526
00527
00528
00529
00530
00531
00532
00533
00534
00535
00536 #endif
00537
00538
00539
00540
00541
00542