Bagikan melalui


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
OLECMDERR_E_UNKNOWNGROUP
Parameter pguidCmdGroup bukan NULL tetapi tidak menentukan grup perintah yang dikenali.
OLECMDERR_E_NOTSUPPORTED
Parameter nCmdID bukan perintah yang valid dalam grup yang diidentifikasi oleh pguidCmdGroup.
OLECMDERR_E_DISABLED
Perintah yang diidentifikasi oleh nCmdID saat ini dinonaktifkan dan tidak dapat dijalankan.
OLECMDERR_E_NOHELP
Pemanggil telah meminta bantuan pada perintah yang diidentifikasi oleh nCmdID, tetapi tidak ada bantuan yang tersedia.
OLECMDERR_E_CANCELED
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

IOleCommandTarget

OLECMDEXECOPT