Sdílet prostřednictvím


CSnapInItemImpl – třída

Tato třída poskytuje metody pro implementaci objektu uzlu modulu snap-in.

Důležité

Tuto třídu a její členy nelze použít v aplikacích, které se spouští v prostředí Windows Runtime.

Syntaxe

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

Parametry

T
Vaše třída odvozená z CSnapInItemImpl.

bIsExtension
TRUE, pokud je objekt rozšířením modulu snap-in; jinak NEPRAVDA.

Členové

Veřejné konstruktory

Název Popis
CSnapInItemImpl::CSnapInItemImpl Konstruktor

Veřejné metody

Název Popis
CSnapInItemImpl::AddMenuItems Přidá položky nabídky do místní nabídky.
CSnapInItemImpl::Command Volá se konzolou, když je vybrána vlastní položka nabídky.
CSnapInItemImpl::CreatePropertyPages Přidá stránky do seznamu vlastností modulu snap-in.
CSnapInItemImpl::FillData Zkopíruje informace o objektu snap-in do zadaného datového proudu.
CSnapInItemImpl::GetResultPaneInfo RESULTDATAITEM Načte strukturu modulu snap-in.
CSnapInItemImpl::GetResultViewType Určuje typ zobrazení používaného podoknem výsledků.
CSnapInItemImpl::GetScopePaneInfo SCOPEDATAITEM Načte strukturu modulu snap-in.
CSnapInItemImpl::Notify Volá se konzola, aby informovala modul snap-in o akcích provedených uživatelem.
CSnapInItemImpl::QueryPagesFor Volá se, aby se zjistilo, jestli uzel snap-in podporuje stránky vlastností.
CSnapInItemImpl::SetMenuInsertionFlags Upraví příznaky vložení nabídky pro objekt snap-in.
CSnapInItemImpl::SetToolbarButtonInfo Nastaví informace o zadaném tlačítku panelu nástrojů.
CSnapInItemImpl::UpdateMenuState Aktualizuje stav položky místní nabídky.
CSnapInItemImpl::UpdateToolbarButton Aktualizuje stav zadaného tlačítka panelu nástrojů.

Veřejné datové členy

Název Popis
CSnapInItemImpl::m_bstrDisplayName Název objektu snap-in.
CSnapInItemImpl::m_resultDataItem Struktura Windows RESULTDATAITEM používaná objektem CSnapInItemImpl .
CSnapInItemImpl::m_scopeDataItem Struktura Windows SCOPEDATAITEM používaná objektem CSnapInItemImpl .

Poznámky

CSnapInItemImpl poskytuje základní implementaci objektu uzlu modulu snap-in, například přidání položek nabídky a panelů nástrojů a příkazy pro předávání pro uzel snap-in do příslušné funkce obslužné rutiny. Tyto funkce se implementují pomocí několika různých rozhraní a typů mapování. Výchozí implementace zpracovává oznámení odesílaná do objektu uzlu určením správné instance odvozené třídy a následným předáváním zprávy správné instanci.

Hierarchie dědičnosti

CSnapInItem

CSnapInItemImpl

Požadavky

Hlavička: atlsnap.h

CSnapInItemImpl::AddMenuItems

Tato metoda implementuje funkci Win32 IExtendContextMenu::AddMenuItems.

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

Parametry

piCallback
[v] Ukazatel na IContextMenuCallback položku, která může přidat položky do místní nabídky.

pInsertionAllowed
[in, out] Identifikuje kurzory položek nabídky definované konzolou MMC (Microsoft Management Console), které lze použít. Může se jednat o kombinaci následujících příznaků:

  • CCM_INSERTIONALLOWED_TOP Položky lze vložit do horní části místní nabídky.

  • CCM_INSERTIONALLOWED_NEW Položky lze vložit do podnabídky Vytvořit nový.

  • CCM_INSERTIONALLOWED_TASK položky lze vložit do podnabídky Úkol.

  • CCM_INSERTIONALLOWED_VIEW Položky lze vložit do nabídky zobrazení panelu nástrojů nebo do podnabídky Zobrazit v místní nabídce podokna výsledků.

type
[v] Určuje typ objektu. Může mít jednu z následujících hodnot:

  • CCT_SCOPE Objekt Data pro kontext podokna oboru.

  • CCT_RESULT Objekt Data pro kontext podokna výsledků.

  • objekt CCT_SNAPIN_MANAGER Data pro kontext správce modulů snap-in.

  • CCT_UNINITIALIZED Objekt Data má neplatný typ.

CSnapInItemImpl::Command

Tato metoda implementuje funkci Win32 IExtendContextMenu::Command.

Command(long lCommandID, DATA_OBJECT_TYPES type);

Parametry

lCommandID
[v] Určuje identifikátor příkazu položky nabídky.

