Атомы. Как работать с таблицами атомов

Страницы работы

Фрагмент текста работы

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

Включаемый файл

winbase.h

См. также

GlobalAddAtom, Delete Atom, InitAtomTable.

Пример

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

См.    Uocal -sources \chap023\23-01 . txt

DeleteAtom                              Windows 98   • Windows 2000

Описание

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

Синтаксис

ATOM DeleteAtom(ATOM nAtom)

Параметры

nAtom

АТОМ: Атом, который удаляется из локальной таблицы атомов. Это значение возвращается функцией AddAtom во время ввода атома. Целые атомы не могут быть удалены, хотя значение NULL возвращается всякий раз, когда они используются в качестве аргументов функции DeleteAtom.

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

АТОМ: Если выполнение рассматриваемой функции оказывается успешным, возвращается значение NULL. В случае ошибки возвращается значение nAtom. Для возврата кода ошибки используется функция GetLastError.

Включаемый файл

winbase.h

См. также

AddAtom, FindAtom.

Пример

См. пример применения функции AddAtom.

FindAtom                                Windows 98   • Windows 2000

Описание

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

Синтаксис

ATOM FindAtom(LPCTSTR IpszString)

Параметры

IpszString

LPCTSTR: Указатель на искомую строку, завершающуюся нулевым символом. Если первым символом строки оказывается знак #, а после него следуют цифры, представляющие целое число, которое больше нуля и меньше константы MAXINATOM, функция FindAtom возвращает синтезированный целочисленный атом с тем же значением.

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

АТОМ: Если поиск строки оказывается успешным, возвращается 16-разрядное значение локального атома, связанного с указанной строкой. Если же совпадение с данной строкой в локальной таблице атомов не обнаружено, возвращается  NULL. Для получения кода ошибки используется функция GetLastError.

Включаемый файл

winbase.h

См. также

AddAtom, GlobalFindAtom.

Пример

См. пример применения функции AddAtom.

GetAtomName                            •  Windows 98   • Windows 2000

Описание

Функция GetAtomName осуществляет выборку имени атома, которое хранится в локальной таблице атомов. Это имя копируется в соответствующий буфер.

Синтаксис

UINT GetAtomName(ATOM nAtom, LPTSTR IpBuffer, int nSize)

Параметры

nAtom

ATOM: Значение атома, имя которого должно выбираться.

IpBuffer

LPTSTR Указатель на буфер, в который принимается имя атома. Размер этого буфера должен составлять по крайней мере nSize+1 байтов.

nSize

int: Максимальное количество символов, копируемых в буфер IpBuffer.

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

UINT: Если выполнение рассматриваемой функции оказывается успешным, возвращается количествосимволов, скопированных в буфер IpBuffer. В случае ошибки возвращается 0. Для выборки кода ошибки используется функция GetLastError.

Включаемый файл

winbase.h

См. также

AddAtom, GlobalGetAtomName.

Пример

См. пример применения функции AddAtom.

GlobalAddAtom                          Windows 98   •  Windows 2000

Описание

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

ШШ>

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

Похожие материалы

Информация о работе