Struttura FILEMUIINFO (winnls.h)
Contiene informazioni su un file, correlato all'uso con MUI. La maggior parte di questi dati viene archiviata nei dati di configurazione delle risorse per il file specifico. Quando questa struttura viene recuperata da GetFileMUIInfo, non tutti i campi vengono necessariamente compilati. I campi usati dipendono dai flag passati dall'applicazione a tale funzione.
Sintassi
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;
Members
dwSize
Dimensione della struttura, incluso il buffer, che può essere esteso oltre gli 8 byte dichiarati. Il valore minimo consentito è sizeof(FILEMUIINFO)
.
dwVersion
Versione della struttura. La versione corrente è 0x001.
dwFileType
Tipo di file. I valori possibili sono:
- MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL. Il file di input non dispone di dati di configurazione delle risorse. Questo tipo di file è tipico per i file eseguibili meno recenti. Se questo tipo di file viene specificato, gli altri tipi di file non forniranno informazioni utili.
- MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN. Il file di input è un file LN.
- MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI. Il file di input è un file di risorse specifico della lingua.
pChecksum[16]
Puntatore a un checksum a 128 bit per il file, se si tratta di un file LN o di un file di risorse specifico della lingua.
pServiceChecksum[16]
Puntatore a un checksum a 128 bit per il file, usato per la manutenzione.
dwLanguageNameOffset
Offset, in byte, dall'inizio della struttura alla stringa del nome della lingua per un file di risorse specifico della lingua o alla stringa del nome della lingua di fallback finale per un file LN.
dwTypeIDMainSize
Dimensione della matrice per cui l'offset è indicato da dwTypeIDMainOffset. La dimensione corrisponde anche al numero di stringhe nella matrice a più stringhe indicate da dwTypeNameMainOffset.
dwTypeIDMainOffset
Offset, in byte, dall'inizio della struttura a una matrice DWORD che enumera i tipi di risorsa contenuti nel file LN.
dwTypeNameMainOffset
Offset, in byte, dall'inizio della struttura a una serie di stringhe con terminazione Null in una matrice a più stringhe che enumera i nomi delle risorse contenuti nel file LN.
dwTypeIDMUISize
Dimensione della matrice con l'offset indicato da dwTypeIDMUIOffset. La dimensione corrisponde anche al numero di stringhe nella serie di stringhe indicate da dwTypeNameMUIOffset.
dwTypeIDMUIOffset
Offset, in byte, dall'inizio della struttura a una matrice DWORD che enumera i tipi di risorsa contenuti nel file LN.
dwTypeNameMUIOffset
Offset, in byte, dall'inizio della struttura a una matrice a più stringhe che enumera i nomi delle risorse contenuti nel file LN.
abBuffer[8]
Resto della memoria allocata per questa struttura. Vedere la sezione Osservazioni per l'uso corretto di questa matrice.
Commenti
Tutti gli offset provengono dalla base della struttura. Un offset pari a 0 indica che i dati non sono disponibili.
Di seguito è riportato un esempio che illustra come accedere ai dati per la posizione nella struttura descritta da un offset. Questo esempio accede alla stringa del nome della lingua con la posizione definita da dwLanguageNameOffset.
PFILEMUIINFO pFileMUIInfo = NULL;
Allocate_pFileMUIInfo_AndPassTo_GetFileMUIInfo(&pFileMUIInfo);
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(reinterpret_cast<BYTE*>(pFileMUIInfo) + pFileMUIInfo->dwLanguageNameOffset);
In questo esempio vengono usati due cast reinterpretati. Prima di tutto, il codice esegue il cast in BYTE* in modo che l'aritmetica del puntatore per l'offset venga eseguita in byte. Il codice esegue quindi il cast del puntatore risultante al tipo desiderato.
In alternativa, il codice può essere scritto come illustrato di seguito. L'effetto è lo stesso; la scelta è strettamente uno di stile.
PFILEMUIINFO pFileMUIInfo = NULL;
Allocate_pFileMUIInfo_AndPassTo_GetFileMUIInfo(&pFileMUIInfo);
DWORD ix = pFileMUIInfo->dwLanguageNameOffset - offsetof(struct _FILEMUIINFO, abBuffer);
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(&(pFileMUIInfo->abBuffer[ix]));
Firma C#
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];
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Intestazione | winnls.h (include Windows.h) |
Vedi anche
Interfaccia utente multilingue