@@ -6,6 +6,21 @@ namespace CodeSamples.ClipboardUse
6
6
{
7
7
internal class ClipboardSample : SampleExecute
8
8
{
9
+ /// <summary>
10
+ /// CFSTR_PREFERREDDROPEFFECT
11
+ /// </summary>
12
+ public const string FileDropEffect = "Preferred DropEffect" ;
13
+
14
+ /// <summary>
15
+ /// DROPEFFECT_MOVE
16
+ /// </summary>
17
+ public const byte DropEffectMove = 0x02 ;
18
+
19
+ /// <summary>
20
+ /// DROPEFFECT_COPY
21
+ /// </summary>
22
+ public const byte DropEffectCopy = 0x05 ;
23
+
9
24
private bool HasFilesInClipboard ( )
10
25
{
11
26
return Clipboard . GetDataObject ( ) . GetDataPresent ( DataFormats . FileDrop ) ;
@@ -24,7 +39,7 @@ private void CopyFilesToClipboard(List<string> filesToCopy, bool cutOperation)
24
39
//data.SetData("FileDrop", true, files);
25
40
26
41
MemoryStream memory = new MemoryStream ( 4 ) ;
27
- byte [ ] bytes = new byte [ ] { ( byte ) ( cutOperation ? 0x02 : 0x05 ) , 0x00 , 0x00 , 0x00 } ;
42
+ byte [ ] bytes = new byte [ ] { ( byte ) ( cutOperation ? DropEffectMove : DropEffectCopy ) , 0x00 , 0x00 , 0x00 } ;
28
43
memory . Write ( bytes , 0 , bytes . Length ) ;
29
44
30
45
data . SetData ( "Preferred DropEffect" , memory ) ;
@@ -41,13 +56,13 @@ private List<string> PasteFilesFromClipboard()
41
56
IDataObject data = Clipboard . GetDataObject ( ) ;
42
57
43
58
string [ ] files = ( string [ ] ) data . GetData ( DataFormats . FileDrop ) ;
44
- MemoryStream stream = ( MemoryStream ) data . GetData ( "Preferred DropEffect" , true ) ;
59
+ MemoryStream stream = ( MemoryStream ) data . GetData ( FileDropEffect , true ) ;
45
60
46
61
int flag = stream . ReadByte ( ) ;
47
- if ( flag != 0x02 && flag != 0x05 )
62
+ if ( flag != DropEffectMove && flag != DropEffectCopy )
48
63
return result ;
49
64
50
- bool moveFiles = ( flag == 0x02 ) ;
65
+ bool moveFiles = ( flag == DropEffectMove ) ;
51
66
52
67
foreach ( string file in files )
53
68
{
0 commit comments