Delen via


Klasse CSnapInItemImpl

Opmerking

De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Deze klasse biedt methoden voor het implementeren van een moduleknooppuntobject.

Belangrijk

Deze klasse en de bijbehorende leden kunnen niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.

Syntaxis

template <class T, BOOL bIsExtension = FALSE>
class ATL_NO_VTABLE CSnapInItemImpl : public CSnapInItem

Parameterwaarden

T
Uw klas, afgeleid van CSnapInItemImpl.

bIsExtension
WAAR als het object een module-extensie is; anders ONWAAR.

Leden

Openbare constructors

Naam Description
CSnapInItemImpl::CSnapInItemImpl Bouwer.

Openbare methoden

Naam Description
CSnapInItemImpl::AddMenuItems Hiermee worden menu-items toegevoegd aan een contextmenu.
CSnapInItemImpl::Command Wordt aangeroepen door de console wanneer een aangepast menu-item is geselecteerd.
CSnapInItemImpl::CreatePropertyPages Hiermee voegt u pagina's toe aan het eigenschappenvenster van de module.
CSnapInItemImpl::FillData Kopieert informatie over het moduleobject naar een opgegeven stroom.
CSnapInItemImpl::GetResultPaneInfo Haalt de RESULTDATAITEM structuur van de module op.
CSnapInItemImpl::GetResultViewType Bepaalt het type weergave dat wordt gebruikt door het resultaatvenster.
CSnapInItemImpl::GetScopePaneInfo Haalt de SCOPEDATAITEM structuur van de module op.
CSnapInItemImpl::Notify Aangeroepen door de console om de module te informeren over acties die door de gebruiker zijn uitgevoerd.
CSnapInItemImpl::QueryPagesFor Wordt aangeroepen om te zien of het moduleknooppunt eigenschappenpagina's ondersteunt.
CSnapInItemImpl::SetMenuInsertionFlags Hiermee wijzigt u de menuinvoegmarkeringen voor een moduleobject.
CSnapInItemImpl::SetToolbarButtonInfo Hiermee stelt u de gegevens van de opgegeven werkbalkknop in.
CSnapInItemImpl::UpdateMenuState Hiermee wordt de status van een contextmenu-item bijgewerkt.
CSnapInItemImpl::UpdateToolbarButton Hiermee wordt de status van de opgegeven werkbalkknop bijgewerkt.

Publieke dataleden

Naam Description
CSnapInItemImpl::m_bstrDisplayName De naam van het moduleobject.
CSnapInItemImpl::m_resultDataItem De Windows-structuur RESULTDATAITEM die door het CSnapInItemImpl object wordt gebruikt.
CSnapInItemImpl::m_scopeDataItem De Windows-structuur SCOPEDATAITEM die door het CSnapInItemImpl object wordt gebruikt.

Opmerkingen

CSnapInItemImpl biedt een eenvoudige implementatie voor een module-knooppuntobject, zoals het toevoegen van menu-items en werkbalken en het doorsturen van opdrachten voor het moduleknooppunt aan de juiste handler-functie. Deze functies worden geïmplementeerd met behulp van verschillende interfaces en kaarttypen. De standaard implementatie verwerkt meldingen die naar het knooppuntobject worden verzonden door het juiste exemplaar van de afgeleide klasse te bepalen en het bericht vervolgens door te sturen naar het juiste exemplaar.

Overnamehiërarchie

CSnapInItem

CSnapInItemImpl

Requirements

Koptekst: atlsnap.h

CSnapInItemImpl::AddMenuItems

Met deze methode wordt de Win32-functie IExtendContextMenu::AddMenuItems geïmplementeerd.

AddMenuItems(
    LPCONTEXTMENUCALLBACK piCallback,
    long* pInsertionAllowed,
    DATA_OBJECT_TYPES type);

Parameterwaarden

piCallback
[in] Aanwijzer naar de IContextMenuCallback aanwijzer waarmee items aan het contextmenu kunnen worden toegevoegd.

