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. |