Bagikan melalui


Fungsi EnumResourceNamesExA (libloaderapi.h)

Menghitung sumber daya dari jenis tertentu yang terkait dengan modul biner tertentu. Pencarian dapat mencakup file LN dan file .mui terkait, atau dapat dibatasi dalam beberapa cara.

Sintaks

BOOL EnumResourceNamesExA(
  [in, optional] HMODULE          hModule,
                 LPCSTR           lpType,
  [in]           ENUMRESNAMEPROCA lpEnumFunc,
  [in]           LONG_PTR         lParam,
  [in]           DWORD            dwFlags,
  [in]           LANGID           LangId
);

Parameter

[in, optional] hModule

Jenis: HMODULE

Handel ke modul untuk dicari. Biasanya ini adalah file LN, dan jika bendera RESOURCE_ENUM_MUI diatur, maka file .mui yang sesuai disertakan dalam pencarian. Secara bergantian, ini bisa menjadi handel ke file .mui atau file LN lainnya.

Jika parameter ini NULL, setara dengan meneruskan handel ke modul yang digunakan untuk membuat proses saat ini.

lpType

Jenis: LPCSTR

Jenis sumber daya yang namanya sedang dijumlahkan. Sebagai alternatif, bukan pointer, parameter ini dapat berupa MAKEINTRESOURCE(ID), di mana ID adalah nilai bilangan bulat yang mewakili jenis sumber daya yang telah ditentukan sebelumnya. Untuk daftar jenis sumber daya yang telah ditentukan sebelumnya, lihat Jenis Sumber Daya. Untuk informasi selengkapnya, lihat bagian Keterangan di bawah ini.

[in] lpEnumFunc

Jenis: ENUMRESNAMEPROC

Penunjuk ke fungsi panggilan balik yang akan dipanggil untuk setiap nama sumber daya yang dijumlahkan. Untuk informasi selengkapnya, lihat EnumResNameProc.

[in] lParam

Jenis: LONG_PTR

Nilai yang ditentukan aplikasi diteruskan ke fungsi panggilan balik. Parameter ini dapat digunakan dalam pemeriksaan kesalahan.

[in] dwFlags

Jenis: DWORD

Jenis file yang akan dicari. Nilai berikut ini didukung. Perhatikan bahwa jika dwFlags adalah nol, maka bendera RESOURCE_ENUM_LN dan RESOURCE_ENUM_MUI diasumsikan ditentukan.

Nilai Makna
RESOURCE_ENUM_MUI
0x0002
Cari sumber daya dalam file .mui yang terkait dengan file LN yang ditentukan oleh hModule dan dengan preferensi bahasa saat ini, mengikuti strategi Resource Loader biasa (lihat Manajemen Bahasa Antarmuka Pengguna). Sebagai alternatif, jika LangId bukan nol, maka hanya file .mui yang ditentukan yang akan dicari. Biasanya bendera ini harus digunakan hanya jika hModule mereferensikan file LN. Jika hModule mereferensikan file .mui, maka file tersebut benar-benar dicakup oleh bendera RESOURCE_ENUM_LN , terlepas dari nama bendera .
RESOURCE_ENUM_LN
0x0001
Mencari file yang ditentukan oleh hModule, terlepas dari apakah file tersebut adalah file LN, jenis file LN lain, atau file .mui.
RESOURCE_ENUM_VALIDATE
0x0008
Melakukan validasi tambahan pada bagian sumber daya dan referensinya di header PE saat melakukan enumerasi untuk memastikan bahwa sumber daya diformat dengan benar. Validasi menetapkan batas maksimum 260 karakter untuk setiap nama yang dijumlahkan.

[in] LangId

Jenis: LANGID

Bahasa pelokalan yang digunakan untuk memfilter pencarian dalam modul MUI. Parameter ini hanya digunakan ketika bendera RESOURCE_ENUM_MUI diatur dalam dwFlags. Jika nol ditentukan, maka semua file .mui yang cocok dengan preferensi bahasa saat ini disertakan dalam pencarian, mengikuti strategi Resource Loader biasa (lihat Manajemen Bahasa Antarmuka Pengguna). Jika LangId bukan nol ditentukan, maka satu-satunya file .mui yang dicari adalah file yang cocok dengan LangId yang ditentukan.

Nilai kembali

Jenis: BOOL

Fungsi TRUE jika berhasil, atau FALSE jika fungsi tidak menemukan sumber daya dari jenis yang ditentukan, atau jika fungsi gagal karena alasan lain. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Jika IS_INTRESOURCE(lpszType) TRUE, maka lpszType menentukan pengidentifikasi bilangan bulat dari jenis sumber daya yang diberikan. Jika tidak, ini adalah penunjuk ke string yang dihentikan null. Jika karakter pertama string adalah tanda pound (#), maka karakter yang tersisa mewakili angka desimal yang menentukan

pengidentifikasi bilangan bulat dari jenis sumber daya. Misalnya, string "#258" mewakili pengidentifikasi 258.

Pencarian enumerasi dapat mencakup file LN dan file .mui terkait. Ini dapat dibatasi pada satu modul biner dari semua jenis. Ini juga dapat dibatasi pada file .mui yang terkait dengan satu file LN. Dengan menentukan file LN untuk parameter hModule dan parameter LangId nonzero, pencarian dapat dibatasi pada file .mui unik yang terkait dengan file dan bahasa LN tersebut.

Untuk setiap sumber daya yang ditemukan, EnumResourceNamesEx memanggil fungsi panggilan balik yang ditentukan aplikasi lpEnumFunc, meneruskan nama atau ID setiap sumber daya yang ditemukannya, serta berbagai parameter lain yang diteruskan ke EnumResourceNamesEx.

Jika sumber daya memiliki ID, ID dikembalikan ke fungsi panggilan balik; jika tidak, nama sumber daya dikembalikan ke fungsi panggilan balik. Untuk informasi selengkapnya, lihat EnumResNameProc.

Fungsi EnumResourceNamesEx terus menghitung nama sumber daya hingga fungsi panggilan balik mengembalikan FALSE atau semua nama sumber daya untuk jenis ini telah dijumlahkan.

Jika hModule menentukan file LN, dan kedua bendera dipilih, nama yang dijumlahkan sesuai dengan sumber daya yang berada baik dalam file LN atau file .mui yang terkait dengannya. Jika tidak ada file .mui yang ditemukan, hanya nama dari file LN yang dikembalikan. Setelah satu file .mui yang sesuai ditemukan, pencarian tidak akan dilanjutkan lebih lanjut, karena semua file .mui yang sesuai dengan satu file LN memiliki nama sumber daya yang sama.

Jika dwFlags dan LangId keduanya nol, maka fungsi bereaksi seperti EnumResourceNames.

Jika LangId bukan nol, maka hanya file .mui yang sesuai dengan pengidentifikasi Bahasa tersebut yang akan dicari. Fallback bahasa tidak akan digunakan. Jika file .mui untuk bahasa tersebut tidak ada, enumerasi akan kosong (kecuali sumber daya untuk bahasa tersebut ada di file LN, dan bendera diatur untuk mencari file LN juga).

Enumerasi tidak pernah menyertakan duplikat: jika sumber daya untuk bahasa tertentu terkandung dalam file LN dan dalam file .mui, nama hanya akan dijumlahkan sekali.

Contoh

Misalnya, lihat Membuat Daftar Sumber Daya.

Catatan

Header libloaderapi.h mendefinisikan EnumResourceNamesEx sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

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

Lihat juga

Konseptual

EnumResNameProc

EnumResourceLanguagesEx

EnumResourceNames

EnumResourceTypesEx

Referensi

Sumber