pInsertionAllowed
[in, uit] Identificeert door Microsoft Management Console (MMC) gedefinieerde, menuopdrachtinvoegpunten die kunnen worden gebruikt. Dit kan een combinatie zijn van de volgende vlaggen:

  • CCM_INSERTIONALLOWED_TOP Items kunnen boven aan een contextmenu worden ingevoegd.

  • CCM_INSERTIONALLOWED_NEW Items kunnen worden ingevoegd in het submenu Nieuw maken.

  • CCM_INSERTIONALLOWED_TASK Items kunnen worden ingevoegd in het submenu Taak.

  • CCM_INSERTIONALLOWED_VIEW Items kunnen worden ingevoegd in het menu Werkbalkweergave of in het submenu Weergave van het contextmenu van het resultaatvenster.

type
[in] Hiermee geeft u het type object. Deze kan een van de volgende waarden hebben:

  • CCT_SCOPE gegevensobject voor context van het bereikvenster.

  • CCT_RESULT Gegevensobject voor context van resultaatvenster.

  • CCT_SNAPIN_MANAGER Gegevensobject voor modulebeheercontext.

  • CCT_UNINITIALIZED Gegevensobject heeft een ongeldig type.

CSnapInItemImpl::Command

Met deze methode wordt de Win32-functie IExtendContextMenu::Command geïmplementeerd.

Command(long lCommandID, DATA_OBJECT_TYPES type);

Parameterwaarden

lCommandID
[in] Hiermee geeft u de opdracht-id van het menu-item.

type
[in] Hiermee geeft u het type object. Deze kan een van de volgende waarden hebben:

  • CCT_SCOPE gegevensobject voor context van het bereikvenster.

  • CCT_RESULT Gegevensobject voor context van resultaatvenster.

  • CCT_SNAPIN_MANAGER Gegevensobject voor modulebeheercontext.

  • CCT_UNINITIALIZED Gegevensobject heeft een ongeldig type.

CSnapInItemImpl::CreatePropertyPages

Met deze methode wordt de Win32-functie IExtendPropertySheet::CreatePropertyPages geïmplementeerd.

CreatePropertyPages(
    LPPROPERTYSHEETCALLBACK lpProvider,
    long handle,
    IUnknown* pUnk,
    DATA_OBJECT_TYPES type);

Parameterwaarden

lpProvider
[in] Aanwijzer naar de IPropertySheetCallback interface.

handvat
[in] Hiermee geeft u de ingang die wordt gebruikt voor het routeren van het MMCN_PROPERTY_CHANGE meldingsbericht naar de juiste gegevensklasse.

Punk
[in] Wijs de IExtendPropertySheet interface van het object aan met contextinformatie over het knooppunt.

type
[in] Hiermee geeft u het type object. Deze kan een van de volgende waarden hebben:

  • CCT_SCOPE gegevensobject voor context van het bereikvenster.

  • CCT_RESULT Gegevensobject voor context van resultaatvenster.

  • CCT_SNAPIN_MANAGER Gegevensobject voor modulebeheercontext.

  • CCT_UNINITIALIZED Gegevensobject heeft een ongeldig type.

CSnapInItemImpl::CSnapInItemImpl

Maakt een CSnapInItemImpl-object.

CSnapInItemImpl();

CSnapInItemImpl::FillData

Deze functie wordt aangeroepen om informatie over het item op te halen.

FillData(CLIPFORMAT cf, LPSTREAM pStream);

Parameterwaarden

Zie
[in] De opmaak (tekst, tekst met opmaak of rtf-tekst met OLE-items) van het Klembord.

pStream
[in] Een aanwijzer naar de stroom die de objectgegevens bevat.

Opmerkingen

Als u deze functie correct wilt implementeren, kopieert u de juiste informatie naar de stream (pStream), afhankelijk van de door cf aangegeven Klembord-indeling.

CSnapInItemImpl::GetResultViewType

Roep deze functie aan om het type weergave voor het resultaatvenster van het moduleobject op te halen.

GetResultViewType(
    LPOLESTR* ppViewType,
    long* pViewOptions);

Parameterwaarden

Ppviewtype
[uit] Aanwijzer naar het adres van het geretourneerde weergavetype.

pViewOptions
[uit] Wijs de MMC_VIEW_OPTIONS opsomming aan, die de console opties biedt die zijn opgegeven door de module die eigenaar is. Deze waarde kan een van de volgende zijn:

  • MMC_VIEW_OPTIONS_NOLISTVIEWS = 0x00000001 Geeft aan dat de console geen standaardlijstweergaveopties kan presenteren in het menu Weergave . Hiermee kan de module alleen eigen aangepaste weergaven weergeven in het deelvenster Met de resultatenweergave. Dit is de enige optievlag die op dit moment is gedefinieerd.

  • MMC_VIEW_OPTIONS_NONE = 0 Staat de standaardweergaveopties toe.

