Rev 6565 | Rev 6791 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5598 | pavelyakov | 1 | #ifndef INCLUDE_CLIPBOARD_H |
2 | #define INCLUDE_CLIPBOARD_H |
||
5676 | pavelyakov | 3 | #print "[include |
5598 | pavelyakov | 4 | |
5 | #ifndef INCLUDE_KOLIBRI_H |
||
6 | #include "../lib/kolibri.h" |
||
7 | #endif |
||
8 | |||
4428 | leency | 9 | struct buffer_data |
10 | { |
||
11 | dword size; |
||
12 | dword type; |
||
13 | dword encoding; |
||
6562 | leency | 14 | dword content; |
4428 | leency | 15 | }; |
16 | |||
17 | |||
4426 | punk_joker | 18 | struct Clipboard { |
6562 | leency | 19 | buffer_data slot_data; |
4426 | punk_joker | 20 | dword GetSlotCount(); |
21 | dword GetSlotData( ECX); |
||
22 | dword SetSlotData( EDX, ESI); |
||
23 | dword DelLastSlot(); |
||
24 | dword ResetBlockingBuffer(); |
||
25 | }; |
||
26 | |||
27 | dword Clipboard::GetSlotCount() |
||
28 | { |
||
29 | $mov eax, 54 |
||
30 | $mov ebx, 0 |
||
31 | $int 0x40 |
||
32 | } |
||
33 | |||
6562 | leency | 34 | #define SLOT_DATA_TYPE_TEXT 0 |
35 | #define SLOT_DATA_TYPE_IMAGE 1 |
||
36 | #define SLOT_DATA_TYPE_RAW 2 |
||
37 | #define SLOT_DATA_TYPE_RESERVED 3 |
||
4426 | punk_joker | 38 | dword Clipboard::GetSlotData( ECX) //ECX = slot number |
39 | { |
||
6562 | leency | 40 | dword result; |
4426 | punk_joker | 41 | $mov eax, 54 |
42 | $mov ebx, 1 |
||
43 | $int 0x40 |
||
6562 | leency | 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; |
||
6613 | leency | 49 | else slot_data.content = result+8; |
6565 | leency | 50 | return result; |
4426 | punk_joker | 51 | } |
52 | |||
53 | dword Clipboard::SetSlotData( ECX, EDX) //ECX = data size, EDX - pointer to data |
||
54 | { |
||
55 | $mov eax, 54 |
||
56 | $mov ebx, 2 |
||
57 | $int 0x40 |
||
58 | } |
||
59 | |||
60 | dword Clipboard::DelLastSlot() |
||
61 | { |
||
62 | $mov eax, 54 |
||
63 | $mov ebx, 3 |
||
64 | $int 0x40 |
||
65 | } |
||
66 | |||
67 | dword Clipboard::ResetBlockingBuffer() |
||
68 | { |
||
69 | $mov eax, 54 |
||
6562 | leency | 70 | $mov ebx, 4 |
4426 | punk_joker | 71 | $int 0x40 |
5598 | pavelyakov | 72 | } |
73 | |||
74 | #endif |