Контрольная работа: Атомы
Для этого отправитель вводит строку в глобальную таблицу атомов с помощью функции GlobalAddAtom(), a затем устанавливает параметр сообщения в соответствие со значением атома.
Получатель применяет функцию GtobalFindAtom() для получения содержимого переданных данных и удаляет соответствующий атом с помощью функции GlobalDeleteAtom().
При этом очень важно удалить атом, иначе глобальная таблица атомов окажется переполненной ненужными элементами.
Например.
// Имя сохраняемого атома.
LPCTSTRszAtom = "Anatom.";
LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
switch( uMsg )
{
case WM_CREATE:
// Увеличить до 73 число элементов в верхней части таблицы атомов.
InitAtomTable( 73 );
break;
case WM_PAINT:
{
// Показать результаты поиска атома.
staticPAINTSTRUCTps;
static char szWorkArea[33];
static char szBuffer[128];
static ATOM aAnAtom;
aAnAtom = INVALID_ATOM;
BeginPaint( hWnd, &ps );
if (aAnAtom = FindAtom( szAtom ))
{
GetAtomName( aAnAtom, szWorkArea, 32 );
wsprintf( szBuffer, "Атомненайден.", szWorkArea );
}
else