CSnapInItemImpl::GetScopePaneInfo

Roep deze functie aan om de SCOPEDATAITEM structuur van de module op te halen.

GetScopePaneInfo (SCOPEDATAITEM* pScopeDataItem);

Parameterwaarden

pScopeDataItem
[uit] Een aanwijzer naar de SCOPEDATAITEM structuur van het CSnapInItemImpl object.

CSnapInItemImpl::GetResultPaneInfo

Roep deze functie aan om de RESULTDATAITEM structuur van de module op te halen.

GetResultPaneInfo (RESULTDATAITEM* pResultDataItem);

Parameterwaarden

pResultDataItem
[uit] Een aanwijzer naar de RESULTDATAITEM structuur van het CSnapInItemImpl object.

CSnapInItemImpl::m_bstrDisplayName

Bevat de tekenreeks die wordt weergegeven voor het knooppuntitem.

CComBSTR m_bstrDisplayName;

CSnapInItemImpl::m_scopeDataItem

De SCOPEDATAITEM structuur van het modulegegevensobject.

SCOPEDATAITEM m_scopeDataItem;

CSnapInItemImpl::m_resultDataItem

De RESULTDATAITEM-structuur van het modulegegevensobject.

RESULTDATAITEM m_resultDataItem;

CSnapInItemImpl::Notify

Aangeroepen wanneer het moduleobject door de gebruiker wordt aangeroepen.

STDMETHOD(Notify)(
    MMC_NOTIFY_TYPE event,
    long arg,
    long param,
    IComponentData* pComponentData,
    IComponent* pComponent,
    DATA_OBJECT_TYPES type) = 0;

Parameterwaarden

gebeurtenis
[in] Identificeert een actie die door een gebruiker wordt uitgevoerd. De volgende meldingen zijn mogelijk:

  • MMCN_ACTIVATE Verzonden wanneer een venster wordt geactiveerd en gedeactiveerd.

  • MMCN_ADD_IMAGES Verzonden om afbeeldingen toe te voegen aan het resultaatvenster.

  • MMCN_BTN_CLICK Verzonden wanneer de gebruiker op een van de werkbalkknoppen klikt.

  • MMCN_CLICK Verzonden wanneer een gebruiker op een muisknop in een lijstweergave-item klikt.

  • MMCN_DBLCLICK Verzonden wanneer een gebruiker dubbelklikt op een muisknop in een lijstweergave-item.

  • MMCN_DELETE Verzonden om de module te informeren dat het object moet worden verwijderd.

  • MMCN_EXPAND Verzonden wanneer een map moet worden uitgebreid of gecontracteerd.

  • MMCN_MINIMIZED Verzonden wanneer een venster wordt geminimaliseerd of gemaximaliseerd.

  • MMCN_PROPERTY_CHANGE Verzonden om een moduleobject op de hoogte te stellen dat de weergave van het moduleobject wordt gewijzigd.

  • MMCN_REMOVE_CHILDREN verzonden wanneer de module de volledige substructuur moet verwijderen die is toegevoegd onder het opgegeven knooppunt.

  • MMCN_RENAME de eerste keer verzonden om een query uit te voeren op een naam en de tweede keer om de naam te wijzigen.

  • MMCN_SELECT Verzonden wanneer een item in het deelvenster Bereik of resultaatweergave is geselecteerd.

  • MMCN_SHOW Verzonden wanneer een bereikitem voor het eerst wordt geselecteerd of gedeselecteerd.

  • MMCN_VIEW_CHANGE Verzonden wanneer de module alle weergaven kan bijwerken wanneer er een wijziging optreedt.

Arg
[in] Afhankelijk van het meldingstype.

param
[in] Afhankelijk van het meldingstype.

pComponentData
[uit] Een aanwijzer naar het object dat wordt geïmplementeerd IComponentData. Deze parameter is NULL als de melding niet wordt doorgestuurd.IComponentData::Notify

