ФункцииListResourceTypes иWndProc в ENUMRTYP.C |
|||||||||
cm. \local-sources\chap07\07-05.txt |
|||||||||
FindResource • Windows 98 • Windows 2000 |
|||||||||
Описание |
Ресурс можно загрузить в память для использования только после того, как он будет найден. Функция FindResource находит ресурс с данным именем в данном модуле и возвращает дескриптор ресурса. Эта функция применяется в сочетании с функцией LoadResource для загрузки ресурсов в память и дальнейшего их использования. |
||||||||
Синтаксис |
HRSRC FindResource( HMODULE hModule, LPCTSTR IpszName, LPCTSTR IpszType ) |
||||||||
Параметры |
|||||||||
hModule |
HMODULE. Дескриптор экземпляра модуля, который содержит ресурс. Это может быть приложение или динамически загружаемая библиотека (DLL). Должен быть установлен в NULL для текущего приложения. |
||||||||
IpszName |
LPCTSTR. Указатель на символьную строку с нулевым символом в конце, содержащую имя ресурса. Это — имя, указанное слева от строки определения ресурса в файле ресурса (RC). Для целочисленных идентификаторов ресурса применяется макрокоманда MAKEINTRESOURCE. |
||||||||
IpszType |
LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую тип ресурса, который должен быть найден. Для стандартных типов ресурса этот параметр может иметь одно из значений, приведенных в табл. 7.2, за исключением RT_VXD. |
||||||||
Возвращаемое значение |
HRSRC. Дескриптор ресурса в файле ресурса. NULL, если ресурс не мог быть найден. Этот дескриптор отличен от дескриптора памяти загруженного ресурса. Для получения дескриптора памяти применяется функция LoadResource. |
||||||||
Включаемый файл |
winbase.h |
||||||||
См. также |
FindResourceEx, LoadResource |
||||||||
Пример |
В следующем примере выполняется поиск ресурса типа RCDATA с помощью функции FindResource, а затем его загрузка с помощью функции LoadResource. Идентификатором ресурса типа RCDATA, определенного в файле описания ресурса приложения, является "TestData". Для доступа к памяти, распределенной для этого ресурса, применяется структура RESDATA |
||||||||
Данные ресурса в файле описания ресурса |
|||||||||
TestData RCDATA DISCARDABLE BEGIN 0x0001, 0x0002, 0x0003 END |
|||||||||
Структура данных в файле заголовка |
|||||||||
typedef struct { SHORT Valuel; SHORT Value2; SHORT Value3; } RESDATA; |
|||||||||
Функция WndProc |
|||||||||
cm. \local-sources\chap07\07-06. txt |
|||||||||
FindResourceEx • Windows 98 • Windows 2000 |
|||||||||
Описание |
Система Windows поддерживает многоязычные ресурсы, позволяя поставлять приложение во многие страны. Функция FindResourceEx аналогична функции FindResource, за исключением того, что она выполняет поиск ресурсов только для указанного языка. |
||||||||
Синтаксис |
HRSRC FindResourceEx( HMODULE hModule, LPCTSTR IpszType, LPCTSTR IpszName, WORD wLanguage ) |
||||||||
Параметры |
|||||||||
hModule |
HMODULE. Дескриптор экземпляра модуля, который содержит ресурс. Это может быть приложение или динамически загружаемая библиотека (DLL). Должен быть установлен в NULL для текущего приложения. |
||||||||
IpszType |
LPCTSTR. Указатель на строку с нулевым символом в конце, содержащую тип ресурса, который должен быть найден. Для стандартных типов ресурса этот параметр может иметь одно из значений, перечисленных в табл. 7.2, за исключением RT_VXD. |
||||||||
IpszName |
LPCTSTR. Указатель на символьную строку с нулевым символом в конце, содержащую имя ресурса. |
||||||||
wLanguage |
WORD. Указывает язык ресурса. Если параметр wLanguageимеет значение MAKELANGID (LANG_NEUTRAL, SUBLANG_NEUTRAL), используется текущий язык, связанный с вызывающей нитью. При указании языка, отличного от текущего, используется макрокоманда MAKELANGID для создания этого параметра на основе значений, перечисленных в описании функции EnumResourceLanguages. |
||||||||
Возвращаемое значение |
HRSRC. Дескриптор ресурса в файле ресурса. NULL, если ресурс не найден. |
||||||||
Включаемый файл |
winbase.h |
||||||||
См. также |
FindResource, LoadResource |
||||||||
Пример |
См. пример для функции EnumResourceLanguages. |
||||||||
LoadResource * Windows 98 * Windows 2000 |
|||||||||
Описание |
Данные ресурса должны быть загружены в память, прежде чем их можно будет использовать. Функция LoadResource загружает ресурс, который был найден с использованием функции FindResource или FindResourceEx. |
||||||||
Синтаксис |
HGLOBAL LoadResource( HMODULE hModule, HRSRC hResInfo ) |
||||||||
Параметры |
|||||||||
hModule |
HMODULE. Дескриптор экземпляра модуля, который содержит загружаемый ресурс. Если этот параметр имеет значение NULL, ресурс загружается из модуля, который использовался щ\я создания текущего процесса. |
||||||||
liResInfo |
HRSRC. Дескриптор ресурса, который будет загружен. Этот дескриптор должен быть создан с использованием функции FindResource или FindResourceEx. |
||||||||
Возвращаемое значение |
HGLOBAL. Дескриптор глобальною блока памяти, который содержит загруженный ресурс. Возвращаемое значение — NULL, если ресурс не мог быть загружен. |
||||||||
Включаемый файл |
winbase.h |
||||||||
См. также |
FindResource, FindResourceEx, LockResource |
||||||||
Пример |
См. примеры для функций FindResource и EnumResourceLanguages. |
||||||||
LoadString • Windows 98 • Windows 2000 |
|||||||||
Описание |
Строки в файле ресурса программы размещаются в виде таблицы строк. Каждая строка получает идентификационное значение, которое обычно определено в файле заголовка программы. Функция LoadString копирует строку из файла ресурса в буфер, чтобы с ней можно было выполнить необходимые действия и отобразить. Наилучшим местом хранения строковых констант являются файлы ресурсов. Этот метод хранения позволяет экономить память и в значительной степени упрощает редактирование или перевод строк на другие языки. |
||||||||
Синтаксис |
int LoadString( HINSTANCE hinst, UINT uID, LPTSTR IpBuffer, int nBuffer ) |
||||||||
Параметры |
|||||||||
hinst |
HINSTANCE. Дескриптор экземпляра модуля, который содержит ресурс строки. |
||||||||
иШ |
UINT. Идентификационное значение для строки в таблице строк. Этот параметр обозначает позицию слева от строки в файле ресурса. |
||||||||
IpBuffer |
LPTSTR. Указатель на буфер, который примет символьную строку. Буфер должен иметь длину не менее nBuffer символов типа TCHAR. |
||||||||
nBuffer |
int. Максимальное число символов типа TCHAR, которые должны быть скопированы в буфер IpBuffer. |
||||||||
Возвращаемое значение |
int. Число символов типа TCHAR, скопированных в буфер, без учета нулевого символа, обозначающего конец строки. В случае ошибки возвращаемое значение — 0. |
||||||||
Включаемый файл |
winuser.h |
||||||||
См. также |
LoadResource |
||||||||
Пример |
В следующем примере таблица строк применяется для создания массива строк, доступ к которым может быть получен с помощью функции LoadString. При выборе пункта меню Test! загружается каждая из строк таблицы строк и отображается в окне сообщения. |
||||||||
Данные ресурса в файле описания ресурса |
|||||||||
STRINGTABLE BEGIN IDS_STRINGBASE+0 "This is String 1" IDS_STRINGBASE+1 "This is String 2" IDS STRINGBASE+2 "This is String 3" END |
|||||||||
Функция WndProc |
|||||||||
cm. \local-sources\chap07\07-07. txt |
|||||||||
LockResource + Windows 98 * Windows 2000 |
|||||||||
Описание |
Функция LockResource блокирует ресурс, загруженный в память с помощью функции LoadResource, и возвращает указатель на адрес соответствующего блока памяти. В приложениях на основе Win32 нет необходимости разблокировать ресурсы, заблокированные с помощью функции LockResource. Попытка заблокировать ресурс с помощью дескриптора, возвращенного функцией FindResource или FindResourceEx, окажется неудачной и будет возвращено значение, которое является недействительным и указывает на случайные данные. |
||||||||
Синтаксис |
LPVOID LockResource( HGLOBAL hglb ) |
||||||||
Параметры |
|||||||||
hglb |
HGLOBAL. Дескриптор ресурса, который должен быть заблокирован. Этот дескриптор возвращает функция LoadResource. |
||||||||
Возвращаемое значение |
LPVOID. В случае успешного выполнения — указатель на первый байт ресурса; в ином случае возвращаемое значение — NULL. |
||||||||
Включаемый файл |
winbase.h |
||||||||
См. также |
LoadResource, FindResource |
||||||||
Пример |
См. примеры для функций FindResource и EnumResourceLanguages. |
||||||||
SizeofResource • Windows 98 • Windows 2000 |
|||||||||
Описание |
Функция SizeofResource возвращает размер указанного ресурса в байтах. Поскольку может быть выполнено выравнивание данных по некоторой границе, это значение может не отображать действительный размер, и на него не следует полагаться. Эта функция применялась с функциями AllocResource |
||||||||
и AccessResource, которые в Win32 являются устаревшими. Однако она используется для оценки размера ресурса, найденного с помощью функции FindResource или FindResourceEx. |
|||||||||
Синтаксис |
DWORD SizeofResource( HMODULE hModule, HRSRC hrsrc ) |
||||||||
Параметры |
|||||||||
hModule |
HMODULE. Дескриптор экземпляра модуля, который содержит ресурс. |
||||||||
hrsrc |
HRSRC. Дескриптор ресурса, который был возвращен функцией Find-Resource или FindResourceEx. |
||||||||
Возвращаемое значение |
DWORD. В случае успешного выполнения — число байтов в ресурсе; в ином случае — 0. |
||||||||
Включаемый файл |
winbase.li |
||||||||
См. также |
FindResource, FindResourceEx |
||||||||
Пример |
См. пример для функции FindResource. |
||||||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.