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
00047 #ifndef COMSTL_INCL_COMSTL_UTIL_HPP_INTERFACE_TRAITS
00048 #define COMSTL_INCL_COMSTL_UTIL_HPP_INTERFACE_TRAITS
00049
00050 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00051 # define COMSTL_VER_COMSTL_UTIL_HPP_INTERFACE_TRAITS_MAJOR 5
00052 # define COMSTL_VER_COMSTL_UTIL_HPP_INTERFACE_TRAITS_MINOR 0
00053 # define COMSTL_VER_COMSTL_UTIL_HPP_INTERFACE_TRAITS_REVISION 1
00054 # define COMSTL_VER_COMSTL_UTIL_HPP_INTERFACE_TRAITS_EDIT 57
00055 #endif
00056
00057
00058
00059
00060
00061 #ifndef COMSTL_INCL_COMSTL_H_COMSTL
00062 # include <comstl/comstl.h>
00063 #endif
00064
00065
00066
00067
00068
00069 #ifdef COMSTL_UUIDOF_SUPPORTED
00070 # undef COMSTL_UUIDOF_SUPPORTED
00071 #endif
00072
00073 #if !defined(_COMSTL_NO_UUIDOF) && \
00074 ( defined(STLSOFT_COMPILER_IS_BORLAND) || \
00075 defined(STLSOFT_COMPILER_IS_INTEL) || \
00076 defined(STLSOFT_COMPILER_IS_MWERKS) || \
00077 ( defined(STLSOFT_COMPILER_IS_MSVC) && \
00078 _MSC_VER >= 1200))
00079 # define COMSTL_UUIDOF_SUPPORTED
00080 #endif
00081
00082
00083
00084
00085
00086 #ifndef _COMSTL_NO_NAMESPACE
00087 # if defined(_STLSOFT_NO_NAMESPACE) || \
00088 defined(STLSOFT_DOCUMENTATION_SKIP_SECTION)
00089
00090 namespace comstl
00091 {
00092 # else
00093
00094
00095 namespace stlsoft
00096 {
00097
00098 namespace comstl_project
00099 {
00100
00101 # endif
00102 #endif
00103
00104
00105
00106
00107
00108 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00109
00110 # define COMSTL_IID_TRAITS_DEFINE__(I, T) \
00111 STLSOFT_TEMPLATE_SPECIALISATION \
00112 struct IID_traits<T> \
00113 { \
00114 public: \
00115 static REFIID iid() { return IID_##I; } \
00116 };
00117
00118 # define COMSTL_IID_TRAITS_DEFINE_NS_(I, T, NS) \
00119 STLSOFT_TEMPLATE_SPECIALISATION \
00120 struct IID_traits<NS::T> \
00121 { \
00122 public: \
00123 static REFIID iid() { return NS::IID_##I; } \
00124 };
00125
00126 # define _COMSTL_IID_TRAITS_DEFINE(I) COMSTL_IID_TRAITS_DEFINE__(I, I)
00127
00128 #endif
00129
00130
00131
00132
00133
00134 #ifdef STLSOFT_DOCUMENTATION_SKIP_SECTION
00135
00159 template <class I>
00160 struct IID_traits
00161 {
00162 public:
00164 static REFIID iid();
00165 };
00166 #else
00167
00168 # ifdef COMSTL_UUIDOF_SUPPORTED
00169
00170 template <class I>
00171 struct IID_traits
00172 {
00173 public:
00174 static REFIID iid() { return __uuidof(I); }
00175 };
00176
00177 # define COMSTL_IID_TRAITS_DEFINE(I)
00178 # define COMSTL_IID_TRAITS_DEFINE_NS(I, NS)
00179
00180 # else
00181
00182 template <class I>
00183 struct IID_traits;
00184
00185 # define COMSTL_IID_TRAITS_DEFINE(I) EXTERN_C const IID IID_##I; \
00186 _COMSTL_IID_TRAITS_DEFINE(I) \
00187 COMSTL_IID_TRAITS_DEFINE__(I, I*)
00188
00189 # define COMSTL_IID_TRAITS_DEFINE_NS(I, NS) COMSTL_IID_TRAITS_DEFINE_NS_(I, I, NS) \
00190 COMSTL_IID_TRAITS_DEFINE_NS_(I, I*, NS)
00191
00192
00193 # define comstl_IID_traits_define(I) COMSTL_IID_TRAITS_DEFINE(I)
00194
00195 # endif
00196
00197 #ifndef _COMSTL_NO_NAMESPACE
00198 # if defined(_STLSOFT_NO_NAMESPACE) || \
00199 defined(STLSOFT_DOCUMENTATION_SKIP_SECTION)
00200 }
00201 # else
00202 }
00203 }
00204 # endif
00205 #endif
00206
00207 #ifndef COMSTL_INCL_COMSTL_INTERNAL_HPP_INTERFACE_TRAITS_STD
00208 # include <comstl/internal/interface_traits_std.hpp>
00209 #endif
00210
00211 #ifndef _COMSTL_NO_NAMESPACE
00212 # if defined(_STLSOFT_NO_NAMESPACE) || \
00213 defined(STLSOFT_DOCUMENTATION_SKIP_SECTION)
00214
00215 namespace comstl
00216 {
00217 # else
00218
00219
00220 namespace stlsoft
00221 {
00222
00223 namespace comstl_project
00224 {
00225
00226 # endif
00227 #endif
00228
00229 #endif
00230
00231
00232
00233 #ifndef _COMSTL_NO_NAMESPACE
00234 # if defined(_STLSOFT_NO_NAMESPACE) || \
00235 defined(STLSOFT_DOCUMENTATION_SKIP_SECTION)
00236 }
00237 # else
00238 }
00239 }
00240 # endif
00241 #endif
00242
00243
00244
00245 #endif
00246
00247