Bagikan melalui


Metode IPerPropertyBrowsing::GetPredefinedStrings (ocidl.h)

Mengambil string deskripsi array untuk nilai yang diizinkan yang dapat diterima properti yang ditentukan.

Sintaks

HRESULT GetPredefinedStrings(
  [in]  DISPID     dispID,
  [out] CALPOLESTR *pCaStringsOut,
  [out] CADWORD    *pCaCookiesOut
);

Parameter

[in] dispID

Pengidentifikasi pengiriman properti.

[out] pCaStringsOut

Penunjuk ke struktur array yang dialokasikan pemanggil yang dihitung yang berisi jumlah elemen dan alamat array penunjuk string yang dialokasikan metode. Metode ini juga mengalokasikan memori untuk nilai string yang berisi nama yang telah ditentukan sebelumnya, dan menyimpan penunjuk string dalam array. Jika metode gagal, tidak ada memori yang dialokasikan, dan konten struktur tidak terdefinisi.

[out] pCaCookiesOut

Penunjuk ke struktur array yang dialokasikan pemanggil yang dihitung yang berisi jumlah elemen dan alamat array nilai DWORD yang dialokasikan metode. Nilai dalam array dapat diteruskan ke IPerPropertyBrowsing::GetPredefinedValue untuk mengambil nilai yang terkait dengan nama dalam posisi array yang sama di dalam pCaStringsOut. Jika metode gagal, tidak ada memori yang dialokasikan, dan konten struktur tidak terdefinisi.

Nilai kembali

Metode ini dapat mengembalikan nilai pengembalian standar E_INVALIDARG, E_OUTOFMEMORY, dan E_UNEXPECTED, serta nilai berikut.

Menampilkan kode Deskripsi
S_OK
Metode berhasil diselesaikan.
E_NOTIMPL
Metode ini tidak diimplementasikan dan nama yang telah ditentukan sebelumnya tidak didukung.
E_POINTER
Alamat di pCaStringsOut atau pCaCookiesOut tidak valid. Misalnya, salah satu parameter mungkin NULL.

Keterangan

Setiap string yang dikembalikan dalam array yang ditunjukkan oleh pCaStringsOut memiliki token yang cocok dalam array terhitung yang diarahkan oleh pCaCookiesOut, di mana token dapat diteruskan ke IPerPropertyBrowsing::GetPredefinedValue untuk mendapatkan nilai aktual ( VARIAN) yang sesuai dengan string.

Dengan menggunakan string yang telah ditentukan sebelumnya, penelepon dapat memperoleh daftar string untuk mengisi elemen antarmuka pengguna, seperti kotak daftar drop-down. Saat pengguna akhir memilih salah satu string ini sebagai nilai untuk ditetapkan ke properti, pemanggil kemudian dapat memperoleh nilai yang sesuai melalui IPerPropertyBrowsing::GetPredefinedValue.

Catatan untuk Penelepon

Struktur CALPOLESTR dan CADWORD yang diteruskan ke metode ini dialokasikan pemanggil. Pemanggil bertanggung jawab untuk membebaskan setiap string yang diarahkan ke dari array CALPOLESTR serta struktur CALPOLESTR .

Semua memori dialokasikan dengan CoTaskMemAlloc. Pemanggil bertanggung jawab untuk membebaskan string dan array dengan CoTaskMemFree.

Setelah kembali dari metode ini, pemanggil bertanggung jawab atas semua memori ini dan harus membebaskannya ketika tidak lagi diperlukan. Kode untuk mencapai hal ini muncul sebagai berikut.

CALPOLESTR     castr; 
CWDWORD        cadw; 
ULONG          i; 
 
pIPerPropertyBrowsing->GetPredefinedStrings(dispID, &castr, &cadw); 
 
//...Use the strings and the cookies 
 
CoTaskMemFree((void *)cadw.pElems); 
 
for (i=0; i < castr.cElems; i++) 
    CoTaskMemFree((void *)castr.pElems[i]); 
 
CoTaskMemFree((void *)castr.pElems); 

Catatan untuk Pelaksana

Dukungan untuk nama dan nilai yang telah ditentukan sebelumnya tidak diperlukan. Jika objek Anda tidak mendukung nama-nama ini, kembalikan E_NOTIMPL dari metode ini. Jika metode ini tidak diimplementasikan, IPerPropertyBrowsing::GetPredefinedValue juga tidak boleh diimplementasikan.

Metode ini mengisi anggota cElems dan pElems dari struktur CADWORD dan CALPOLESTR . Ini mengalokasikan array yang diarahkan oleh struktur ini dengan CoTaskMemAlloc dan mengisi array tersebut. Dalam kasus CALPOLESTR , metode ini juga mengalokasikan setiap string dengan CoTaskMemAlloc, menyimpan setiap penunjuk string dalam array.

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 ocidl.h

Lihat juga

CADWORD

CALPOLESTR

IPerPropertyBrowsing