Реферат: Программирование служб: подробности

WORD wType,

WORD wCategory,

DWORD dwEventId,

PSID pUserSid,

WORD wNumOfStrings,

DWORD dwDataSize,

LPCTSTR* pStrings,

LPVOID pRawData

);

Параметры:

hEventLog Описатель, полученный от RegisterEventSource.
wType Тип сообщения, должен совпадать с типом, записанным в файле сообщений. Варианты: EVENTLOG_SUCCESS, EVENTLOG_INFORMATION_TYPE, EVENTLOG_WARNING_TYPE, EVENTLOG_ERROR_TYPE.
wCategory Передавайте 0.
dwEventId Идентификатор сообщения. Не равен «MessageId». Берётся из создаваемого mc.exe заголовочного файла.
pUserSid Передавайте NULL.
wNumOfStrings Количество передаваемых строк.
dwDataSize Размер передаваемых данных.
pStrings Массив строк. Если строк меньше, чем позиций, в лишних позициях будет «%n», где n – номер позиции.
pRawData Данные, прикрепляемые к сообщению.

Unicode

Unicode – кодировка, в которой одному символу соответствуют два байта. В результате получается 65536 различных символов. Использовать Unicode в программах для Windows NT/2000/XP полезно и просто. Полезно потому, что, во-первых, это повышает производительность (почему – ниже), во-вторых, позволяет вывести на экран или в файл именно то, что вы хотите, независимо от локализации ОС пользователя и, в-третьих, иногда это гораздо удобнее. А просто потому, что вся необходимая поддержка обеспечена.

Большинство API-функций, принимающих в качестве параметров строки, существуют в двух вариантах – ANSI и Unicode. ANSI-вариант имеет суффикс «A», Unicode-вариант – суффикс «W» (от wide – широкий). В Windows NT/2000/XP ANSI-функции просто преобразуют переданные строки в Unicode и вызывают соответствующую Unicode-функцию. Unicode – «родная» кодировка для этих ОС. Для Win 9x «родная» кодировка – ANSI, в ОС этой группы полностью реализовано всего несколько Unicode-функций, остальные сразу возвращают ошибку. Поэтому программа, использующая Unicode, в Windows NT/2000/XP будет работать быстрее, а в Win 9x не будет работать вообще. Поскольку в Win 9x служба всё равно не сможет работать, это не должно вас волновать.

Если вы не сталкивались с Unicode раньше и не изучали заголовочные файлы с объявлениями API-функций, предыдущий абзац может вас озадачить. Скорее всего, вы неоднократно использовали API-функции, принимающие строки и точно помните, что у них не было никаких суффиксов. А оказывается – есть. Ниже приведёна часть файла winbase.h:

WINADVAPI

BOOL

WINAPI

EncryptFileA(

LPCSTR lpFileName

);

WINADVAPI

BOOL

WINAPI

EncryptFileW(

LPCWSTR lpFileName

);

#ifdef UNICODE

#define EncryptFile EncryptFileW

#else

К-во Просмотров: 280
Бесплатно скачать Реферат: Программирование служб: подробности