Чтобы определить, может ли целое значение быть размещено в таблице атомов, его следует проверить, сравнив с константой MAXINATOM. Еще одна макрокоманда MAKEINATOM, преобразует число в целый атом.
В листинге показано, каким образом используются целые атомы. Следует заметить, что строка, сохраняемая в таблице атомов, на самом деле будет содержать цифры десятичного представления целого числа, которому предшествует знак "решетки".
Листинг. Применение целых атомов
charszStoredString[6];
WORD wValue = 1000;
ATOM aValue = AddAtom( MAKEINTATOM( wValue ) ) ;
// Значение атома равно 100.
// Строка будет содержать число "#1000".
GetAtomName( aValue, azStoredString, 6 );
Целые атомы на самом деле вообще не добавляются и не удаляются из системы.
Напротив, они синтезируются функциями управления атомами. В приведенном примере тот же самый результат может быть сохранен в строке szStoredString, если функция DeleteAtom() вообще не вызывается, при этом вместо значения wValueподставляется значение aValue.
Таким образом, функция DeleteAtom() может быть безболезненно вызвана и по отношению к целым атомам. А поскольку они вообще не существуют, они и не могут быть удалены, хотя функция DeleteAtom() так или иначе возвращает 0, что указывает на успешное завершение.