1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
// Encrypt.h : Declaration of the CEncrypt
#ifndef __ENCRYPT_H_
#define __ENCRYPT_H_
#include "resource.h" // main symbols
#include <atlextra.h>
#include "../common/cmptdata.h"
#include "ActionEngine.h"
#include "../common/interfaces.h"
#include "EncryptActions.h"
/////////////////////////////////////////////////////////////////////////////
// CEncrypt
class ATL_NO_VTABLE CEncrypt :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CEncrypt, &CLSID_Encrypt>,
public ISupportErrorInfo,
public IDispatchImpl<ISecureShutdownWin, &IID_ISecureShutdownWin, &LIBID_NightSecCmpts>,
public IObjectWithSiteImpl<CEncrypt>,
public ISpecifyPropertyPagesImplEx
{
public:
CEncrypt()
{
m_bDisablePassword = false;
}
~CEncrypt()
{
try
{
if(m_bDisablePassword && (m_xpyPass != NULL))
m_xpyPass->Disable();
}
catch(_com_error&)
{ }
ATLTRACE(_T("Destroying Backup\n"));
}
DECLARE_REGISTRY_RESOURCEID(IDR_ENCRYPT)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CEncrypt)
COM_INTERFACE_ENTRY(ISecureShutdownWin)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(ISupportErrorInfo)
COM_INTERFACE_ENTRY(IObjectWithSite)
COM_INTERFACE_ENTRY(ISpecifyPropertyPages)
END_COM_MAP()
virtual ATL_PROPMAP_ENTRY* GetPropertyMap()
{
static ATL_PROPMAP_ENTRY pNormalPropMap[] =
{
PROP_PAGE(CLSID_EncryptSourceProp)
{NULL, 0, NULL, &IID_NULL, 0, 0, 0}
};
static ATL_PROPMAP_ENTRY pAdvancedPropMap[] =
{
PROP_PAGE(CLSID_EncryptSourceProp)
PROP_PAGE(CLSID_EncryptAdvancedProp)
{NULL, 0, NULL, &IID_NULL, 0, 0, 0}
};
INightSecSiteInfoPtr pInfo = (IUnknown*)m_spUnkSite;
if(pInfo)
{
CComVariant var;
pInfo->get_Info(nsAdvanced, &var);
if(var.vt == VT_BOOL && var.bVal == TRUE)
return pAdvancedPropMap;
}
return pNormalPropMap;
}
// ISupportsErrorInfo
STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
// ISecureShutdownWin
public:
STDMETHOD(get_Info)(/*[in]*/ NightSecInfo nsItem, /*[out, retval]*/ VARIANT* pvVal);
STDMETHOD(DoShutdown)(/*[in]*/ long hParent, /*[in]*/ long lMode);
STDMETHOD(SetData)(/*[in]*/ IUnknown* pUnk);
protected:
CPropertyBag m_Data;
CActionEngine m_Engine;
bool m_bDisablePassword;
IXpyPassUIPtr m_xpyPass;
};
#endif //__ENCRYPT_H_
|