Win32 API. Глобальные функции Windows
Страница 11.


 
OpenEvent
HANDLE OpenEvent(DWORD dwDesiredAccess, BOOL bInheritHandle, LPCTSTR lpName);
Возвращаемое значение
В случае успешного завершения функции возвращается дескриптор объекта события. Если в процессе работы функции возникла ошибка, возвращается нулевое значение. Более подробную информацию об ошибке можно получить, вызвав функцию GetLastError.
Аргументы
dwDesiredAccess - определяет режим доступа к объекту события. В системах, обеспечивающих безопасность объектов, данная функция аварийно завершает свою работу, если дескриптор указанного объекта не допускает использование указанного режима доступа для вызывающего процесса. Этот аргумент может принимать одно из следующих значений:
      EVENT_ALL_ACCESS - устанавливает все возможные флаги доступа к объекту события;
      EVENT_MODIFY_STATE - обеспечивает возможность использования дескриптора объекта события в функциях SetEvent и ResetEvent, изменяющих состояние объекта события;
      SYNCHRONIZE - используется в Windows NT и позволяет использовать дескриптор объекта события в любой из функций ожидания для задания состояния объекта.
bInheritHandle - определяет возможность наследования возвращаемого дескриптора. Если этот аргумент имеет значение TRUE, то процесс, созданный функцией CreateProcess, может наследовать дескриптор. В противном случае дескриптор не может наследоваться.
lpName - указатель на заканчивающуюся нулем строку, содержащую имя открываемого объекта события. При сравнении имен учитывается регистр используемых символов.
Описание
Функция OpenEvent возвращает дескриптор существующего именованного объекта события. Данная функция позволяет нескольким процессам открывать дескрипторы одного и того же объекта события. Функция нормально завершает свою работу только в том случае, когда уже существует объект события с таким именем, созданный другим процессом с помощью функции CreateEvent. вызывающий процесс может использовать возвращаемый данной функцией дескриптор в качестве аргумента любой функции, использующей дескриптор объекта события, при условии соблюдения ограничений, налагаемых значением аргумента dwDesiredAccess. Дескриптор может быть дублирован с использованием функции DuplicateHandle. Для уничтожения дескриптора используется функция CloseHandle. Система автоматически уничтожает дескриптор при завершении процесса. Объект события уничтожается при уничтожении его последнего дескриптора.
RemoveFontResource
BOOL RemoveFontResource(LPCTSTR lpFileName);
Возвращаемое значение
В случае успешного завершения функции возвращается ненулевое значение. В противном случае возвращается нулевое значение. В Windows NT более подробную информацию об ошибке можно получить, вызвав функцию GetLastError.
Аргументы
lpFileName - указатель на заканчивающуюся нулем строку, содержащую имя файла ресурса шрифта.
Описание
Функция RemoveFontResource удаляет ресурс из системной таблицы шрифтов, записывая его в указанный файл. Любые приложения, добавляющие или удаляющие шрифты из системной таблицы шрифтов, извещают об этом другие приложения посылкой сообщения WM_FONTCHANGE всем окнам верхнего уровня в операционной системе. Для посылки этого сообщения приложение должно использовать функцию SendMessage, в аргументе hWnd которой должно стоять значение HWND_BROADCAST. Если на данный ресурс шрифта имеются ссылки из других приложений, данный ресурс останется загруженным до тех пор, пока не останется использующих его контекстов устройств.
ResetEvent
BOOL ResetEvent(HANDLE hEvent);
Возвращаемое значение
Ненулевое, если работа функции завершилась успешно. Если в процессе работы функции возникла ошибка, возвращается нулевое значение. Более подробную информацию об ошибке можно получить, вызвав функцию GetLastError.
Аргументы
hEvent - Дескриптор объекта события, возвращенный функцией CreateEvent или OpenEvent. В Windows NT этот аргумент должен иметь уровень доступа EVENT_MODIFY_STATE.
Описание
Функция ResetEvent сбрасывает отмеченное состояние объекта события. Состояние объекта события после этого остается неотмеченным до следующего вызова функции SetEvent или PulseEvent. Это неотмеченное состояние блокирует выполнение любых потоков, указавших данный объект события в аргументе функций ожидания. Данная функция используется преимущественно для ручного сброса состояния объектов. Объекты состояния, для которых определен автоматический сброс, сбрасываются после запуска первого же ожидающего потока.
SetCurrentDirectory
BOOL SetCurrentDirectory(LPCTSTR lpPathName);
Возвращаемое значение
Ненулевое, если сохранение прошло успешно. Если в процессе сохранения возникла ошибка, данная функция возвращает нулевое значение. Более подробную информацию об ошибке можно получить, вызвав функцию GetLastError.
Аргументы
lpPathName - указатель на заканчивающуюся нулем текстовую строку, содержащую путь в новый рабочий каталог. Этот параметр может быть как относительным, так и полным путем. В любом случае по данному аргументу определяется полный путь в каталог и запоминается как текущий каталог.
Описание
Функция SetCurrentDirectory изменяет рабочий каталог для текущего процесса. Каждый процесс имеет единственный рабочий каталог, имя которого состоит из двух частей:
имени диска, представляющего собой букву, соответствующую данному диску, за которой стоит символ двоеточия, или имя сервера и разделяемое имя (\\servername\sharename); имени каталога на этом диске.
SetDIBitsToDevice
int SetDIBitsToDevice(HDC hdc, int XDest, int YDest, DWORD dwWidth, DWORD dwHeight, int XSrc, int YSrc, UINT uStartScan, UINT cScanLines, CONST VOID *lpvBits, CONST BITMAPINFO *lpbmi, UINT fuColorUse);
Возвращаемое значение
В случае успешного завершения работы функции возвращается число установленных строк. В противном случае возвращается нулевое значение. В Windows NT дополнительную информацию можно получить, вызвав функцию GetLastError. В Windows 98, Windows NT 5.0 и более поздних версиях: если драйвер не поддерживает работу с файлами в формате JPEG, функция возвращает код ошибки GDI_ERROR.
Аргументы
hdc - дескриптор контекста устройства.
XDest - содержит горизонтальную координату верхнего левого угла области вывода, измеренную в логических координатах.
YDest - содержит вертикальную координату верхнего левого угла области вывода, измеренную в логических координатах.
dwWidth - содержит ширину аппаратно-независимого битового образа в логических координатах.
dwHeight - содержит высоту аппаратно-независимого битового образа в логических координатах.
XSrc - содержит горизонтальную координату нижнего левого угла аппаратно-независимого битового образа, измеренную в логических координатах.
YSrc - содержит вертикальную координату нижнего левого угла аппаратно-независимого битового образа, измеренную в логических координатах.
uStartScan - содержит начальную строку аппаратно-независимого битового образа.
cScanLines - содержит число строк аппаратно-независимого битового образа, содержащихся в массиве, на который указывает аргумент lpvBits.
lpvBits - указатель на байтовый массив аппаратно-независимого битового образа.
lpbmi - указатель на объект структуры BITMAPINFO, содержащий информацию об аппаратно-независимом битовом образе.
fuColorUse - определяет, содержит ли переменная bmiColors объекта структуры BITMAPINFO непосредственную информацию об уровнях красного, зеленого и синего цветов (RGB) или индексы текущей реализованной логической палитры. Определены следующие значения:
      DIB_PAL_COLORS - таблица цветов содержит 16-разрядные индексы текущей реализованной логической палитры;
      DIB_RGB_COLORS - таблица цветов содержит непосредственную информацию о цветах палитры.
