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


 
EnumFontFamilies
int EnumFontFamilies(HDC hdc, LPCTSTR lpszFamily, FONTENUMPROC lpEnumFontFamProc, LPARAM lParam);
Возвращаемое значение
Значение, возвращенное последней функцией обратного вызова. Трактовка этого значения зависит от контекста, в котором была вызвана данная функция.
Аргументы
hdc - дескриптор контекста устройства.
lpszFamily - указатель на заканчивающуюся нулем текстовую строку, определяющую имя семейства запрошенных шрифтов. Если аргумент lpszFamily имеет нулевое значение, то функция EnumFontFamilies случайным образом выбирает и нумерует по одному шрифту для каждого доступного семейства типов шрифтов.
lpEnumFontFamProc - определяет адрес экземпляра процедуры определенной в приложении функции обратного вызова. Функции обратного вызова описаны при рассмотрении функции EnumFontFamProc.
lParam - указатель на блок данных. Структура блока данных определяется приложением. Эти данные передаются функции обратного вызова вместе с информацией о шрифте.
Описание
Функция EnumFontFamilies нумерует шрифты в указанном семействе шрифтов, доступном на указанном устройстве. Функции EnumFontFamilies и EnumFontFamProc оставлены для обеспечения совместимости с 16-разрядными версиями Windows. Приложения Win32 должны использовать функцию EnumFontFamiliesEx. Функция EnumFontFamilies позволяет получить информацию по каждому шрифту, семейство которого указано в аргументе lpszFamily, и передать эту информацию функции, указанной в аргументе lpEnumFontFamProc. Определенная в приложении функция обратного вызова может производить любую обработку полученной информации о шрифте. Нумерация шрифтов продолжается до тех пор, пока не останется необработанных шрифтов или пока функция обратного вызова не возвратит нулевое значение.
FreeLibrary
BOOL FreeLibrary(HMODULE hModule);
Возвращаемое значение
В случае успешного завершения работы возвращает ненулевое значение. В противном случае возвращает нулевое значение. Для получения более подробной информации об ошибке вызовите функцию GetLastError.
Аргументы
hModule - дескриптор модуля загруженной библиотеки динамической компоновки, возвращенный функцией LoadLibrary или GetModuleHandle.
Описание
Данная функция уменьшает на единицу счетчик ссылок загруженной библиотеки динамической компоновки. Как только значение этого счетчика достигнет нуля, модуль удаляется из адресного пространства процесса, а его дескриптор становится некорректным. Каждый процесс поддерживает счетчик ссылок для каждого загруженного им модуля библиотеки динамической компоновки. Значение этого счетчика увеличивается на единицу при каждом вызове функции LoadLibrary и уменьшается на единицу при каждом вызове функции FreeLibrary. После загрузки модуля библиотеки динамической компоновки его счетчик ссылок имеет единичное значение. При удалении модуля библиотеки динамической компоновки из адресного пространства процесса система вызывает его функцию DllMain (если таковая имеется) с аргументом DLL_PROCESS_DETACH. Это позволяет библиотеке динамической компоновки освободить все ресурсы, выделенные ей процессом. После завершения работы этой функции библиотечный модуль удаляется из адресного пространства процесса. Поэтому не рекомендуется вызывать данную функцию из функции DllMain. Вызов функции FreeLibrary не оказывает никакого действия на другие процессы, использующие тот же модуль библиотеки динамической компоновки.
GetCurrentDirectory
DWORD GetCurrentDirectory(DWORD nBufferLength, LPTSTR lpBuffer);
Возвращаемое значение
Если функция завершается успешно, возвращается количество символов, записанное в буфер, исключая завершающий строку нулевой символ. В противном случае возвращается нулевое значение. Дополнительную информацию по ошибке можно получить, вызвав функцию GetLastError. Если текстовый буфер, на который указывает аргумент lpBuffer, имеет недостаточный размер, возвращаемое значение определяет требуемый размер буфера, включая байты, необходимые для размещения завершающего строку нулевого символа.
Аргументы
nBufferLength - определяет размер буфера для хранения строки, содержащей текущий каталог, выраженный в символах. Размер буфера должен учитывать необходимость записи в него завершающего строку нулевого символа.
lpBuffer - указатель на буфер для хранения строки, содержащей текущий каталог. В данный буфер будет записана тестовая строка, завершающаяся нулевым символом, и содержащая абсолютный путь к текущему каталогу.
Описание
Функция GetCurrentDirectory позволяет получить путь к текущему каталогу данного процесса.
GetDlgItem
HWND GetDlgItem(HWND hDlg, int nIDDlgItem);
Возвращаемое значение
В случае успешного завершения функции возвращается дескриптор окна указанного элемента управления. В противном случае возвращается нулевое значение, указывающее на то, что в качестве аргументов данной функции были использованы дескриптор несуществующего диалогового окна или идентификатор несуществующего элемента управления. Дополнительную информацию по ошибке можно получить, вызвав функцию GetLastError.
Аргументы
hDlg - дескриптор диалогового окна, содержащего данный элемент управления.
nIDDlgItem - идентификатор элемента управления, дескриптор которого требуется получить.
Описание
Функция GetDlgItem позволяет получить дескриптор окна элемента управления в указанном диалоговом окне. Данная функция может использоваться для любой пары родительского и диалогового окна, а не только в диалоговых окнах. В тех случаях, когда аргумент hDlg определяет родительское окно, а дочернее окно имеет уникальный идентификатор (определяемый аргументом hMenu в функциях CreateWindow или CreateWindowEx при создании дочернего окна), функция GetDlgItem возвращает корректный дескриптор соответствующего дочернего окна.
GetExitCodeThread
BOOL GetExitCodeThread(HANDLE hThread, LPDWORD lpExitCode);
Возвращаемое значение
Ненулевое, если функция успешно завершает свою работу, и нулевое в противном случае. Дополнительную информацию по ошибке можно получить, вызвав функцию GetLastError.
Аргументы
hThread - дескриптор потока. В Windows NT дескриптор должен иметь уровень доступа THREAD_QUERY_INFORMATION.
lpExitCode - указатель на 32-разрядную величину, в которую будет записан код завершения потока.
Описание
Функция GetExitCodeThread позволяет получить код завершения указанного потока. Если указанный поток еще не завершил свою работу, код завершения имеет значение STILL_ACTIVE. Если поток завершил свою работу, то его код завершения может иметь следующие значения:
код завершения, указанный в качестве аргумента функции ExitThread или TerminateThread;. возвращаемое значение исполняющей функции потока; код завершения процесса потока.
GetLastError
DWORD GetLastError(VOID)
Возвращаемое значение
Данная функция возвращает значение кода последней ошибки, возникшей в вызывающем потоке. Функция устанавливает это значение с помощью вызова функции SetLastError. Раздел Возвращаемое значение справки по каждой функции содержит условия, при которых данная функция устанавливает код последней ошибки. Поскольку функция SetLastError является исключительно 32-разрядной функцией, функции Win32, представляющие собой скрытый вызов 16-разрядных функций, не устанавливают код последней ошибки. В этих функциях необходимо игнорировать эту величину. К подобным функциям относятся функции работы с окнами, функции GDI и функции работы с устройствами мультимедиа.
Описание
Функция GetLastError возвращает значение кода последней ошибки, возникшей в вызывающем потоке. Каждый поток имеет свой код последней ошибки. Вызов функции GetLastError должен следовать немедленно после возврата любой функцией значения, свидетельствующего о том, что при ее выполнении произошла ошибка. Это необходимо потому, что некоторые функции вызывают функцию SetLastError(0) в случае своего успешного завершения, что приводит к уничтожению кода ошибки, установленного предыдущей функцией. Большинство функций Win32 API устанавливают код последней ошибки в случае возникновения ошибки, но некоторые устанавливают его в случае своего нормального завершения. Ошибка при выполнении функции индицируется, обычно следующими кодами ошибки: FALSE, NULL, 0xFFFFFFFF или -1. Все случаи, когда функция вызывает функцию SetLastError при своем нормальном завершении, отмечены в справке по этой функции. Коды ошибок представляют собой 32-разрядные величины (бит 31 является старшим битом). Бит 29 зарезервирован для кодов ошибок, определяемых пользователем, поэтому при определении собственного кода ошибки пользователь должен установить этот бит в единицу. Чтобы получить строку, описывающую ошибку, по ее коду нужно вызвать функцию FormatMessage.
GetMenuContextHelpId
DWORD GetMenuContextHelpId(HMENU hmenu);
Возвращаемое значение
Возвращает контекстный идентификатор справки, если такой идентификатор связан с данным меню, и ноль в противном случае.
Аргументы
hmenu - дескриптор меню, для которого необходимо получить контекстный идентификатор справки.
Описание
Позволяет получить контекстный идентификатор справки для указанного меню.
 
« Предыдущая статья   Следующая статья »