Функция GetFileMUIInfo (winnls.h)
Извлекает сведения о файле, связанные с ресурсами.
Синтаксис
BOOL GetFileMUIInfo(
[in] DWORD dwFlags,
[in] PCWSTR pcwszFilePath,
[in, out, optional] PFILEMUIINFO pFileMUIInfo,
[in, out] DWORD *pcbFileMUIInfo
);
Параметры
[in] dwFlags
Флаги, указывающие извлекаемую информацию. Допускается любое сочетание следующих флагов. Значение флагов по умолчанию — MUI_QUERY_TYPE | MUI_QUERY_CHECKSUM.
Значение | Значение |
---|---|
|
Получите одно из следующих значений в элементе dwFileTypeобъекта FILEMUIINFO:
|
|
Получение контрольной суммы ресурса входного файла в элементе pChecksumfileMUIINFO. Если входной файл не содержит данных конфигурации ресурсов, этот элемент структуры содержит значение 0. |
|
Получение языка, связанного с входным файлом. Для файла ресурсов для конкретного языка этот флаг запрашивает связанный язык. Для LN-файла этот флаг запрашивает язык конечных резервных ресурсов для модуля, который может находиться в LN-файле или в отдельном файле ресурсов для конкретного языка, на который ссылаются данные конфигурации ресурсов LN-файла. Дополнительные сведения см. в разделе «Примечания». |
|
Получение списков типов ресурсов в файлах ресурсов для конкретного языка и LN-файлах, указанных в данных конфигурации ресурсов. Сведения о том, как получить доступ к этой информации, см. в разделе Примечания. |
[in] pcwszFilePath
Указатель на строку, завершающуюся null, указывающую путь к файлу. Обычно файл является файлом LN или файлом ресурсов для конкретного языка. Если это не один из этих типов, единственным значимым значением, которое извлекает функция, является MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL. Функция получает это значение только в том случае, если установлен флаг MUI_QUERY_RESOURCE_TYPES.
[in, out, optional] pFileMUIInfo
Указатель на буфер, содержащий сведения о файлах в структуре FILEMUIINFO и, возможно, в данных, следующих за этой структурой. Информационный буфер может быть гораздо больше размера самой структуры. В зависимости от параметров флага функция может хранить значительные сведения, следующие за структурой, при смещениях, полученных в структуре. Дополнительные сведения см. в разделе «Примечания».
Кроме того, приложение может задать для этого параметра значение NULL , если pcbFileMUIInfo имеет значение 0. В этом случае функция извлекает необходимый размер информационного буфера в pcbFileMUIInfo.
[in, out] pcbFileMUIInfo
Указатель на размер буфера (в байтах) для сведений о файле, указанных pFileMUIInfo. При успешном возвращении из функции этот параметр содержит размер буфера сведений о файлах и структуру FILEMUIINFO , которая его содержит.
Кроме того, приложение может задать для этого параметра значение 0, если в pFileMUIInfo задано значение NULL. В этом случае функция извлекает требуемый размер буфера сведений о файле в pcbFileMUIInfo. Чтобы выделить правильный объем памяти, это значение должно быть добавлено к размеру самой структуры FILEMUIINFO .
Возвращаемое значение
Возвращает значение TRUE в случае успешного выполнения или FALSE в противном случае. Чтобы получить расширенные сведения об ошибке, приложение может вызвать GetLastError.
Комментарии
Для флага MUI_QUERY_LANGUAGE_NAME эта функция получает смещение в байтах от начала FILEMUIINFO в элементе dwLanguageNameOffset .
Ниже приведен пример кода, который обращается к имени языка, связанному с входным файлом:
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(
reinterpret_cast<BYTE*>(pFileMUIInfo) +
pFileMUIInfo->dwLanguageNameOffset);
Для флага MUI_QUERY_RESOURCE_TYPES эта функция получает сведения о файле ресурсов для конкретного языка в следующих элементах FILEMUIINFO :
- Элемент dwTypeIDMUIOffset содержит смещение в массив идентификаторов ресурсов, содержащихся в файле ресурсов для конкретного языка.
- Член dwTypeIDMUISize содержит размер массива идентификаторов ресурсов для файла ресурсов для конкретного языка.
- Элемент dwTypeNameMUIOffset содержит смещение в массив имен ресурсов, содержащихся в файле ресурсов для конкретного языка.
- Член dwTypeIDMainOffset содержит смещение в массив идентификаторов ресурсов, содержащихся в LN-файле.
- Элемент dwTypeIDMainSize содержит размер массива идентификаторов ресурсов для LN-файла.
- Элемент dwTypeNameMainOffset содержит смещение до массива имен ресурсов, содержащихся в файле.
DWORD *pdwTypeID = reinterpret_cast<DWORD *>(
reinterpret_cast<BYTE*>(pFileMUIInfo) +
pFileMUIInfo->dwTypeIDMainOffset);
LPWSTR lpszNames = reinterpret_cast<LPWSTR>(
reinterpret_cast<BYTE*>(pFileMUIInfo) +
pFileMUIInfo->dwTypeNameMainOffset);
Другой подход заключается в написании следующего вместо кода, показанного в примерах. Эффект тот же, и выбор строго один из стилей.
DWORD ix = pFileMUIInfo->dwLanguageNameOffset -
offsetof(struct _FILEMUIINFO, abBuffer);
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(&(pFileMUIInfo->abBuffer[ix]));
Подпись C#
[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
static extern System.Boolean GetFileMUIInfo(
System.UInt32 dwFlags,
System.String pcwszFilePath,
ref FILEMUIINFO pFileMUIInfo,
ref System.UInt32 pcbFileMUIInfo
);
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | winnls.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |
См. также
Многоязыковой интерфейс пользователя