Bagikan melalui


Fungsi GetFileMUIInfo (winnls.h)

Mengambil informasi terkait sumber daya tentang file.

Sintaks

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

Parameter

[in] dwFlags

Bendera yang menentukan informasi yang akan diambil. Kombinasi bendera berikut diperbolehkan. Nilai default bendera adalah MUI_QUERY_TYPE | MUI_QUERY_CHECKSUM.

Nilai Makna
MUI_QUERY_TYPE
Ambil salah satu nilai berikut di anggota dwFileType dari FILEMUIINFO:
  • MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL: File input yang ditentukan tidak memiliki data konfigurasi sumber daya. Dengan demikian, ini bukan file LN atau file sumber daya khusus bahasa. Jenis file ini khas untuk file yang dapat dieksekusi yang lebih lama. Jika jenis file ini ditentukan, fungsi tidak akan mengambil informasi yang berguna untuk jenis lainnya.
  • MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN. File input adalah file LN.
  • MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI. File input adalah file sumber daya khusus bahasa yang terkait dengan file LN.
MUI_QUERY_CHECKSUM
Ambil checksum sumber daya file input di anggota pChecksumFILEMUIINFO. Jika file input tidak memiliki data konfigurasi sumber daya, anggota struktur ini berisi 0.
MUI_QUERY_LANGUAGE_NAME
Ambil bahasa yang terkait dengan file input. Untuk file sumber daya khusus bahasa, bendera ini meminta bahasa terkait. Untuk file LN, bendera ini meminta bahasa sumber daya fallback utama untuk modul, yang dapat berada di file LN atau dalam file sumber daya khusus bahasa terpisah yang dirujuk oleh data konfigurasi sumber daya file LN. Untuk informasi lebih lanjut, lihat bagian Keterangan.
MUI_QUERY_RESOURCE_TYPES
Ambil daftar jenis sumber daya dalam file sumber daya khusus bahasa dan file LN seperti yang ditentukan dalam data konfigurasi sumber daya. Lihat bagian Keterangan untuk cara mengakses informasi ini.

[in] pcwszFilePath

Penunjuk ke string yang dihentikan null yang menunjukkan jalur ke file. Biasanya file adalah file LN atau file sumber daya khusus bahasa. Jika bukan salah satu dari jenis ini, satu-satunya nilai signifikan yang diambil fungsi adalah MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL. Fungsi hanya mengambil nilai ini jika bendera MUI_QUERY_RESOURCE_TYPES diatur.

[in, out, optional] pFileMUIInfo

Penunjuk ke buffer yang berisi informasi file dalam struktur FILEMUIINFO dan mungkin dalam data mengikuti struktur tersebut. Buffer informasi mungkin harus jauh lebih besar daripada ukuran struktur itu sendiri. Bergantung pada pengaturan bendera, fungsi dapat menyimpan informasi yang cukup besar mengikuti struktur, pada offset yang diambil dalam struktur. Untuk informasi lebih lanjut, lihat bagian Keterangan.

Atau, aplikasi dapat mengatur parameter ini ke NULL jika pcbFileMUIInfo diatur ke 0. Dalam hal ini, fungsi mengambil ukuran yang diperlukan untuk buffer informasi di pcbFileMUIInfo.

Catatan Jika nilai pFileMUIInfo bukan NULL, anggota dwSize harus diatur ke ukuran struktur FILEMUIINFO (termasuk buffer informasi), dan anggota dwVersion harus diatur ke versi 0x001 saat ini.
 

[in, out] pcbFileMUIInfo

Penunjuk ke ukuran buffer, dalam byte, untuk informasi file yang ditunjukkan oleh pFileMUIInfo. Setelah berhasil dikembalikan dari fungsi, parameter ini berisi ukuran buffer informasi file yang diambil dan struktur FILEMUIINFO yang berisinya.

Atau, aplikasi dapat mengatur parameter ini ke 0 jika mengatur NULL di pFileMUIInfo. Dalam hal ini, fungsi mengambil ukuran buffer informasi file yang diperlukan dalam pcbFileMUIInfo. Untuk mengalokasikan jumlah memori yang benar, nilai ini harus ditambahkan ke ukuran struktur FILEMUIINFO itu sendiri.

Catatan Nilai parameter ini harus cocok dengan nilai anggota dwSize dari FILEMUIINFO jika nilai pFileMUIInfo bukan NULL.
 

Nilai kembali

Mengembalikan TRUE jika berhasil atau FALSE sebaliknya. Untuk mendapatkan informasi kesalahan yang diperluas, aplikasi dapat memanggil GetLastError.

Keterangan

Untuk bendera MUI_QUERY_LANGUAGE_NAME, fungsi ini mengambil offset, dalam byte, dari awal FILEMUIINFO di anggota dwLanguageNameOffset .

Berikut ini adalah kode sampel yang mengakses nama bahasa yang terkait dengan file input:

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

Untuk bendera MUI_QUERY_RESOURCE_TYPES, fungsi ini mengambil informasi file sumber daya khusus bahasa di anggota FILEMUIINFO berikut:

  • Anggota dwTypeIDMUIOffset berisi offset ke array pengidentifikasi sumber daya yang terkandung dalam file sumber daya khusus bahasa.
  • Anggota dwTypeIDMUISize berisi ukuran array pengidentifikasi sumber daya untuk file sumber daya khusus bahasa.
  • Anggota dwTypeNameMUIOffset berisi offset ke array nama sumber daya yang terkandung dalam file sumber daya khusus bahasa.
Jika file input adalah file LN, fungsi akan mengisi semua anggota struktur di atas. Selain itu, ini mengisi anggota berikut:
  • Anggota dwTypeIDMainOffset berisi offset ke array pengidentifikasi sumber daya yang terkandung dalam file LN.
  • Anggota dwTypeIDMainSize berisi ukuran array pengidentifikasi sumber daya untuk file LN.
  • Anggota dwTypeNameMainOffset berisi offset ke array nama sumber daya yang terkandung dalam file.
Berikut ini adalah kode sampel yang mengakses array pengidentifikasi sumber daya dalam file LN.
DWORD *pdwTypeID = reinterpret_cast<DWORD *>(
        reinterpret_cast<BYTE*>(pFileMUIInfo) +
        pFileMUIInfo->dwTypeIDMainOffset);

Catatan Daftar sumber daya khusus bahasa diakses dengan cara yang sama.
 
Berikut ini adalah kode sampel untuk mengakses array multistring nama sumber daya dalam file LN.
LPWSTR lpszNames = reinterpret_cast<LPWSTR>(
        reinterpret_cast<BYTE*>(pFileMUIInfo) +
        pFileMUIInfo->dwTypeNameMainOffset);

Catatan Daftar sumber daya khusus bahasa diakses dengan cara yang sama.
 
Masing-masing sampel kode menggunakan dua transmisi reinterpret. Pertama kode ditransmisikan ke BYTE* sehingga aritmatika penunjuk untuk offset dilakukan dalam byte. Kemudian kode melemparkan pointer yang dihasilkan ke jenis yang diinginkan.

Pendekatan lain adalah menulis hal berikut alih-alih kode yang ditunjukkan dalam sampel. Efeknya sama dan pilihannya benar-benar salah satu gaya.

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

Tanda Tangan C#

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

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header winnls.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

FILEMUIINFO

GetThreadUILanguage

Antarmuka Pengguna Multibahasa

Fungsi Antarmuka Pengguna Multibahasa

SetThreadPreferredUILanguages

SetThreadUILanguage