Struktur CMINVOKECOMMANDINFO (shobjidl_core.h)
Berisi informasi yang diperlukan oleh IContextMenu::InvokeCommand untuk memanggil perintah menu pintasan.
Sintaks
typedef struct _CMINVOKECOMMANDINFO {
DWORD cbSize;
DWORD fMask;
HWND hwnd;
LPCSTR lpVerb;
LPCSTR lpParameters;
LPCSTR lpDirectory;
int nShow;
DWORD dwHotKey;
HANDLE hIcon;
} CMINVOKECOMMANDINFO;
Anggota
cbSize
Jenis: DWORD
Ukuran struktur ini, dalam byte.
fMask
Jenis: DWORD
Nol, atau satu atau beberapa bendera berikut.
CMIC_MASK_HOTKEY
Anggota dwHotKey valid.
CMIC_MASK_ICON
Anggota hIcon valid. Pada Windows Vista, bendera ini tidak digunakan.
CMIC_MASK_FLAG_NO_UI
Sistem dicegah untuk menampilkan elemen antarmuka pengguna (misalnya, pesan kesalahan) saat melakukan perintah.
CMIC_MASK_NO_CONSOLE
Jika penangan menu pintasan perlu membuat proses baru, biasanya akan membuat konsol baru. Mengatur bendera CMIC_MASK_NO_CONSOLE menekan pembuatan konsol baru.
CMIC_MASK_FLAG_SEP_VDM
Bendera ini hanya valid jika mengacu pada aplikasi berbasis Windows 16-bit. Jika diatur, aplikasi yang ditikam pintasan berjalan di Virtual DOS Machine (VDM) privat. Lihat Keterangan.
CMIC_MASK_ASYNCOK
Tunggu hingga percakapan DDE berakhir sebelum kembali.
CMIC_MASK_NOASYNC
Windows Vista dan yang lebih baru. Implementasi IContextMenu::InvokeCommand harus sinkron, tidak mengembalikan sebelum selesai. Karena ini direkomendasikan, memanggil aplikasi yang menentukan bendera ini tidak dapat menjamin bahwa permintaan ini akan dihormati jika mereka tidak terbiasa dengan implementasi kata kerja yang mereka panggil.
CMIC_MASK_SHIFT_DOWN
Tombol SHIFT ditekan. Gunakan ini alih-alih polling status keyboard saat ini yang mungkin telah berubah sejak kata kerja dipanggil.
CMIC_MASK_CONTROL_DOWN
Tombol CTRL ditekan. Gunakan ini alih-alih polling status keyboard saat ini yang mungkin telah berubah sejak kata kerja dipanggil.
CMIC_MASK_FLAG_LOG_USAGE
Menunjukkan bahwa implementasi IContextMenu::InvokeCommand mungkin ingin melacak item yang dipanggil untuk fitur seperti menu "Dokumen terbaru".
CMIC_MASK_NOZONECHECKS
Jangan lakukan pemeriksaan zona. Bendera ini memungkinkan ShellExecuteEx untuk melewati pemeriksaan zona yang diberlakukan oleh IAttachmentExecute.
hwnd
Jenis: HWND
Handel ke jendela yang merupakan pemilik menu pintasan. Ekstensi juga dapat menggunakan handel ini sebagai pemilik kotak pesan atau kotak dialog apa pun yang ditampilkannya.
lpVerb
Jenis: LPCSTR
Alamat string yang dihentikan null yang menentukan nama perintah yang tidak bergantung pada bahasa yang akan dilakukan. Anggota ini biasanya merupakan string ketika perintah sedang diaktifkan oleh aplikasi. Sistem menyediakan nilai konstanta yang telah ditentukan sebelumnya untuk string perintah berikut.
Terus-menerus | String perintah |
---|---|
CMDSTR_RUNAS | "RunAs" |
CMDSTR_PRINT | "Cetak" |
CMDSTR_PREVIEW | "Pratinjau" |
CMDSTR_OPEN | "Buka" |
Ini bukan set tetap; kata kerja kanonis baru dapat ditemukan oleh penangan menu konteks dan aplikasi dapat memanggilnya.
Jika ada kata kerja kanonis dan penangan menu tidak mengimplementasikan kata kerja kanonis, itu harus mengembalikan kode kegagalan untuk memungkinkan handler berikutnya untuk dapat menangani kata kerja ini. Gagal melakukan ini akan merusak fungsionalitas dalam sistem termasuk ShellExecute.
Atau, daripada pointer, parameter ini dapat berupa MAKEINTRESOURCE(offset) di mana offset adalah offset pengidentifikasi menu dari perintah yang akan dilakukan. Implementasi dapat menggunakan makro IS_INTRESOURCE untuk mendeteksi bahwa alternatif ini sedang digunakan. Shell menggunakan alternatif ini saat pengguna memilih perintah menu.
lpParameters
Jenis: LPCSTR
String opsional yang berisi parameter yang diteruskan ke perintah. Format string ini ditentukan oleh perintah yang akan dipanggil. Anggota ini selalu NULL untuk item menu yang disisipkan oleh ekstensi Shell.
lpDirectory
Jenis: LPCSTR
Nama direktori kerja opsional. Anggota ini selalu NULL untuk item menu yang disisipkan oleh ekstensi Shell.
nShow
Jenis: int
Sekumpulan nilai SW_ untuk diteruskan ke fungsi ShowWindow jika perintah menampilkan jendela atau memulai aplikasi.
dwHotKey
Jenis: DWORD
Pintasan keyboard opsional untuk ditetapkan ke aplikasi apa pun yang diaktifkan oleh perintah . Jika parameter fMask tidak menentukan CMIC_MASK_HOTKEY, anggota ini diabaikan.
hIcon
Jenis: HANDEL
Ikon yang digunakan untuk aplikasi apa pun yang diaktifkan oleh perintah . Jika anggota fMask tidak menentukan CMIC_MASK_ICON, anggota ini diabaikan.
Keterangan
Meskipun deklarasi IContextMenu::InvokeCommand menentukan struktur CMINVOKECOMMANDINFO untuk parameter pici , ia juga dapat menerima struktur CMINVOKECOMMANDINFOEX . Jika Anda menerapkan metode ini, Anda harus memeriksa cbSize untuk menentukan struktur mana yang telah dilewati.
Persyaratan
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Header | shobjidl_core.h (termasuk Shobjidl.h) |