Subversion Repositories Kolibri OS

Rev

Rev 3908 | Rev 5201 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3908 Rev 4265
Line 32... Line 32...
32
      * Y=4 - окно со скином фиксированных размеров
32
      * Y=4 - окно со скином фиксированных размеров
33
      * остальные возможные значения (от 5 до 15) зарезервированы,
33
      * остальные возможные значения (от 5 до 15) зарезервированы,
34
        вызов функции с такими Y игнорируется
34
        вызов функции с такими Y игнорируется
35
    * RR, GG, BB = соответственно красная, зеленая, синяя
35
    * RR, GG, BB = соответственно красная, зеленая, синяя
36
      составляющие цвета рабочей области окна
36
      составляющие цвета рабочей области окна
37
      (игнорируется для стиля Y=2)
37
      (игнорируется для стиля Y=1)
38
    * X = DCBA (биты)
38
    * X = DCBA (биты)
39
      * A = 1 - у окна есть заголовок; для стилей Y=3,4 адрес строки
39
      * A = 1 - у окна есть заголовок; для стилей Y=3,4 адрес строки
40
                  заголовка задаётся в edi, для прочих стилей
40
                  заголовка задаётся в edi, для прочих стилей
41
                  используется подфункция 1 функции 71
41
                  используется подфункция 1 функции 71
42
      * B = 1 - координаты всех графических примитивов задаются
42
      * B = 1 - координаты всех графических примитивов задаются
Line 45... Line 45...
45
      * D = 0 - нормальная заливка рабочей области, 1 - градиентная
45
      * D = 0 - нормальная заливка рабочей области, 1 - градиентная
46
    Следующие параметры предназначены для окон типа I и II и
46
    Следующие параметры предназначены для окон типа I и II и
47
    игнорируются для стилей Y=1,3:
47
    игнорируются для стилей Y=1,3:
48
  * esi = 0xXYRRGGBB - цвет заголовка
48
  * esi = 0xXYRRGGBB - цвет заголовка
49
    * RR, GG, BB определяют сам цвет
49
    * RR, GG, BB определяют сам цвет
50
    * Y=0 - обычное окно, Y=1 - неперемещаемое окно
50
    * Y=0 - обычное окно, Y=1 - неперемещаемое окно (работает для всех стилей окон)
51
    * X определяет градиент заголовка: X=0 - нет градиента,
51
    * X определяет градиент заголовка: X=0 - нет градиента,
52
      X=8 - обычный градиент,
52
      X=8 - обычный градиент,
53
      для окон типа II X=4 - негативный градиент
53
      для окон типа II X=4 - негативный градиент
54
    * прочие значения X и Y зарезервированы
54
    * прочие значения X и Y зарезервированы
55
  * edi = 0x00RRGGBB - цвет рамки
55
  * edi = 0x00RRGGBB - цвет рамки
Line 370... Line 370...
370
    * +70 = +0x46: byte: состояние окна - битовое поле
370
    * +70 = +0x46: byte: состояние окна - битовое поле
371
      * бит 0 (маска 1): окно максимизировано
371
      * бит 0 (маска 1): окно максимизировано
372
      * бит 1 (маска 2): окно минимизировано в панель задач
372
      * бит 1 (маска 2): окно минимизировано в панель задач
373
      * бит 2 (маска 4): окно свёрнуто в заголовок
373
      * бит 2 (маска 4): окно свёрнуто в заголовок
374
    * +71 = +0x47: dword: маска событий
374
    * +71 = +0x47: dword: маска событий
-
 
375
    * +75 = +0x4B: byte: режим ввода с клавиатуры(ASCII = 0; SCAN = 1)
375
Замечания:
376
Замечания:
376
  * Слоты нумеруются с 1.
377
  * Слоты нумеруются с 1.
377
  * Возвращаемое значение не есть общее число потоков, поскольку
378
  * Возвращаемое значение не есть общее число потоков, поскольку
378
    бывают свободные слоты.
379
    бывают свободные слоты.
379
  * При создании процесса автоматически создается поток выполнения.
380
  * При создании процесса автоматически создается поток выполнения.
Line 414... Line 415...
414
    Назначаемые новым потокам идентификаторы монотонно растут.
415
    Назначаемые новым потокам идентификаторы монотонно растут.
415
  * Если поток еще не определил свое окно вызовом функции 0, то
416
  * Если поток еще не определил свое окно вызовом функции 0, то
416
    положение и размеры этого окна полагаются нулями.
417
    положение и размеры этого окна полагаются нулями.
417
  * Координаты клиентской области окна берутся относительно окна.
418
  * Координаты клиентской области окна берутся относительно окна.
418
  * В данный момент используется только часть буфера размером
