Partager via


GetFileMUIInfo, fonction (winnls.h)

Récupère les informations relatives aux ressources sur un fichier.

Syntaxe

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

Paramètres

[in] dwFlags

Indicateurs spécifiant les informations à récupérer. Toute combinaison des indicateurs suivants est autorisée. La valeur par défaut des indicateurs est MUI_QUERY_TYPE | MUI_QUERY_CHECKSUM.

Valeur Signification
MUI_QUERY_TYPE
Récupérez l’une des valeurs suivantes dans le membre dwFileType de FILEMUIINFO :
  • MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL : le fichier d’entrée spécifié ne contient pas de données de configuration des ressources. Il ne s’agit donc ni d’un fichier LN ni d’un fichier de ressources propre au langage. Ce type de fichier est classique pour les fichiers exécutables plus anciens. Si ce type de fichier est spécifié, la fonction ne récupère pas d’informations utiles pour les autres types.
  • MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN. Le fichier d’entrée est un fichier LN.
  • MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI. Le fichier d’entrée est un fichier de ressources propre à la langue associé à un fichier LN.
MUI_QUERY_CHECKSUM
Récupérez la somme de contrôle des ressources du fichier d’entrée dans le membre pChecksum de FILEMUIINFO. Si le fichier d’entrée ne contient pas de données de configuration des ressources, ce membre de la structure contient 0.
MUI_QUERY_LANGUAGE_NAME
Récupérez la langue associée au fichier d’entrée. Pour un fichier de ressources spécifique à la langue, cet indicateur demande la langue associée. Pour un fichier LN, cet indicateur demande la langue des ressources de secours ultimes pour le module, qui peut se trouver soit dans le fichier LN, soit dans un fichier de ressources distinct spécifique à la langue référencé par les données de configuration des ressources du fichier LN. Pour plus d'informations, consultez la section Notes.
MUI_QUERY_RESOURCE_TYPES
Récupérez des listes de types de ressources dans les fichiers de ressources spécifiques à la langue et les fichiers LN tels qu’ils sont spécifiés dans les données de configuration des ressources. Consultez la section Remarques pour obtenir un moyen d’accéder à ces informations.

[in] pcwszFilePath

Pointeur vers une chaîne terminée par null indiquant le chemin d’accès au fichier. En règle générale, le fichier est un fichier LN ou un fichier de ressources spécifique à la langue. S’il ne s’agit pas de l’un de ces types, la seule valeur significative récupérée par la fonction est MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL. La fonction ne récupère cette valeur que si l’indicateur MUI_QUERY_RESOURCE_TYPES est défini.

[in, out, optional] pFileMUIInfo

Pointeur vers une mémoire tampon contenant des informations de fichier dans une structure FILEMUIINFO et éventuellement dans les données qui suivent cette structure. La mémoire tampon d’informations peut être beaucoup plus grande que la taille de la structure elle-même. En fonction des paramètres d’indicateur, la fonction peut stocker des informations considérables suivant la structure, à des décalages récupérés dans la structure. Pour plus d'informations, consultez la section Notes.

L’application peut également définir ce paramètre sur NULL si pcbFileMUIInfo a la valeur 0. Dans ce cas, la fonction récupère la taille requise pour la mémoire tampon d’informations dans pcbFileMUIInfo.

Note Si la valeur de pFileMUIInfo n’est pas NULL, le membre dwSize doit être défini sur la taille de la structure FILEMUIINFO (y compris la mémoire tampon d’informations ), et le membre dwVersion doit être défini sur la version actuelle de 0x001.
 

[in, out] pcbFileMUIInfo

Pointeur vers la taille de mémoire tampon, en octets, pour les informations de fichier indiquées par pFileMUIInfo. En cas de retour réussi à partir de la fonction, ce paramètre contient la taille de la mémoire tampon d’informations de fichier récupérées et la structure FILEMUIINFO qui le contient.

L’application peut également définir ce paramètre sur 0 si elle définit NULL dans pFileMUIInfo. Dans ce cas, la fonction récupère la taille de mémoire tampon d’informations de fichier requise dans pcbFileMUIInfo. Pour allouer la quantité de mémoire correcte, cette valeur doit être ajoutée à la taille de la structure FILEMUIINFO elle-même.

Note La valeur de ce paramètre doit correspondre à la valeur du membre dwSize de FILEMUIINFO si la valeur de pFileMUIInfo n’est pas NULL.
 

Valeur retournée

Retourne TRUE si elle réussit ou FALSE dans le cas contraire. Pour obtenir des informations d’erreur étendues, l’application peut appeler GetLastError.

Remarques

Pour l’indicateur MUI_QUERY_LANGUAGE_NAME, cette fonction récupère un décalage, en octets, à partir du début de FILEMUIINFO dans le membre dwLanguageNameOffset .

Voici un exemple de code qui accède au nom de langue associé au fichier d’entrée :

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

Pour l’indicateur MUI_QUERY_RESOURCE_TYPES, cette fonction récupère les informations de fichier de ressources spécifiques à la langue dans les membres FILEMUIINFO suivants :

  • Le membre dwTypeIDMUIOffset contient le décalage vers un tableau d’identificateurs de ressources contenus dans le fichier de ressources spécifique à la langue.
  • Le membre dwTypeIDMUISize contient la taille du tableau d’identificateurs de ressource pour le fichier de ressources spécifique à la langue.
  • Le membre dwTypeNameMUIOffset contient le décalage vers un tableau de noms de ressources contenus dans le fichier de ressources spécifique à la langue.
Si le fichier d’entrée est un fichier LN, la fonction remplit tous les membres de structure ci-dessus. En outre, il remplit les membres suivants :
  • Le membre dwTypeIDMainOffset contient le décalage vers un tableau d’identificateurs de ressources contenus dans le fichier LN.
  • Le membre dwTypeIDMainSize contient la taille du tableau d’identificateurs de ressources pour le fichier LN.
  • Le membre dwTypeNameMainOffset contient le décalage vers un tableau de noms de ressources contenus dans le fichier.
Voici un exemple de code qui accède au tableau d’identificateurs de ressources dans le fichier LN.
DWORD *pdwTypeID = reinterpret_cast<DWORD *>(
        reinterpret_cast<BYTE*>(pFileMUIInfo) +
        pFileMUIInfo->dwTypeIDMainOffset);

Note Les listes de ressources spécifiques à la langue sont accessibles de la même manière.
 
Voici un exemple de code pour accéder au tableau multistring de noms de ressources dans le fichier LN.
LPWSTR lpszNames = reinterpret_cast<LPWSTR>(
        reinterpret_cast<BYTE*>(pFileMUIInfo) +
        pFileMUIInfo->dwTypeNameMainOffset);

Note Les listes de ressources spécifiques à la langue sont accessibles de la même manière.
 
Chacun des exemples de code utilise deux casts réinterprétés. Tout d’abord, le code est converti en BYTE* afin que le pointeur arithmétique pour le décalage soit effectué en octets. Ensuite, le code caste le pointeur résultant vers le type souhaité.

Une autre approche consiste à écrire ce qui suit au lieu du code indiqué dans les exemples. L’effet est le même et le choix est strictement de style.

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

C# Signature

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winnls.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

FILEMUIINFO

GetThreadUILanguage

Interface utilisateur multilingue

Fonctions d’interface utilisateur multilingues

SetThreadPreferredUILanguages

SetThreadUILanguage