Описание
Функция SetDIBitsToDevice выводит аппаратно-независимый битовый образ на устройстве, связанном с указанным контекстом устройства. В Windows 98 и Windows NT 5.0 возможности данной функции расширены для обеспечения возможности вывода битовых образов в формате JPEG. Оптимальная скорость вывода битового образа достигается при использовании индексов системной палитры. Для получения информации о цветах системной палитры приложение может использовать функцию GetSystemPaletteEntries. Для снижения объема оперативной памяти, необходимой для вывода аппаратно-независимых битовых образов большого размера, приложение может выводить изображение частями, используя несколько последовательных вызовов функции SetDIBitsToDevice, помещая в массив, на который указывает аргумент lpvBits, различные фрагменты выводимого образа. Функция SetDIBitsToDevice возвращает код ошибки, если она вызывается в фоновом процессе, а активным является приложение MS-DOS, работающее в полноэкранном режиме. В Windows 98, Windows NT 5.0 и более поздних версиях: если переменная biCompression объекта структуры BITMAPINFOHEADER имеет значение BI_JPEG, то аргумент lpvBits данной функции указывает на буфер, содержащий изображение в формате JPEG. В этом случае переменная biSizeImage объекта структуры BITMAPINFOHEADER содержит размер буфера изображения. Аргумент fuColorUse должен иметь при этом значение DIB_RGB_COLORS; если переменная bV4Compression объекта структуры BITMAPV4HEADER имеет значение BI_JPEG, то аргумент lpvBits данной функции указывает на буфер, содержащий изображение в формате JPEG. В этом случае переменная bV4SizeImage объекта структуры BITMAPV4HEADER содержит размер буфера изображения. Аргумент fuColorUse должен иметь при этом значение DIB_RGB_COLORS; если переменная bV5Compression объекта структуры BITMAPV5HEADER имеет значение BI_JPEG, то аргумент lpvBits данной функции указывает на буфер, содержащий изображение в формате JPEG. В этом случае переменная bV5SizeImage объекта структуры BITMAPV5HEADER содержит размер буфера изображения. Аргумент fuColorUse должен иметь при этом значение DIB_RGB_COLORS. Описание данной функции содержится в файле заголовка wingdi.h. При работе с данной функцией следует включить в проект библиотеку gdi32.lib.
 
« Предыдущая статья   Следующая статья »