Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

163 lines
5.1 KiB

//----------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 2001.
//
// File: spolitem.h
//
// Contents: WiF Policy Snapin
//
//
// History: TaroonM
// 10/30/01
//
//----------------------------------------------------------------------------
#ifndef _SPOLITEM_H
#define _SPOLITEM_H
// generic column headers
#define COL_NAME 0
#define COL_DESCRIPTION 1
#define COL_ACTIVE 2
#define COL_LAST_MODIFIED 3
//for rsop case
#define COL_GPONAME 2
#define COL_PRECEDENCE 3
#define COL_OU 4
class CSecPolItem :
public CWirelessSnapInDataObjectImpl <CSecPolItem>,
public CDataObjectImpl <CSecPolItem>,
public CComObjectRoot,
public CSnapObject
{
// ATL Maps
DECLARE_NOT_AGGREGATABLE(CSecPolItem)
BEGIN_COM_MAP(CSecPolItem)
COM_INTERFACE_ENTRY(IDataObject)
COM_INTERFACE_ENTRY(IWirelessSnapInDataObject)
END_COM_MAP()
public:
CSecPolItem ();
virtual ~CSecPolItem ();
virtual void Initialize (WIRELESS_POLICY_DATA *pPolicy,CComponentDataImpl* pComponentDataImpl,CComponentImpl* pComponentImpl, BOOL bTemporaryDSObject);
public:
////////////////////////////////////////////////////////////////
// IWirelessSnapInDataObject interface
// handle IExtendContextMenu
STDMETHOD(AddMenuItems)( LPCONTEXTMENUCALLBACK piCallback,
long *pInsertionAllowed );
STDMETHOD(Command)( long lCommandID,
IConsoleNameSpace *pNameSpace );
// handle IExtendPropertySheet
STDMETHOD(CreatePropertyPages)( LPPROPERTYSHEETCALLBACK lpProvider,
LONG_PTR handle );
STDMETHOD(QueryPagesFor)( void );
// Notify helper
STDMETHOD(OnPropertyChange)(LPARAM lParam, LPCONSOLE pConsole );
STDMETHOD(OnRename)( LPARAM arg, LPARAM param );
// Destroy helper
STDMETHOD(Destroy)( void );
// handle IComponent and IComponentData
STDMETHOD(Notify)( MMC_NOTIFY_TYPE event,
LPARAM arg,
LPARAM param,
BOOL bComponentData,
IConsole *pConsole,
IHeaderCtrl *pHeader );
// IComponent Notify() helpers
STDMETHOD(OnDelete)(LPARAM arg, LPARAM param ); // param == IResultData*
// handle IComponent
STDMETHOD(GetResultDisplayInfo)( RESULTDATAITEM *pResultDataItem );
// IWirelessSnapInData
STDMETHOD(GetResultData)( RESULTDATAITEM **ppResultDataItem );
STDMETHOD(GetGuidForCompare)( GUID *pGuid );
STDMETHOD(AdjustVerbState)(LPCONSOLEVERB pConsoleVerb);
STDMETHOD(DoPropertyChangeHook)( void );
////////////////////////////////////////////////////////////////
public:
STDMETHOD_(const GUID*, GetDataObjectTypeGuid)() { return &cObjectTypeSecPolRes; }
STDMETHOD_(const wchar_t*, GetDataStringObjectTypeGuid)() { return cszObjectTypeSecPolRes; }
BOOL IsSelected() { return -1 != m_nResultSelected ? TRUE : FALSE; }
// Property page helpers
STDMETHOD(DisplaySecPolProperties)(CString strTitle, BOOL bWiz97On = TRUE);
// IExtendControlbar helpers
public:
STDMETHOD_(BOOL, UpdateToolbarButton)
(
UINT id, // button ID
BOOL bSnapObjSelected, // ==TRUE when result/scope item is selected
BYTE fsState // enable/disable this button state by returning TRUE/FALSE
);
BEGIN_SNAPINTOOLBARID_MAP(CSecPolItem)
SNAPINTOOLBARID_ENTRY(IDR_TOOLBAR_SECPOL_RESULT)
END_SNAPINTOOLBARID_MAP(CSecPolItem)
// Note: The following IDM_* have been defined in resource.h because they
// are potential candidates for toolbar buttons. The value assigned to
// each IDM_* is the value of the related IDS_MENUDESCRIPTION_* string ID.
/*
enum
{
// Identifiers for each of the commands/views to be inserted into the context menu.
IDM_SETACTIVE,
IDM_TASKSETACTIVE
};
*/
// Notify event handlers
HRESULT OnSelect(LPARAM arg, LPARAM param, IResultData *pResultData);
BOOL CheckForEnabled ();
HRESULT FormatTime(time_t t, CString & str);
public:
// accessor functions
virtual WIRELESS_POLICY_DATA* GetWirelessPolicy () {return m_pPolicy;};
virtual void SetNewName( LPCTSTR pszName ) { m_strNewName = pszName; }
virtual LPCTSTR GetNewName() { return (LPCTSTR)m_strNewName; }
LPRESULTDATAITEM GetResultItem() { return &m_ResultItem; }
STDMETHODIMP VerifyStorageConnection()
{
return S_OK;
}
protected:
// helper functions
void SelectResult( IResultData *pResultData );
private:
TCHAR* m_pDisplayInfo;
int m_nResultSelected; // > -1 when valid index of selected result item
BOOL m_bWiz97On;
// user changed the name, it needs to be displayed, but its not committed yet. store it here.
CString m_strNewName;
RESULTDATAITEM m_ResultItem;
bool m_bBlockDSDelete;
//Bug297890, this flag is used to AdjustVerbState() to modify the context menu
BOOL m_bItemSelected;
PWIRELESS_POLICY_DATA m_pPolicy;
BOOL m_bNewPol;
HRESULT IsPolicyExist();
};
typedef CComObject<CSecPolItem>* LPCSECPOLITEM;
#endif