blob: 70f9dd6482352eda888086e1d0cad6974de41f8e (
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
|
// EncryptActions.h: interface for the CBackupActions class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_ENCRYPTACTIONS_H__75916453_A62F_11D3_82DF_0020182B97FC__INCLUDED_)
#define AFX_ENCRYPTACTIONS_H__75916453_A62F_11D3_82DF_0020182B97FC__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "ActionEngine.h"
#include <mystring.h>
#include <path.h>
#include "../common/cmptdata.h"
#include <xpyex.h>
class CEncryptActions
{
public:
class Encrypt : public CAction
{
public:
Encrypt(const file_path& file)
{
m_file = file;
AddXpyRef();
}
virtual ~Encrypt()
{
ReleaseXpyRef();
}
virtual bool Do(CActionEngine* pEngine, HWND hwndUpdates);
virtual void Fix(HRESULT hr);
virtual bool IsFixable(HRESULT hr) const;
virtual bool IsRetryable() const
{ return true; }
static bool m_bEncryptReadOnly;
protected:
file_path m_file;
///////////////////////////////////////////////////
// Xpy Related stuff
// Starts XpyEx
static HRESULT InitXpy();
// These are used in reference counting and when to release the
// XpyEx pointer
// XXXXXXXXXXXXXXX
// We don't use the built in reference counting, because the then
// we have no way of telling whether it's released or not
static void AddXpyRef()
{ m_nXpyRefs++; }
static void ReleaseXpyRef()
{
if(!--m_nXpyRefs && m_pXpy != NULL)
m_pXpy = NULL;
}
static IXpyExPtr m_pXpy;
static UINT m_nXpyRefs;
};
class EncryptPrepare : public CAction
{
public:
EncryptPrepare() {};
virtual bool Do(CActionEngine* pEngine, HWND hwndUpdates);
virtual void Fix(HRESULT hr) { }
virtual bool IsFixable(HRESULT hr) const
{ return false; }
virtual bool IsRetryable() const
{ return false; }
HRESULT Initialize(const CPropertyBag& data);
protected:
string_array m_aFiles;
string_set m_asIgnore;
friend class Encrypt;
};
};
#endif // !defined(AFX_ENCRYPTACTIONS_H__75916453_A62F_11D3_82DF_0020182B97FC__INCLUDED_)
|