Bagikan melalui


Struktur FILEMUIINFO (winnls.h)

Berisi informasi tentang file, yang terkait dengan penggunaannya dengan MUI. Sebagian besar data ini disimpan dalam data konfigurasi sumber daya untuk file tertentu. Ketika struktur ini diambil oleh GetFileMUIInfo, tidak semua bidang harus diisi. Bidang yang digunakan bergantung pada bendera yang telah diteruskan aplikasi ke fungsi tersebut.

Catatan Aplikasi MUI Anda dapat menggunakan makro MUI untuk mengakses struktur ini.
 

Sintaks

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;

Anggota

dwSize

Ukuran struktur, termasuk buffer, yang dapat diperpanjang melewati 8 byte yang dideklarasikan. Nilai minimum yang diizinkan adalah sizeof(FILEMUIINFO).

dwVersion

Versi struktur. Versi saat ini 0x001.

dwFileType

Jenis file. Potensi nilai:

  • MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL. File input tidak memiliki data konfigurasi sumber daya. Tipe file ini khas untuk file yang dapat dieksekusi yang lebih lama. Jika tipe file ini ditentukan, tipe file lainnya tidak akan memberikan informasi yang berguna.
  • MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN. File input adalah file LN.
  • MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI. File input adalah file sumber daya khusus bahasa.

pChecksum[16]

Arahkan ke checksum 128-bit untuk file, jika itu adalah file LN atau file sumber daya khusus bahasa.

pServiceChecksum[16]

Penunjuk ke checksum 128-bit untuk file, digunakan untuk layanan.

dwLanguageNameOffset

Offset, dalam byte, dari awal struktur hingga string nama bahasa untuk file sumber daya khusus bahasa, atau ke string nama bahasa fallback utama untuk file LN.

dwTypeIDMainSize

Ukuran array yang offsetnya ditunjukkan oleh dwTypeIDMainOffset. Ukuran juga sesuai dengan jumlah string dalam array multi-string yang ditunjukkan oleh dwTypeNameMainOffset.

dwTypeIDMainOffset

Offset, dalam byte, dari awal struktur hingga array DWORD yang menghitung jenis sumber daya yang terkandung dalam file LN.

dwTypeNameMainOffset

Offset, dalam byte, dari awal struktur hingga serangkaian string yang dihentikan null dalam array multi-string yang menghitung nama sumber daya yang terkandung dalam file LN.

dwTypeIDMUISize

Ukuran array dengan offset yang ditunjukkan oleh dwTypeIDMUIOffset. Ukurannya juga sesuai dengan jumlah string dalam rangkaian string yang ditunjukkan oleh dwTypeNameMUIOffset.

dwTypeIDMUIOffset

Offset, dalam byte, dari awal struktur hingga array DWORD yang menghitung jenis sumber daya yang terkandung dalam file LN.

dwTypeNameMUIOffset

Offset, dalam byte, dari awal struktur hingga array multi-string yang menghitung nama sumber daya yang terkandung dalam file LN.

abBuffer[8]

Sisa memori yang dialokasikan untuk struktur ini. Lihat bagian Keterangan untuk penggunaan array ini dengan benar.

Keterangan

Semua offset berasal dari dasar struktur. Offset 0 menunjukkan bahwa data tidak tersedia.

Berikut ini adalah contoh yang menunjukkan cara mengakses data untuk posisi dalam struktur yang dijelaskan oleh offset. Contoh ini mengakses string nama bahasa dengan posisi yang ditentukan oleh dwLanguageNameOffset.

PFILEMUIINFO pFileMUIInfo = NULL;

Allocate_pFileMUIInfo_AndPassTo_GetFileMUIInfo(&pFileMUIInfo);

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

Contoh ini menggunakan dua transmisi reinterpret. Pertama kode ditransmisikan ke BYTE* sehingga aritmatika penunjuk untuk offset akan dilakukan dalam byte. Kemudian kode melemparkan pointer yang dihasilkan ke jenis yang diinginkan.

Atau, kode dapat ditulis seperti yang ditunjukkan di bawah ini. Efeknya sama; pilihannya benar-benar salah satu gaya.

PFILEMUIINFO pFileMUIInfo = NULL;

Allocate_pFileMUIInfo_AndPassTo_GetFileMUIInfo(&pFileMUIInfo);

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

Tanda Tangan 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];
        }

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Header winnls.h (termasuk Windows.h)

Lihat juga

GetFileMUIInfo

Antarmuka Pengguna Multibahasa

Makro Antarmuka Pengguna Multibahasa

Struktur Antarmuka Pengguna Multibahasa