winstl/winstl.h File Reference


Detailed Description

[C, C++] The root header for the WinSTL project.

#include <stlsoft/stlsoft.h>
#include <windows.h>
#include <stdlib.h>

Go to the source code of this file.

Namespaces

namespace  winstl

Defines

#define WINSTL_INCL_H_WINSTL
 Definition of previous include-guard symbol for winstl/winstl.h, for backwards compatibility.
#define _WINSTL_VER_MAJOR   1
 The major version number of the WinSTL project "WinSTL" project.
#define _WINSTL_VER_MINOR   11
 The minor version number of the WinSTL project "WinSTL" project.
#define _WINSTL_VER_REVISION   1
 The revision version number of the WinSTL project "WinSTL" project.
#define _WINSTL_VER   _WINSTL_VER_1_11_1
 The current composite version number of the WinSTL project "WinSTL" project.
#define INVALID_HANDLE_VALUE   reinterpret_cast<HANDLE>(-1)
 A C++-only redefinition of this #define which uses reinterpret_cast to avoid C-style cast warnings.
#define MAKEINTRESOURCEA(i)   reinterpret_cast<LPSTR>(static_cast<ULONG>(static_cast<WORD>(i)))
 A C++-only redefinition of this #define which uses C++ cast operators to avoid C-style cast warnings.
#define MAKEINTRESOURCEW(i)   reinterpret_cast<LPWSTR>(static_cast<ULONG>(static_cast<WORD>(i)))
 A C++-only redefinition of this #define which uses C++ cast operators to avoid C-style cast warnings.
#define MAKEINTRESOURCE(i)   reinterpret_cast<LPTSTR>(static_cast<ULONG>(static_cast<WORD>(i)))
 A C++-only redefinition of this #define which uses C++ cast operators to avoid C-style cast warnings.
#define MAKELANGID(p, s)   ((static_cast<DWORD>(static_cast<WORD>(s)) << 10) | static_cast<WORD>(p))
 A C++-only redefinition of this #define which uses C++ cast operators to avoid C-style cast warnings.
#define INVALID_FILE_SIZE   static_cast<DWORD>(0xFFFFFFFF)
 A C++-only redefinition of this #define which uses C++ cast operators to avoid C-style cast warnings.
#define WINSTL_ASSERT(expr)   STLSOFT_ASSERT(expr)
 Defines an assertion construct for runtime verification.
#define WINSTL_MESSAGE_ASSERT(msg, expr)   STLSOFT_MESSAGE_ASSERT(msg, expr)
 Defines a runtime assertion, with message.
#define WINSTL_STATIC_ASSERT(expr)   STLSOFT_STATIC_ASSERT(expr)
 Defines an assertion construct for compile-time verification.
#define winstl_ns_qual(x)   ::winstl::x
 Namespace qualification macro for WinSTL components that generates correct code regardless of whether the winstl namespace is being suppressed or enabled.
#define winstl_ns_using(x)   using ::winstl::x;
 Declares a using directive (with respect to winstl) if WinSTL is using namespaces or, if not, does nothing.
#define winstl_ns_qual_std(x)   ::std::x
 Qualifies with std:: if WinSTL is being translated in the context of the standard library being within the std namespace or, if not, does not qualify.
#define winstl_ns_using_std(x)   using ::std::x;
 Declares a using directive (with respect to std) if WinSTL is being translated in the context of the standard library being within the std namespace or, if not, does nothing.
#define WINSTL_ITF_CALL(p)   (p)
 Resolves to p->lpVtbl for C compilation, and to p in C++.
#define WINSTL_ITF_THIS(p)
 Resolves to p, for C compilation, and to nothing in C++.
#define WINSTL_ITF_THIS0(p)
 Resolves to p for C compilation, and to nothing in C++.
#define WINSTL_IID_2_REF(iid)   (iid)
 Resolves to &iid for C compilation, and to iid in C++.
#define WINSTL_REF_2_PTR(iid)   (&(iid))
 Resolves to iid for C compilation, and to &iid in C++.
#define WINSTL_CONST_NT_MAX_PATH   (4 + 32767)
 Defines the number of maximum length of a path specification on Windows NT: 4 + 32767.
#define winstl_destroy_instance(t, _type, p)   STLSOFT_DESTROY_INSTANCE(t, _type, p)
 [DEPRECATED] Destroys the given instance p of the given type (t and _type)
#define winstl_gen_opaque(_htype)   STLSOFT_GEN_OPAQUE(_htype)
 [DEPRECATED] Generates an opaque type with the name _htype

Typedefs

typedef char char_a_t
typedef wchar_t char_w_t
 !< Ansi char type.
typedef ws_sint8_t sint8_t
 !< Unicode char type.
typedef ws_uint8_t uint8_t
 !< 8-bit signed integer.
