STRUCTURE FILEMUIINFO (winnls.h)
Contient des informations sur un fichier, liées à son utilisation avec MUI. La plupart de ces données sont stockées dans les données de configuration des ressources pour le fichier particulier. Lorsque cette structure est récupérée par GetFileMUIInfo, tous les champs ne sont pas nécessairement renseignés. Les champs utilisés dépendent des indicateurs que l’application a transmis à cette fonction.
Syntaxe
typedef struct _FILEMUIINFO {
DWORD dwSize;
DWORD dwVersion;
DWORD dwFileType;
BYTE pChecksum[16];
BYTE pServiceChecksum[16];
DWORD dwLanguageNameOffset;
DWORD dwTypeIDMainSize;
DWORD dwTypeIDMainOffset;
DWORD dwTypeNameMainOffset;
DWORD dwTypeIDMUISize;
DWORD dwTypeIDMUIOffset;
DWORD dwTypeNameMUIOffset;
BYTE abBuffer[8];
} FILEMUIINFO, *PFILEMUIINFO;
Membres
dwSize
Taille de la structure, y compris la mémoire tampon, qui peut être étendue au-delà des 8 octets déclarés. La valeur minimale autorisée est sizeof(FILEMUIINFO)
.
dwVersion
Version de la structure. La version actuelle est 0x001.
dwFileType
Type de fichier. Les valeurs possibles sont les suivantes :
- MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL. Le fichier d’entrée ne contient pas de données de configuration des ressources. Ce type de fichier est typique pour les fichiers exécutables plus anciens. Si ce type de fichier est spécifié, les autres types de fichiers ne fournissent pas d’informations utiles.
- 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 spécifique à la langue.
pChecksum[16]
Pointeur vers une somme de contrôle 128 bits pour le fichier, s’il s’agit d’un fichier LN ou d’un fichier de ressources spécifique à la langue.
pServiceChecksum[16]
Pointeur vers une somme de contrôle 128 bits pour le fichier, utilisée pour la maintenance.
dwLanguageNameOffset
Décalage, en octets, du début de la structure vers la chaîne de nom de langue d’un fichier de ressources spécifique à la langue, ou vers la chaîne de nom de langue de secours ultime pour un fichier LN.
dwTypeIDMainSize
Taille du tableau pour lequel le décalage est indiqué par dwTypeIDMainOffset. La taille correspond également au nombre de chaînes dans le tableau à plusieurs chaînes indiqué par dwTypeNameMainOffset.
dwTypeIDMainOffset
Décalage, en octets, du début de la structure vers un tableau DWORD énumérant les types de ressources contenus dans le fichier LN.
dwTypeNameMainOffset
Décaler, en octets, du début de la structure vers une série de chaînes terminées par null dans un tableau à plusieurs chaînes énumérant les noms de ressources contenus dans le fichier LN.
dwTypeIDMUISize
Taille du tableau avec le décalage indiqué par dwTypeIDMUIOffset. La taille correspond également au nombre de chaînes dans la série de chaînes indiquées par dwTypeNameMUIOffset.
dwTypeIDMUIOffset
Décalage, en octets, du début de la structure vers un tableau DWORD énumérant les types de ressources contenus dans le fichier LN.
dwTypeNameMUIOffset
Décalage, en octets, du début de la structure vers un tableau à plusieurs chaînes énumérant les noms de ressources contenus dans le fichier LN.
abBuffer[8]
Reste de la mémoire allouée pour cette structure. Consultez la section Remarques pour une utilisation correcte de ce tableau.
Remarques
Tous les décalages proviennent de la base de la structure. Un décalage de 0 indique que les données ne sont pas disponibles.
Voici un exemple montrant comment accéder aux données de la position dans la structure décrite par un décalage. Cet exemple accède à la chaîne de nom de langue avec la position définie par dwLanguageNameOffset.
PFILEMUIINFO pFileMUIInfo = NULL;
Allocate_pFileMUIInfo_AndPassTo_GetFileMUIInfo(&pFileMUIInfo);
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(reinterpret_cast<BYTE*>(pFileMUIInfo) + pFileMUIInfo->dwLanguageNameOffset);
Cet exemple utilise deux casts de réinterprétation. Tout d’abord, le code est converti en BYTE* afin que l’arithmétique du pointeur pour le décalage soit effectué en octets. Ensuite, le code caste le pointeur résultant vers le type souhaité.
Vous pouvez également écrire le code comme indiqué ci-dessous. L’effet est le même ; le choix est strictement de style.
PFILEMUIINFO pFileMUIInfo = NULL;
Allocate_pFileMUIInfo_AndPassTo_GetFileMUIInfo(&pFileMUIInfo);
DWORD ix = pFileMUIInfo->dwLanguageNameOffset - offsetof(struct _FILEMUIINFO, abBuffer);
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(&(pFileMUIInfo->abBuffer[ix]));
C# Signature
unsafe public struct FILEMUIINFO
{
public System.UInt32 dwSize;
public System.UInt32 dwVersion;
public System.UInt32 dwFileType;
public fixed System.Byte pChecksum[16];
public fixed System.Byte pServiceChecksum[16];
public System.UInt32 dwLanguageNameOffset;
public System.UInt32 dwTypeIDMainSize;
public System.UInt32 dwTypeIDMainOffset;
public System.UInt32 dwTypeNameMainOffset;
public System.UInt32 dwTypeIDMUISize;
public System.UInt32 dwTypeIDMUIOffset;
public System.UInt32 dwTypeNameMUIOffset;
public fixed System.Byte abBuffer[8];
}
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] |
En-tête | winnls.h (inclure Windows.h) |
Voir aussi
Interface utilisateur multilingue