Переместить указатель, но не забыть
OLECHAR * pCurr = m__cOutput.GetDataBuffer ( ) ;
if ( -1 = m_vbShowItemNumber )
{
pCurr += wsprintfW ( pCurr , L"%05d " , m_dwCurrCount ) ;
}
if ( -1 == m_vbShowTimeStamps )
{
// Показать метку времени в формате местного пользователя.
// (здесь сервер, а не в клиент!). Я устанавливаю метку
// в 24-часовом формате.
int iLen = GetTimeFormatW ( LOCALE_USER_DEFAULT ,
LOCALE_NOUSEROVERRIDE |
TIME_FORCE24HOURFORMAT |
TIME_NOTIMEMARKER ,
NULL
NULL ,
pCurr ,
k_SIZE_TIME ) ; ASSERT ( 0 != iLen ) ;
// Переместить указатель, но не забыть о наличии
// NULL-символа в конце строки.
pCurr 4= ( iLen - I ) ;
11 GetTimeFormat не добавляет дополнительного пробела,
// поэтому добавляем его сейчас.
*pCurr = L' ' ;
pCurr++ ;
}
if ( -1 == m_vbShowPID )
{
pCurr += wsprintfW ( pCurr , L"[%04X] " , dwPID ) ;
}
// Теперь поместите в буфер фактическое сообщение и копируйте
// NULL-терминатор в конец строки.
IstrcpynW ( pCurr , bstrText , IlnputLeri + 1 ) ;
// Переместить pCurr, чтобы указать на NULL-терминатор.
pCurr += ilnputLen ;
// Проверить, не нужны ли символы CRLF в конце строки,
if ( -1 == m_vbAddCRLF )
{
if ( ( L';\xOD'; != *( pCurr _ 2 ) ) ||
( L';\xOA'; != *( pCurr _ 1 ) ) )
{
*( pCurr ) = L';\xOD;;
*( pCurr + 1 } = L';\xOA'; ;
pCurr += 2 ;
*pCurr = YL';\0'; ;
}
}
// Предполагается ли получить снимок для отладчика режима ядра?
if ( -1 == m_vbShowTraceAsODS )
{
OutputDebugStringW ( (OLECHAR*) m_cOutput ) ;
}
// Подсчитать длину строки.
m_cOutput.GetStringByteLength ( ) ;
// Вывод сообщения о результате трассировки.
#ifdef _DEBUG
HRESULT hr =
#endif
Fire_TraceEvent ( m_cOutput ) ;
#ifdef _DEBUG
if ( ! SUCCEEDED ('hr ) )
{
ASSERT ( SUCCEEDED ( hr ) ) ;
TRACE ( Т ( "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" ) ) ;
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий