CSnapInItemImpl Sınıfı
Bu sınıf, ek bileşen düğümü nesnesi uygulamak için yöntemler sağlar.
Önemli
Bu sınıf ve üyeleri Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.
Sözdizimi
template <class T, BOOL bIsExtension = FALSE>
class ATL_NO_VTABLE CSnapInItemImpl : public CSnapInItem
Parametreler
T
sınıfından CSnapInItemImpl
türetilen sınıfınız.
bIsExtension
Nesne bir ek bileşen uzantısıysa TRUE; aksi takdirde YANLIŞ.
Üyeler
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
CSnapInItemImpl::CSnapInItemImpl | Oluşturucu. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CSnapInItemImpl::AddMenuItems | Bağlam menüsüne menü öğeleri ekler. |
CSnapInItemImpl::Command | Özel bir menü öğesi seçildiğinde konsol tarafından çağrılır. |
CSnapInItemImpl::CreatePropertyPages | Ek bileşenin özellik sayfasına sayfalar ekler. |
CSnapInItemImpl::FillData | Ek bileşen nesnesindeki bilgileri belirtilen bir akışa kopyalar. |
CSnapInItemImpl::GetResultPaneInfo | Ek bileşenin RESULTDATAITEM yapısını alır. |
CSnapInItemImpl::GetResultViewType | Sonuç bölmesi tarafından kullanılan görünüm türünü belirler. |
CSnapInItemImpl::GetScopePaneInfo | Ek bileşenin SCOPEDATAITEM yapısını alır. |
CSnapInItemImpl::Notify | Kullanıcı tarafından gerçekleştirilir eylemleri ek bileşeni bildirmek için konsol tarafından çağrılır. |
CSnapInItemImpl::QueryPagesFor | Ek bileşen düğümlerinin özellik sayfalarını desteklenip desteklemediğini görmek için çağrılır. |
CSnapInItemImpl::SetMenuInsertionFlags | Ek bileşen nesnesinin menü ekleme bayraklarını değiştirir. |
CSnapInItemImpl::SetToolbarButtonInfo | Belirtilen araç çubuğu düğmesinin bilgilerini ayarlar. |
CSnapInItemImpl::UpdateMenuState | Bağlam menü öğesinin durumunu güncelleştirir. |
CSnapInItemImpl::UpdateToolbarButton | Belirtilen araç çubuğu düğmesinin durumunu güncelleştirir. |
Ortak Veri Üyeleri
Veri Akışı Adı | Açıklama |
---|---|
CSnapInItemImpl::m_bstrDisplayName | Ek bileşen nesnesinin adı. |
CSnapInItemImpl::m_resultDataItem | Nesnesi tarafından CSnapInItemImpl kullanılan Windows RESULTDATAITEM yapısı. |
CSnapInItemImpl::m_scopeDataItem | Nesnesi tarafından CSnapInItemImpl kullanılan Windows SCOPEDATAITEM yapısı. |
Açıklamalar
CSnapInItemImpl
bir ek bileşen düğümü nesnesi için menü öğeleri ve araç çubukları ekleme ve ek bileşen düğümü için uygun işleyici işlevine iletme komutları gibi temel bir uygulama sağlar. Bu özellikler birkaç farklı arabirim ve harita türü kullanılarak uygulanır. Varsayılan uygulama, türetilmiş sınıfın doğru örneğini belirleyip iletiyi doğru örneğe ileterek düğüm nesnesine gönderilen bildirimleri işler.
Devralma Hiyerarşisi
CSnapInItem
CSnapInItemImpl
Gereksinimler
Üst bilgi: atlsnap.h
CSnapInItemImpl::AddMenuItems
Bu yöntem, IExtendContextMenu::AddMenuItems Win32 işlevini uygular.
AddMenuItems(
LPCONTEXTMENUCALLBACK piCallback,
long* pInsertionAllowed,
DATA_OBJECT_TYPES type);
Parametreler
piCallback
[in] Bağlam menüsüne IContextMenuCallback
öğe ekleyebilen işaretçi.
pInsertionAllowed
[in, out] Kullanılabilecek Microsoft Yönetim Konsolu (MMC) tanımlı, menü öğesi ekleme noktalarını tanımlar. Bu, aşağıdaki bayrakların bir bileşimi olabilir:
CCM_INSERTIONALLOWED_TOP Öğeler bağlam menüsünün en üstüne eklenebilir.
CCM_INSERTIONALLOWED_NEW Öğeleri Yeni Oluştur alt menüsüne eklenebilir.
CCM_INSERTIONALLOWED_TASK Öğeleri Görev alt menüsüne eklenebilir.
CCM_INSERTIONALLOWED_VIEW Öğeler araç çubuğu görünümü menüsüne veya sonuç bölmesi bağlam menüsünün Görünüm alt menüsüne eklenebilir.
type
[in] Nesnenin türünü belirtir. Aşağıdaki değerlerden birine sahip olabilir:
Kapsam bölmesi bağlamı için Veri nesnesini CCT_SCOPE.
Sonuç bölmesi bağlamı için Veri nesnesini CCT_RESULT.
Ek bileşen yöneticisi bağlamı için Veri nesnesini CCT_SNAPIN_MANAGER.
CCT_UNINITIALIZED Data nesnesinin türü geçersiz.
CSnapInItemImpl::Command
Bu yöntem, IExtendContextMenu::Command Win32 işlevini uygular.
Command(long lCommandID, DATA_OBJECT_TYPES type);
Parametreler
lCommandID
[in] Menü öğesinin komut tanımlayıcısını belirtir.
type
[in] Nesnenin türünü belirtir. Aşağıdaki değerlerden birine sahip olabilir:
Kapsam bölmesi bağlamı için Veri nesnesini CCT_SCOPE.
Sonuç bölmesi bağlamı için Veri nesnesini CCT_RESULT.
Ek bileşen yöneticisi bağlamı için Veri nesnesini CCT_SNAPIN_MANAGER.
CCT_UNINITIALIZED Data nesnesinin türü geçersiz.
CSnapInItemImpl::CreatePropertyPages
Bu yöntem, IExtendPropertySheet::CreatePropertyPages Win32 işlevini uygular.
CreatePropertyPages(
LPPROPERTYSHEETCALLBACK lpProvider,
long handle,
IUnknown* pUnk,
DATA_OBJECT_TYPES type);
Parametreler
lpProvider
[in] Arabirim işaretçisi IPropertySheetCallback
.
kulp
[in] MMCN_PROPERTY_CHANGE bildirim iletisini uygun veri sınıfına yönlendirmek için kullanılan tanıtıcıyı belirtir.
Punk
[in] IExtendPropertySheet
Düğümle ilgili bağlam bilgilerini içeren nesnedeki arabirimin işaretçisi.
type
[in] Nesnenin türünü belirtir. Aşağıdaki değerlerden birine sahip olabilir:
Kapsam bölmesi bağlamı için Veri nesnesini CCT_SCOPE.
Sonuç bölmesi bağlamı için Veri nesnesini CCT_RESULT.
Ek bileşen yöneticisi bağlamı için Veri nesnesini CCT_SNAPIN_MANAGER.
CCT_UNINITIALIZED Data nesnesinin türü geçersiz.
CSnapInItemImpl::CSnapInItemImpl
Bir CSnapInItemImpl
nesne oluşturur.
CSnapInItemImpl();
CSnapInItemImpl::FillData
Bu işlev, öğe hakkındaki bilgileri almak için çağrılır.
FillData(CLIPFORMAT cf, LPSTREAM pStream);
Parametreler
Cf
[in] Pano'nun biçimi (metin, zengin metin veya OLE öğeleri içeren zengin metin).
pStream
[in] Nesne verilerini içeren akış işaretçisi.
Açıklamalar
Bu işlevi düzgün bir şekilde uygulamak için, cf tarafından belirtilen Pano biçimine bağlı olarak doğru bilgileri akışa (pStream) kopyalayın.
CSnapInItemImpl::GetResultViewType
Ek bileşen nesnesinin sonuç bölmesinin görünüm türünü almak için bu işlevi çağırın.
GetResultViewType(
LPOLESTR* ppViewType,
long* pViewOptions);
Parametreler
ppViewType
[out] Döndürülen görünüm türünün adresinin işaretçisi.
pViewOptions
[out] MMC_VIEW_OPTIONS sabit listesi işaretçisi, konsola sahip olan ek bileşen tarafından belirtilen seçenekleri sağlar. Bu değer aşağıdakilerden biri olabilir:
MMC_VIEW_OPTIONS_NOLISTVIEWS = 0x00000001 Konsola Görünüm menüsünde standart liste görünümü seçeneklerini sunmaktan kaçınmasını söyler. Ek bileşenin yalnızca sonuç görünümü bölmesinde kendi özel görünümlerini görüntülemesine izin verir. Şu anda tanımlanan tek seçenek bayrağı budur.
MMC_VIEW_OPTIONS_NONE = 0 Varsayılan görünüm seçeneklerine izin verir.
CSnapInItemImpl::GetScopePaneInfo
Ek bileşenin SCOPEDATAITEM
yapısını almak için bu işlevi çağırın.
GetScopePaneInfo (SCOPEDATAITEM* pScopeDataItem);
Parametreler
pScopeDataItem
[out] Nesnenin SCOPEDATAITEM
yapısına ilişkin CSnapInItemImpl
bir işaretçi.
CSnapInItemImpl::GetResultPaneInfo
Ek bileşenin RESULTDATAITEM
yapısını almak için bu işlevi çağırın.
GetResultPaneInfo (RESULTDATAITEM* pResultDataItem);
Parametreler
pResultDataItem
[out] Nesnenin RESULTDATAITEM
yapısına ilişkin CSnapInItemImpl
bir işaretçi.
CSnapInItemImpl::m_bstrDisplayName
Düğüm öğesi için görüntülenen dizeyi içerir.
CComBSTR m_bstrDisplayName;
CSnapInItemImpl::m_scopeDataItem
SCOPEDATAITEM
Ek bileşen veri nesnesinin yapısı.
SCOPEDATAITEM m_scopeDataItem;
CSnapInItemImpl::m_resultDataItem
Ek bileşen veri nesnesinin RESULTDATAITEM yapısı.
RESULTDATAITEM m_resultDataItem;
CSnapInItemImpl::Notify
Ek bileşen nesnesi kullanıcı tarafından eyleme geçtiğinde çağrılır.
STDMETHOD(Notify)(
MMC_NOTIFY_TYPE event,
long arg,
long param,
IComponentData* pComponentData,
IComponent* pComponent,
DATA_OBJECT_TYPES type) = 0;
Parametreler
event
[in] Bir kullanıcı tarafından gerçekleştirilen bir eylemi tanımlar. Aşağıdaki bildirimler mümkündür:
MMCN_ACTIVATE Bir pencere etkinleştirildiğinde ve devre dışı bırakıldığında Gönderilir.
Sonuç bölmesine görüntü eklemek için Gönderildi MMCN_ADD_IMAGES.
MMCN_BTN_CLICK Kullanıcı araç çubuğu düğmelerinden birine tıkladığında Gönderilir.
MMCN_CLICK Kullanıcı liste görünümü öğesindeki fare düğmesine tıkladığında gönderilir.
MMCN_DBLCLICK Kullanıcı liste görünümü öğesindeki bir fare düğmesine çift tıkladığında gönderilir.
ek bileşene nesnenin silinmesi gerektiğini bildirmek için MMCN_DELETE Gönderildi.
MMCN_EXPAND Bir klasörün genişletilmesi veya daraltılması gerektiğinde Gönderilir.
MMCN_MINIMIZED Bir pencere simge durumuna küçültüldüğünde veya ekranı kapladığında Gönderilir.
MMCN_PROPERTY_CHANGE Ek bileşen nesnesinin görünümünün değişmek üzere olduğunu bir ek bileşen nesnesine bildirmek için gönderildi.
MMCN_REMOVE_CHILDREN Ek bileşenin belirtilen düğümün altına eklediği tüm alt ağacı silmesi gerektiğinde gönderilir.
MMCN_RENAME Yeniden adlandırma sorgulamak için ilk kez ve yeniden adlandırmayı yapmak için ikinci kez gönderildi.
MMCN_SELECT Kapsam veya sonuç görünümü bölmesindeki bir öğe seçildiğinde Gönderilir.
MMCN_SHOW İlk kez bir kapsam öğesi seçildiğinde veya seçimi kaldırıldığında gönderilir.
MMCN_VIEW_CHANGE Ek bileşen bir değişiklik olduğunda tüm görünümleri güncelleştirebildiğinde gönderilir.
Arg
[in] Bildirim türüne bağlıdır.
param
[in] Bildirim türüne bağlıdır.
pComponentData
[out] uygulayan IComponentData
nesneye yönelik bir işaretçi. Bildirim içinden IComponentData::Notify
iletilmiyorsa bu parametre NULL olur.
pComponent
[out] uygulayan IComponent
nesneye yönelik bir işaretçi. Bildirim içinden IComponent::Notify
iletilmiyorsa bu parametre NULL olur.
type
[in] Nesnenin türünü belirtir. Aşağıdaki değerlerden birine sahip olabilir:
Kapsam bölmesi bağlamı için Veri nesnesini CCT_SCOPE.
Sonuç bölmesi bağlamı için Veri nesnesini CCT_RESULT.
Ek bileşen yöneticisi bağlamı için Veri nesnesini CCT_SNAPIN_MANAGER.
CCT_UNINITIALIZED Data nesnesinin türü geçersiz.
CSnapInItemImpl::QueryPagesFor
Ek bileşen düğümlerinin özellik sayfalarını desteklenip desteklemediğini görmek için çağrılır.
QueryPagesFor(DATA_OBJECT_TYPES type);
CSnapInItemImpl::SetMenuInsertionFlags
Ek bileşen nesnesi için pInsertionAllowed tarafından belirtilen menü ekleme bayraklarını değiştirmek için bu işlevi çağırın.
void SetMenuInsertionFlags(
bool bBeforeInsertion,
long* pInsertionAllowed);
Parametreler
bBeforeInsertion
[in] Bağlam menüsüne öğeler eklenmeden önce işlevin çağrılması gerekiyorsa sıfır olmayan; aksi takdirde 0.
pInsertionAllowed
[in, out] Kullanılabilecek Microsoft Yönetim Konsolu (MMC) tanımlı, menü öğesi ekleme noktalarını tanımlar. Bu, aşağıdaki bayrakların bir bileşimi olabilir:
CCM_INSERTIONALLOWED_TOP Öğeler bağlam menüsünün en üstüne eklenebilir.
CCM_INSERTIONALLOWED_NEW Öğeleri Yeni Oluştur alt menüsüne eklenebilir.
CCM_INSERTIONALLOWED_TASK Öğeleri Görev alt menüsüne eklenebilir.
CCM_INSERTIONALLOWED_VIEW Öğeler araç çubuğu görünümü menüsüne veya sonuç bölmesi bağlam menüsünün Görünüm alt menüsüne eklenebilir.
Açıklamalar
Birincil ek bileşen geliştiriyorsanız, üçüncü taraf uzantının ekleyebilecekleri menü öğelerini kısıtlamanın bir yolu olarak ekleme bayraklarından herhangi birini sıfırlayabilirsiniz. Örneğin, birincil ek bileşen uzantıların kendi Yeni Oluştur menü öğelerini eklemesini önlemek için CCM_INSERTIONALLOWED_NEW bayrağını temizleyebilir.
pInsertionAllowed içinde başlangıçta temizlenmiş bitleri ayarlamayı denememelisiniz. MMC'nin gelecekteki sürümleri şu anda tanımlanmamış bitleri kullanabilir, bu nedenle şu anda tanımlanmamış bitleri değiştirmemelisiniz.
CSnapInItemImpl::SetToolbarButtonInfo
Araç çubuğu oluşturulmadan önce ek bileşen nesnesinin araç çubuğu düğme stillerini değiştirmek için bu işlevi çağırın.
void SetToolbarButtonInfo(
UINT id,
BYTE* fsState,
BYTE* fsType);
Parametreler
id
[in] Ayarlanacak araç çubuğu düğmesinin kimliği.
fsState
[in] Düğmenin durum bayrakları. Aşağıdakilerden biri veya daha fazlası olabilir:
TBSTATE_CHECKED Düğmeye TBSTYLE_CHECKED stili vardır ve düğmeye basılmaktadır.
TBSTATE_ENABLED Düğme kullanıcı girişini kabul eder. Bu duruma sahip olmayan bir düğme kullanıcı girişini kabul etmez ve gri renktedir.
TBSTATE_HIDDEN Düğme görünmez ve kullanıcı girişi alamaz.
TBSTATE_INDETERMINATE Düğme gri renktedir.
TBSTATE_PRESSED Düğmeye basılıyor.
TBSTATE_WRAP Bir satır sonu düğmeyi izler. Düğmenin de TBSTATE_ENABLED olması gerekir.
fsType
[in] Düğmenin durum bayrakları. Aşağıdakilerden biri veya daha fazlası olabilir:
TBSTYLE_BUTTON Standart bir anında iletme düğmesi oluşturur.
TBSTYLE_CHECK Kullanıcı her tıklayışında basılan ve basılmayan durumlar arasında geçiş sağlayan bir düğme oluşturur. Düğme, basılı durumdayken farklı bir arka plan rengine sahiptir.
TBSTYLE_CHECKGROUP Gruptaki başka bir düğmeye basılana kadar basılı kalan bir onay düğmesi oluşturur.
TBSTYLE_GROUP Gruptaki başka bir düğmeye basılana kadar basılı kalan bir düğme oluşturur.
TBSTYLE_SEP Düğme grupları arasında küçük bir boşluk sağlayarak ayırıcı oluşturur. Bu stile sahip bir düğme kullanıcı girişi almaz.
CSnapInItemImpl::UpdateMenuState
Ek bileşen nesnesinin bağlam menüsüne eklenmeden önce menü öğesini değiştirmek için bu işlevi çağırın.
void UpdateMenuState(
UINT id,
LPTSTR pBuf,
UINT* flags);
Parametreler
id
[in] Ayarlanacak menü öğesinin kimliği.
pBuf
[in] Güncelleştirilecek menü öğesinin dizesine yönelik bir işaretçi.
Bayrak
[in] Yeni durum bayraklarını belirtir. Bu, aşağıdaki bayrakların bir bileşimi olabilir:
MF_POPUP Bunun bağlam menüsündeki bir alt menü olduğunu belirtir. Menü öğeleri, ekleme noktaları ve diğer alt menüler, kendi alt menüleri
IInsertionPointID
olarak kullanılarak bu alt menüyelCommandID
eklenebilir.MF_BITMAP ve MF_OWNERDRAW Bu bayraklara izin verilmez ve E_INVALIDARG dönüş değerine neden olur.
MF_SEPARATOR Yatay bölme çizgisi çizer. Yalnızca
IContextMenuProvider
MF_SEPARATOR ayarlanmış menü öğeleri eklemesine izin verilir.MF_CHECKED Menü öğesinin yanına onay işareti yerleştirir.
MF_DISABLED Menü öğesini devre dışı bırakır, bu nedenle seçilemez, ancak bayrak onu gri yapmaz.
MF_ENABLED Menü öğesinin seçilebilmesini sağlar ve gri durumundan geri yüklenir.
MF_GRAYED Menü öğesini devre dışı bırakır ve seçilememesi için gri gösterir.
MF_MENUBARBREAK İşlevleri, menü çubuğunun MF_MENUBREAK bayrağıyla aynıdır. Açılan menü, alt menü veya kısayol menüsü için yeni sütun, eski sütundan dikey çizgiyle ayrılır.
MF_MENUBREAK Öğeyi sütunları ayırmadan yeni bir satıra (menü çubuğu için) veya yeni bir sütuna (açılan menü, alt menü veya kısayol menüsü için) yerleştirir.
MF_UNCHECKED Öğenin yanına onay işareti koymaz (varsayılan).
Aşağıdaki bayrak grupları birlikte kullanılamaz:
MF_DISABLED, MF_ENABLED ve MF_GRAYED.
MF_MENUBARBREAK ve MF_MENUBREAK.
MF_CHECKED ve MF_UNCHECKED.
CSnapInItemImpl::UpdateToolbarButton
Ek bileşen nesnesinin bir araç çubuğu düğmesini görüntülenmeden önce değiştirmek için bu işlevi çağırın.
BOOL UpdateToolbarButton(UINT id, BYTE fsState);
Parametreler
id
Güncelleştirilecek araç çubuğu düğmesinin düğme kimliğini belirtir.
fsState
Araç çubuğu düğme durumunu belirtir. Bu durum ayarlanacaksa TRUE döndür. Bu, aşağıdaki bayrakların bir bileşimi olabilir:
ETKİLE Düğmesi kullanıcı girişini kabul eder. Bu duruma sahip olmayan bir düğme kullanıcı girişini kabul etmez ve gri renktedir.
İŞARETLENDİ Düğmeye İşaretLENDİ stilindedir ve basılıyor.
GİzLİ Düğme görünür değil ve kullanıcı girişi alamıyor.
BELIRSIZ Düğme gri renktedir.
DÜĞME BASILDI Düğmeye basılıyor.