|
|
/*
* SnapinVirtualItem.hxx * * * Copyright (c) 1998 Microsoft Corporation * * PURPOSE: Defines the CVirtualSnapinItemImpl class. * This class is used in the same way as the * CBaseSnapinItem class. Except the virtual snapin * class is only supposed to be used in a virtual results pane. * These snapin items are created as needed and go away when * not in use anymore. This is because they are in a virtual * list and so we just do not have memory to support all the * list elements at one time. * * This class puts asserts around all functions that should * NOT be called. Since we are virtual we should never be * a scope item and these asserts protect against this from * happening. * * OWNER: mcoburn */
#ifndef _SNAPINVIRTUALITEM_HXX
#define _SNAPINVIRTUALITEM_HXX
#define BAD_FUNCTION_CALL(_func, _return_value) \
{ \ AssertAlways(L#_func LITERAL(": This function should not be called")); \ return _return_value; \ } \
class CVirtualSnapinItem : public CBaseSnapinItem { public: CVirtualSnapinItem() {} virtual ~CVirtualSnapinItem() {}
protected: virtual SC ScGetField(DAT dat, STR * pstrField) BAD_FUNCTION_CALL(ScGetField, S_OK)
virtual SC ScGetField(INT nIndex, DAT dat, STR * pstrField, IResultData *ipResultData) BAD_FUNCTION_CALL(ScGetField, S_OK) virtual IconID Iconid(INT nIndex) BAD_FUNCTION_CALL(Iconid, iconNil) virtual SC ScDeleteSubTree(BOOL fDeleteRoot) BAD_FUNCTION_CALL(ScDeleteSubTree, S_OK)
virtual SC ScInitializeChild(CBaseSnapinItem* pitem) BAD_FUNCTION_CALL(ScInitializeChild, S_OK) virtual SC ScGetDisplayInfo(LPSCOPEDATAITEM pScopeItem) BAD_FUNCTION_CALL(ScGetDisplayInfo, S_OK) virtual SC ScGetDisplayInfo(LPRESULTDATAITEM pResultItem) BAD_FUNCTION_CALL(ScGetDisplayInfo, S_OK) virtual SC ScGetVirtualDisplayInfo(LPRESULTDATAITEM pResultItem) BAD_FUNCTION_CALL(ScGetVirtualDisplayInfo, S_OK) virtual SC ScQueryDataObject(long cookie, DATA_OBJECT_TYPES type, LPDATAOBJECT* ppDataObject) BAD_FUNCTION_CALL(ScQueryDataObject, S_OK) virtual SC ScVirtualQueryDataObject(long cookie, DATA_OBJECT_TYPES type, LPDATAOBJECT* ppDataObject) BAD_FUNCTION_CALL(ScVirtualQueryDataObject, S_OK) virtual SC ScOnShow(CComponent *pComponent, BOOL fSelect) BAD_FUNCTION_CALL(ScOnShow, S_OK) virtual SC ScInsertScopeItem(BOOL fExpand, HSCOPEITEM item, IConsoleNameSpace * ipConsoleNameSpace) BAD_FUNCTION_CALL(ScInsertScopeItem, S_OK)
virtual BOOL FIsVirtualContainer(LPDATAOBJECT lpDataObject) BAD_FUNCTION_CALL(FIsVirtualContainer, FALSE)
// Notification Handlers for Extension snapins
virtual SC ScInitializeNamespaceExtension(LPDATAOBJECT lpDataObject, HSCOPEITEM item, CNodeType *pnodetype, BOOL fExpand) { return S_OK;}
public: virtual STR * PstrDisplayName() BAD_FUNCTION_CALL(PstrDisplayName, NULL)
virtual SC ScGetResultViewType(LPOLESTR* ppViewType, long* pViewOptions) BAD_FUNCTION_CALL(ScGetResultViewType, S_OK)
virtual SC ScInitializeResultView(CComponent *pComponent) BAD_FUNCTION_CALL(ScInitializeResultView, S_OK) virtual SC ScInsertResultItem(CComponent *pComponent) BAD_FUNCTION_CALL(ScInsertResultItem, S_OK) virtual SC ScRemoveResultItems(LPRESULTDATA ipResultData) BAD_FUNCTION_CALL(ScRemoveResultItems, S_OK) virtual SC ScOnAddImages(IImageList* ipResultImageList) BAD_FUNCTION_CALL(ScOnAddImages, S_OK) virtual BOOL FVirtualResultsPane() BAD_FUNCTION_CALL(FVirtualResultsPane, FALSE)
IconID Iconid() BAD_FUNCTION_CALL(Iconid, iconNil)
virtual SC ScCreateChildren() BAD_FUNCTION_CALL(ScCreateChildren, S_OK)
public:
virtual SC ScCompare(CBaseSnapinItem * psnapinitem) { return S_OK; }
// Property page functions
virtual SC ScQueryPagesFor() { return S_OK; } virtual SC ScCreatePropertyPages(LPPROPERTYSHEETCALLBACK ipPropertySheetCallback) { return S_OK; }
virtual BOOL FIsContainer() { return FALSE; } virtual SC ScOnSelect(CComponent * pComponent, LPDATAOBJECT lpDataObject, BOOL fScope, BOOL fSelect) { return S_OK; } };
#endif // _SNAPINVIRTUALITEM_HXX
|