Bagikan melalui


Fungsi SHLoadIndirectString (shlwapi.h)

Mengekstrak sumber daya teks tertentu ketika diberikan sumber daya tersebut dalam bentuk string tidak langsung (string yang dimulai dengan simbol '@').

Sintaks

LWSTDAPI SHLoadIndirectString(
  [in]  PCWSTR pszSource,
  [out] PWSTR  pszOutBuf,
  [in]  UINT   cchOutBuf,
        void   **ppvReserved
);

Parameter

[in] pszSource

Jenis: PCWSTR

Penunjuk ke buffer yang berisi string tidak langsung tempat sumber daya akan diambil. String ini harus dimulai dengan simbol '@' dan menggunakan salah satu formulir yang dibahas di bagian Keterangan. Fungsi ini akan berhasil menerima string yang tidak dimulai dengan simbol '@', tetapi string hanya akan diteruskan tidak berubah ke pszOutBuf.

[out] pszOutBuf

Jenis: PWSTR

Penunjuk ke buffer yang, ketika fungsi ini berhasil kembali, menerima sumber daya teks. Baik pszOutBuf maupun pszSource dapat menunjuk ke buffer yang sama, dalam hal ini string asli akan ditimpa.

[in] cchOutBuf

Jenis: UINT

Ukuran buffer yang ditujukkan oleh pszOutBuf, dalam karakter.

ppvReserved

Jenis: batal**

Tidak digunakan; atur ke NULL.

Nilai kembali

Jenis: HRESULT

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

Keterangan

String tidak langsung dapat disediakan dalam beberapa bentuk, yang masing-masing memiliki interpretasinya sendiri:

  • Sintaks nama file dan ID sumber daya ''' @filename,sumber daya '''

    String diekstrak dari file bernama, menggunakan nilai sumber daya sebagai pencari lokasi. Jika nilai sumber daya nol atau lebih besar, angka tersebut menjadi indeks string dalam file biner. Jika angkanya negatif, angka tersebut menjadi ID sumber daya. String yang diambil disalin ke buffer output dan fungsi mengembalikan S_OK.

  • Nama file dan ID sumber daya dengan sintaks pengubah versi ''' @filename,sumber daya; v2 '''

    Formulir ini dapat digunakan ketika sumber daya diubah tetapi masih menggunakan indeks atau ID yang sama dengan sumber daya lama. Tanpa pengubah versi, cache Antarmuka Pengguna Multibahasa (MUI) tidak akan mengenali bahwa sumber daya telah berubah dan tidak akan di-refresh. Dengan menambahkan pengubah versi, nilainya dipandang sebagai sumber daya baru dan ditambahkan ke cache. Perhatikan bahwa disarankan agar Anda menggunakan ID atau indeks baru untuk sumber daya baru, dan gunakan pengubah versi hanya jika tidak memungkinkan.

  • Jalur file PRI dan sintaks ID sumber daya ''' @{PRIFilepath?resource} '''

    Indeks Sumber Daya Paket (PRI) adalah format biner yang diperkenalkan dalam Windows 8 yang berisi sumber daya atau referensi terindeks ke sumber daya. File .pri dibundel sebagai bagian dari paket aplikasi. Untuk informasi selengkapnya tentang file .pri, lihat Membuat dan mengambil sumber daya di aplikasi Windows Store.

    String diekstrak dari file .pri bernama, menggunakan sumber daya sebagai pencari lokasi. String yang diambil disalin ke buffer output dan fungsi mengembalikan S_OK. String diekstrak berdasarkan lingkungan Shell saat ini atau ResourceContext.

    Contoh jenis string tidak langsung ini ditampilkan di sini.

    
    @{C:\Program Files\WindowsApps\Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe\resources.pri? ms-resource://Microsoft.Camera/resources/manifestAppDescription}
    
  • Sintaks nama paket dan ID sumber daya ''' @{PackageFullName?resource} '''

    String diekstrak dari file Resources.pri yang disimpan di direktori akar aplikasi dari paket yang diidentifikasi oleh PackageFullName, menggunakan sumber daya sebagai pencari lokasi. String yang diambil disalin ke buffer output dan fungsi mengembalikan S_OK. String diekstrak berdasarkan lingkungan aplikasi atau ResourceContext.

    Catatan String ini harus merujuk ke paket yang diinstal untuk pengguna saat ini. Jika tidak, panggilan akan gagal.
     
    Contoh jenis string tidak langsung ini ditampilkan di sini. Dalam contoh ini, nama referensi sepenuhnya memenuhi syarat, tetapi tidak berisi namespace layanan (misalnya, "sumber daya"). Tumpukan penyebaran memperluas nama untuk mencarinya di semua namespace.
    
    @{Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe? ms-resource://Microsoft.Camera/manifestAppDescription}
    

    Dalam contoh berikutnya ini, nama referensi yang sepenuhnya memenuhi syarat memang menentukan namespace untuk membatasi pencarian.

    
    @{Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe? ms-resource://Microsoft.Camera/resources/manifestAppDescription}
    
Jika string bukan string tidak langsung, maka string langsung disalin tanpa perubahan pada pszOutBuf dan fungsi mengembalikan S_OK.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header shlwapi.h
Pustaka Shlwapi.lib
DLL Shlwapi.dll (versi 5.5 atau yang lebih baru)