Bagikan melalui


Fungsi SHGetKnownFolderPath (shlobj_core.h)

Mengambil jalur lengkap folder yang diketahui yang diidentifikasi oleh KNOWNFOLDERID folder.

Sintaks

HRESULT SHGetKnownFolderPath(
  [in]           REFKNOWNFOLDERID rfid,
  [in]           DWORD            dwFlags,
  [in, optional] HANDLE           hToken,
  [out]          PWSTR            *ppszPath
);

Parameter

[in] rfid

Jenis: REFKNOWNFOLDERID

Referensi ke KNOWNFOLDERID yang mengidentifikasi folder.

[in] dwFlags

Jenis: DWORD

Bendera yang menentukan opsi pengambilan khusus. Nilai ini bisa 0; jika tidak, satu atau beberapa nilai KNOWN_FOLDER_FLAG .

[in, optional] hToken

Jenis: HANDEL

Token akses yang mewakili pengguna tertentu. Jika parameter ini adalah NULL, yang merupakan penggunaan paling umum, fungsi meminta folder yang diketahui untuk pengguna saat ini.

Minta folder pengguna tertentu dengan meneruskan hToken pengguna tersebut. Ini biasanya dilakukan dalam konteks layanan yang memiliki hak istimewa yang memadai untuk mengambil token pengguna tertentu. Token tersebut harus dibuka dengan hak TOKEN_QUERY dan TOKEN_IMPERSONATE . Dalam beberapa kasus, Anda juga perlu menyertakan TOKEN_DUPLICATE. Selain melewati hToken pengguna, sarang registri dari pengguna tertentu tersebut harus dipasang. Lihat Access Control untuk diskusi lebih lanjut tentang masalah kontrol akses.

Menetapkan parameter hToken nilai -1 menunjukkan Pengguna Default. Ini memungkinkan klien SHGetKnownFolderPath menemukan lokasi folder (seperti folder Desktop ) untuk Pengguna Default. Profil pengguna Pengguna Default diduplikasi saat akun pengguna baru dibuat, dan menyertakan folder khusus seperti Dokumen dan Desktop. Item apa pun yang ditambahkan ke folder Pengguna Default juga muncul di akun pengguna baru mana pun. Perhatikan bahwa akses ke folder Pengguna Default memerlukan hak istimewa administrator.

[out] ppszPath

Jenis: PWSTR*

Ketika metode ini kembali, berisi alamat penunjuk ke string Unicode yang dihentikan null yang menentukan jalur folder yang diketahui. Proses panggilan bertanggung jawab untuk membebaskan sumber daya ini setelah tidak lagi diperlukan dengan memanggil CoTaskMemFree, apakah SHGetKnownFolderPath berhasil atau tidak. Jalur yang dikembalikan tidak menyertakan garis miring terbelakang. Misalnya, "C:\Users" dikembalikan daripada "C:\Users\".

Menampilkan nilai

Jenis: HRESULT

Mengembalikan S_OK jika berhasil, atau nilai kesalahan sebaliknya, termasuk yang berikut ini:

Menampilkan kode Deskripsi
E_FAIL
Antara lain, nilai ini dapat menunjukkan bahwa parameter rfid mereferensikanKNOWNFOLDERID yang tidak memiliki jalur (seperti folder yang ditandai sebagai KF_CATEGORY_VIRTUAL).
E_INVALIDARG
Antara lain, nilai ini dapat menunjukkan bahwa parameter rfid mereferensikan KNOWNFOLDERID yang tidak ada pada sistem. Tidak semua nilai KNOWNFOLDERID ada di semua sistem. Gunakan IKnownFolderManager::GetFolderIds untuk mengambil kumpulan nilai KNOWNFOLDERID untuk sistem saat ini.

Keterangan

Fungsi ini menggantikan SHGetFolderPath. Fungsi lama itu sekarang hanyalah pembungkus untuk SHGetKnownFolderPath.

Persyaratan

   
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header shlobj_core.h (termasuk Shlobj.h)
DLL Shell32.dll (versi 6.0.6000 atau yang lebih baru)

Lihat juga

IKnownFolder::GetPath

Sampel Folder yang Diketahui

SHGetKnownFolderIDList

SHSetKnownFolderPath