419
  * В данный момент используется только часть буфера размером
419
    71 = 0x47 байта. Тем не менее рекомендуется использовать буфер
420
    76 = 0x4C байта. Тем не менее рекомендуется использовать буфер
420
    размером 1 Кб для будущей совместимости, в будущем могут быть
421
    размером 1 Кб для будущей совместимости, в будущем могут быть
421
    добавлены некоторые поля.
422
    добавлены некоторые поля.
Line 422... Line 423...
422
 
423
 
423
======================================================================
424
======================================================================
Line 1801... Line 1802...
1801
  * ecx = указатель на блок данных:
1802
  * ecx = указатель на блок данных:
1802
          sysdir_name     rb 64
1803
          sysdir_name     rb 64
1803
          sysdir_path     rb 64
1804
          sysdir_path     rb 64
1804
Пример:
1805
Пример:
1805
dir_name1       db 'KolibriOS',0
1806
dir_name1       db 'KolibriOS',0
1806
                rb 64-8
1807
                rb 64-10
1807
dir_path1       db 'HD0/1',0
1808
dir_path1       db 'HD0/1',0
1808
                rb 64-6
1809
                rb 64-6
1809
Возвращаемое значение:
1810
Возвращаемое значение:
1810
  * функция не возвращает значения
1811
  * функция не возвращает значения
1811
Замечания:
1812
Замечания:
Line 2025... Line 2026...
2025
11, 23 - они сообщают только о событиях, разрешённых этой маской.
2026
11, 23 - они сообщают только о событиях, разрешённых этой маской.
2026
Параметры:
2027
Параметры:
2027
  * eax = 40 - номер функции
2028
  * eax = 40 - номер функции
2028
  * ebx = маска: бит i соответствует событию i+1 (см. список событий)
2029
  * ebx = маска: бит i соответствует событию i+1 (см. список событий)
2029
    (установленный бит разрешает извещение о событии)
2030
    (установленный бит разрешает извещение о событии)
-
 
2031
    bit 31: фильтр активности событий мыши
-
 
2032
    bit 31 = 0 - неактивное окно всегда получает события от мыши
-
 
2033
    bit 31 = 1 - неактивное окно не получает события от мыши
-
 
2034
    bit 30: фильтр позиции курсора
-
 
2035
    bit 30 = 0 - окно принимает события мыши, если курсор
-
 
2036
                 за пределами окна
-
 
2037
    bit 30 = 1 - окно не принимает события мыши, если курсор
-
 
2038
                 за пределами окна
2030
Возвращаемое значение:
2039
Возвращаемое значение:
2031
  * eax = предыдущее значение маски
2040
  * eax = предыдущее значение маски
2032
Замечания:
2041
Замечания:
2033
  * Маска по умолчанию (7=111b) разрешает извещения о перерисовке
2042
  * Маска по умолчанию (7=111b) разрешает извещения о перерисовке
2034
    и нажатиях клавиш и кнопок.
2043
    и нажатиях клавиш и кнопок.
Line 2418... Line 2427...
2418
Возвращаемое значение:
2427
Возвращаемое значение:
2419
  * eax = -1 - ошибка (в системе слишком много потоков)
2428
  * eax = -1 - ошибка (в системе слишком много потоков)
2420
  * иначе eax = TID - идентификатор потока
2429
  * иначе eax = TID - идентификатор потока
Line 2421... Line 2430...
2421
 
2430
 
-
 
2431
======================================================================
-
 
2432
====================== Функция 54, подфункция 0 ======================
-
 
2433
============== Узнать количество слотов в буфере обмена. =============
-
 
2434
======================================================================
-
 
2435
Параметры:
-
 
2436
  * eax = 54 - номер функции
-
 
2437
  * ebx = 0 - номер подфункции
-
 
2438
Возвращаемое значение:
-
 
2439
  * eax = количество слотов в буфере 
-
 
2440
  * eax = -1 - отсутствует область главного списка
-
 
2441
 
-
 
2442
======================================================================
-
 
2443
====================== Функция 54, подфункция 1 ======================
-
 
2444
================== Считать данные из буфера обмена. ==================
-
 
2445
======================================================================
-
 
2446
Параметры:
-
 
2447
  * eax = 54 - номер функции
-
 
2448
  * ebx = 1 - номер подфункции
-
 
2449
  * eсx = номер слота
-
 
2450
Возвращаемое значение:
-
 
2451
  * eax = если успешно - указатель на область памяти с данными
-
 
2452
  * eax = 1 - ошибка
-
 
2453
  * eax = -1 - отсутствует область главного списка
-
 
2454
 
-
 
2455
======================================================================
-
 
2456
====================== Функция 54, подфункция 2 ======================
-
 
