128 lines
2.6 KiB
C
128 lines
2.6 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (C) Microsoft Corporation, 1998-2001
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
ShellExt.h
|
||
|
|
||
|
Abstract:
|
||
|
This is the header for the Cert Type shell extension object.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
petesk 27-aug-98
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
NT only.
|
||
|
--*/
|
||
|
|
||
|
|
||
|
#ifndef __CTSHLEXT_H_
|
||
|
#define __CTSHLEXT_H_
|
||
|
|
||
|
|
||
|
#include <shlobj.h>
|
||
|
#include "CertTemplate.h"
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// CDfsShell
|
||
|
class ATL_NO_VTABLE CCertTemplateShellExt :
|
||
|
public CComObjectRootEx<CComSingleThreadModel>,
|
||
|
public CComCoClass<CCertTemplateShellExt, &CLSID_CertTemplateShellExt>,
|
||
|
public IShellExtInit,
|
||
|
public IShellPropSheetExt,
|
||
|
public IContextMenu
|
||
|
{
|
||
|
public:
|
||
|
CCertTemplateShellExt();
|
||
|
virtual ~CCertTemplateShellExt();
|
||
|
|
||
|
//Simple ALL 1.0 based registry entry
|
||
|
DECLARE_REGISTRY( CCertTemplateShellExt,
|
||
|
_T("CERTTMPL.CCertTemplateShellExt.1"),
|
||
|
_T("CERTTMPL.CCertTemplateShellExt"),
|
||
|
IDS_CERTTEMPLATESHELLEXT_DESC,
|
||
|
THREADFLAGS_APARTMENT)
|
||
|
|
||
|
BEGIN_COM_MAP(CCertTemplateShellExt)
|
||
|
COM_INTERFACE_ENTRY(IShellExtInit)
|
||
|
COM_INTERFACE_ENTRY(IShellPropSheetExt)
|
||
|
COM_INTERFACE_ENTRY(IContextMenu)
|
||
|
END_COM_MAP()
|
||
|
|
||
|
// IDfsShell
|
||
|
public:
|
||
|
|
||
|
|
||
|
// IShellExtInit Methods
|
||
|
|
||
|
STDMETHOD (Initialize)
|
||
|
(
|
||
|
IN LPCITEMIDLIST pidlFolder, // Points to an ITEMIDLIST structure
|
||
|
IN LPDATAOBJECT lpdobj, // Points to an IDataObject interface
|
||
|
IN HKEY hkeyProgID // Registry key for the file object or folder type
|
||
|
);
|
||
|
|
||
|
//IShellPropSheetExt methods
|
||
|
STDMETHODIMP AddPages
|
||
|
(
|
||
|
IN LPFNADDPROPSHEETPAGE lpfnAddPage,
|
||
|
IN LPARAM lParam
|
||
|
);
|
||
|
|
||
|
STDMETHODIMP ReplacePage
|
||
|
(
|
||
|
IN UINT uPageID,
|
||
|
IN LPFNADDPROPSHEETPAGE lpfnReplaceWith,
|
||
|
IN LPARAM lParam
|
||
|
);
|
||
|
|
||
|
// IContextMenu methods
|
||
|
STDMETHODIMP GetCommandString
|
||
|
(
|
||
|
UINT_PTR idCmd,
|
||
|
UINT uFlags,
|
||
|
UINT *pwReserved,
|
||
|
LPSTR pszName,
|
||
|
UINT cchMax
|
||
|
);
|
||
|
|
||
|
STDMETHODIMP InvokeCommand
|
||
|
(
|
||
|
LPCMINVOKECOMMANDINFO lpici
|
||
|
);
|
||
|
|
||
|
|
||
|
|
||
|
STDMETHODIMP QueryContextMenu
|
||
|
(
|
||
|
HMENU hmenu,
|
||
|
UINT indexMenu,
|
||
|
UINT idCmdFirst,
|
||
|
UINT idCmdLast,
|
||
|
UINT uFlags
|
||
|
);
|
||
|
|
||
|
protected:
|
||
|
HRESULT AddVersion1CertTemplatePropPages (
|
||
|
CCertTemplate* pCertTemplate,
|
||
|
LPFNADDPROPSHEETPAGE lpfnAddPage,
|
||
|
LPARAM lParam);
|
||
|
HRESULT AddVersion2CertTemplatePropPages (
|
||
|
CCertTemplate* pCertTemplate,
|
||
|
LPFNADDPROPSHEETPAGE lpfnAddPage,
|
||
|
LPARAM lParam);
|
||
|
|
||
|
private:
|
||
|
|
||
|
DWORD m_Count;
|
||
|
CCertTemplate** m_apCertTemplates;
|
||
|
UINT m_uiEditId;
|
||
|
|
||
|
|
||
|
};
|
||
|
|
||
|
#endif //__CTSHLEXT_H_
|