typedef ws_int16_t int16_t
 !< 8-bit unsigned integer.
typedef ws_sint16_t sint16_t
 !< 16-bit integer.
typedef ws_uint16_t uint16_t
 !< 16-bit signed integer.
typedef ws_int32_t int32_t
 !< 16-bit unsigned integer.
typedef ws_sint32_t sint32_t
 !< 32-bit integer.
typedef ws_uint32_t uint32_t
 !< 32-bit signed integer.
typedef int int_t
 !< 32-bit unsigned integer.
typedef ws_sint_t sint_t
 !< integer.
typedef ws_uint_t uint_t
 !< signed integer.
typedef ws_long_t long_t
 !< unsigned integer.
typedef ws_byte_t byte_t
 !< long integer.
typedef bool bool_t
 !< Byte.
typedef ws_dword_t dword_t
 !< bool.
typedef ws_streampos_t streampos_t
 !< dword.
typedef ws_streamoff_t streamoff_t
 !< streampos.
typedef ws_sptrint_t sptrint_t
 !< streamoff.
typedef ws_uptrint_t uptrint_t

Functions

bool BOOL2bool (BOOL bVal)
 Safely converts a BOOL to a bool.
BOOL bool2BOOL (bool bVal)
 Safely converts a bool to a BOOL.

Variables

const size_t CONST_NT_MAX_PATH = WINSTL_CONST_NT_MAX_PATH
 C++ constant equivalent to WINSTL_CONST_NT_MAX_PATH.
const size_t CONST_MAX_PATH = WINSTL_CONST_MAX_PATH
 C++ constant equivalent to WINSTL_CONST_MAX_PATH.


Define Documentation

#define _WINSTL_VER   _WINSTL_VER_1_11_1

The current composite version number of the WinSTL project "WinSTL" project.

#define _WINSTL_VER_MAJOR   1

The major version number of the WinSTL project "WinSTL" project.

#define _WINSTL_VER_MINOR   11

The minor version number of the WinSTL project "WinSTL" project.

#define _WINSTL_VER_REVISION   1

The revision version number of the WinSTL project "WinSTL" project.

#define INVALID_FILE_SIZE   static_cast<DWORD>(0xFFFFFFFF)

A C++-only redefinition of this #define which uses C++ cast operators to avoid C-style cast warnings.

#define INVALID_HANDLE_VALUE   reinterpret_cast<HANDLE>(-1)

A C++-only redefinition of this #define which uses reinterpret_cast to avoid C-style cast warnings.

#define MAKEINTRESOURCE (  )     reinterpret_cast<LPTSTR>(static_cast<ULONG>(static_cast<WORD>(i)))

A C++-only redefinition of this #define which uses C++ cast operators to avoid C-style cast warnings.

#define MAKEINTRESOURCEA (  )     reinterpret_cast<LPSTR>(static_cast<ULONG>(static_cast<WORD>(i)))

A C++-only redefinition of this #define which uses C++ cast operators to avoid C-style cast warnings.

#define MAKEINTRESOURCEW (  )     reinterpret_cast<LPWSTR>(static_cast<ULONG>(static_cast<WORD>(i)))

A C++-only redefinition of this #define which uses C++ cast operators to avoid C-style cast warnings.

#define MAKELANGID ( p,
 )     ((static_cast<DWORD>(static_cast<WORD>(s)) << 10) | static_cast<WORD>(p))

A C++-only redefinition of this #define which uses C++ cast operators to avoid C-style cast warnings.

#define WINSTL_ASSERT ( expr   )     STLSOFT_ASSERT(expr)

Defines an assertion construct for runtime verification.

Parameters:
expr Must be non-zero, or an assertion will be fired
Remarks:
By default this is defined to STLSOFT_ASSERT. However, this can be overriden if a prior definition is encountered, allowing the runtime assertion of WinSTL components to use a different mechanism to those in the other projects.
Examples:
by_library/memory/com_memory_functions/com_memory_functions.cpp, and by_library/windows_shell/memory_functions/memory_functions.cpp.

Referenced by winstl::GetTimeFormat_msA(), HDC_scope::HDC_scope(), spin_mutex_base::lock(), semaphore::lock(), process_mutex::lock(), basic_commandline_parser::operator[](), process_mutex::process_mutex(), basic_environment_block::push_back(), event::reset(), semaphore::semaphore(), event::set(), memory_mapped_file::swap(), th_sequence_const_iterator::th_sequence_const_iterator(), spin_mutex_base::unlock(), semaphore::unlock(), process_mutex::unlock(), winstl::w4mo_helper_8(), winstl::wait_for_multiple_objects(), winstl__control_panel_get_count(), winstl__control_panel_init(), winstl__control_panel_inquire(), winstl__control_panel_newinquire(), winstl__control_panel_run_data(), winstl__control_panel_run_params_a(), winstl__control_panel_run_params_w(), winstl__control_panel_stop(), winstl__control_panel_uninit(), winstl__edit_getline_a(), winstl__edit_getline_w(), winstl__format_message_buff_inst_a(), winstl__IsWindowClassA(), winstl__IsWindowClassW(), winstl__UNIXTimeToFILETIME(), memory_mapped_file::~memory_mapped_file(), and spin_mutex_base::~spin_mutex_base().