type
[v] Určuje typ objektu. Může mít jednu z následujících hodnot:

  • CCT_SCOPE Objekt Data pro kontext podokna oboru.

  • CCT_RESULT Objekt Data pro kontext podokna výsledků.

  • objekt CCT_SNAPIN_MANAGER Data pro kontext správce modulů snap-in.

  • CCT_UNINITIALIZED Objekt Data má neplatný typ.

CSnapInItemImpl::CreatePropertyPages

Tato metoda implementuje funkci Win32 IExtendPropertySheet::CreatePropertyPages.

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

Parametry

lpProvider
[v] Ukazatel na IPropertySheetCallback rozhraní.

klika
[v] Určuje popisovač použitý ke směrování zprávy MMCN_PROPERTY_CHANGE oznámení do příslušné datové třídy.

punk
[v] Ukazatel na IExtendPropertySheet rozhraní objektu, který obsahuje kontextové informace o uzlu.

type
[v] Určuje typ objektu. Může mít jednu z následujících hodnot:

  • CCT_SCOPE Objekt Data pro kontext podokna oboru.

  • CCT_RESULT Objekt Data pro kontext podokna výsledků.

  • objekt CCT_SNAPIN_MANAGER Data pro kontext správce modulů snap-in.

  • CCT_UNINITIALIZED Objekt Data má neplatný typ.

CSnapInItemImpl::CSnapInItemImpl

CSnapInItemImpl Vytvoří objekt.

CSnapInItemImpl();

CSnapInItemImpl::FillData

Tato funkce se volá k načtení informací o položce.

FillData(CLIPFORMAT cf, LPSTREAM pStream);

Parametry

viz
[v] Formát (text, formát rtf nebo formátovaný text s položkami OLE) schránky.

pStream
[v] Ukazatel na datový proud obsahující data objektu.

Poznámky

Chcete-li správně implementovat tuto funkci, zkopírujte správné informace do streamu (pStream) v závislosti na formátu schránky určeném funkcí cf.

CSnapInItemImpl::GetResultViewType

Voláním této funkce načtete typ zobrazení pro podokno výsledků objektu snap-in.

GetResultViewType(
    LPOLESTR* ppViewType,
    long* pViewOptions);

Parametry

ppViewType
[ven] Ukazatel na adresu vráceného typu zobrazení.

pViewOptions
[ven] Ukazatel na MMC_VIEW_OPTIONS výčtu, který poskytuje konzole možnosti určené vlastním snap-inem. Tato hodnota může být jedna z následujících možností:

  • MMC_VIEW_OPTIONS_NOLISTVIEWS = 0x00000001 Informuje konzolu, aby se v nabídce Zobrazení zdržela prezentace standardních možností zobrazení seznamu. Umožňuje modulu snap-in zobrazit vlastní zobrazení pouze v podokně zobrazení výsledků. Toto je jediný příznak možnosti definovaný v tuto chvíli.

  • MMC_VIEW_OPTIONS_NONE = 0 Umožňuje výchozí možnosti zobrazení.

CSnapInItemImpl::GetScopePaneInfo

Voláním této funkce načtěte SCOPEDATAITEM strukturu modulu snap-in.

GetScopePaneInfo (SCOPEDATAITEM* pScopeDataItem);

Parametry

pScopeDataItem
[ven] Ukazatel na SCOPEDATAITEM strukturu objektu CSnapInItemImpl .

CSnapInItemImpl::GetResultPaneInfo

Voláním této funkce načtěte RESULTDATAITEM strukturu modulu snap-in.

GetResultPaneInfo (RESULTDATAITEM* pResultDataItem);

Parametry

pResultDataItem
[ven] Ukazatel na RESULTDATAITEM strukturu objektu CSnapInItemImpl .

CSnapInItemImpl::m_bstrDisplayName

Obsahuje řetězec zobrazený pro položku uzlu.

CComBSTR m_bstrDisplayName;

CSnapInItemImpl::m_scopeDataItem

Struktura SCOPEDATAITEM datového objektu modulu snap-in.

SCOPEDATAITEM m_scopeDataItem;

CSnapInItemImpl::m_resultDataItem

Struktura RESULTDATAITEM datového objektu modulu snap-in.

RESULTDATAITEM m_resultDataItem;

CSnapInItemImpl::Notify

Volá se při akci objektu snap-in uživatelem.

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

Parametry