pComponent
[uit] Een aanwijzer naar het object dat wordt geïmplementeerd IComponent. Deze parameter is NULL als de melding niet wordt doorgestuurd.IComponent::Notify

type
[in] Hiermee geeft u het type object. Deze kan een van de volgende waarden hebben:

  • CCT_SCOPE gegevensobject voor context van het bereikvenster.

  • CCT_RESULT Gegevensobject voor context van resultaatvenster.

  • CCT_SNAPIN_MANAGER Gegevensobject voor modulebeheercontext.

  • CCT_UNINITIALIZED Gegevensobject heeft een ongeldig type.

CSnapInItemImpl::QueryPagesFor

Wordt aangeroepen om te zien of het moduleknooppunt eigenschappenpagina's ondersteunt.

QueryPagesFor(DATA_OBJECT_TYPES type);

CSnapInItemImpl::SetMenuInsertionFlags

Roep deze functie aan om de menuinvoegvlagmen te wijzigen, opgegeven door pInsertionAllowed, voor het moduleobject.

void SetMenuInsertionFlags(
    bool bBeforeInsertion,
    long* pInsertionAllowed);

Parameterwaarden

bBeforeInsertion
[in] Niet-nul als de functie moet worden aangeroepen voordat items worden toegevoegd aan het contextmenu; anders 0.

pInsertionAllowed
[in, uit] Identificeert door Microsoft Management Console (MMC) gedefinieerde, menuopdrachtinvoegpunten die kunnen worden gebruikt. Dit kan een combinatie zijn van de volgende vlaggen:

  • CCM_INSERTIONALLOWED_TOP Items kunnen boven aan een contextmenu worden ingevoegd.

  • CCM_INSERTIONALLOWED_NEW Items kunnen worden ingevoegd in het submenu Nieuw maken.

  • CCM_INSERTIONALLOWED_TASK Items kunnen worden ingevoegd in het submenu Taak.

  • CCM_INSERTIONALLOWED_VIEW Items kunnen worden ingevoegd in het menu Werkbalkweergave of in het submenu Weergave van het contextmenu van het resultaatvenster.

Opmerkingen

Als u een primaire module ontwikkelt, kunt u een van de invoegvlagmen opnieuw instellen als een manier om het soort menu-items te beperken dat een extensie van derden kan toevoegen. De primaire module kan bijvoorbeeld de vlag CCM_INSERTIONALLOWED_NEW wissen om te voorkomen dat extensies hun eigen menu-items maken toevoegen.

U moet geen bits instellen in pInsertionAllowed die oorspronkelijk zijn gewist. In toekomstige versies van MMC kunnen bits worden gebruikt die momenteel niet zijn gedefinieerd, zodat u geen bits moet wijzigen die momenteel niet zijn gedefinieerd.

CSnapInItemImpl::SetToolbarButtonInfo

Roep deze functie aan om werkbalkknopstijlen, van het moduleobject, te wijzigen voordat de werkbalk wordt gemaakt.

void SetToolbarButtonInfo(
    UINT id,
    BYTE* fsState,
    BYTE* fsType);

Parameterwaarden

ID
[in] De id van de werkbalkknop die moet worden ingesteld.

fsState
[in] De statusvlagmen van de knop. Dit kan een of meer van de volgende zijn:

  • TBSTATE_CHECKED De knop heeft de stijl TBSTYLE_CHECKED en wordt ingedrukt.

  • TBSTATE_ENABLED De knop accepteert gebruikersinvoer. Een knop die niet over deze status beschikt, accepteert geen gebruikersinvoer en wordt grijs weergegeven.

  • TBSTATE_HIDDEN De knop is niet zichtbaar en kan geen gebruikersinvoer ontvangen.

  • TBSTATE_INDETERMINATE De knop is grijs.

  • TBSTATE_PRESSED De knop wordt ingedrukt.

  • TBSTATE_WRAP Een regeleinde volgt de knop. De knop moet ook de TBSTATE_ENABLED hebben.

