IOleItemContainer::Metode GetObject (oleidl.h)
Mengambil penunjuk ke objek yang ditentukan.
Sintaks
HRESULT GetObject(
[in] LPOLESTR pszItem,
[in] DWORD dwSpeedNeeded,
[in] IBindCtx *pbc,
[in] REFIID riid,
[out] void **ppvObject
);
Parameter
[in] pszItem
Nama kontainer untuk objek yang diminta.
[in] dwSpeedNeeded
Menunjukkan kira-kira berapa lama penelepon akan menunggu untuk mendapatkan objek . Nilai yang mungkin diambil dari enumerasi BINDSPEED.
[in] pbc
Penunjuk ke antarmuka IBindCtx pada objek konteks ikatan yang akan digunakan dalam operasi pengikatan ini. Konteks ikatan menyimpan objek yang terikat selama proses pengikatan, berisi parameter yang berlaku untuk semua operasi menggunakan konteks ikatan, dan menyediakan sarana di mana implementasi pengikatan harus mengambil informasi tentang lingkungannya.
[in] riid
Referensi ke pengidentifikasi penunjuk antarmuka yang diminta.
[out] ppvObject
Alamat variabel pointer yang menerima pointer antarmuka yang diminta dalam riid. Setelah berhasil dikembalikan, *ppvObject berisi penunjuk antarmuka yang diminta ke objek bernama oleh pszItem. Jika berhasil, implementasi harus memanggil AddRef pada *ppvObject; adalah tanggung jawab penelepon untuk memanggil Rilis. Jika terjadi kesalahan, implementasi menetapkan *ppvObject ke NULL.
Nilai kembali
Metode ini dapat mengembalikan nilai pengembalian standar E_OUTOFMEMORY, serta nilai berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Metode berhasil diselesaikan. |
|
Operasi pengikatan tidak dapat diselesaikan dalam batas waktu yang ditentukan oleh struktur BIND_OPTS konteks ikatan, atau dengan kecepatan yang ditunjukkan oleh parameter dwSpeedNeeded . |
|
Parameter pszItem tidak mengidentifikasi objek dalam kontainer ini. |
|
Antarmuka yang diminta tidak tersedia. |
Keterangan
Implementasi moniker item IMoniker::BindToObject memanggil metode ini, meneruskan nama yang disimpan dalam item moniker sebagai parameter pszItem .
Catatan untuk Pelaksana
Implementasi IOleItemContainer::GetObject Anda harus terlebih dahulu menentukan apakah pszItem adalah nama yang valid untuk salah satu objek kontainer. Jika tidak, Anda harus mengembalikan MK_E_NOOBJECT.Jika pszItem menamai objek yang disematkan atau ditautkan, implementasi Anda harus memeriksa nilai parameter dwSpeedNeeded . Jika nilainya BINDSPEED_IMMEDIATE dan objek belum dimuat, Anda harus mengembalikan MK_E_EXCEEDEDDEADLINE. Jika objek dimuat, implementasi Anda harus menentukan apakah objek berjalan (misalnya, dengan memanggil fungsi OleIsRunning ). Jika tidak berjalan dan nilai dwSpeedNeeded BINDSPEED_MODERATE, implementasi Anda harus mengembalikan MK_E_EXCEEDEDDEADLINE. Jika objek tidak berjalan dan dwSpeedNeeded BINDSPEED_INDEFINITE, implementasi Anda harus memanggil fungsi OleRun untuk menempatkan objek dalam status berjalan. Kemudian dapat mengkueri objek untuk antarmuka yang diminta. Perhatikan bahwa penting untuk menjalankan objek sebelum Anda mengkueri antarmuka.
Jika pszItem menamai objek pseudo, implementasi Anda dapat mengabaikan parameter dwSpeedNeeded karena objek pseudo berjalan setiap kali kontainernya berjalan. Dalam hal ini, implementasi Anda hanya dapat mengkueri antarmuka yang diminta.
Jika Anda memerlukan informasi yang lebih spesifik tentang batas waktu daripada yang diberikan oleh dwSpeedNeeded, Anda dapat memanggil IBindCtx::GetBindOptions pada parameter pbc untuk mendapatkan parameter tenggat waktu yang sebenarnya.
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 | oleidl.h |