Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kelas ini menyediakan metode untuk menerapkan objek simpul snap-in.
Penting
Kelas ini dan anggotanya tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime.
Sintaks
template <class T, BOOL bIsExtension = FALSE>
class ATL_NO_VTABLE CSnapInItemImpl : public CSnapInItem
Parameter
T
Kelas Anda, berasal dari CSnapInItemImpl.
bIsExtension
TRUE jika objek adalah ekstensi snap-in; jika tidak FALSE.
Anggota
Konstruktor Publik
| Nama | Deskripsi |
|---|---|
| CSnapInItemImpl::CSnapInItemImpl | Konstruktor. |
Metode Publik
| Nama | Deskripsi |
|---|---|
| CSnapInItemImpl::AddMenuItems | Menambahkan item menu ke menu konteks. |
| CSnapInItemImpl::Command | Dipanggil oleh konsol saat item menu kustom dipilih. |
| CSnapInItemImpl::CreatePropertyPages | Menambahkan halaman ke lembar properti snap-in. |
| CSnapInItemImpl::FillData | Menyalin informasi pada objek snap-in ke dalam aliran tertentu. |
| CSnapInItemImpl::GetResultPaneInfo | Mengambil RESULTDATAITEM struktur snap-in. |
| CSnapInItemImpl::GetResultViewType | Menentukan tipe tampilan yang digunakan oleh panel hasil. |
| CSnapInItemImpl::GetScopePaneInfo | Mengambil SCOPEDATAITEM struktur snap-in. |
| CSnapInItemImpl::Beri tahu | Dipanggil oleh konsol untuk memberi tahu snap-in tindakan yang diambil oleh pengguna. |
| CSnapInItemImpl::QueryPagesFor | Dipanggil untuk melihat apakah simpul snap-in mendukung halaman properti. |
| CSnapInItemImpl::SetMenuInsertionFlags | Memodifikasi bendera penyisipan menu untuk objek snap-in. |
| CSnapInItemImpl::SetToolbarButtonInfo | Mengatur informasi tombol bilah alat yang ditentukan. |
| CSnapInItemImpl::UpdateMenuState | Memperbarui status item menu konteks. |
| CSnapInItemImpl::UpdateToolbarButton | Memperbarui status tombol bilah alat yang ditentukan. |
Anggota Data Publik
| Nama | Deskripsi |
|---|---|
| CSnapInItemImpl::m_bstrDisplayName | Nama objek snap-in. |
| CSnapInItemImpl::m_resultDataItem | Struktur Windows RESULTDATAITEM yang CSnapInItemImpl digunakan oleh objek. |
| CSnapInItemImpl::m_scopeDataItem | Struktur Windows SCOPEDATAITEM yang CSnapInItemImpl digunakan oleh objek. |
Keterangan
CSnapInItemImpl menyediakan implementasi dasar untuk objek simpul snap-in, seperti menambahkan item menu dan toolbar, dan perintah penerusan untuk simpul snap-in ke fungsi handler yang sesuai. Fitur-fitur ini diimplementasikan menggunakan beberapa antarmuka dan jenis peta yang berbeda. Implementasi default menangani pemberitahuan yang dikirim ke objek node dengan menentukan instans kelas turunan yang benar lalu meneruskan pesan ke instans yang benar.
Hierarki Warisan
CSnapInItem
CSnapInItemImpl
Persyaratan
Header: atlsnap.h
CSnapInItemImpl::AddMenuItems
Metode ini mengimplementasikan fungsi Win32 IExtendContextMenu::AddMenuItems.
AddMenuItems(
LPCONTEXTMENUCALLBACK piCallback,
long* pInsertionAllowed,
DATA_OBJECT_TYPES type);
Parameter
piCallback
[di] Penunjuk ke IContextMenuCallback yang dapat menambahkan item ke menu konteks.
pInsertionAllowed
[masuk, keluar] Mengidentifikasi titik penyisipan item menu yang ditentukan Konsol Manajemen Microsoft (MMC) yang dapat digunakan. Ini bisa menjadi kombinasi dari bendera berikut:
CCM_INSERTIONALLOWED_TOP Item dapat disisipkan di bagian atas menu konteks.
CCM_INSERTIONALLOWED_NEW Item dapat disisipkan dalam submenu Buat Baru.
CCM_INSERTIONALLOWED_TASK Item dapat disisipkan dalam submenu Tugas.
CCM_INSERTIONALLOWED_VIEW Item dapat disisipkan di menu tampilan toolbar atau di submenu Tampilan menu konteks panel hasil.
jenis
[di] Menentukan jenis objek. Ini dapat memiliki salah satu nilai berikut:
CCT_SCOPE Objek data untuk konteks panel cakupan.
CCT_RESULT Objek data untuk konteks panel hasil.
CCT_SNAPIN_MANAGER Objek data untuk konteks manajer snap-in.
objek CCT_UNINITIALIZED Data memiliki jenis yang tidak valid.
CSnapInItemImpl::Command
Metode ini mengimplementasikan fungsi Win32 IExtendContextMenu::Command.
Command(long lCommandID, DATA_OBJECT_TYPES type);
Parameter
lCommandID
[di] Menentukan pengidentifikasi perintah item menu.
jenis
[di] Menentukan jenis objek. Ini dapat memiliki salah satu nilai berikut:
CCT_SCOPE Objek data untuk konteks panel cakupan.
CCT_RESULT Objek data untuk konteks panel hasil.
CCT_SNAPIN_MANAGER Objek data untuk konteks manajer snap-in.
objek CCT_UNINITIALIZED Data memiliki jenis yang tidak valid.
CSnapInItemImpl::CreatePropertyPages
Metode ini mengimplementasikan fungsi Win32 IExtendPropertySheet::CreatePropertyPages.
CreatePropertyPages(
LPPROPERTYSHEETCALLBACK lpProvider,
long handle,
IUnknown* pUnk,
DATA_OBJECT_TYPES type);
Parameter
lpProvider
[di] Arahkan ke IPropertySheetCallback antarmuka.
menangani
[di] Menentukan handel yang digunakan untuk merutekan pesan pemberitahuan MMCN_PROPERTY_CHANGE ke kelas data yang sesuai.
Punk
[di] Arahkan ke IExtendPropertySheet antarmuka pada objek yang berisi informasi konteks tentang simpul.
jenis
[di] Menentukan jenis objek. Ini dapat memiliki salah satu nilai berikut:
CCT_SCOPE Objek data untuk konteks panel cakupan.
CCT_RESULT Objek data untuk konteks panel hasil.
CCT_SNAPIN_MANAGER Objek data untuk konteks manajer snap-in.
objek CCT_UNINITIALIZED Data memiliki jenis yang tidak valid.
CSnapInItemImpl::CSnapInItemImpl
Membuat CSnapInItemImpl objek.
CSnapInItemImpl();
CSnapInItemImpl::FillData
Fungsi ini dipanggil untuk mengambil informasi tentang item.
FillData(CLIPFORMAT cf, LPSTREAM pStream);
Parameter
Cf
[di] Format (teks, teks kaya, atau teks kaya dengan item OLE) dari Clipboard.
pStream
[di] Penunjuk ke aliran yang berisi data objek.
Keterangan
Untuk menerapkan fungsi ini dengan benar, salin informasi yang benar ke aliran (pStream), tergantung pada format Clipboard yang ditunjukkan oleh cf.
CSnapInItemImpl::GetResultViewType
Panggil fungsi ini untuk mengambil jenis tampilan untuk panel hasil objek snap-in.
GetResultViewType(
LPOLESTR* ppViewType,
long* pViewOptions);
Parameter
ppViewType
[out] Penunjuk ke alamat jenis tampilan yang dikembalikan.
pViewOptions
[out] Arahkan ke enumerasi MMC_VIEW_OPTIONS, yang menyediakan konsol dengan opsi yang ditentukan oleh snap-in pemilik. Nilai ini bisa menjadi salah satu dari berikut ini:
MMC_VIEW_OPTIONS_NOLISTVIEWS = 0x00000001 Memberi tahu konsol untuk menahan diri dari menyajikan pilihan tampilan daftar standar di menu Tampilan . Memungkinkan snap-in untuk menampilkan tampilan kustomnya sendiri hanya di panel tampilan hasil. Ini adalah satu-satunya bendera opsi yang ditentukan saat ini.
MMC_VIEW_OPTIONS_NONE = 0 Memungkinkan opsi tampilan default.
CSnapInItemImpl::GetScopePaneInfo
Panggil fungsi ini untuk mengambil SCOPEDATAITEM struktur snap-in.
GetScopePaneInfo (SCOPEDATAITEM* pScopeDataItem);
Parameter
pScopeDataItem
[out] Penunjuk ke SCOPEDATAITEM struktur CSnapInItemImpl objek.
CSnapInItemImpl::GetResultPaneInfo
Panggil fungsi ini untuk mengambil RESULTDATAITEM struktur snap-in.
GetResultPaneInfo (RESULTDATAITEM* pResultDataItem);
Parameter
pResultDataItem
[out] Penunjuk ke RESULTDATAITEM struktur CSnapInItemImpl objek.
CSnapInItemImpl::m_bstrDisplayName
Berisi string yang ditampilkan untuk item simpul.
CComBSTR m_bstrDisplayName;
CSnapInItemImpl::m_scopeDataItem
Struktur SCOPEDATAITEM objek data snap-in.
SCOPEDATAITEM m_scopeDataItem;
CSnapInItemImpl::m_resultDataItem
Struktur RESULTDATAITEM dari objek data snap-in.
RESULTDATAITEM m_resultDataItem;
CSnapInItemImpl::Beri tahu
Dipanggil ketika objek snap-in ditindaklanjuti oleh pengguna.
STDMETHOD(Notify)(
MMC_NOTIFY_TYPE event,
long arg,
long param,
IComponentData* pComponentData,
IComponent* pComponent,
DATA_OBJECT_TYPES type) = 0;
Parameter
event
[di] Mengidentifikasi tindakan yang diambil oleh pengguna. Pemberitahuan berikut dimungkinkan:
MMCN_ACTIVATE Dikirim saat jendela diaktifkan dan dinonaktifkan.
MMCN_ADD_IMAGES Dikirim untuk menambahkan gambar ke panel hasil.
MMCN_BTN_CLICK Terkirim saat pengguna mengklik salah satu tombol toolbar.
MMCN_CLICK Terkirim saat pengguna mengklik tombol mouse pada item tampilan daftar.
MMCN_DBLCLICK Terkirim saat pengguna mengklik dua kali tombol mouse pada item tampilan daftar.
MMCN_DELETE Dikirim untuk menginformasikan snap-in bahwa objek harus dihapus.
MMCN_EXPAND Dikirim saat folder perlu diperluas atau dikontrak.
MMCN_MINIMIZED Dikirim saat jendela sedang diminimalkan atau dimaksimalkan.
MMCN_PROPERTY_CHANGE Dikirim untuk memberi tahu objek snap-in bahwa tampilan objek snap-in akan berubah.
MMCN_REMOVE_CHILDREN Dikirim saat snap-in harus menghapus seluruh subtree yang telah ditambahkan di bawah simpul yang ditentukan.
MMCN_RENAME Dikirim pertama kali untuk mengkueri penggantian nama dan kedua kalinya untuk melakukan penggantian nama.
MMCN_SELECT Terkirim saat item di panel lingkup atau tampilan hasil dipilih.
MMCN_SHOW Dikirim saat item cakupan dipilih atau dibatalkan pilihannya untuk pertama kalinya.
MMCN_VIEW_CHANGE Dikirim saat snap-in dapat memperbarui semua tampilan saat perubahan terjadi.
Arg
[di] Tergantung pada jenis pemberitahuan.
param
[di] Tergantung pada jenis pemberitahuan.
pComponentData
[out] Penunjuk ke objek yang mengimplementasikan IComponentData. Parameter ini adalah NULL jika pemberitahuan tidak diteruskan dari IComponentData::Notify.
pComponent
[out] Penunjuk ke objek yang mengimplementasikan IComponent. Parameter ini adalah NULL jika pemberitahuan tidak diteruskan dari IComponent::Notify.
jenis
[di] Menentukan jenis objek. Ini dapat memiliki salah satu nilai berikut:
CCT_SCOPE Objek data untuk konteks panel cakupan.
CCT_RESULT Objek data untuk konteks panel hasil.
CCT_SNAPIN_MANAGER Objek data untuk konteks manajer snap-in.
objek CCT_UNINITIALIZED Data memiliki jenis yang tidak valid.
CSnapInItemImpl::QueryPagesFor
Dipanggil untuk melihat apakah simpul snap-in mendukung halaman properti.
QueryPagesFor(DATA_OBJECT_TYPES type);
CSnapInItemImpl::SetMenuInsertionFlags
Panggil fungsi ini untuk mengubah bendera penyisipan menu, yang ditentukan oleh pInsertionAllowed, untuk objek snap-in.
void SetMenuInsertionFlags(
bool bBeforeInsertion,
long* pInsertionAllowed);
Parameter
bBeforeInsertion
[di] Bukan nol jika fungsi harus dipanggil sebelum item ditambahkan ke menu konteks; jika tidak, 0.
pInsertionAllowed
[masuk, keluar] Mengidentifikasi titik penyisipan item menu yang ditentukan Konsol Manajemen Microsoft (MMC) yang dapat digunakan. Ini bisa menjadi kombinasi dari bendera berikut:
CCM_INSERTIONALLOWED_TOP Item dapat disisipkan di bagian atas menu konteks.
CCM_INSERTIONALLOWED_NEW Item dapat disisipkan dalam submenu Buat Baru.
CCM_INSERTIONALLOWED_TASK Item dapat disisipkan dalam submenu Tugas.
CCM_INSERTIONALLOWED_VIEW Item dapat disisipkan di menu tampilan toolbar atau di submenu Tampilan menu konteks panel hasil.
Keterangan
Jika Anda mengembangkan snap-in utama, Anda dapat mengatur ulang salah satu bendera penyisipan sebagai cara membatasi jenis item menu yang dapat ditambahkan ekstensi pihak ketiga. Misalnya, snap-in utama dapat menghapus bendera CCM_INSERTIONALLOWED_NEW untuk mencegah ekstensi menambahkan item menu Buat Baru mereka sendiri.
Anda tidak boleh mencoba mengatur bit dalam pInsertionAllowed yang awalnya dihapus. Versi MMC di masa mendatang dapat menggunakan bit yang saat ini tidak ditentukan sehingga Anda tidak boleh mengubah bit yang saat ini tidak ditentukan.
CSnapInItemImpl::SetToolbarButtonInfo
Panggil fungsi ini untuk mengubah gaya tombol toolbar apa pun, dari objek snap-in, sebelum toolbar dibuat.
void SetToolbarButtonInfo(
UINT id,
BYTE* fsState,
BYTE* fsType);
Parameter
id
[di] ID tombol toolbar yang akan diatur.
fsState
[di] Bendera status tombol. Dapat berupa satu atau beberapa hal berikut:
TBSTATE_CHECKED Tombol memiliki gaya TBSTYLE_CHECKED dan sedang ditekan.
TBSTATE_ENABLED Tombol menerima input pengguna. Tombol yang tidak memiliki status ini tidak menerima input pengguna dan berwarna abu-abu.
TBSTATE_HIDDEN Tombol tidak terlihat dan tidak dapat menerima input pengguna.
TBSTATE_INDETERMINATE Tombol berwarna abu-abu.
TBSTATE_PRESSED Tombol sedang ditekan.
TBSTATE_WRAP Pemisah baris mengikuti tombol . Tombol juga harus memiliki TBSTATE_ENABLED.
fsType
[di] Bendera status tombol. Dapat berupa satu atau beberapa hal berikut:
TBSTYLE_BUTTON Membuat tombol tekan standar.
TBSTYLE_CHECK Membuat tombol yang beralih antara status yang ditekan dan tidak ditekan setiap kali pengguna mengkliknya. Tombol memiliki warna latar belakang yang berbeda ketika berada dalam status ditekan.
TBSTYLE_CHECKGROUP Membuat tombol centang yang tetap ditekan hingga tombol lain dalam grup ditekan.
TBSTYLE_GROUP Membuat tombol yang tetap ditekan hingga tombol lain dalam grup ditekan.
TBSTYLE_SEP Membuat pemisah, memberikan celah kecil di antara grup tombol. Tombol yang memiliki gaya ini tidak menerima input pengguna.
CSnapInItemImpl::UpdateMenuState
Panggil fungsi ini untuk mengubah item menu sebelum dimasukkan ke dalam menu konteks objek snap-in.
void UpdateMenuState(
UINT id,
LPTSTR pBuf,
UINT* flags);
Parameter
id
[di] ID item menu yang akan diatur.
pBuf
[di] Penunjuk ke string untuk item menu yang akan diperbarui.
flags
[di] Menentukan bendera status baru. Ini bisa menjadi kombinasi dari bendera berikut:
MF_POPUP Menentukan bahwa ini adalah submenu dalam menu konteks. Item menu, titik penyisipan, dan submenu lebih lanjut dapat ditambahkan ke submenu ini menggunakannya
lCommandIDsebagaiIInsertionPointID.MF_BITMAP dan MF_OWNERDRAW Bendera ini tidak diizinkan dan akan menghasilkan nilai pengembalian E_INVALIDARG.
MF_SEPARATOR Menggambar garis pembagian horizontal. Hanya
IContextMenuProviderdiizinkan untuk menambahkan item menu dengan set MF_SEPARATOR.MF_CHECKED Menempatkan tanda centang di samping item menu.
MF_DISABLED Menonaktifkan item menu sehingga tidak dapat dipilih, tetapi bendera tidak berwarna abu-abu.
MF_ENABLED Mengaktifkan item menu sehingga dapat dipilih, memulihkannya dari status abu-abu.
MF_GRAYED Menonaktifkan item menu, membuatnya berwarna abu-abu sehingga tidak dapat dipilih.
MF_MENUBARBREAK Functions sama dengan bendera MF_MENUBREAK untuk bilah menu. Untuk menu drop-down, submenu, atau menu pintasan, kolom baru dipisahkan dari kolom lama dengan garis vertikal.
MF_MENUBREAK Menempatkan item pada baris baru (untuk bilah menu) atau di kolom baru (untuk menu drop-down, submenu, atau menu pintasan) tanpa memisahkan kolom.
MF_UNCHECKED Tidak menempatkan tanda centang di samping item (default).
Grup bendera berikut tidak dapat digunakan bersama-sama:
MF_DISABLED, MF_ENABLED, dan MF_GRAYED.
MF_MENUBARBREAK dan MF_MENUBREAK.
MF_CHECKED dan MF_UNCHECKED.
CSnapInItemImpl::UpdateToolbarButton
Panggil fungsi ini untuk mengubah tombol toolbar, dari objek snap-in, sebelum ditampilkan.
BOOL UpdateToolbarButton(UINT id, BYTE fsState);
Parameter
id
Menentukan ID tombol tombol bilah alat yang akan diperbarui.
fsState
Menentukan status tombol bilah alat. Jika status ini akan diatur, kembalikan TRUE. Ini bisa menjadi kombinasi dari bendera berikut:
DIAKTIFKAN Tombol menerima input pengguna. Tombol yang tidak memiliki status ini tidak menerima input pengguna dan berwarna abu-abu.
DICENTANG Tombol memiliki gaya DIPERIKSA dan sedang ditekan.
TERSEMBUNYI Tombol tidak terlihat dan tidak dapat menerima input pengguna.
INDETERMINATE Tombol berwarna abu-abu.
TOMBOL DITEKAN Tombol sedang ditekan.