Rev 8877 | 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 | |||
7037 | leency | 9 | //===================================================// |
10 | // // |
||
11 | // Kolibri Clipboard System Functions // |
||
12 | // // |
||
13 | //===================================================// |
||
4426 | punk_joker | 14 | |
7037 | leency | 15 | #define SLOT_DATA_TYPE_TEXT 0 |
16 | #define SLOT_DATA_TYPE_TEXT_BLOCK 1 |
||
17 | #define SLOT_DATA_TYPE_IMAGE 2 |
||
18 | #define SLOT_DATA_TYPE_RAW 3 |
||
19 | |||
20 | inline fastcall dword Clipboard__GetSlotCount() |
||
4426 | punk_joker | 21 | { |
22 | $mov eax, 54 |
||
23 | $mov ebx, 0 |
||
24 | $int 0x40 |
||
25 | } |
||
26 | |||
7037 | leency | 27 | inline fastcall dword Clipboard__GetSlotData( ECX) //ECX = slot number |
4426 | punk_joker | 28 | { |
29 | $mov eax, 54 |
||
30 | $mov ebx, 1 |
||
31 | $int 0x40 |
||
32 | } |
||
33 | |||
7037 | leency | 34 | inline fastcall dword Clipboard__SetSlotData( ECX, EDX) //ECX = data size, EDX - pointer to data |
4426 | punk_joker | 35 | { |
36 | $mov eax, 54 |
||
37 | $mov ebx, 2 |
||
38 | $int 0x40 |
||
39 | } |
||
40 | |||
7037 | leency | 41 | inline fastcall dword Clipboard__DeleteLastSlot() |
4426 | punk_joker | 42 | { |
43 | $mov eax, 54 |
||
44 | $mov ebx, 3 |
||
45 | $int 0x40 |
||
46 | } |
||
47 | |||
7037 | leency | 48 | inline fastcall dword Clipboard__ResetBlockingBuffer() |
4426 | punk_joker | 49 | { |
50 | $mov eax, 54 |
||
6562 | leency | 51 | $mov ebx, 4 |
4426 | punk_joker | 52 | $int 0x40 |
5598 | pavelyakov | 53 | } |
54 | |||
7037 | leency | 55 | //===================================================// |
56 | // // |
||
57 | // Some useful patterns // |
||
58 | // // |
||
59 | //===================================================// |
||
60 | |||
61 | :void Clipboard__CopyText(dword _text) |
||
62 | { |
||
7914 | leency | 63 | dword size_buf; |
7037 | leency | 64 | dword buff_data; |
65 | |||
66 | size_buf = strlen(_text) + 12; |
||
67 | buff_data = malloc(size_buf); |
||
68 | ESDWORD[buff_data] = size_buf; |
||
69 | ESDWORD[buff_data+4] = SLOT_DATA_TYPE_TEXT; |
||
70 | ESDWORD[buff_data+8] = 1; //encoding 0=UTF, 1=866, 2=1251 |
||
71 | strcpy(buff_data+12, _text); |
||
72 | |||
73 | Clipboard__SetSlotData(size_buf, buff_data); |
||
8878 | leency | 74 | //if (EAX!=0) notify("'Error while copying to clipboard!'E"); |
7037 | leency | 75 | |
76 | buff_data = free(buff_data); |
||
77 | } |
||
78 | |||
79 | |||
5598 | pavelyakov | 80 | #endif |