DEFINE_CPLX_TYPE(TSTR, WPP_LOGWSTR, LPCTSTR, ItemWString, "s", S, 0); DEFINE_FLAVOR(ts, TSTR,,); DEFINE_FLAVOR(netrate, DOUBLE,,); FUNC LogInfo{LEVEL=LogFlagInfo}(MSG,...); FUNC LogRef{LEVEL=LogFlagRefCount}(MSG,...); FUNC LogWarning{LEVEL=LogFlagWarning}(MSG,...); FUNC LogError{LEVEL=LogFlagError}(MSG,...); FUNC LogPublicApiBegin{LEVEL=LogFlagFunction}(MSG,...); FUNC LogPublicApiEnd{LEVEL=LogFlagFunction}(MSG,...); FUNC LogDl{LEVEL=LogFlagDownload}(MSG,...); FUNC LogSerial{LEVEL=LogFlagSerialize}(MSG,...); FUNC LogLock{LEVEL=LogFlagLock}(MSG,...); FUNC LogTask{LEVEL=LogFlagTask}(MSG,...); FUNC LogService{LEVEL=LogFlagService}(MSG,...); FUNC LogEntry(MSG,...); DEFINE_SIMPLE_TYPE( DRIZSEQ,,, "%7!08x!",,); USEPREFIX(LogInfo, "%!NOW! %!TID! INFO %!FUNC! :"); USEPREFIX(LogWarning, "%!NOW! %!TID! WARNING %!FUNC! (%!FILE! %!LINE!) :"); USEPREFIX(LogError, "%!NOW! %!TID! ERROR %!FUNC! (%!FILE! %!LINE!) :"); USEPREFIX(LogPublicApiBegin, "%!NOW! %!TID! FUNC_BEGIN %!FUNC! this %p :", this); USEPREFIX(LogPublicApiEnd, "%!NOW! %!TID! FUNC_END %!FUNC! this %p Hr %!winerr!, :", this, Hr); USEPREFIX(LogRef, "%!NOW! %!TID! REF %!FUNC! this %p :", this); USEPREFIX(LogLock, "%!NOW! %!TID! LOCK %!FUNC! :"); USEPREFIX(LogTask, "%!NOW! %!TID! TASK %!FUNC! :"); USEPREFIX(LogService, "%!NOW! %!TID! SERVICE %!FUNC! :"); USEPREFIX(LogDl, "%!NOW! %!TID! DOWNLOAD %!FUNC! :"); USEPREFIX(LogSerial, "%!NOW! %!TID! SERIALIZE %!FUNC! :");