STLSoft - ... Robust, Lightweight, Cross-platform, Template Software ... ATLSTL - Template Software for the Active Template Library COMSTL - The Standard Template Library meets the Component Object Model .netSTL - Standard Template Library meets the Microsoft.NET Common Language Runtime InetSTL - The Standard Template Library meets WinInet MFCSTL - Template Software for the Microsoft Foundation Classes UNIXSTL - Template Software for the UNIX Operating System WinSTL - where the Standard Template Library meets the Win32 API

Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

winstl.h

Go to the documentation of this file.
00001 /* 
00002  * File:        winstl.h
00003  *
00004  * Purpose:     Root header for the WinSTL libraries. Performs various compiler
00005  *              and platform discriminations, and definitions of types.
00006  *
00007  * Created:     15th January 2002
00008  * Updated:     11th September 2004
00009  *
00010  * Home:        http://stlsoft.org/
00011  *
00012  * Copyright (c) 2002-2004, Matthew Wilson and Synesis Software
00013  * All rights reserved.
00014  *
00015  * Redistribution and use in source and binary forms, with or without
00016  * modification, are permitted provided that the following conditions are met:
00017  *
00018  * - Redistributions of source code must retain the above copyright notice, this
00019  *   list of conditions and the following disclaimer.
00020  * - Redistributions in binary form must reproduce the above copyright notice,
00021  *   this list of conditions and the following disclaimer in the documentation
00022  *   and/or other materials provided with the distribution.
00023  * - Neither the name(s) of Matthew Wilson and Synesis Software nor the names of
00024  *   any contributors may be used to endorse or promote products derived from
00025  *   this software without specific prior written permission.
00026  *
00027  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00028  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00029  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00030  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
00031  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00032  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00033  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00034  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00035  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00036  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00037  * POSSIBILITY OF SUCH DAMAGE.
00038  *
00039  * 
00040 
00041 
00042 #ifndef WINSTL_INCL_H_WINSTL
00043 #define WINSTL_INCL_H_WINSTL
00044 
00045 /* File version */
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 /* !__STLSOFT_DOCUMENTATION_SKIP_SECTION */
00052 
00101 /* 
00102  * WinSTL version
00103  *
00104  * The libraries version information is comprised of major, minor and revision
00105  * components.
00106  *
00107  * The major version is denoted by the _WINSTL_VER_MAJOR preprocessor symbol.
00108  * A changes to the major version component implies that a dramatic change has
00109  * occurred in the libraries, such that considerable changes to source dependent
00110  * on previous versions would need to be effected.
00111  *
00112  * The minor version is denoted by the _WINSTL_VER_MINOR preprocessor symbol.
00113  * Changes to the minor version component imply that a significant change has
00114  * occurred to the libraries, either in the addition of new functionality or in
00115  * the destructive change to one or more components such that recomplilation and
00116  * code change may be necessitated.
00117  *
00118  * The revision version is denoted by the _WINSTL_VER_REVISIO preprocessor
00119  * symbol. Changes to the revision version component imply that a bug has been
00120  * fixed. Dependent code should be recompiled in order to pick up the changes.
00121  *
00122  * In addition to the individual version symbols - _WINSTL_VER_MAJOR,
00123  * _WINSTL_VER_MINOR and _WINSTL_VER_REVISION - a composite symbol _WINSTL_VER
00124  * is defined, where the upper 8 bits are 0, bits 16-23 represent the major
00125  * component,  bits 8-15 represent the minor component, and bits 0-7 represent
00126  * the revision component.
00127  *
00128  * Each release of the libraries will bear a different version, and that version
00129  * will also have its own symbol: Version 1.0.1 specifies _WINSTL_VER_1_0_1.
00130  *
00131  * Thus the symbol _WINSTL_VER may be compared meaningfully with a specific
00132  * version symbol, e.g. #if _WINSTL_VER >= _WINSTL_VER_1_0_1
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 /* !__STLSOFT_DOCUMENTATION_SKIP_SECTION */
00165 
00166 #define _WINSTL_VER             _WINSTL_VER_1_5_1
00167 
00168 /* 
00169  * Includes
00170  */
00171 
00172 /* Strict */
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 /* !NO_STRICT && !_WINSTL_NO_STRICT */
00180 # endif /* STRICT */
00181 #endif /* !__STLSOFT_DOCUMENTATION_SKIP_SECTION */
00182 
00183 #ifndef STLSOFT_INCL_H_STLSOFT
00184 # include "stlsoft.h"   // STLSoft root header
00185 #endif /* !STLSOFT_INCL_H_STLSOFT */
00186 #include <windows.h>    // Windows base header
00187 
00188 /* 
00189  * STLSoft version compatibility
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 /* _STLSOFT_VER < _STLSOFT_VER_1_5_1 */
00196 
00197 /* 
00198  * Sanity checks
00199  *
00200  * Win32    -   must be compiled in context of Win32 API
00201  * MBCS     -   none of the libraries' code is written to support MBCS
00202  */
00203 
00204 /* Must be Win32 api. */
00205 #if !defined(WIN32) && \
00206     !defined(_WIN32)
00207 # error The WinSTL libraries is currently only compatible with the Win32 API
00208 #endif /* !WIN32 && !_WIN32 */
00209 
00210 /* Should not be MBCS. */
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 /* _STLSOFT_COMPILE_VERBOSE */
00218 # endif /* _WINSTL_STRICT */
00219 #endif /* _MBCS */
00220 
00221 /* 
00222  * Compiler compatibility
00223  *
00224  * Currently the only compilers supported by the WinSTL libraries are
00225  *
00226  * Borland C++ 5.5, 5.51, 5.6
00227  * Digital Mars C/C++ 8.26 - 8.32
00228  * Metrowerks 2.4 & 3.0 (CodeWarrior 7.0 & 8.0)
00229  * Intel C/C++ 6.0 & 7.0
00230  * Visual C++ 4.2, 5.0, 6.0, 7.0
00231  * Watcom C/C++ 11.0
00232  */
00233 
00234 #if defined(__STLSOFT_COMPILER_IS_BORLAND)
00235 /* Borland C++ */
00236 # if __BORLANDC__ < 0x0550
00237 #  error Versions of Borland C++ prior to 5.5 are not supported by the WinSTL libraries
00238 # endif /* __BORLANDC__ */
00239 
00240 #elif defined(__STLSOFT_COMPILER_IS_COMO)
00241 /* Comeau C++ */
00242 # if __COMO_VERSION__ < 4300
00243 #  error Versions of Comeau C++ prior to 4.3 are not supported by the WinSTL libraries
00244 # endif /* __COMO_VERSION__ */
00245 
00246 #elif defined(__STLSOFT_COMPILER_IS_DMC)
00247 /* Digital Mars C/C++ */
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 /* __DMC__ */
00251 
00252 #elif defined(__STLSOFT_COMPILER_IS_GCC)
00253 /* GNU C/C++ */
00254 # if __GNUC__ < 3
00255 #  error Versions of GNU C/C++ prior to 3.0 are not supported by the WinSTL libraries
00256 # endif /* __GNUC__ */
00257 
00258 #elif defined(__STLSOFT_COMPILER_IS_INTEL)
00259 /* Intel C++ */
00260 # if (__INTEL_COMPILER < 600)
00261 #  error Versions of Intel C++ prior to 6.0 are not supported by the WinSTL libraries
00262 # endif /* __INTEL_COMPILER */
00263 
00264 #elif defined(__STLSOFT_COMPILER_IS_MWERKS)
00265 /* Metrowerks C++ */
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 /* __MWERKS__ */
00269 
00270 #elif defined(__STLSOFT_COMPILER_IS_MSVC)
00271 /* Visual C++ */
00272 # if _MSC_VER < 1020
00273 #  error Versions of Visual C++ prior to 4.2 are not supported by the WinSTL libraries
00274 # endif /* _MSC_VER */
00275 
00276 #elif defined(__STLSOFT_COMPILER_IS_VECTORC)
00277 /* VectorC C/C++ */
00278 
00279 #elif defined(__STLSOFT_COMPILER_IS_WATCOM)
00280 /* Watcom C/C++ */
00281 # if (__WATCOMC__ < 1200)
00282 #  error Versions of Watcom C/C++ prior to 12.0 are not supported by the WinSTL libraries
00283 # endif /* __WATCOMC__ */
00284 
00285 #else
00286 /* No recognised compiler */
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 /* _STLSOFT_COMPILE_VERBOSE */
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 /* _STLSOFT_FORCE_ANY_COMPILER */
00295 #endif /* compiler */
00296 
00297 /* 
00298  * Debugging
00299  *
00300  * The macro winstl_assert provides standard debug-mode assert functionality.
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  * Namespace
00321  *
00322  * The WinSTL components are contained within the winstl namespace. This is
00323  * usually an alias for stlsoft::winstl_project,
00324  *
00325  * When compilers support namespaces they are defined by default. They can be
00326  * undefined using a cascasing system, as follows:
00327  *
00328  * If _STLSOFT_NO_NAMESPACES is defined, then _WINSTL_NO_NAMESPACES is defined.
00329  *
00330  * If _WINSTL_NO_NAMESPACES is defined, then _WINSTL_NO_NAMESPACE is defined.
00331  *
00332  * If _WINSTL_NO_NAMESPACE is defined, then the WinSTL constructs are defined
00333  * in the global scope.
00334  *
00335  * If _STLSOFT_NO_NAMESPACES, _WINSTL_NO_NAMESPACES and _WINSTL_NO_NAMESPACE are
00336  * all undefined but the symbol _STLSOFT_NO_NAMESPACE is defined (whence the
00337  * namespace stlsoft does not exist), then the WinSTL constructs are defined
00338  * within the winstl namespace. The definition matrix is as follows:
00339  *
00340  * _STLSOFT_NO_NAMESPACE    _WINSTL_NO_NAMESPACE    winstl definition
00341  * ---------------------    --------------------    -----------------
00342  *  not defined              not defined             = stlsoft::winstl_project
00343  *  not defined              defined                 not defined
00344  *  defined                  not defined             winstl
00345  *  defined                  defined                 not defined
00346  *
00347  *
00348  *
00349  * The macro winstl_ns_qual() macro can be used to refer to elements in the
00350  * WinSTL libraries irrespective of whether they are in the
00351  * stlsoft::winstl_project (or winstl) namespace or in the global namespace.
00352  *
00353  * Furthermore, some compilers do not support the standard library in the std
00354  * namespace, so the winstl_ns_qual_std() macro can be used to refer to elements
00355  * in the WinSTL libraries irrespective of whether they are in the std namespace
00356  * or in the global namespace.
00357  */
00358 
00359 /* No STLSoft namespaces means no WinSTL namespaces */
00360 #ifdef _STLSOFT_NO_NAMESPACES
00361 # define _WINSTL_NO_NAMESPACES
00362 #endif /* _STLSOFT_NO_NAMESPACES */
00363 
00364 /* No WinSTL namespaces means no winstl namespace */
00365 #ifdef _WINSTL_NO_NAMESPACES
00366 # define _WINSTL_NO_NAMESPACE
00367 #endif /* _WINSTL_NO_NAMESPACES */
00368 
00369 #ifndef _WINSTL_NO_NAMESPACE
00370 # if defined(_STLSOFT_NO_NAMESPACE) || \
00371      defined(__STLSOFT_DOCUMENTATION_SKIP_SECTION)
00372 /* There is no stlsoft namespace, so must define ::winstl */
00375 namespace winstl
00376 {
00377 # else
00378 /* Define stlsoft::winstl_project */
00379 
00380 namespace stlsoft
00381 {
00382 
00383 namespace winstl_project
00384 {
00385 
00386 # endif /* _STLSOFT_NO_NAMESPACE */
00387 #else
00388 stlsoft_ns_using(move_lhs_from_rhs)
00389 #endif /* !_WINSTL_NO_NAMESPACE */
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 /* !_WINSTL_NO_NAMESPACE */
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 /* !__STLSOFT_CF_std_NAMESPACE */
00418 
00419 /* 
00420  * Typedefs
00421  *
00422  * The WinSTL uses a number of typedefs to aid in compiler-independence in the
00423  * libraries' main code.
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 /* STLSOFT_CF_64BIT_INT_SUPPORT */
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 //typedef ws_int8_t           int8_t;             //!< 8-bit integer
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 /* STLSOFT_CF_64BIT_INT_SUPPORT */
00470 //typedef ws_short_t          short_t;            //!< short integer
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 /* compiler */
00484 #endif /* !_WINSTL_NO_NAMESPACE */
00485 
00486 #ifndef __STLSOFT_DOCUMENTATION_SKIP_SECTION
00487 /* 
00488  * Values
00489  *
00490  * Since the boolean type may not be supported natively on all compilers, the
00491  * values of true and false may also not be provided. Hence the values of
00492  * ws_true_v and ws_false_v are defined, and are used in all code.
00493  */
00494 
00495 #define ws_true_v       ss_true_v
00496 #define ws_false_v      ss_false_v
00497 
00498 #endif /* !__STLSOFT_DOCUMENTATION_SKIP_SECTION */
00499 /* 
00500  * Code modification macros
00501  */
00502 
00503 #ifndef __STLSOFT_DOCUMENTATION_SKIP_SECTION
00504 /* Exception signatures. */
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 /* !__STLSOFT_DOCUMENTATION_SKIP_SECTION */
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 #ifndef _WINSTL_NO_NAMESPACE
00528 # if defined(_STLSOFT_NO_NAMESPACE) || \
00529      defined(__STLSOFT_DOCUMENTATION_SKIP_SECTION)
00530 } // namespace winstl
00531 # else
00532 } // namespace winstl_project
00533 } // namespace stlsoft
00534 namespace winstl = ::stlsoft::winstl_project;
00535 # endif /* _STLSOFT_NO_NAMESPACE */
00536 #endif /* !_WINSTL_NO_NAMESPACE */
00537 
00538 /* 
00539 
00540 #endif /* WINSTL_INCL_H_WINSTL */
00541 
00542 /* 

STLSoft Libraries documentation © Synesis Software Pty Ltd, 2001-2004