Реферат: Winlogon notification package. Теория и практика

// Задаем название log-файла

WCHAR fName[] = L"C:\\log.txt";

WCHAR buf[ 1024 ];

// Готовим строку для логов. Стоит отметить что если бы

// был обьявлен макрос STRICT, вывод hDesktop

// необходимо было бы делать по другому.

swprintf(buf, L"Event: %s, User: %s, Domain: %s,"

L"Window station: %s, User token 0x%p,"

L"Desktop 0x%p\r\n", pStrEventName,

pInfo->UserName, pInfo->Domain, pInfo->WindowStation,

pInfo->hToken, pInfo->hDesktop);

// Открываем log-файлдлязаписи.

HANDLE hFile = CreateFileW(fName, GENERIC_WRITE,

FILE_SHARE_READ, NULL, OPEN_EXISTING,

FILE_ATTRIBUTE_NORMAL, NULL);

DWORD dwWritten;

// Если такого файла нет, или случилась какая-то другая

// ошибка, пробуем создать новый файл.

if (hFile == INVALID_HANDLE_VALUE)

{

hFile = CreateFileW(fName, GENERIC_WRITE,

FILE_SHARE_READ, NULL, CREATE_NEW,

FILE_ATTRIBUTE_NORMAL, NULL);

if (hFile == INVALID_HANDLE_VALUE)

{

// Если файл не создался, сообщаем пользователю

// системным звуком о возникновении ошибки.

::MessageBeep(MB_ICONASTERISK);

return;

К-во Просмотров: 211
Бесплатно скачать Реферат: Winlogon notification package. Теория и практика