event
[v] Identifikuje akci prováděnou uživatelem. Následující oznámení jsou možná:

  • MMCN_ACTIVATE Odesláno při aktivaci a deaktivaci okna.

  • MMCN_ADD_IMAGES Odesláno pro přidání obrázků do podokna výsledků.

  • MMCN_BTN_CLICK Odesláno, když uživatel klikne na jedno z tlačítek panelu nástrojů.

  • MMCN_CLICK Odesláno, když uživatel klikne na tlačítko myši u položky zobrazení seznamu.

  • MMCN_DBLCLICK Odesláno, když uživatel dvakrát klikne na tlačítko myši u položky zobrazení seznamu.

  • MMCN_DELETE Odesláno, aby informoval modul snap-in, že objekt by měl být odstraněn.

  • MMCN_EXPAND Odesláno, když je potřeba rozbalit nebo kontraktovat složku.

  • MMCN_MINIMIZED Odesláno při minimalizaci nebo maximalizaci okna.

  • MMCN_PROPERTY_CHANGE Odesláno k upozornění objektu snap-in, že zobrazení objektu snap-in se chystá změnit.

  • MMCN_REMOVE_CHILDREN Odesláno, když modul snap-in musí odstranit celý podstrom, který byl přidán pod zadaný uzel.

  • MMCN_RENAME Odeslání prvního dotazu na přejmenování a druhý čas k přejmenování.

  • MMCN_SELECT Odesláno, pokud je vybrána položka v podokně zobrazení oboru nebo výsledku.

  • MMCN_SHOW Odesláno při prvním výběru nebo zrušení výběru položky oboru.

  • MMCN_VIEW_CHANGE Odesláno, když modul snap-in může aktualizovat všechna zobrazení, když dojde ke změně.

Arg
[v] Závisí na typu oznámení.

Param
[v] Závisí na typu oznámení.

pComponentData
[ven] Ukazatel na objekt implementuje IComponentData. Tento parametr má hodnotu NULL, pokud se oznámení nepřeposílají z IComponentData::Notify.

pComponent
[ven] Ukazatel na objekt, který implementuje IComponent. Tento parametr má hodnotu NULL, pokud se oznámení nepřeposílají z IComponent::Notify.

type
[v] Určuje typ objektu. Může mít jednu z následujících hodnot:

  • CCT_SCOPE Objekt Data pro kontext podokna oboru.

  • CCT_RESULT Objekt Data pro kontext podokna výsledků.

  • objekt CCT_SNAPIN_MANAGER Data pro kontext správce modulů snap-in.

  • CCT_UNINITIALIZED Objekt Data má neplatný typ.

CSnapInItemImpl::QueryPagesFor

Volá se, aby se zjistilo, jestli uzel snap-in podporuje stránky vlastností.

QueryPagesFor(DATA_OBJECT_TYPES type);

CSnapInItemImpl::SetMenuInsertionFlags

Voláním této funkce lze upravit příznaky vložení nabídky určené parametrem pInsertionAllowed pro objekt snap-in.

void SetMenuInsertionFlags(
    bool bBeforeInsertion,
    long* pInsertionAllowed);

Parametry

bBeforeInsertion
[v] Nenulové, pokud by funkce měla být volána před přidání položek do místní nabídky; jinak 0.

pInsertionAllowed
[in, out] Identifikuje kurzory položek nabídky definované konzolou MMC (Microsoft Management Console), které lze použít. Může se jednat o kombinaci následujících příznaků:

  • CCM_INSERTIONALLOWED_TOP Položky lze vložit do horní části místní nabídky.

  • CCM_INSERTIONALLOWED_NEW Položky lze vložit do podnabídky Vytvořit nový.

  • CCM_INSERTIONALLOWED_TASK položky lze vložit do podnabídky Úkol.

  • CCM_INSERTIONALLOWED_VIEW Položky lze vložit do nabídky zobrazení panelu nástrojů nebo do podnabídky Zobrazit v místní nabídce podokna výsledků.

Poznámky

Pokud vyvíjíte primární modul snap-in, můžete resetovat kterýkoli z příznaků vložení jako způsob omezení typu položek nabídky, které může přidat rozšíření třetí strany. Primární modul snap-in může například vymazat příznak CCM_INSERTIONALLOWED_NEW, aby rozšíření nemohla přidávat vlastní položky nabídky Vytvořit nový.

Neměli byste se pokoušet nastavit bity v souboru pInsertionAllowed , které byly původně vymazány. Budoucí verze konzoly MMC mohou používat bity, které nejsou aktuálně definovány, takže byste neměli měnit bity, které nejsou aktuálně definovány.

CSnapInItemImpl::SetToolbarButtonInfo

Voláním této funkce můžete před vytvořením panelu nástrojů upravit styly tlačítek u objektu snap-in.

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

Parametry

id
[v] ID tlačítka panelu nástrojů, které se má nastavit.

