Rev 5676 | Rev 6565 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5676 | Rev 6562 | ||
---|---|---|---|
Line 9... | Line 9... | ||
9 | struct buffer_data |
9 | struct buffer_data |
10 | { |
10 | { |
11 | dword size; |
11 | dword size; |
12 | dword type; |
12 | dword type; |
13 | dword encoding; |
13 | dword encoding; |
14 | byte buffer_data[4096]; |
14 | dword content; |
15 | }; |
15 | }; |
Line 16... | Line 16... | ||
16 | 16 | ||
17 | 17 | ||
18 | struct Clipboard { |
18 | struct Clipboard { |
19 | buffer_data data; |
19 | buffer_data slot_data; |
20 | dword GetSlotCount(); |
20 | dword GetSlotCount(); |
21 | dword GetSlotData( ECX); |
21 | dword GetSlotData( ECX); |
22 | dword SetSlotData( EDX, ESI); |
22 | dword SetSlotData( EDX, ESI); |
Line 29... | Line 29... | ||
29 | $mov eax, 54 |
29 | $mov eax, 54 |
30 | $mov ebx, 0 |
30 | $mov ebx, 0 |
31 | $int 0x40 |
31 | $int 0x40 |
32 | } |
32 | } |
Line -... | Line 33... | ||
- | 33 | ||
- | 34 | #define SLOT_DATA_TYPE_TEXT 0 |
|
- | 35 | #define SLOT_DATA_TYPE_IMAGE 1 |
|
- | 36 | #define SLOT_DATA_TYPE_RAW 2 |
|
33 | 37 | #define SLOT_DATA_TYPE_RESERVED 3 |
|
34 | dword Clipboard::GetSlotData( ECX) //ECX = slot number |
38 | dword Clipboard::GetSlotData( ECX) //ECX = slot number |
- | 39 | { |
|
35 | { |
40 | dword result; |
36 | $mov eax, 54 |
41 | $mov eax, 54 |
37 | $mov ebx, 1 |
42 | $mov ebx, 1 |
- | 43 | $int 0x40 |
|
- | 44 | result = EAX; |
|
- | 45 | slot_data.size = DSDWORD[result]; |
|
- | 46 | slot_data.type = DSDWORD[result+4]; |
|
- | 47 | slot_data.encoding = DSDWORD[result+8]; |
|
- | 48 | if (slot_data.type == SLOT_DATA_TYPE_TEXT) slot_data.content = result+12; |
|
38 | $int 0x40 |
49 | else slot_data.content = result+10; |
Line 39... | Line 50... | ||
39 | } |
50 | } |
40 | 51 | ||
41 | dword Clipboard::SetSlotData( ECX, EDX) //ECX = data size, EDX - pointer to data |
52 | dword Clipboard::SetSlotData( ECX, EDX) //ECX = data size, EDX - pointer to data |
Line 53... | Line 64... | ||
53 | } |
64 | } |
Line 54... | Line 65... | ||
54 | 65 | ||
55 | dword Clipboard::ResetBlockingBuffer() |
66 | dword Clipboard::ResetBlockingBuffer() |
56 | { |
67 | { |
57 | $mov eax, 54 |
68 | $mov eax, 54 |
58 | $mov ebx, 3 |
69 | $mov ebx, 4 |
59 | $int 0x40 |
70 | $int 0x40 |
Line 60... | Line 71... | ||
60 | } |
71 | } |
61 | 72 |