Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БОС.doc
Скачиваний:
13
Добавлен:
24.12.2018
Размер:
881.15 Кб
Скачать

Пример api функции:

int EnumFontFamilies(HDC hdc, LPCTSTR lpszFamily, FONTENUMPROC lpEnumFontFamProc, LPARAM lParam);

Возвращаемое значение

Значение, возвращенное последней функцией обратного вызова. Трактовка этого значения зависит от контекста, в котором была вызвана данная функция.

Аргументы

hdc - дескриптор контекста устройства.

lpszFamily - указатель на заканчивающуюся нулем текстовую строку, определяющую имя семейства запрошенных шрифтов. Если аргумент lpszFamily имеет нулевое значение, то функция EnumFontFamilies случайным образом выбирает и нумерует по одному шрифту для каждого доступного семейства типов шрифтов.

lpEnumFontFamProc - определяет адрес экземпляра процедуры определенной в приложении функции обратного вызова. Функции обратного вызова описаны при рассмотрении функции EnumFontFamProc.

lParam - указатель на блок данных. Структура блока данных определяется приложением. Эти данные передаются функции обратного вызова вместе с информацией о шрифте.

Описание

Функция EnumFontFamilies нумерует шрифты в указанном семействе шрифтов, доступном на указанном устройстве. Функции EnumFontFamilies и EnumFontFamProc оставлены для обеспечения совместимости с 16-разрядными версиями Windows. Приложения Win32 должны использовать функцию EnumFontFamiliesEx. Функция EnumFontFamilies позволяет получить информацию по каждому шрифту, семейство которого указано в аргументе lpszFamily, и передать эту информацию функции, указанной в аргументе lpEnumFontFamProc. Определенная в приложении функция обратного вызова может производить любую обработку полученной информации о шрифте. Нумерация шрифтов продолжается до тех пор, пока не останется необработанных шрифтов или пока функция обратного вызова не возвратит нулевое значение.

Вопрос З6. ОС Windows NT. Распределение процессорного времени между потоками.

Win 32 поддерживает 4 класса приоритета:

Уровни

IDLE (простаивания) 4

NORMAL (нормальное) 8

HIGH (высокое) 12

REALTIME (реальное время) 24

Уровни от 0 до 31.

Если не указать при создании типа приоритет, то присваивается NORMAL. Любой поток в этом случае полу­чает уровень приоритета 8.

Пусть есть 10 приложений:

10 приложениям выделяют по 15 мс для выполнения. Если максимальное ускорение у приложения первого плана, то 45 мс (у NT).

Функция:

SET PRIORITY CLASS (HANDLE hPROCESS

DWORD fdw PROIRITY)

Меняет класс приоритета процесса.

Функция:

SETThread Priority (HANDLE Thread

INT PRIORITY)

Для изменения приоритета процесса.

В эту функцию можем вернуть:

THREAD_PRIORITY_LOWEST – *

THREAD_PRIORITY_BELOW NORMAL – **

THREAD_PRIORITY_NORMAL – ***

THREAD_PRIORITY_ABOVE NORMAL – ****

THREAD_PRIORITY_HIGHEST – *****

* приоритет процесса должен быть на 2 единицы ниже процесса

** на 1 ниже

*** соответствовать

**** на 1 выше

***** на 2 выше

THREAD_PRIORITY IDLE – устанавливает уровень приоритета потока, равным 1 при классе приоритете про­цесса IDLE, NORMAL или HIGH. Если REAL TIME, уровень приоритета потока 16.

THREAD_PRIORITY _TIME_CRITICAL – устанавливает уровень приоритета потока, равным 15 при классе приоритете процесса IDLE, NORMAL или HIGH. Если REAL TIME, уровень приоритета потока 31.

Таблица

Название

IDLE

NORMAL

HIGH

REAL TIME

TIME_CRITICAL

15

15

15

31

HIGHEST

6

10

15

26

ABOVE NORMAL

5

9

1

25

NORMAL

4

8

13

24

BELOW NORMAL

3

7

12

23

LOWEST

2

6

11

22

IDLE

1

1

1

16