Share via


GetFileMUIInfo-Funktion (winnls.h)

Ruft ressourcenbezogene Informationen zu einer Datei ab.

Syntax

BOOL GetFileMUIInfo(
  [in]                DWORD        dwFlags,
  [in]                PCWSTR       pcwszFilePath,
  [in, out, optional] PFILEMUIINFO pFileMUIInfo,
  [in, out]           DWORD        *pcbFileMUIInfo
);

Parameter

[in] dwFlags

Flags, die die abzurufenden Informationen angeben. Jede Kombination der folgenden Flags ist zulässig. Der Standardwert der Flags ist MUI_QUERY_TYPE | MUI_QUERY_CHECKSUM.

Wert Bedeutung
MUI_QUERY_TYPE
Rufen Sie einen der folgenden Werte im dwFileType-Member von FILEMUIINFO ab:
  • MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL: Die angegebene Eingabedatei enthält keine Ressourcenkonfigurationsdaten. Daher handelt es sich weder um eine LN-Datei noch um eine sprachspezifische Ressourcendatei. Dieser Dateityp ist typisch für ältere ausführbare Dateien. Wenn dieser Dateityp angegeben ist, ruft die Funktion keine nützlichen Informationen für die anderen Typen ab.
  • MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN. Die Eingabedatei ist eine LN-Datei.
  • MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI. Die Eingabedatei ist eine sprachspezifische Ressourcendatei, die einer LN-Datei zugeordnet ist.
MUI_QUERY_CHECKSUM
Rufen Sie die Ressourcenprüfsumme der Eingabedatei im pChecksum-Element von FILEMUIINFO ab. Wenn die Eingabedatei keine Ressourcenkonfigurationsdaten enthält, enthält dieser Member der -Struktur 0.
MUI_QUERY_LANGUAGE_NAME
Rufen Sie die Sprache ab, die der Eingabedatei zugeordnet ist. Für eine sprachspezifische Ressourcendatei fordert dieses Flag die zugeordnete Sprache an. Für eine LN-Datei fordert dieses Flag die Sprache der ultimativen Fallbackressourcen für das Modul an, die sich entweder in der LN-Datei oder in einer separaten sprachspezifischen Ressourcendatei befinden kann, auf die durch die Ressourcenkonfigurationsdaten der LN-Datei verwiesen wird. Weitere Informationen finden Sie im Abschnitt mit Hinweisen.
MUI_QUERY_RESOURCE_TYPES
Ruft Listen von Ressourcentypen in den sprachspezifischen Ressourcendateien und LN-Dateien ab, wie sie in den Ressourcenkonfigurationsdaten angegeben sind. Eine Möglichkeit zum Zugriff auf diese Informationen finden Sie im Abschnitt Hinweise.

[in] pcwszFilePath

Zeiger auf eine NULL-endende Zeichenfolge, die den Pfad zur Datei angibt. In der Regel ist die Datei entweder eine LN-Datei oder eine sprachspezifische Ressourcendatei. Wenn es sich nicht um einen dieser Typen handelt, ist der einzige signifikante Wert, den die Funktion abruft, MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL. Die Funktion ruft diesen Wert nur ab, wenn das flag MUI_QUERY_RESOURCE_TYPES festgelegt ist.

[in, out, optional] pFileMUIInfo

Zeiger auf einen Puffer, der Dateiinformationen in einer FILEMUIINFO-Struktur und möglicherweise in Daten enthält, die dieser Struktur folgen. Der Informationspuffer muss möglicherweise viel größer sein als die Größe der Struktur selbst. Abhängig von den Flageinstellungen kann die Funktion erhebliche Informationen nach der -Struktur speichern, an Offsets, die in der -Struktur abgerufen werden. Weitere Informationen finden Sie im Abschnitt mit Hinweisen.

Alternativ kann die Anwendung diesen Parameter auf NULL festlegen, wenn pcbFileMUIInfo auf 0 festgelegt ist. In diesem Fall ruft die Funktion die erforderliche Größe für den Informationspuffer in pcbFileMUIInfo ab.

Hinweis Wenn der Wert von pFileMUIInfo nicht NULL ist, muss der dwSize-Member auf die Größe der FILEMUIINFO-Struktur (einschließlich des Informationspuffers) festgelegt werden, und der dwVersion-Member muss auf die aktuelle Version von 0x001 festgelegt werden.
 

[in, out] pcbFileMUIInfo

Zeiger auf die Puffergröße in Bytes für die Dateiinformationen, die durch pFileMUIInfo angegeben werden. Bei erfolgreicher Rückgabe von der Funktion enthält dieser Parameter die Größe des abgerufenen Dateiinformationspuffers und die FILEMUIINFO-Struktur , die ihn enthält.