fsType
[in] De statusvlagmen van de knop. Dit kan een of meer van de volgende zijn:

  • TBSTYLE_BUTTON Maakt een standaarddrukknop.

  • TBSTYLE_CHECK Maakt een knop die tussen de ingedrukt en niet-ingedrukt statussen schakelt telkens wanneer de gebruiker erop klikt. De knop heeft een andere achtergrondkleur wanneer deze de status Ingedrukt heeft.

  • TBSTYLE_CHECKGROUP Maakt een controleknop die ingedrukt blijft totdat een andere knop in de groep wordt ingedrukt.

  • TBSTYLE_GROUP Maakt een knop die ingedrukt blijft totdat een andere knop in de groep wordt ingedrukt.

  • TBSTYLE_SEP Maakt een scheidingsteken, waardoor er een kleine tussenruimte tussen knopgroepen ontstaat. Een knop met deze stijl ontvangt geen gebruikersinvoer.

CSnapInItemImpl::UpdateMenuState

Roep deze functie aan om een menu-item te wijzigen voordat deze wordt ingevoegd in het contextmenu van het moduleobject.

void UpdateMenuState(
    UINT id,
    LPTSTR pBuf,
    UINT* flags);

Parameterwaarden

ID
[in] De id van het menu-item dat moet worden ingesteld.

pBuf
[in] Een aanwijzer naar de tekenreeks voor het menu-item dat moet worden bijgewerkt.

flags
[in] Hiermee geeft u de nieuwe statusvlagmen. Dit kan een combinatie zijn van de volgende vlaggen:

  • MF_POPUP Geeft aan dat dit een submenu is in het contextmenu. Menu-items, invoegpunten en verdere submenu's kunnen worden toegevoegd aan dit submenu met de bijbehorende submenu's lCommandIDIInsertionPointID.

  • MF_BITMAP en MF_OWNERDRAW Deze vlaggen zijn niet toegestaan en resulteren in een retourwaarde van E_INVALIDARG.

  • MF_SEPARATOR Tekent een horizontale scheidingslijn. Alleen IContextMenuProvider is toegestaan om menu-items toe te voegen met MF_SEPARATOR ingesteld.

  • MF_CHECKED plaatst u een vinkje naast het menu-item.

  • MF_DISABLED Schakelt het menu-item uit zodat deze niet kan worden geselecteerd, maar de vlag wordt niet grijs weergegeven.

  • MF_ENABLED Hiermee schakelt u het menu-item in, zodat deze kan worden geselecteerd en wordt deze teruggezet vanuit de grijsstatus.

  • MF_GRAYED Hiermee schakelt u het menu-item uit en wordt deze grijs weergegeven, zodat deze niet kan worden geselecteerd.

  • MF_MENUBARBREAK Functies hetzelfde als de vlag MF_MENUBREAK voor een menubalk. Voor een vervolgkeuzemenu, submenu of snelmenu wordt de nieuwe kolom gescheiden van de oude kolom door een verticale lijn.

  • MF_MENUBREAK Plaatst het item op een nieuwe regel (voor een menubalk) of in een nieuwe kolom (voor een vervolgkeuzemenu, submenu of snelmenu) zonder kolommen te scheiden.

  • MF_UNCHECKED Plaatst geen vinkje naast het item (standaardinstelling).

De volgende groepen vlaggen kunnen niet samen worden gebruikt:

  • MF_DISABLED, MF_ENABLED en MF_GRAYED.

  • MF_MENUBARBREAK en MF_MENUBREAK.

  • MF_CHECKED en MF_UNCHECKED.

CSnapInItemImpl::UpdateToolbarButton

Roep deze functie aan om een werkbalkknop van het moduleobject te wijzigen voordat deze wordt weergegeven.

BOOL UpdateToolbarButton(UINT id, BYTE fsState);

Parameterwaarden

ID
Hiermee geeft u de knop-id van de werkbalkknop die moet worden bijgewerkt.

fsState
Hiermee geeft u de status van een werkbalkknop op. Als deze status moet worden ingesteld, geeft u TRUE als resultaat. Dit kan een combinatie zijn van de volgende vlaggen:

  • INGESCHAKELD De knop accepteert gebruikersinvoer. Een knop die niet over deze status beschikt, accepteert geen gebruikersinvoer en wordt grijs weergegeven.

  • INGESCHAKELD De knop heeft de stijl CHECKED en wordt ingedrukt.

  • VERBORGEN De knop is niet zichtbaar en kan geen gebruikersinvoer ontvangen.

  • INTERMINATE De knop wordt grijs weergegeven.

  • KNOP INGEDRUKT De knop wordt ingedrukt.

Zie ook

Overzicht van klassen