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.
181 lines
5.9 KiB
181 lines
5.9 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1997-2002.
|
|
//
|
|
// File: cmponent.h
|
|
//
|
|
// Contents: CCertTmplComponent
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
// cmponent.h : Declaration of CCertTmplComponent
|
|
|
|
#ifndef __CMPONENT_H_INCLUDED__
|
|
#define __CMPONENT_H_INCLUDED__
|
|
|
|
#include "cookie.h" // CCertTmplCookie
|
|
#include "CertTemplate.h" // CCertTemplate
|
|
|
|
#define UPDATE_HINT_ENUM_CERT_TEMPLATES 0x01
|
|
|
|
enum {
|
|
IDM_CLONE_TEMPLATE = 101,
|
|
IDM_REENROLL_ALL_CERTS,
|
|
IDM_VIEW_OIDS
|
|
};
|
|
|
|
// forward declarations
|
|
class CCertTmplComponentData;
|
|
|
|
class CCertTmplComponent :
|
|
public CComponent,
|
|
public IExtendContextMenu,
|
|
public ICertTemplatesSnapin,
|
|
public IExtendPropertySheet,
|
|
public IResultDataCompareEx,
|
|
public PersistStream
|
|
{
|
|
public:
|
|
CCertTmplComponent();
|
|
virtual ~CCertTmplComponent();
|
|
BEGIN_COM_MAP(CCertTmplComponent)
|
|
COM_INTERFACE_ENTRY(ICertTemplatesSnapin)
|
|
COM_INTERFACE_ENTRY(IExtendContextMenu)
|
|
COM_INTERFACE_ENTRY(IExtendPropertySheet)
|
|
COM_INTERFACE_ENTRY(IResultDataCompareEx)
|
|
COM_INTERFACE_ENTRY(IPersistStream) // security review BryanWal 2/20/2002 ok
|
|
COM_INTERFACE_ENTRY_CHAIN(CComponent)
|
|
END_COM_MAP()
|
|
|
|
#if DBG==1
|
|
ULONG InternalAddRef()
|
|
{
|
|
return CComObjectRoot::InternalAddRef();
|
|
}
|
|
ULONG InternalRelease()
|
|
{
|
|
return CComObjectRoot::InternalRelease();
|
|
}
|
|
int dbg_InstID;
|
|
#endif // DBG==1
|
|
|
|
|
|
|
|
// IExtendContextMenu
|
|
public:
|
|
STDMETHOD(AddMenuItems)(LPDATAOBJECT pDataObject,
|
|
LPCONTEXTMENUCALLBACK pCallbackUnknown,
|
|
long *pInsertionAllowed);
|
|
STDMETHOD(Command)(long nCommandID, LPDATAOBJECT pDataObject);
|
|
|
|
|
|
// IResultDataCompareEx
|
|
STDMETHOD(Compare)(RDCOMPARE* prdc, int* pnResult);
|
|
|
|
// IComponent implemented in CComponent
|
|
// support methods for IComponent
|
|
virtual HRESULT ReleaseAll();
|
|
virtual HRESULT OnPropertyChange( LPARAM param );
|
|
virtual HRESULT OnViewChange (LPDATAOBJECT pDataObject, LPARAM data, LPARAM hint);
|
|
virtual HRESULT Show(CCookie* pcookie, LPARAM arg, HSCOPEITEM hScopeItem, LPDATAOBJECT pDataObject);
|
|
virtual HRESULT Show(CCookie* pcookie, LPARAM arg, HSCOPEITEM hScopeItem);
|
|
virtual HRESULT OnNotifyAddImages( LPDATAOBJECT pDataObject,
|
|
LPIMAGELIST lpImageList,
|
|
HSCOPEITEM hSelectedItem );
|
|
virtual HRESULT OnNotifyColumnClick (LPDATAOBJECT pDataObject,
|
|
LPARAM iColumn,
|
|
LPARAM uFlags);
|
|
|
|
HRESULT PopulateListbox(CCertTmplCookie* pcookie);
|
|
HRESULT RefreshResultPane(const bool bSilent);
|
|
|
|
static HRESULT LoadStrings();
|
|
HRESULT LoadColumns( CCertTmplCookie* pcookie );
|
|
|
|
CCertTmplComponentData& QueryComponentDataRef()
|
|
{
|
|
return (CCertTmplComponentData&)QueryBaseComponentDataRef();
|
|
}
|
|
|
|
public:
|
|
STDMETHOD(GetDisplayInfo)(RESULTDATAITEM* pResultDataItem);
|
|
CCertTmplCookie* m_pViewedCookie; // CODEWORK I hate to have to do this...
|
|
|
|
inline CCertTmplCookie* ActiveCookie( CCookie* pBaseCookie )
|
|
{
|
|
return (CCertTmplCookie*)ActiveBaseCookie( pBaseCookie );
|
|
}
|
|
|
|
// IExtendPropertySheet
|
|
STDMETHOD(CreatePropertyPages)(LPPROPERTYSHEETCALLBACK pCall, LONG_PTR handle, LPDATAOBJECT pDataObject);
|
|
STDMETHOD(QueryPagesFor)(LPDATAOBJECT pDataObject);
|
|
|
|
// PersistStream
|
|
HRESULT STDMETHODCALLTYPE Load(IStream __RPC_FAR *pStg);
|
|
HRESULT STDMETHODCALLTYPE Save(IStream __RPC_FAR *pStgSave, BOOL fSameAsLoad);
|
|
|
|
|
|
private:
|
|
CertTmplObjectType m_currResultNodeType;
|
|
CString m_szDisplayInfoResult;
|
|
UINT* m_ColumnWidths[CERTTMPL_NUMTYPES];
|
|
CString m_szCertTemplatePath;
|
|
int m_nSortColumn;
|
|
|
|
void SetTextNotAvailable ();
|
|
|
|
protected:
|
|
virtual HRESULT OnNotifyRename(
|
|
LPDATAOBJECT lpDataObject,
|
|
LPARAM arg,
|
|
LPARAM param);
|
|
HRESULT EnumerateTemplates (IDirectoryObject* pTemplateContObj,
|
|
const BSTR bszTemplateContainerPath);
|
|
HRESULT AddEnterpriseTemplates ();
|
|
HRESULT DeleteCertTemplateFromResultPane (
|
|
CCertTemplate* pCertTemplate,
|
|
LPDATAOBJECT pDataObject);
|
|
HRESULT DeleteCookie (
|
|
CCertTmplCookie* pCookie,
|
|
LPDATAOBJECT pDataObject,
|
|
bool bRequestConfirmation,
|
|
bool bIsMultipleSelect);
|
|
HRESULT RefreshResultItem (CCertTmplCookie* pCookie);
|
|
CCertTmplCookie* ConvertCookie (LPDATAOBJECT pDataObject);
|
|
HRESULT OnNotifyCutOrMove (LPARAM arg);
|
|
HRESULT SaveWidths (CCertTmplCookie* pCookie);
|
|
HRESULT LoadColumnsFromArrays (CertTmplObjectType objecttype);
|
|
STDMETHOD(Initialize)(LPCONSOLE lpConsole);
|
|
STDMETHOD(GetResultViewType)(MMC_COOKIE cookie, BSTR* ppViewType, long* pViewOptions);
|
|
HRESULT OnNotifyQueryPaste (LPDATAOBJECT pDataObject, LPARAM arg, LPARAM param);
|
|
HRESULT OnNotifyPaste (LPDATAOBJECT pDataObject, LPARAM arg, LPARAM param);
|
|
STDMETHOD(Notify)(LPDATAOBJECT pDataObject, MMC_NOTIFY_TYPE event, LPARAM arg, LPARAM param);
|
|
virtual HRESULT OnNotifyDelete (LPDATAOBJECT pDataObject);
|
|
virtual HRESULT OnNotifyRefresh (LPDATAOBJECT pDataObject);
|
|
virtual HRESULT OnNotifySelect( LPDATAOBJECT pDataObject, BOOL fSelected);
|
|
virtual HRESULT OnNotifySnapinHelp (LPDATAOBJECT pDataObject);
|
|
virtual HRESULT OnNotifyDblClick( LPDATAOBJECT pDataObject );
|
|
|
|
}; // class CCertTmplComponent
|
|
|
|
|
|
// Enumeration for the icons used
|
|
enum
|
|
{
|
|
iIconDefault = 0,
|
|
iIconCertTemplateV1,
|
|
iIconCertTemplateV2,
|
|
iIconLast // Must be last
|
|
};
|
|
|
|
|
|
typedef enum _COLNUM_CERT_TEMPLATES {
|
|
COLNUM_CERT_TEMPLATE_OBJECT = 0,
|
|
COLNUM_CERT_TEMPLATE_TYPE,
|
|
COLNUM_CERT_TEMPLATE_VERSION,
|
|
COLNUM_CERT_TEMPLATE_AUTOENROLL_STATUS,
|
|
CERT_TEMPLATES_NUM_COLS // always last
|
|
} COLNUM_CERT_TEMPLATES;
|
|
|
|
|
|
#endif // ~__CMPONENT_H_INCLUDED__
|