IShellLinkA::Metode resolve (shobjidl_core.h)

Mencoba menemukan target tautan Shell, meskipun telah dipindahkan atau diganti namanya.

Sintaks

HRESULT Resolve(
  HWND  hwnd,
  DWORD fFlags
);

Parameter

hwnd

Jenis: HWND

Handel ke jendela yang akan digunakan Shell sebagai induk untuk kotak dialog. Shell menampilkan kotak dialog jika perlu meminta informasi lebih lanjut kepada pengguna saat menyelesaikan tautan Shell.

fFlags

Jenis: DWORD

Bendera tindakan. Parameter ini bisa menjadi kombinasi dari nilai berikut.

SLR_NO_UI (0x0001)

0x0001. Jangan tampilkan kotak dialog jika tautan tidak dapat diatasi. Ketika SLR_NO_UI diatur, kata fFlags urutan tinggi dapat diatur ke nilai waktu habis yang menentukan jumlah waktu maksimum yang akan dihabiskan untuk menyelesaikan tautan. Fungsi mengembalikan jika tautan tidak dapat diselesaikan dalam durasi waktu habis. Jika kata urutan tinggi diatur ke nol, durasi waktu habis akan diatur ke nilai default 3.000 milidetik (3 detik). Untuk menentukan nilai, atur kata tinggi fFlags ke durasi waktu habis yang diinginkan, dalam milidetik.

SLR_ANY_MATCH (0x0002)

0x0002. Tidak digunakan.

SLR_UPDATE (0x0004)

0x0004. Jika objek tautan telah berubah, perbarui jalur dan daftar pengidentifikasinya. Jika SLR_UPDATE diatur, Anda tidak perlu memanggil IPersistFile::IsDirty untuk menentukan apakah objek tautan telah berubah.

SLR_NOUPDATE (0x0008)

0x0008. Jangan perbarui informasi tautan.

SLR_NOSEARCH (0x0010)

0x0010. Jangan jalankan heuristik pencarian.

SLR_NOTRACK (0x0020)

0x0020. Jangan gunakan pelacakan tautan terdistribusi.

SLR_NOLINKINFO (0x0040)

0x0040. Nonaktifkan pelacakan tautan terdistribusi. Secara default, pelacakan tautan terdistribusi melacak media yang dapat dilepas di beberapa perangkat berdasarkan nama volume. Ini juga menggunakan jalur UNC untuk melacak sistem file jarak jauh yang huruf kandarnya telah berubah. Pengaturan SLR_NOLINKINFO menonaktifkan kedua jenis pelacakan.

SLR_INVOKE_MSI (0x0080)

0x0080. Panggil Pemasang Windows.

SLR_NO_UI_WITH_MSG_PUMP (0x0101)

0x0101. Windows XP dan yang lebih baru.

SLR_OFFER_DELETE_WITHOUT_FILE (0x0200)

0x0200. Windows 7 dan yang lebih baru. Tawarkan opsi untuk menghapus pintasan ketika metode ini tidak dapat mengatasinya, meskipun pintasan bukan pintasan ke file.

SLR_KNOWNFOLDER (0x0400)

0x0400. Windows 7 dan yang lebih baru. Laporkan sebagai kotor jika target adalah folder yang diketahui dan folder yang diketahui dialihkan. Ini hanya berfungsi jika jalur target asli adalah jalur sistem file atau daftar ID dan bukan daftar ID folder yang diketahui alias.

SLR_MACHINE_IN_LOCAL_TARGET (0x0800)

0x0800. Windows 7 dan yang lebih baru. Atasi nama komputer dalam target UNC yang menunjuk ke komputer lokal. Nilai ini digunakan dengan SLDF_KEEP_LOCAL_IDLIST_FOR_UNC_TARGET.

SLR_UPDATE_MACHINE_AND_SID (0x1000)

0x1000. Windows 7 dan yang lebih baru. Perbarui GUID komputer dan SID pengguna jika perlu.

Mengembalikan nilai

Jenis: HRESULT

Jika metode ini berhasil, metode ini mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.

Keterangan

Setelah pembuatan tautan, nama atau lokasi target dapat berubah. Metode IShellLink::Resolve terlebih dahulu mengambil jalur yang terkait dengan tautan. Jika objek tidak lagi ada atau telah diganti namanya, Atasi akan mencoba menemukannya. Jika berhasil, dan kondisi berikut terpenuhi, file tempat objek tautan dimuat akan diperbarui untuk mencerminkan status baru objek tautan.

  • Bendera SLR_UPDATE diatur.
  • Target telah dipindahkan atau diganti namanya, memperbarui status internal objek tautan Shell untuk merujuk ke target baru.
  • Objek tautan Shell dimuat dari file melalui IPersistFile.
Klien juga dapat memanggil metode IPersistFile::IsDirty untuk menentukan apakah objek tautan telah berubah dan file perlu diperbarui.

Resolve memiliki dua pendekatan untuk menemukan objek target. Yang pertama adalah layanan pelacakan tautan terdistribusi. Jika layanan tersedia, layanan dapat menemukan objek yang ada pada volume NTFS versi 5.0 dan dipindahkan ke lokasi lain pada volume tersebut. Ini juga dapat menemukan objek yang dipindahkan ke volume NTFS versi 5.0 lain, termasuk volume di komputer lain. Untuk menekan penggunaan layanan ini, atur bendera SLR_NOTRACK .

Jika pelacakan tautan terdistribusi tidak tersedia atau gagal menemukan objek tautan, Atasi upaya untuk menemukannya dengan heuristik pencarian. Pertama-tama terlihat di direktori terakhir objek yang diketahui untuk objek dengan nama yang berbeda tetapi atribut dan waktu pembuatan file yang sama. Selanjutnya, secara rekursif mencari subdirektori di sekitar direktori terakhir objek yang diketahui. Ini mencari objek dengan nama atau waktu pembuatan yang sama. Terakhir, Atasi mencari objek yang cocok di desktop dan volume lokal lainnya. Untuk menekan penggunaan heuristik pencarian, atur bendera SLR_NOSEARCH .

Jika kedua pendekatan gagal, sistem akan menampilkan kotak dialog yang meminta pengguna untuk lokasi. Untuk menekan kotak dialog, atur bendera SLR_NO_UI .

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header shobjidl_core.h
DLL Shell32.dll (versi 4.0 atau yang lebih baru)