Metode IOleCommandTarget::Exec (docobj.h)
Menjalankan perintah yang ditentukan atau menampilkan bantuan untuk perintah.
Sintaks
HRESULT Exec(
[in] const GUID *pguidCmdGroup,
[in] DWORD nCmdID,
[in] DWORD nCmdexecopt,
[in] VARIANT *pvaIn,
[in, out] VARIANT *pvaOut
);
Parameter
[in] pguidCmdGroup
Pengidentifikasi unik grup perintah; dapat berupa NULL untuk menentukan grup standar.
[in] nCmdID
Perintah yang akan dijalankan. Perintah ini harus termasuk dalam grup yang ditentukan dengan pguidCmdGroup.
[in] nCmdexecopt
Menentukan bagaimana objek harus menjalankan perintah. Nilai yang mungkin diambil dari enumerasi OLECMDEXECOPT dan OLECMDID_WINDOWSTATE_FLAG .
[in] pvaIn
Penunjuk ke struktur VARIANTARG yang berisi argumen input. Parameter ini bisa NULL.
[in, out] pvaOut
Arahkan ke struktur VARIANTARG untuk menerima output perintah. Parameter ini bisa NULL.
Menampilkan nilai
Metode ini mengembalikan S_OK pada keberhasilan. Nilai pengembalian lain yang mungkin termasuk yang berikut ini.
Menampilkan kode | Deskripsi |
---|---|
|
Parameter pguidCmdGroup bukan NULL tetapi tidak menentukan grup perintah yang dikenali. |
|
Parameter nCmdID bukan perintah yang valid dalam grup yang diidentifikasi oleh pguidCmdGroup. |
|
Perintah yang diidentifikasi oleh nCmdID saat ini dinonaktifkan dan tidak dapat dijalankan. |
|
Pemanggil telah meminta bantuan pada perintah yang diidentifikasi oleh nCmdID, tetapi tidak ada bantuan yang tersedia. |
|
Pengguna membatalkan eksekusi perintah. |
Keterangan
Daftar argumen input dan output dari perintah dan bagaimana mereka dibungkus unik untuk setiap perintah. Informasi tersebut harus didokumentasikan dengan spesifikasi grup perintah. (Lihat deskripsi OLECMDID_ZOOM dalam enumerasi OLECMDID .) Dengan tidak adanya informasi spesifik apa pun, perintah diasumsikan tidak mengambil argumen dan tidak memiliki nilai pengembalian.
Catatan untuk Penelepon
Parameter pguidCmdGroup dan nCmdID bersama-sama secara unik mengidentifikasi perintah untuk dipanggil. Parameter nCmdExecOpt menentukan tindakan yang tepat untuk diambil. (Lihat enumerasi OLECMDEXECOPT untuk detail selengkapnya.)Sebagian besar perintah tidak mengambil argumen atau mengembalikan nilai. Untuk perintah tersebut, pemanggil dapat meneruskan NULL di pvaIn dan pvaOut. Untuk perintah yang mengharapkan satu atau beberapa nilai input, pemanggil dapat mendeklarasikan dan menginisialisasi variabel VARIANTARG dan meneruskan penunjuk ke variabel tersebut di pvaIn. Jika input ke perintah adalah nilai tunggal, argumen dapat disimpan langsung dalam struktur VARIANTARG dan diteruskan ke fungsi . Jika perintah mengharapkan beberapa argumen, argumen tersebut harus dikemas dengan tepat dalam VARIANTARG, menggunakan salah satu jenis yang didukung (seperti IDispatch atau SAFEARRAY).
Jika perintah mengembalikan satu atau beberapa argumen, pemanggil diharapkan untuk mendeklarasikan VARIANTARG, menginisialisasinya ke VT_EMPTY, dan meneruskan alamatnya di pvaOut. Jika perintah mengembalikan satu nilai, maka objek dapat menyimpan nilai tersebut langsung di pvaOut. Jika perintah memiliki beberapa nilai output, maka perintah akan mengemasnya dengan cara tertentu yang sesuai untuk VARIANTARG.
Karena pvaIn dan pvOut dialokasikan pemanggil, variabel tumpukan diizinkan untuk pemanggil dan objek yang menerima panggilan. Untuk perintah yang mengambil nol atau satu argumen pada input dan mengembalikan nol atau satu nilai, tidak ada alokasi memori tambahan yang diperlukan. Sebagian besar jenis yang didukung oleh VARIANTARG tidak memerlukan alokasi memori. Pengecualian termasuk SAFEARRAY dan BSTR.
Catatan untuk Pelaksana
Target perintah harus mengimplementasikan fungsi ini; E_NOTIMPL bukan nilai pengembalian yang valid.Persyaratan
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | docobj.h |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk