12 #if DBG // FIXME: We should use _DEBUG instead of DBG. CORE-17505 27 template <UINT t_category = (1 << 19), UINT t_level = 0>
28 class CTraceCategoryEx
33 TraceGeneral = (1 << 0),
36 TraceRegistrar = (1 << 3),
37 TraceRefcount = (1 << 4),
38 TraceWindowing = (1 << 5),
39 TraceControls = (1 << 6),
40 TraceHosting = (1 << 7),
41 TraceDBClient = (1 << 8),
42 TraceDBProv
ider = (1 << 9),
43 TraceSnapin = (1 << 10),
44 TraceNotImpl = (1 << 11),
45 TraceAllocation = (1 << 12),
46 TraceException = (1 << 13),
47 TraceTime = (1 << 14),
48 TraceCache = (1 << 15),
49 TraceStencil = (1 << 16),
50 TraceString = (1 << 17),
52 TraceUtil = (1 << 19),
53 TraceSecurity = (1 << 20),
54 TraceSync = (1 << 21),
55 TraceISAPI = (1 << 22),
59 CTraceCategoryEx(LPCTSTR name = NULL) : m_name(name)
63 static UINT GetLevel() { return t_level; }
64 static UINT GetCategory() { return t_category; }
65 operator UINT() const { return GetCategory(); }
66 LPCTSTR GetCategoryName() const { return m_name; }
72 class CTraceCategory : public CTraceCategoryEx<>
74 CTraceCategory(LPCTSTR name = NULL) : CTraceCategoryEx<>(name)
79 #define DEFINE_TRACE_CATEGORY(name, cat) extern const DECLSPEC_
SELECTANY CTraceCategoryEx<cat, 0> name(TEXT(#name))
80 DEFINE_TRACE_CATEGORY(atlTraceGeneral, CTraceCategoryEx<>::TraceGeneral);
81 DEFINE_TRACE_CATEGORY(atlTraceCOM, CTraceCategoryEx<>::TraceCom);
82 DEFINE_TRACE_CATEGORY(atlTraceQI, CTraceCategoryEx<>::TraceQI);
83 DEFINE_TRACE_CATEGORY(atlTraceRegistrar, CTraceCategoryEx<>::TraceRegistrar);
84 DEFINE_TRACE_CATEGORY(atlTraceRefcount, CTraceCategoryEx<>::TraceRefcount);
85 DEFINE_TRACE_CATEGORY(atlTraceWindowing, CTraceCategoryEx<>::TraceWindowing);
86 DEFINE_TRACE_CATEGORY(atlTraceControls, CTraceCategoryEx<>::TraceControls);
87 DEFINE_TRACE_CATEGORY(atlTraceHosting, CTraceCategoryEx<>::TraceHosting);
88 DEFINE_TRACE_CATEGORY(atlTraceDBClient, CTraceCategoryEx<>::TraceDBClient);
89 DEFINE_TRACE_CATEGORY(atlTraceDBProv
ider, CTraceCategoryEx<>::TraceDBProv
ider);
90 DEFINE_TRACE_CATEGORY(atlTraceSnapin, CTraceCategoryEx<>::TraceSnapin);
91 DEFINE_TRACE_CATEGORY(atlTraceNotImpl, CTraceCategoryEx<>::TraceNotImpl);
92 DEFINE_TRACE_CATEGORY(atlTraceAllocation, CTraceCategoryEx<>::TraceAllocation);
93 DEFINE_TRACE_CATEGORY(atlTraceException, CTraceCategoryEx<>::TraceException);
94 DEFINE_TRACE_CATEGORY(atlTraceTime, CTraceCategoryEx<>::TraceTime);
95 DEFINE_TRACE_CATEGORY(atlTraceCache, CTraceCategoryEx<>::TraceCache);
96 DEFINE_TRACE_CATEGORY(atlTraceStencil, CTraceCategoryEx<>::TraceStencil);
97 DEFINE_TRACE_CATEGORY(atlTraceString, CTraceCategoryEx<>::TraceString);
98 DEFINE_TRACE_CATEGORY(atlTraceMap, CTraceCategoryEx<>::TraceMap);
99 DEFINE_TRACE_CATEGORY(atlTraceUtil, CTraceCategoryEx<>::TraceUtil);
100 DEFINE_TRACE_CATEGORY(atlTraceSecurity, CTraceCategoryEx<>::TraceSecurity);
101 DEFINE_TRACE_CATEGORY(atlTraceSync, CTraceCategoryEx<>::TraceSync);
102 DEFINE_TRACE_CATEGORY(atlTraceISAPI, CTraceCategoryEx<>::TraceISAPI);
103 #undef DEFINE_TRACE_CATEGORY
105 struct CTraceCategoryEasy
111 template <UINT t_category, UINT t_level>
112 CTraceCategoryEasy(
const CTraceCategoryEx<t_category, t_level>& cat)
114 m_category = t_category;
116 m_name = cat.GetCategoryName();
119 operator UINT()
const {
return m_category; }
121 BOOL IsGeneral()
const 123 return lstrcmp(m_name,
TEXT(
"atlTraceGeneral")) == 0;
131 DefaultTraceLevel = 0,
132 DisableTracing = 0xFFFFFFFF,
133 EnableAllCategories = 0xFFFFFFFF
136 static UINT GetLevel() {
return s_level; }
137 static UINT GetCategories() {
return s_categories; }
143 return (s_level != DisableTracing && s_level >=
level && (s_categories &
category));
147 static UINT s_categories;
154 template <
typename X_CHAR>
158 _In_ const CTraceCategoryEasy& cat,
163 char szBuff[1024], szFile[
MAX_PATH];
165 const BOOL bUnicode = (
sizeof(
TCHAR) == 2);
167 if (!CTrace::IsTracingEnabled(cat,
level))
170 #ifdef _STRSAFE_H_INCLUDED_ 172 if (!cat.IsGeneral())
180 if (!cat.IsGeneral())
188 template <
typename X_CHAR>
192 _In_ const CTraceCategoryEasy& cat,
199 const BOOL bUnicode = (
sizeof(
TCHAR) == 2);
201 if (!CTrace::IsTracingEnabled(cat,
level))
204 #ifdef _STRSAFE_H_INCLUDED_ 206 if (!cat.IsGeneral())
214 if (!cat.IsGeneral())
222 template <
typename X_CHAR,
typename Y_CHAR>
226 _In_ const CTraceCategoryEasy& cat,
237 template <
typename X_CHAR,
typename Y_CHAR>
258 template <
typename X_CHAR>
264 AtlTraceV(
NULL, -1, atlTraceGeneral, 0,
format, va);
273 #if DBG // FIXME: We should use _DEBUG instead of DBG. CORE-17505 274 #define ATLTRACE(format, ...) ATL::AtlTraceEx(__FILE__, __LINE__, format, ##__VA_ARGS__) 276 #define ATLTRACE(format, ...) ((void)0) 280 #define ATLTRACE2 ATLTRACE 282 #if DBG // FIXME: We should use _DEBUG instead of DBG. CORE-17505 283 #define ATLTRACENOTIMPL(funcname) do { \ 284 ATLTRACE(atlTraceNotImpl, 0, #funcname " is not implemented.\n"); \ 288 #define ATLTRACENOTIMPL(funcname) return E_NOTIMPL 291 #ifndef _ATL_NO_AUTOMATIC_NAMESPACE
EXTERN_C int __cdecl _CrtDbgReportW(int reportType, const wchar_t *filename, int linenumber, const wchar_t *moduleName, const wchar_t *format,...)
EXTERN_C int __cdecl _CrtDbgReport(int reportType, const char *filename, int linenumber, const char *moduleName, const char *format,...)
STRSAFEAPI StringCchVPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat, va_list argList)
#define DECLSPEC_SELECTANY
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
STRSAFEAPI StringCchPrintfA(STRSAFE_LPSTR pszDest, size_t cchDest, STRSAFE_LPCSTR pszFormat,...)
int _snwprintf(wchar_t *buffer, size_t count, const wchar_t *format,...)
STRSAFEAPI StringCchVPrintfA(STRSAFE_LPSTR pszDest, size_t cchDest, STRSAFE_LPCSTR pszFormat, va_list argList)
_CRTIMP int __cdecl _vsnwprintf(wchar_t *_Dest, size_t _Count, const wchar_t *_Format, va_list _Args)
STRSAFEAPI StringCchLengthA(STRSAFE_LPCSTR psz, size_t cchMax, size_t *pcchLength)
STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat,...)
STRSAFEAPI StringCchLengthW(STRSAFE_LPCWSTR psz, size_t cchMax, size_t *pcchLength)
#define _Printf_format_string_
GLsizei GLenum * categories