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 jejichIInsertionPointID
.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.