fsState
[v] Příznaky stavu tlačítka. Může to být jedna nebo více z následujících možností:

  • TBSTATE_CHECKED Tlačítko má styl TBSTYLE_CHECKED a stisknete ho.

  • TBSTATE_ENABLED Tlačítko přijímá uživatelský vstup. Tlačítko, které tento stav nemá, nepřijímá vstup uživatele a je šedé.

  • TBSTATE_HIDDEN Tlačítko není viditelné a nemůže přijímat vstup uživatele.

  • TBSTATE_INDETERMINATE Tlačítko je šedé.

  • TBSTATE_PRESSED Tlačítko se stiskne.

  • TBSTATE_WRAP konec řádku následuje za tlačítkem. Tlačítko musí mít také TBSTATE_ENABLED.

fsType
[v] Příznaky stavu tlačítka. Může to být jedna nebo více z následujících možností:

  • TBSTYLE_BUTTON Vytvoří standardní tlačítko.

  • TBSTYLE_CHECK Vytvoří tlačítko, které se přepne mezi stisknutými a nestisknutými stavy pokaždé, když na něj uživatel klikne. Tlačítko má jinou barvu pozadí, když je v stisknutém stavu.

  • TBSTYLE_CHECKGROUP Vytvoří tlačítko zaškrtnutí, které zůstane stisknuté, dokud se nestiskne další tlačítko ve skupině.

  • TBSTYLE_GROUP Vytvoří tlačítko, které zůstane stisknuté, dokud se nestiskne další tlačítko ve skupině.

  • TBSTYLE_SEP Vytvoří oddělovač, který poskytuje malou mezeru mezi skupinami tlačítek. Tlačítko s tímto stylem nepřijímá vstup uživatele.

CSnapInItemImpl::UpdateMenuState

Voláním této funkce upravíte položku nabídky před vložením do místní nabídky objektu snap-in.

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

Parametry

id
[v] ID položky nabídky, která se má nastavit.

pBuf
[v] Ukazatel na řetězec pro položku nabídky, která se má aktualizovat.

vlajky
[v] Určuje příznaky nového stavu. Může se jednat o kombinaci následujících příznaků:

  • MF_POPUP Určuje, že se jedná o podnabídku v místní nabídce. Položky nabídky, body vložení a další podnabídky mohou být přidány do této podnabídky pomocí jeho lCommandID jako jejich IInsertionPointID.

  • MF_BITMAP a MF_OWNERDRAW Tyto příznaky nejsou povolené a budou mít za následek návratovou hodnotu E_INVALIDARG.

  • MF_SEPARATOR Nakreslí vodorovnou dělicí čáru. Položky nabídky s nastavenými MF_SEPARATOR je možné přidávat pouze IContextMenuProvider .

  • MF_CHECKED Umístí značku zaškrtnutí vedle položky nabídky.

  • MF_DISABLED Zakáže položku nabídky, aby ji nebylo možné vybrat, ale příznak není šedý.

  • MF_ENABLED Povolí položku nabídky, aby ji bylo možné vybrat a obnovit ji ze šedého stavu.

  • MF_GRAYED Zakáže položku nabídky se šedě, aby ji nebylo možné vybrat.

  • MF_MENUBARBREAK Funguje stejně jako příznak MF_MENUBREAK řádku nabídek. U rozevírací nabídky, podnabídky nebo místní nabídky je nový sloupec oddělený od starého sloupce svislou čárou.

  • MF_MENUBREAK Umístí položku na nový řádek (pro řádek nabídek) nebo do nového sloupce (pro rozevírací nabídku, podnabídku nebo místní nabídku) bez oddělení sloupců.

  • MF_UNCHECKED Nezaškrtá značku zaškrtnutí vedle položky (výchozí).

Následující skupiny příznaků nelze použít společně:

  • MF_DISABLED, MF_ENABLED a MF_GRAYED.

  • MF_MENUBARBREAK a MF_MENUBREAK.

  • MF_CHECKED a MF_UNCHECKED.

CSnapInItemImpl::UpdateToolbarButton

Voláním této funkce můžete před zobrazením upravit tlačítko panelu nástrojů objektu snap-in.

BOOL UpdateToolbarButton(UINT id, BYTE fsState);

Parametry

id
Určuje ID tlačítka panelu nástrojů, které se má aktualizovat.

fsState
Určuje stav tlačítka panelu nástrojů. Pokud má být tento stav nastaven, vraťte hodnotu PRAVDA. Může se jednat o kombinaci následujících příznaků:

  • POVOLENO Tlačítko přijímá vstup uživatele. Tlačítko, které tento stav nemá, nepřijímá vstup uživatele a je šedé.

  • ZAŠKRTNuté tlačítko má styl CHECKED a je stisknuto.

  • SKRYTÉ Tlačítko není viditelné a nemůže přijímat vstup uživatele.

  • INDETERMINATE Tlačítko je šedé.

  • BUTTONPRESSED Tlačítko se stiskne.

Viz také

Přehled třídy