#define WINSTL_CONST_NT_MAX_PATH   (4 + 32767)

Defines the number of maximum length of a path specification on Windows NT: 4 + 32767.

Windows NT supports so-called "long names" in the Unicode variants (e.g. CreateFileW()) of many of its file-system API functions. The maximum length of a long name is 32767, and a long name must be prefixed with the 4-character sequence \\\?\. This constant can be used when there is a need to allocate the maximum possible size for a file system path.

#define winstl_destroy_instance ( t,
_type,
 )     STLSOFT_DESTROY_INSTANCE(t, _type, p)

[DEPRECATED] Destroys the given instance p of the given type (t and _type)

Deprecated:
This is heavily deprecated in favour of STLSOFT_DESTROY_INSTANCE().

#define winstl_gen_opaque ( _htype   )     STLSOFT_GEN_OPAQUE(_htype)

[DEPRECATED] Generates an opaque type with the name _htype

Deprecated:
This is heavily deprecated in favour of STLSOFT_GEN_OPAQUE().

#define WINSTL_INCL_H_WINSTL

Definition of previous include-guard symbol for winstl/winstl.h, for backwards compatibility.

#define WINSTL_MESSAGE_ASSERT ( msg,
expr   )     STLSOFT_MESSAGE_ASSERT(msg, expr)

Defines a runtime assertion, with message.

Parameters:
expr Must be non-zero, or an assertion will be fired
msg The literal character string message to be included in the assertion

Referenced by listbox_data_const_iterator::compare(), listbox_const_iterator::compare(), spin_mutex_base::lock(), listview_sequence::const_iterator::operator++(), clipboard_format_sequence::const_iterator::operator++(), listview_sequence::const_iterator::operator--(), and basic_file_path_buffer< C >::operator[]().

#define winstl_ns_qual (  )     ::winstl::x

Namespace qualification macro for WinSTL components that generates correct code regardless of whether the winstl namespace is being suppressed or enabled.

If the winstl namespace is being suppressed - by the definition of _WINSTL_NO_NAMESPACE or _WINSTL_NO_NAMESPACES or _STLSOFT_NO_NAMESPACES; detectable by the presence of the symbol _WINSTL_NO_NAMESPACE - then winstl_ns_using(x) is equivalent to writing x. If the winstl namespace is not being suppressed then winstl_ns_using(x) is equivalent to writing winstl::x.

For example, the following code will compile correctly if winstl is suppressed or not:

#include <winstl/error_desc.hpp>
#include <stdio.h>

int main()
{
  winstl_ns_qual(reg_key)   key(HKEY_CURRENT_USER, "SOFTWARE\\AcmeLib\\AcmeApp");

  return 0;
}

Remarks:
These macros are used throughout the implementation of the STLSoft libraries. However, we do not recommend their use in application code for the simple reason that they are ugly and do not represent a widely recognised idiom. Of course, if they suit your purposes, then by all means ...

Referenced by winstl::FILETIME2SYSTEMTIME(), is_enabled::operator()(), is_visible::operator()(), and winstl::wait_for_multiple_objects().

#define winstl_ns_qual_std (  )     ::std::x

Qualifies with std:: if WinSTL is being translated in the context of the standard library being within the std namespace or, if not, does not qualify.

See also:
page__namespace_suppression

#define winstl_ns_using (  )     using ::winstl::x;

Declares a using directive (with respect to winstl) if WinSTL is using namespaces or, if not, does nothing.

#define winstl_ns_using_std (  )     using ::std::x;

Declares a using directive (with respect to std) if WinSTL is being translated in the context of the standard library being within the std namespace or, if not, does nothing.

#define WINSTL_STATIC_ASSERT ( expr   )     STLSOFT_STATIC_ASSERT(expr)

Defines an assertion construct for compile-time verification.

Parameters:
expr A compile-time evaluatable condition that must be non-zero, or compilation will fail.
Remarks:
This is defined to STLSOFT_STATIC_ASSERT.

Referenced by window_enable_scope::~window_enable_scope(), window_icon_scope::~window_icon_scope(), and window_visible_scope::~window_visible_scope().


Generated on Thu Jun 10 08:58:16 2010 for STLSoft by  doxygen 1.5.6