Alternativ kann die Anwendung diesen Parameter auf 0 festlegen, wenn sie NULL in pFileMUIInfo festlegt. In diesem Fall ruft die Funktion die erforderliche Größe des Dateiinformationspuffers in pcbFileMUIInfo ab. Um die richtige Arbeitsspeichermenge zuzuweisen, sollte dieser Wert der Größe der FILEMUIINFO-Struktur selbst hinzugefügt werden.

Hinweis Der Wert dieses Parameters muss mit dem Wert des dwSize-Elements von FILEMUIINFO übereinstimmen, wenn der Wert von pFileMUIInfo nicht NULL ist.
 

Rückgabewert

Gibt TRUE zurück, wenn dies erfolgreich war, oder andernfalls FALSE . Um erweiterte Fehlerinformationen zu erhalten, kann die Anwendung GetLastError aufrufen.

Hinweise

Für das flag MUI_QUERY_LANGUAGE_NAME ruft diese Funktion einen Offset in Bytes vom Anfang von FILEMUIINFO im dwLanguageNameOffset-Element ab.

Im folgenden Beispielcode wird auf den Sprachnamen zugegriffen, der der Eingabedatei zugeordnet ist:

LPWSTR lpszLang = reinterpret_cast<LPWSTR>(
        reinterpret_cast<BYTE*>(pFileMUIInfo) +
        pFileMUIInfo->dwLanguageNameOffset);

Für das MUI_QUERY_RESOURCE_TYPES-Flag ruft diese Funktion sprachspezifische Ressourcendateiinformationen in den folgenden FILEMUIINFO-Membern ab:

  • Das dwTypeIDMUIOffset-Element enthält den Offset zu einem Array von Bezeichnern von Ressourcen, die in der sprachspezifischen Ressourcendatei enthalten sind.
  • Der dwTypeIDMUISize-Member enthält die Größe des Arrays von Ressourcenbezeichnern für die sprachspezifische Ressourcendatei.
  • Das dwTypeNameMUIOffset-Element enthält den Offset zu einem Array von Ressourcennamen, die in der sprachspezifischen Ressourcendatei enthalten sind.
Wenn es sich bei der Eingabedatei um eine LN-Datei handelt, füllt die Funktion alle oben genannten Strukturmember aus. Darüber hinaus werden die folgenden Member ausgefüllt:
  • Das dwTypeIDMainOffset-Element enthält den Offset zu einem Array von Bezeichnern von Ressourcen, die in der LN-Datei enthalten sind.
  • Das dwTypeIDMainSize-Element enthält die Größe des Arrays von Ressourcenbezeichnern für die LN-Datei.
  • Der dwTypeNameMainOffset-Member enthält den Offset zu einem Array von Namen von Ressourcen, die in der Datei enthalten sind.
Der folgende Beispielcode greift auf das Array von Ressourcenbezeichnern in der LN-Datei zu.
DWORD *pdwTypeID = reinterpret_cast<DWORD *>(
        reinterpret_cast<BYTE*>(pFileMUIInfo) +
        pFileMUIInfo->dwTypeIDMainOffset);

Hinweis Auf die Listen sprachspezifischer Ressourcen wird auf die gleiche Weise zugegriffen.
 
Im Folgenden wird ein Beispielcode für den Zugriff auf das Multistring-Array von Ressourcennamen in der LN-Datei gezeigt.
LPWSTR lpszNames = reinterpret_cast<LPWSTR>(
        reinterpret_cast<BYTE*>(pFileMUIInfo) +
        pFileMUIInfo->dwTypeNameMainOffset);

Hinweis Auf die Listen sprachspezifischer Ressourcen wird auf die gleiche Weise zugegriffen.
 
Jedes der Codebeispiele verwendet zwei neu interpretierte Umwandlungen. Zuerst wird der Code in BYTE* umgewandelt, sodass die Zeigerarithmetik für den Offset in Bytes erfolgt. Anschließend wandelt der Code den resultierenden Zeiger auf den gewünschten Typ um.

Ein anderer Ansatz besteht darin, anstelle des in den Beispielen gezeigten Codes Folgendes zu schreiben. Der Effekt ist der gleiche, und die Wahl ist streng eine der Stile.

DWORD ix = pFileMUIInfo->dwLanguageNameOffset - 
        offsetof(struct _FILEMUIINFO, abBuffer);
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(&(pFileMUIInfo->abBuffer[ix]));

C#-Signatur

[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
        static extern System.Boolean GetFileMUIInfo(
            System.UInt32 dwFlags,
            System.String pcwszFilePath,
            ref FILEMUIINFO pFileMUIInfo,
            ref System.UInt32 pcbFileMUIInfo
            );

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winnls.h (windows.h einschließen)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

FILEMUIINFO

GetThreadUILanguage

Multilingual User Interface

Mehrsprachige Benutzeroberflächenfunktionen

SetThreadPreferredUILanguages

SetThreadUILanguage