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 #ifndef WINSTL_INCL_WINSTL_H_WINSTL
00043 #define WINSTL_INCL_WINSTL_H_WINSTL
00044 #define WINSTL_INCL_H_WINSTL    
00046 
00047 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00048 # define WINSTL_VER_WINSTL_H_WINSTL_MAJOR       3
00049 # define WINSTL_VER_WINSTL_H_WINSTL_MINOR       11
00050 # define WINSTL_VER_WINSTL_H_WINSTL_REVISION    1
00051 # define WINSTL_VER_WINSTL_H_WINSTL_EDIT        180
00052 #endif 
00053 
00059 
00060 
00061 
00062 
00063 
00064 
00065 
00066 
00067 
00068 
00069 
00070 
00071 
00072 
00073 
00074 
00075 
00076 
00077 
00078 
00079 
00080 
00081 
00082 
00083 
00084 
00085 
00086 
00087 
00088 
00089 
00090 
00091 
00092 
00109 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00110 # define _WINSTL_VER_1_0_1      0x00010001  
00111 # define _WINSTL_VER_1_0_2      0x00010002  
00112 # define _WINSTL_VER_1_1_1      0x00010101  
00113 # define _WINSTL_VER_1_2_1      0x00010201  
00114 # define _WINSTL_VER_1_3_1      0x00010301  
00115 # define _WINSTL_VER_1_3_2      0x00010302  
00116 # define _WINSTL_VER_1_3_3      0x00010303  
00117 # define _WINSTL_VER_1_3_4      0x00010304  
00118 # define _WINSTL_VER_1_3_5      0x00010305  
00119 # define _WINSTL_VER_1_3_6      0x00010306  
00120 # define _WINSTL_VER_1_3_7      0x00010307  
00121 # define _WINSTL_VER_1_4_1      0x00010401  
00122 # define _WINSTL_VER_1_5_1      0x00010501  
00123 # define _WINSTL_VER_1_5_2      0x00010502  
00124 # define _WINSTL_VER_1_6_1      0x00010601  
00125 # define _WINSTL_VER_1_6_2      0x00010602  
00126 # define _WINSTL_VER_1_6_3      0x00010603  
00127 # define _WINSTL_VER_1_6_4      0x00010604  
00128 # define _WINSTL_VER_1_6_5      0x00010605  
00129 # define _WINSTL_VER_1_7_1      0x00010701  
00130 # define _WINSTL_VER_1_8_1      0x00010801  
00131 # define _WINSTL_VER_1_8_2      0x00010802  
00132 # define _WINSTL_VER_1_9_1      0x00010901  
00133 # define _WINSTL_VER_1_9_2      0x00010902  
00134 # define _WINSTL_VER_1_9_3      0x00010903  
00135 # define _WINSTL_VER_1_9_4      0x010904ff  
00136 # define _WINSTL_VER_1_9_5      0x010905ff  
00137 # define _WINSTL_VER_1_9_6      0x010906ff  
00138 # define _WINSTL_VER_1_10_1     0x010a01ff  
00139 # define _WINSTL_VER_1_10_2     0x010a02ff  
00140 # define _WINSTL_VER_1_10_3     0x010a03ff  
00141 # define _WINSTL_VER_1_10_4     0x010a04ff  
00142 # define _WINSTL_VER_1_10_5     0x010a05ff  
00143 # define _WINSTL_VER_1_10_6     0x010a06ff  
00144 # define _WINSTL_VER_1_10_7     0x010a07ff  
00145 # define _WINSTL_VER_1_11_1     0x010b01ff  
00146 #endif 
00147 
00148 #define _WINSTL_VER_MAJOR       1
00149 #define _WINSTL_VER_MINOR       11
00150 #define _WINSTL_VER_REVISION    1
00151 #define _WINSTL_VER             _WINSTL_VER_1_11_1
00152 
00153 
00154 
00155 
00156 
00157 
00158 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00159 # ifndef STRICT
00160 #  if defined(_WINSTL_STRICT) || \
00161       (   !defined(_WINSTL_NO_STRICT) && \
00162           !defined(NO_STRICT))
00163 #   define STRICT 1
00164 #  endif 
00165 # endif 
00166 #endif 
00167 
00168 #ifndef STLSOFT_INCL_STLSOFT_H_STLSOFT
00169 # include <stlsoft/stlsoft.h>
00170 #endif 
00171 #if defined(STLSOFT_COMPILER_IS_MSVC) && \
00172     _MSC_VER == 1100
00173 # include <wtypes.h>    
00174 #endif 
00175 
00176 #if defined(STLSOFT_COMPILER_IS_GCC) && \
00177     defined(_WIN32) && \
00178     (   defined(WIN32) || \
00179         defined(WIN64))
00180 
00181 # ifndef STLSOFT_INCL_H_BASETYPS
00182 #  define STLSOFT_INCL_H_BASETYPS
00183 #  include <basetyps.h>
00184 # endif 
00185 # ifndef STLSOFT_INCL_H_WTYPES
00186 #  define STLSOFT_INCL_H_WTYPES
00187 #  include <wtypes.h>
00188 # endif 
00189 # ifndef STLSOFT_INCL_H_OLEAUTO
00190 #  define STLSOFT_INCL_H_OLEAUTO
00191 #  include <oleauto.h>
00192 # endif 
00193 # ifndef STLSOFT_INCL_H_OAIDL
00194 #  define STLSOFT_INCL_H_OAIDL
00195 #  include <oaidl.h>
00196 # endif 
00197 #endif 
00198 
00199 #ifndef STLSOFT_INCL_H_WINDOWS
00200 # define STLSOFT_INCL_H_WINDOWS
00201 # include <windows.h>   
00202 #endif 
00203 
00204 
00205 #if defined(STLSOFT_COMPILER_IS_INTEL) && \
00206     defined(__cplusplus)
00207 # ifndef STLSOFT_INCL_STLSOFT_CONVERSION_HPP_UNION_CAST
00208 #  include <stlsoft/conversion/union_cast.hpp>
00209 # endif 
00210 #endif 
00211 
00212 #ifndef STLSOFT_INCL_H_STDLIB
00213 # define STLSOFT_INCL_H_STDLIB
00214 # include <stdlib.h> 
00215 #endif 
00216 
00217 
00218 
00219 
00220 
00221 #if !defined(_STLSOFT_VER) || \
00222     _STLSOFT_VER < 0x01095dff
00223 # error This version of the WinSTL libraries requires STLSoft version 1.9.93, or later
00224 #endif 
00225 
00226 
00227 
00228 
00229 
00230 #ifdef WINSTL_OS_IS_WIN32
00231 # undef WINSTL_OS_IS_WIN32
00232 #endif 
00233 
00234 #ifdef WINSTL_OS_IS_WIN64
00235 # undef WINSTL_OS_IS_WIN64
00236 #endif 
00237 
00238 #if defined(WIN64)
00239 # define WINSTL_OS_IS_WIN64
00240 #elif defined(WIN32)
00241 # define WINSTL_OS_IS_WIN32
00242 #else 
00243 # error WinSTL is only compatible with Win32 and Win64
00244 #endif 
00245 
00246 
00247 
00248 
00249 
00250 #ifdef WINSTL_ARCH_IS_X86
00251 # undef WINSTL_ARCH_IS_X86
00252 #endif 
00253 
00254 #ifdef WINSTL_ARCH_IS_IA64
00255 # undef WINSTL_ARCH_IS_IA64
00256 #endif 
00257 
00258 #ifdef WINSTL_ARCH_IS_X64
00259 # undef WINSTL_ARCH_IS_X64
00260 #endif 
00261 
00262 #if defined(_M_IA64)
00263 # define WINSTL_ARCH_IS_IA64
00264 #elif defined(_M_X64) || \
00265       defined(_M_AMD64)
00266 # define WINSTL_ARCH_IS_X64
00267 #elif defined(_M_IX86)
00268 # define WINSTL_ARCH_IS_X86
00269 #else 
00270 # error WinSTL is only compatible with x86, IA64 and x64 architectures
00271 #endif 
00272 
00273 
00274 
00275 
00276 
00277 #ifdef __cplusplus
00278 # undef     INVALID_HANDLE_VALUE
00279 
00283 # if defined(STLSOFT_COMPILER_IS_INTEL)
00284 #  define   INVALID_HANDLE_VALUE        stlsoft_ns_qual(union_cast)<HANDLE>(-1)
00285 # else 
00286 #  define   INVALID_HANDLE_VALUE        reinterpret_cast<HANDLE>(-1)
00287 # endif 
00288 
00293 # undef     MAKEINTRESOURCEA
00294 # if defined(_WIN64) || \
00295      defined(_Wp64)
00296 #  define   MAKEINTRESOURCEA(i)         reinterpret_cast<LPSTR>(static_cast<ULONG_PTR>(static_cast<WORD>(i)))
00297 # else 
00298 #  define   MAKEINTRESOURCEA(i)         reinterpret_cast<LPSTR>(static_cast<ULONG>(static_cast<WORD>(i)))
00299 # endif 
00300 
00305 # undef     MAKEINTRESOURCEW
00306 # if defined(_WIN64) || \
00307      defined(_Wp64)
00308 #  define   MAKEINTRESOURCEW(i)         reinterpret_cast<LPWSTR>(static_cast<ULONG_PTR>(static_cast<WORD>(i)))
00309 # else 
00310 #  define   MAKEINTRESOURCEW(i)         reinterpret_cast<LPWSTR>(static_cast<ULONG>(static_cast<WORD>(i)))
00311 # endif 
00312 
00317 # undef     MAKEINTRESOURCE
00318 # if defined(_WIN64) || \
00319      defined(_Wp64)
00320 #  define   MAKEINTRESOURCE(i)          reinterpret_cast<LPTSTR>(static_cast<ULONG_PTR>(static_cast<WORD>(i)))
00321 # else 
00322 #  define   MAKEINTRESOURCE(i)          reinterpret_cast<LPTSTR>(static_cast<ULONG>(static_cast<WORD>(i)))
00323 # endif 
00324 
00329 # undef     MAKELANGID
00330 # define    MAKELANGID(p, s)            ((static_cast<DWORD>(static_cast<WORD>(s)) << 10) | static_cast<WORD>(p))
00331 
00332 
00333 
00334 
00335 
00340 # undef     INVALID_FILE_SIZE
00341 # define    INVALID_FILE_SIZE           static_cast<DWORD>(0xFFFFFFFF)
00342 
00343 #endif 
00344 
00345 
00346 
00347 
00348 
00349 
00350 
00351 
00352 #if !defined(WIN32) && \
00353     !defined(_WIN32)
00354 # error The WinSTL libraries is currently only compatible with the Win32 API
00355 #endif 
00356 
00357 
00358 
00359 
00360 
00361 
00362 
00363 
00364 
00365 
00366 
00367 
00368 
00369 
00370 #if defined(STLSOFT_COMPILER_IS_BORLAND)
00371 
00372 # if __BORLANDC__ < 0x0550
00373 #  error Versions of Borland C++ prior to 5.5 are not supported by the WinSTL libraries
00374 # endif 
00375 
00376 #elif defined(STLSOFT_COMPILER_IS_COMO)
00377 
00378 # if __COMO_VERSION__ < 4300
00379 #  error Versions of Comeau C++ prior to 4.3 are not supported by the WinSTL libraries
00380 # endif 
00381 
00382 #elif defined(STLSOFT_COMPILER_IS_DMC)
00383 
00384 # if __DMC__ < 0x0826
00385 #  error Versions of Digital Mars C/C++ prior to 8.26 are not supported by the WinSTL libraries
00386 # endif 
00387 
00388 #elif defined(STLSOFT_COMPILER_IS_GCC)
00389 
00390 # if __GNUC__ < 3
00391 #  error Versions of GNU C/C++ prior to 3.0 are not supported by the WinSTL libraries
00392 # endif 
00393 
00394 #elif defined(STLSOFT_COMPILER_IS_INTEL)
00395 
00396 # if (__INTEL_COMPILER < 600)
00397 #  error Versions of Intel C++ prior to 6.0 are not supported by the WinSTL libraries
00398 # endif 
00399 
00400 #elif defined(STLSOFT_COMPILER_IS_MWERKS)
00401 
00402 # if (__MWERKS__ & 0xFF00) < 0x2400
00403 #  error Versions of Metrowerks CodeWarrior C++ prior to 7.0 are not supported by the WinSTL libraries
00404 # endif 
00405 
00406 #elif defined(STLSOFT_COMPILER_IS_MSVC)
00407 
00408 # if _MSC_VER < 1020
00409 #  error Versions of Visual C++ prior to 4.2 are not supported by the WinSTL libraries
00410 # endif 
00411 
00412 #elif defined(STLSOFT_COMPILER_IS_VECTORC)
00413 
00414 
00415 #elif defined(STLSOFT_COMPILER_IS_WATCOM)
00416 
00417 # if (__WATCOMC__ < 1200)
00418 #  error Versions of Watcom C/C++ prior to 12.0 are not supported by the WinSTL libraries
00419 # endif 
00420 
00421 #else
00422 
00423 # ifdef _STLSOFT_FORCE_ANY_COMPILER
00424 #  define _WINSTL_COMPILER_IS_UNKNOWN
00425 #  ifdef _STLSOFT_COMPILE_VERBOSE
00426 #   pragma message("Compiler is unknown to WinSTL")
00427 #  endif 
00428 # else
00429 #  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
00430 # endif 
00431 #endif 
00432 
00433 
00434 
00435 
00436 
00437 #ifdef WINSTL_UDATE_DEFINED
00438 # undef WINSTL_UDATE_DEFINED
00439 #endif 
00440 
00441 #if defined(WINSTL_FORCE_UDATE) || \
00442     defined(STLSOFT_COMPILER_IS_BORLAND) || \
00443     (   defined(STLSOFT_COMPILER_IS_COMO) && \
00444         defined(_MSC_VER)) || \
00445     defined(STLSOFT_COMPILER_IS_DMC) || \
00446     defined(STLSOFT_COMPILER_IS_INTEL) || \
00447     defined(STLSOFT_COMPILER_IS_MWERKS) || \
00448     defined(STLSOFT_COMPILER_IS_MSVC)
00449 # define WINSTL_UDATE_DEFINED
00450 #endif 
00451 
00452 
00453 
00454 
00455 
00456 
00457 
00467 #ifndef WINSTL_ASSERT
00468 # define WINSTL_ASSERT(expr)                STLSOFT_ASSERT(expr)
00469 #endif 
00470 
00476 #define WINSTL_MESSAGE_ASSERT(msg, expr)    STLSOFT_MESSAGE_ASSERT(msg, expr)
00477 
00486 #define WINSTL_STATIC_ASSERT(expr)          STLSOFT_STATIC_ASSERT(expr)
00487 
00488 
00489 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00490 # define winstl_assert(expr)                WINSTL_ASSERT(expr)
00491 # define winstl_message_assert(msg, expr)   WINSTL_MESSAGE_ASSERT(msg, expr)
00492 # define winstl_static_assert(expr)         WINSTL_STATIC_ASSERT(expr)
00493 #endif 
00494 
00495 
00496 
00497 
00498 
00499 
00500 
00501 
00502 
00503 
00504 
00505 
00506 
00507 
00508 
00509 
00510 
00511 
00512 
00513 
00514 
00515 
00516 
00517 
00518 
00519 
00520 
00521 
00522 
00523 
00524 
00525 
00526 
00527 
00528 
00529 
00530 
00531 
00532 
00533 
00534 
00535 
00536 #ifdef _STLSOFT_NO_NAMESPACES
00537 # define _WINSTL_NO_NAMESPACES
00538 #endif 
00539 
00540 
00541 #ifdef _WINSTL_NO_NAMESPACES
00542 # define _WINSTL_NO_NAMESPACE
00543 #endif 
00544 
00545 #ifndef _WINSTL_NO_NAMESPACE
00546 # if defined(_STLSOFT_NO_NAMESPACE) || \
00547      defined(STLSOFT_DOCUMENTATION_SKIP_SECTION)
00548 
00579 namespace winstl
00580 {
00581 # else
00582 
00583 
00584 namespace stlsoft
00585 {
00586 
00587 namespace winstl_project
00588 {
00589 
00590 # endif 
00591 #else
00592 stlsoft_ns_using(move_lhs_from_rhs)
00593 #endif 
00594 
00635 #ifndef _WINSTL_NO_NAMESPACE
00636 # define winstl_ns_qual(x)          ::winstl::x
00637 # define winstl_ns_using(x)         using ::winstl::x;
00638 #else
00639 # define winstl_ns_qual(x)          x
00640 # define winstl_ns_using(x)
00641 #endif 
00642 
00653 #ifdef STLSOFT_CF_std_NAMESPACE
00654 # define winstl_ns_qual_std(x)      ::std::x
00655 # define winstl_ns_using_std(x)     using ::std::x;
00656 #else 
00657 # define winstl_ns_qual_std(x)      x
00658 # define winstl_ns_using_std(x)
00659 #endif 
00660 
00661 
00662 
00663 
00664 
00674 #if defined(__cplusplus)
00675 # define WINSTL_ITF_CALL(p)         (p)
00676 #else 
00677 # define WINSTL_ITF_CALL(p)         (p)->lpVtbl
00678 #endif 
00679 
00689 #if defined(__cplusplus)
00690 # define WINSTL_ITF_THIS(p)
00691 #else 
00692 # define WINSTL_ITF_THIS(p)         (p),
00693 #endif 
00694 
00704 #if defined(__cplusplus)
00705 # define WINSTL_ITF_THIS0(p)
00706 #else 
00707 # define WINSTL_ITF_THIS0(p)        (p)
00708 #endif 
00709 
00719 #if defined(__cplusplus)
00720 # define WINSTL_IID_2_REF(iid)        (iid)
00721 #else 
00722 # define WINSTL_IID_2_REF(iid)        (&(iid))
00723 #endif 
00724 
00734 #if defined(__cplusplus)
00735 # define WINSTL_REF_2_PTR(iid)        (&(iid))
00736 #else 
00737 # define WINSTL_REF_2_PTR(iid)        (iid)
00738 #endif 
00739 
00740 
00741 
00742 
00743 
00744 
00745 
00746 
00747 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00748 
00749 typedef stlsoft_ns_qual(ss_char_a_t)        ws_char_a_t;    
00750 typedef stlsoft_ns_qual(ss_char_w_t)        ws_char_w_t;    
00751 typedef stlsoft_ns_qual(ss_sint8_t)         ws_sint8_t;     
00752 typedef stlsoft_ns_qual(ss_uint8_t)         ws_uint8_t;     
00753 typedef stlsoft_ns_qual(ss_int16_t)         ws_int16_t;     
00754 typedef stlsoft_ns_qual(ss_sint16_t)        ws_sint16_t;    
00755 typedef stlsoft_ns_qual(ss_uint16_t)        ws_uint16_t;    
00756 typedef stlsoft_ns_qual(ss_int32_t)         ws_int32_t;     
00757 typedef stlsoft_ns_qual(ss_sint32_t)        ws_sint32_t;    
00758 typedef stlsoft_ns_qual(ss_uint32_t)        ws_uint32_t;    
00759 #ifdef STLSOFT_CF_64BIT_INT_SUPPORT
00760  typedef stlsoft_ns_qual(ss_int64_t)        ws_int64_t;     
00761  typedef stlsoft_ns_qual(ss_sint64_t)       ws_sint64_t;    
00762  typedef stlsoft_ns_qual(ss_uint64_t)       ws_uint64_t;    
00763 #endif 
00764 typedef stlsoft_ns_qual(ss_int_t)           ws_int_t;       
00765 typedef stlsoft_ns_qual(ss_sint_t)          ws_sint_t;      
00766 typedef stlsoft_ns_qual(ss_uint_t)          ws_uint_t;      
00767 typedef stlsoft_ns_qual(ss_long_t)          ws_long_t;      
00768 typedef stlsoft_ns_qual(ss_byte_t)          ws_byte_t;      
00769 #if defined(__cplusplus)
00770 typedef stlsoft_ns_qual(ss_bool_t)          ws_bool_t;      
00771 #endif 
00772 typedef DWORD                               ws_dword_t;     
00773 typedef stlsoft_ns_qual(ss_size_t)          ws_size_t;      
00774 typedef stlsoft_ns_qual(ss_ptrdiff_t)       ws_ptrdiff_t;   
00775 typedef stlsoft_ns_qual(ss_streampos_t)     ws_streampos_t; 
00776 typedef stlsoft_ns_qual(ss_streamoff_t)     ws_streamoff_t; 
00777 #ifdef WINSTL_OS_IS_WIN64
00778 typedef stlsoft_ns_qual(ss_sint64_t)        ws_sptrint_t;
00779 typedef stlsoft_ns_qual(ss_uint64_t)        ws_uptrint_t;
00780 #else 
00781 typedef stlsoft_ns_qual(ss_sint32_t)        ws_sptrint_t;
00782 typedef stlsoft_ns_qual(ss_uint32_t)        ws_uptrint_t;
00783 #endif 
00784 
00785 #endif 
00786 
00787 #ifndef _WINSTL_NO_NAMESPACE
00788 typedef ws_char_a_t         char_a_t;           
00789 typedef ws_char_w_t         char_w_t;           
00790              
00791 typedef ws_sint8_t          sint8_t;            
00792 typedef ws_uint8_t          uint8_t;            
00793 typedef ws_int16_t          int16_t;            
00794 typedef ws_sint16_t         sint16_t;           
00795 typedef ws_uint16_t         uint16_t;           
00796 typedef ws_int32_t          int32_t;            
00797 typedef ws_sint32_t         sint32_t;           
00798 typedef ws_uint32_t         uint32_t;           
00799 # ifdef STLSOFT_CF_64BIT_INT_SUPPORT
00800  typedef ws_int64_t         int64_t;            
00801  typedef ws_sint64_t        sint64_t;           
00802  typedef ws_uint64_t        uint64_t;           
00803 # endif 
00804             
00805 typedef ws_int_t            int_t;              
00806 typedef ws_sint_t           sint_t;             
00807 typedef ws_uint_t           uint_t;             
00808 typedef ws_long_t           long_t;             
00809 typedef ws_byte_t           byte_t;             
00810 #if defined(__cplusplus)
00811 typedef ws_bool_t           bool_t;             
00812 #endif 
00813 typedef ws_dword_t          dword_t;            
00814 # if !defined(STLSOFT_COMPILER_IS_DMC)
00815 typedef ws_streampos_t      streampos_t;        
00816 typedef ws_streamoff_t      streamoff_t;        
00817 # endif 
00818 typedef ws_sptrint_t        sptrint_t;
00819 typedef ws_uptrint_t        uptrint_t;
00820 #endif 
00821 
00822 
00823 
00824 
00825 
00838 #define WINSTL_CONST_NT_MAX_PATH            (4 + 32767)
00839 
00843 #if defined(_MAX_PATH)
00844 # define WINSTL_CONST_MAX_PATH              _MAX_PATH
00845 #elif defined(__CYGWIN__)
00846 # define WINSTL_CONST_MAX_PATH              (260)
00847 #else
00848 # error _MAX_PATH not defined, and not CygWin compiler
00849 #endif
00850 
00851 #ifdef __cplusplus
00852 
00855 const ws_size_t CONST_NT_MAX_PATH       =   WINSTL_CONST_NT_MAX_PATH;
00856 
00859 const ws_size_t CONST_MAX_PATH          =   WINSTL_CONST_MAX_PATH;
00860 
00861 #endif 
00862 
00863 
00864 
00865 
00866 
00867 
00868 
00869 
00870 
00871 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00872 
00873 #define ws_true_v       ss_true_v
00874 #define ws_false_v      ss_false_v
00875 
00876 #endif 
00877 
00878 
00879 
00880 
00881 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00882 
00883 # define winstl_throw_0()                               stlsoft_throw_0()
00884 # define winstl_throw_1(x1)                             stlsoft_throw_1(x1)
00885 # define winstl_throw_2(x1, x2)                         stlsoft_throw_2(x1, x2)
00886 # define winstl_throw_3(x1, x2, x3)                     stlsoft_throw_3(x1, x2, x3)
00887 # define winstl_throw_4(x1, x2, x3, x4)                 stlsoft_throw_4(x1, x2, x3, x4)
00888 # define winstl_throw_5(x1, x2, x3, x4, x5)             stlsoft_throw_5(x1, x2, x3, x4, x5)
00889 # define winstl_throw_6(x1, x2, x3, x4, x5, x6)         stlsoft_throw_6(x1, x2, x3, x4, x5, x6)
00890 # define winstl_throw_7(x1, x2, x3, x4, x5, x6, x7)     stlsoft_throw_7(x1, x2, x3, x4, x5, x6, x7)
00891 # define winstl_throw_8(x1, x2, x3, x4, x5, x6, x7, x8) stlsoft_throw_8(x1, x2, x3, x4, x5, x6, x7, x8)
00892 #endif 
00893 
00894 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00895 # define WINSTL_NUM_ELEMENTS(ar)                        STLSOFT_NUM_ELEMENTS(ar)
00896 # define winstl_num_elements(ar)                        WINSTL_NUM_ELEMENTS(ar)
00897 #endif 
00898 
00903 #define winstl_destroy_instance(t, _type, p)            STLSOFT_DESTROY_INSTANCE(t, _type, p)
00904 
00909 #define winstl_gen_opaque(_htype)                       STLSOFT_GEN_OPAQUE(_htype)
00910 
00911 
00912 
00913 
00914 
00915 #ifdef __cplusplus
00916 
00935 #ifdef _Wp64
00936 inline bool BOOL2bool(ws_int_t bVal)
00937 #else 
00938 inline bool BOOL2bool(BOOL bVal)
00939 #endif 
00940 {
00941     return bVal != FALSE;
00942 }
00964 inline BOOL bool2BOOL(bool bVal)
00965 {
00966     return bVal != false;
00967 }
00968 #else
00969 # define BOOL2bool(bVal)            stlsoft_static_cast(bool, ((bVal) != FALSE))
00970 # define bool2BOOL(bVal)            stlsoft_static_cast(BOOL, ((bVal) != false))
00971 #endif 
00972 
00973 
00974 
00975 #ifndef _WINSTL_NO_NAMESPACE
00976 # if defined(_STLSOFT_NO_NAMESPACE) || \
00977      defined(STLSOFT_DOCUMENTATION_SKIP_SECTION)
00978 } 
00979 # else
00980 } 
00981 } 
00982 namespace winstl = ::stlsoft::winstl_project;
00983 # endif 
00984 #endif 
00985 
00986 
00987 
00988 
00989 
00990 #ifdef STLSOFT_CF_PRAGMA_ONCE_SUPPORT
00991 # pragma once
00992 #endif 
00993 
00994 
00995 
00996 #endif 
00997 
00998