80 lines
4.7 KiB
HTML
80 lines
4.7 KiB
HTML
; =============================================================================
|
||
; Clipboard Constants — из VBox 7.2.6 исходников
|
||
;
|
||
; Источники:
|
||
; include/VBox/HostServices/VBoxClipboardSvc.h
|
||
; include/VBox/GuestHost/SharedClipboard.h
|
||
; =============================================================================
|
||
|
||
; =============================================================================
|
||
; Guest function numbers (VBOX_SHCL_GUEST_FN_*)
|
||
; Гость вызывает эти функции через HGCM
|
||
; =============================================================================
|
||
VBOX_SHCL_GUEST_FN_MSG_OLD_GET_WAIT equ 1 ; Ждать сообщение от хоста (blocking, deprecated но работает)
|
||
VBOX_SHCL_GUEST_FN_REPORT_FORMATS equ 2 ; Сообщить хосту о доступных форматах
|
||
VBOX_SHCL_GUEST_FN_DATA_READ equ 3 ; Прочитать данные с хоста
|
||
VBOX_SHCL_GUEST_FN_DATA_WRITE equ 4 ; Записать данные на хост
|
||
VBOX_SHCL_GUEST_FN_CONNECT equ 5 ; (deprecated в 7.x)
|
||
VBOX_SHCL_GUEST_FN_REPORT_FEATURES equ 6 ; Сообщить о поддерживаемых фичах
|
||
VBOX_SHCL_GUEST_FN_QUERY_FEATURES equ 7 ; Запросить фичи хоста
|
||
VBOX_SHCL_GUEST_FN_MSG_PEEK_NOWAIT equ 8 ; Peek без блокировки
|
||
VBOX_SHCL_GUEST_FN_MSG_PEEK_WAIT equ 9 ; Peek с блокировкой
|
||
VBOX_SHCL_GUEST_FN_MSG_GET equ 10 ; Получить сообщение (новый протокол)
|
||
VBOX_SHCL_GUEST_FN_MSG_CANCEL equ 26 ; Отменить ожидание
|
||
|
||
; Количества параметров
|
||
VBOX_SHCL_CPARMS_MSG_OLD_GET_WAIT equ 2
|
||
VBOX_SHCL_CPARMS_REPORT_FORMATS equ 1
|
||
VBOX_SHCL_CPARMS_DATA_READ equ 3
|
||
VBOX_SHCL_CPARMS_DATA_WRITE_OLD equ 2 ; Без CONTEXT_ID (старый протокол)
|
||
VBOX_SHCL_CPARMS_DATA_WRITE equ 3 ; С CONTEXT_ID (новый протокол)
|
||
|
||
; =============================================================================
|
||
; Host message types (VBOX_SHCL_HOST_MSG_*)
|
||
; Приходят в parm[0] от MSG_OLD_GET_WAIT
|
||
;
|
||
; КРИТИЧНО! В старом коде были НЕПРАВИЛЬНЫЕ значения:
|
||
; было: FORMATS_REPORT=1, READ_DATA=2, WRITE_DATA=3
|
||
; надо: QUIT=1, READ_DATA=2, FORMATS_REPORT=3
|
||
; =============================================================================
|
||
VBOX_SHCL_HOST_MSG_QUIT equ 1 ; Хост закрывает клипборд
|
||
VBOX_SHCL_HOST_MSG_READ_DATA equ 2 ; Хост хочет прочитать данные гостя
|
||
VBOX_SHCL_HOST_MSG_FORMATS_REPORT equ 3 ; Хост сообщает о новых форматах
|
||
VBOX_SHCL_HOST_MSG_CANCELED equ 4 ; Отмена
|
||
|
||
; =============================================================================
|
||
; Format flags (VBOX_SHCL_FMT_*) — БИТОВЫЕ МАСКИ
|
||
;
|
||
; КРИТИЧНО! В старом коде были НЕПРАВИЛЬНЫЕ значения:
|
||
; было: FMT_TEXT=1, FMT_UNICODETEXT=13
|
||
; надо: FMT_UNICODETEXT=1 (bit 0), FMT_BITMAP=2 (bit 1), FMT_HTML=4 (bit 2)
|
||
; FMT_TEXT не существует в VBox! Только UNICODETEXT (UTF-16LE)
|
||
; =============================================================================
|
||
VBOX_SHCL_FMT_NONE equ 0x0000
|
||
VBOX_SHCL_FMT_UNICODETEXT equ 0x0001 ; bit 0 — UTF-16LE текст
|
||
VBOX_SHCL_FMT_BITMAP equ 0x0002 ; bit 1 — DIB bitmap
|
||
VBOX_SHCL_FMT_HTML equ 0x0004 ; bit 2 — HTML
|
||
VBOX_SHCL_FMT_URI_LIST equ 0x0008 ; bit 3 — URI list (drag-n-drop)
|
||
VBOX_SHCL_FMT_VALID_MASK equ 0x000F
|
||
|
||
; Буфер
|
||
VBOX_SHCL_MAX_CHUNK_SIZE equ 0x10000 ; 64KB
|
||
|
||
; Событие VMMDev для clipboard
|
||
CLIPBOARD_EVENT_MASK equ VMMDEV_EVENT_HGCM ; bit 1 = 0x02
|
||
CLIPBOARD_CAPS_MASK equ 0 ; VMMDEV_GUEST_SUPPORTS_SHCL ; bit 7 = 0x80
|
||
|
||
; =============================================================================
|
||
; Состояния listener'а
|
||
; =============================================================================
|
||
CLIP_LISTEN_IDLE equ 0 ; Не слушаем
|
||
CLIP_LISTEN_SUBMITTED equ 1 ; Запрос отправлен в VMMDev, ждём ответ
|
||
|
||
; Максимум ошибок подряд до отключения
|
||
CLIP_MAX_ERRORS equ 5
|
||
|
||
; Флаги KolibriOS события (для CreateEvent)
|
||
CLIP_MANUAL_DESTROY equ 0x80000000 ; Событие не уничтожается после WaitEvent
|
||
|
||
; VBOXGUEST_GUEST_CAPS_OR_MASK equ ( VBOXGUEST_GUEST_CAPS_OR_MASK or CLIPBOARD_CAPS_MASK )
|
||
; VBOXGUEST_EVENTS_OR_MASK equ ( VBOXGUEST_EVENTS_OR_MASK or CLIPBOARD_EVENT_MASK ) |