Aracılığıyla paylaş


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 CSnapInItemImpltü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 IComponentDatanesneye yönelik bir işaretçi. Bildirim içinden IComponentData::Notifyiletilmiyorsa bu parametre NULL olur.

pComponent
[out] uygulayan IComponentnesneye yönelik bir işaretçi. Bildirim içinden IComponent::Notifyiletilmiyorsa 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 IInsertionPointIDolarak kullanılarak bu alt menüye lCommandID 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.

Ayrıca bkz.

Sınıfa Genel Bakış