summaryrefslogtreecommitdiff
path: root/NSCmpts/Encrypt.h
blob: a7b449fc2bfcd777e295c44fcf211886a700cd45 (plain)
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_