Files
VBoxGuest/data/clipboard/constants.inc
2026-03-04 22:03:47 +03:00

80 lines
4.7 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
; =============================================================================
; 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 )