2457
================== Записать данные в буфер обмена. ===================
-
 
2458
======================================================================
-
 
2459
Параметры:
-
 
2460
  * eax = 54 - номер функции
-
 
2461
  * ebx = 2 - номер подфункции
-
 
2462
  * eсx = количество копируемых байт
-
 
2463
  * edx = указатель на буфер под копируемые данные
-
 
2464
Возвращаемое значение:
-
 
2465
  * eax = 0 - успешно
-
 
2466
  * eax = 1 - ошибка
-
 
2467
  * eax = -1 - отсутствует область главного списка
-
 
2468
 
-
 
2469
======================================================================
-
 
2470
====================== Функция 54, подфункция 3 ======================
-
 
2471
========= Удалить последний слот с данными в буфере обмена ===========
-
 
2472
======================================================================
-
 
2473
Параметры:
-
 
2474
  * eax = 54 - номер функции
-
 
2475
  * ebx = 3 - номер подфункции
-
 
2476
Возвращаемое значение:
-
 
2477
  * eax = 0 - успешно
-
 
2478
  * eax = 1 - ошибка
-
 
2479
  * eax = -1 - отсутствует область главного списка
-
 
2480
 
-
 
2481
======================================================================
-
 
2482
====================== Функция 54, подфункция 4 ======================
-
 
2483
=================== Аварийный сброс блокировки буфера ================
-
 
2484
======================================================================
-
 
2485
Параметры:
-
 
2486
  * eax = 54 - номер функции
-
 
2487
  * ebx = 4 - номер подфункции
-
 
2488
Возвращаемое значение:
-
 
2489
  * eax = 0 - успешно
-
 
2490
  * eax = -1 - отсутствует область главного списка или нет блокировки
-
 
2491
Замечания:
-
 
2492
  * Используется в исключительных случаях, когда зависшее или убитое
-
 
2493
    приложение заблокировало работу с буфером обмена.
-
 
2494
 
2422
======================================================================
2495
======================================================================
2423
====================== Функция 55, подфункция 55 =====================
2496
====================== Функция 55, подфункция 55 =====================
2424
========== Начать проигрывать данные на встроенном спикере. ==========
2497
========== Начать проигрывать данные на встроенном спикере. ==========
2425
======================================================================
2498
======================================================================
2426
Параметры:
2499
Параметры:
Line 3493... Line 3566...
3493
  * В текущей реализации изменяется только маска пользовательского
3566
  * В текущей реализации изменяется только маска пользовательского
3494
    обработчика исключений, установленного подфункцией 24. При этом
3567
    обработчика исключений, установленного подфункцией 24. При этом
3495
    номер сигнала соответствует номеру исключения.
3568
    номер сигнала соответствует номеру исключения.
Line 3496... Line 3569...
3496
 
3569
 
-
 
3570
======================================================================
-
 
3571
= Функция 68, подфункция 26 - освободить страницы памяти ============
-
 
3572
======================================================================
-
 
3573
Параметры:
-
 
3574
  * eax = 68 - номер функции
-
 
3575
  * ebx = 26 - номер подфункции
-
 
3576
  * ecx = указатель на блок памяти выделенный подфункцией 12
-
 
3577
  * edx = смещение от начала блока
-
 
3578
  * esi = размер высвобождаемого блока памяти, в байтах
-
 
3579
Примечания:
-
 
3580
  * функция освобождает страницы с ecx+edx по ecx+edx+esi
-
 
3581
    и устанавливает виртуальную память в зарезервированное состояние.
-
 
3582
 
-
 
3583
======================================================================
-
 
3584
= Функция 68, подфункция 27 - загрузить файл ===================
-
 
3585
======================================================================
-
 
3586
Параметры:
-
 
3587
  * eax = 68 - номер функции
-
 
3588
  * ebx = 27 - номер подфункции
-
 
3589
  * ecx = указатель на ASCIIZ-строку с именем файла
-
 
3590
Возвращаемое значение:
-
 
3591
  * eax = указатель на загруженный файл или 0
-
 
3592
  * edx = размер загруженного файла или 0
-
 
3593
Примечания:
-
 
3594
  * функция загружает и, при необходимости, распаковывает файл (kunpack)
-
 
3595
 
3497
======================================================================
3596
======================================================================
3498
======================== Функция 69 - отладка. =======================
3597
======================== Функция 69 - отладка. =======================
3499
======================================================================
3598
======================================================================
3500
Процесс может загрузить другой процесс как отлаживаемый установкой
3599
Процесс может загрузить другой процесс как отлаживаемый установкой
3501
соответствующего бита при вызове подфункции 7 функции 70.
3600
соответствующего бита при вызове подфункции 7 функции 70.