11,12 → 11,12 |
dword size; |
dword type; |
dword encoding; |
byte buffer_data[4096]; |
dword content; |
}; |
|
|
struct Clipboard { |
buffer_data data; |
buffer_data slot_data; |
dword GetSlotCount(); |
dword GetSlotData( ECX); |
dword SetSlotData( EDX, ESI); |
31,11 → 31,22 |
$int 0x40 |
} |
|
#define SLOT_DATA_TYPE_TEXT 0 |
#define SLOT_DATA_TYPE_IMAGE 1 |
#define SLOT_DATA_TYPE_RAW 2 |
#define SLOT_DATA_TYPE_RESERVED 3 |
dword Clipboard::GetSlotData( ECX) //ECX = slot number |
{ |
dword result; |
$mov eax, 54 |
$mov ebx, 1 |
$int 0x40 |
result = EAX; |
slot_data.size = DSDWORD[result]; |
slot_data.type = DSDWORD[result+4]; |
slot_data.encoding = DSDWORD[result+8]; |
if (slot_data.type == SLOT_DATA_TYPE_TEXT) slot_data.content = result+12; |
else slot_data.content = result+10; |
} |
|
dword Clipboard::SetSlotData( ECX, EDX) //ECX = data size, EDX - pointer to data |
55,7 → 66,7 |
dword Clipboard::ResetBlockingBuffer() |
{ |
$mov eax, 54 |
$mov ebx, 3 |
$mov ebx, 4 |
$int 0x40 |
} |
|