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 |
---|---|
|
Metode berhasil diselesaikan. |
|
Metode ini tidak diimplementasikan dan nama yang telah ditentukan sebelumnya tidak didukung. |
|
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 |