Fungsi GetPrivateProfileStructW (winbase.h)

Mengambil data yang terkait dengan kunci di bagian yang ditentukan dari file inisialisasi. Saat mengambil data, fungsi menghitung checksum dan membandingkannya dengan checksum yang dihitung oleh fungsi WritePrivateProfileStruct saat data ditambahkan ke file.

Catatan Fungsi ini disediakan hanya untuk kompatibilitas dengan aplikasi berbasis Windows 16-bit. Aplikasi harus menyimpan informasi inisialisasi di registri.
 

Sintaks

BOOL GetPrivateProfileStructW(
  [in]  LPCWSTR lpszSection,
  [in]  LPCWSTR lpszKey,
  [out] LPVOID  lpStruct,
  [in]  UINT    uSizeStruct,
  [in]  LPCWSTR szFile
);

Parameter

[in] lpszSection

Nama bagian dalam file inisialisasi.

[in] lpszKey

Nama kunci yang datanya akan diambil.

[out] lpStruct

Penunjuk ke buffer yang menerima data yang terkait dengan file, bagian, dan nama kunci.

[in] uSizeStruct

Ukuran buffer yang diacu oleh parameter lpStruct , dalam byte.

[in] szFile

Nama file inisialisasi. Jika parameter ini tidak berisi jalur lengkap ke file, sistem akan mencari file di direktori Windows.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan bukan nol.

Jika fungsi gagal, nilai yang dikembalikan adalah nol.

Keterangan

Bagian dalam file inisialisasi harus memiliki formulir berikut:

[section]
key=data
      .
      .
      .

Sistem memetakan sebagian besar .ini referensi file ke registri, menggunakan pemetaan yang ditentukan di bawah kunci registri berikut:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping

Pemetaan ini kemungkinan jika aplikasi memodifikasi file inisialisasi komponen sistem, seperti Control.ini, System.ini, dan Winfile.ini. Dalam kasus ini, fungsi mengambil informasi dari registri, bukan dari file inisialisasi; perubahan lokasi penyimpanan tidak berpengaruh pada perilaku fungsi.

Fungsi profil menggunakan langkah-langkah berikut untuk menemukan informasi inisialisasi:

  1. Lihat di registri untuk nama file inisialisasi, misalnya MyFile.ini, di bawah IniFileMapping.
  2. Cari nama bagian yang ditentukan oleh lpAppName. Ini akan menjadi nilai bernama di bawah myfile.ini, atau subkunjuk myfile.ini, atau tidak akan ada.
  3. Jika nama bagian yang ditentukan oleh lpAppName adalah nilai bernama di bawah myfile.ini, maka nilai tersebut menentukan di mana dalam registri Anda akan menemukan kunci untuk bagian tersebut.
  4. Jika nama bagian yang ditentukan oleh lpAppName adalah subkunci darimyfile.ini, maka nilai bernama di bawah subkunci tersebut menentukan di mana dalam registri Anda akan menemukan kunci untuk bagian tersebut. Jika kunci yang Anda cari tidak ada sebagai nilai bernama, maka akan ada nilai yang tidak disebutkan namanya (ditampilkan sebagai <Tidak Ada Nama>) yang menentukan lokasi default di registri tempat Anda akan menemukan kunci.
  5. Jika nama bagian yang ditentukan oleh lpAppName tidak ada sebagai nilai bernama atau sebagai subkey di bawah myfile.ini, maka akan ada nilai yang tidak disebutkan namanya (ditampilkan sebagai <Tidak Ada Nama>) di bawah myfile.ini yang menentukan lokasi default di registri tempat Anda akan menemukan kunci untuk bagian tersebut.
  6. Jika tidak ada myfile.ini subkuntang, atau jika tidak berisi entri untuk nama bagian, maka cari MyFile.ini aktual pada disk dan baca kontennya.
Saat melihat nilai dalam registri yang menentukan lokasi registri lain, ada beberapa awalan yang mengubah perilaku pemetaan file .ini:
  • ! - karakter ini memaksa semua penulisan untuk masuk ke registri dan ke file .ini pada disk.
  • # - karakter ini menyebabkan nilai registri diatur ke nilai dalam file .ini Windows 3.1 saat pengguna baru masuk untuk pertama kalinya setelah penyiapan.
  • @ - karakter ini mencegah pembacaan masuk ke file .ini pada disk jika data yang diminta tidak ditemukan di registri.
  • USR: - awalan ini adalah singkatan dari HKEY_CURRENT_USER, dan teks setelah awalan relatif terhadap kunci tersebut.
  • SYS: - awalan ini adalah singkatan dariHKEY_LOCAL_MACHINE\SOFTWARE, dan teks setelah awalan relatif terhadap kunci tersebut.

Catatan

Header winbase.h mendefinisikan GetPrivateProfileStruct 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

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

Lihat juga

WritePrivateProfileStruct