Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 187


Курсор становится «песочными часами» на две секунды, за которые должно произойти обращение к GUI, после чего за 5 секунд должно быть создано окно и еще за 5 секунд оно должно перерисоваться При создании процесса форма курсора не меняется Если флаг установлен, то использу­ются потоки, хэндлы которых определены полями hStdlnput, hStdOutput, hStdError

224

Девятое и десятое поля (dwXCountChars, dwYCountChars) определяют ширину и высоту окна консоли в символах (не пикселах!). Одиннадцатое поле - dwFillAttribute - определяет атрибуты консольного окна.

Двенадцатое поле - dwFIags - используется для того, чтобы опреде­лить, какие поля структуры типа STARTUPINFO будут использоваться при создании окна порождаемым процессом. Это поле представляет собой комбинацию битовых флагов (табл. 54).

Тринадцатое поле - wShowWindow - определяет, каким образом окно будет отображено (помните функцию ShowWindow())? Значение этого поля игнорируется, если только в dwFIags не установлен флаг STARTF USESHOWWINDOW. Возможные значения этого поля - те же константы, начинающиеся с SW__, которые используются в функции ShowWindowQ.

Четырнадцатое и пятнадцатое поля, - cbReserved2 и lpReserved2 заре­зервированы. Должны инициализироваться нулем и NULL соответственно.

Шестнадцатое, семнадцатое и восемнадцатое поля - hStdlnput, hStdOutput и hStdError - определяют хэндлы стандартных потоков ввода-вывода.

Нерассмотренным остался только один аргумент функции CreateProcess() - IpProcessInformation, указывающий на структуру типа PROCESS INFORMATION, в которую записывается информация о порожденном процессе после его создания. Структура описана в файле winbase.h следующим образом:

typedcf struct J>ROCESS_rNFORMATION {

HANDLE hProcess; HANDLE hThrcad; DWORD dwProcessId; DWORD dwThreadld;

PROCESSJNFORMATION, *PPROCESS INFORMATION, *LPPROCESS_INFORMATION;

В первое поле - h Process - система записывает хэндл созданного про­цесса, во второе - hThread - хэндл потока. Поля dwProcessId и dwThreadld являются уникальными идентификаторами процесса и потока соответст­венно. Рекомендую обратить особое внимание на последние два поля. Дело в том, что Win32, если идентификатор освобожден, может повторно использовать его. К примеру, пусть процессу присвоен идентификатор 0x00001111. После завершения процесса идентификатор освобождается и какому-нибудь новому процессу может опять быть присвоен тот же




Начало  Назад  Вперед



Книжный магазин