Читать «Русский справочник по Win32 API» онлайн - страница 3

Тарас Сорока

Функция должна вызываться сразу после получения приложением сообщения WM _ PALETTECHANGED .

См. также

GetDeviceCaps, RealizePalette .

Атомы

Функции

AddAtom

Функция AddAtom добавляет строку символов в таблицу локальных атомов и возвращает уникальное значение (атом), идентифицирующее строку.

ATOM AddAtom (

LPCTSTR lpString // указатель на добавляемую строку

);

Параметры

lpString - указатель на добавляемую строку, завершающуюся нулем. Строка может иметь максимальный размер в 255 байт. Строки, отличающиеся только регистром, считаются идентичными.

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

В случае успеха возвращается созданный атом.

В случае неудачи возвращается нуль. Для получения дополнительной информации об ошибке вызовите функцию GetLastError .

Комментарии

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

Для преобразования значения WORD в строку, которая может быть добавлена функцией AddAtom в таблицу атомов, может быть использован макрос MAKEINTATOM .

AddAtom возвращает строковый атом, чье значение лежит в диапазоне от 0 xC 000 до 0 xFFFF .

Если значение lpString имеет вид "#1234", AddAtom возвращает целый атом, чье значение являет собой 16-битное представление десятичного числа, указанного в строке (в данном случае 0 x 04 D 2). Если указанное десятичное значение представляет собой 0 x 0000 или значение, лежащее в диапазоне от 0 xC 000 до 0 xFFFF, возвращается нуль, указывающий на ошибку. Если значение lpString лежит в диапазоне от 0 x 0001 до 0 xBFFF, возвращается младшее слово lpString .

См. также

DeleteAtom, FindAtom, GetAtomName, GlobalAddAtom, GlobalDeleteAtom, GlobalFindAtom, GlobalGetAtomName, MAKEINTATOM .

DeleteAtom

Функция DeleteAtom уменьшает счетчик ссылок локальной строки атома. Если счетчик ссылок атома достигает нулевого значения, DeleteAtom удаляет строку, связанную с атомом, из таблицы локальных атомов.

ATOM DeleteAtom (

ATOM nAtom // удаляемый атом

);

Параметры

nAtom - идентифицирует удаляемые атом и строку символов.

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

В случае успеха возвращается нуль.

В случае неудачи возвращается значение параметра nAtom . Для получения дополнительной информации об ошибке вызовите функцию GetLastError .

Комментарии

Счетчик ссылок строки атома определяет, сколько раз строка была добавлена или удалена в/из таблицы локальных атомов. Функция DeleteAtom уменьшает счетчик ссылок строки, которая уже содержится в таблице локальных атомов, при каждом вызове, но удаляет строку только по достижению счетчиком нуля.

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