Всем привет! Не могу добавить своё окно в цепочку для отслеживания изменений в буфере обмена. Смысл я как-бы понял.Нужно заюзать SetClipboardViewer и в случае успеха мы получим хендл следующего окна в цепочки. Ну вот не поиму в какой момент нужно дергать эту функцию. Почитал сишные статьи,пишут что после сообщения WM_CREATE нужно заюзать SetClipboardViewer. Сделал.Загнал поглядеть в отладчик,там сообщение WM_CREATE срабатывает куеву тучу раз. Получается что и мое окно добавляется в цепочку тоже хз сколько раз. Не могу в общем понять как правильно использовать SetClipboardViewer и откуда,в какой момент её вызвать. Помогите разобраться.Вот мои не доделанный код: Код (Text): format PE GUI 4.0 entry start include 'win32a.inc' start: invoke GetModuleHandle,0 invoke DialogBoxParam,eax,IDR_DIALOG,HWND_DESKTOP,DialogProc,0 exit: invoke ExitProcess,0 proc DialogProc hwnddlg,msg,wparam,lparam push ebx esi edi cmp [wparam],WM_CREATE je CREATE cmp [msg],WM_COMMAND je wmcommand cmp [msg],WM_DRAWCLIPBOARD je DRAWCLIPBOARD xor eax,eax jmp finish CREATE : invoke SetClipboardViewer,[hwnddlg] ; добавляем окно в цепочку mov [nexth],eax ; хендл следующего окна xor eax,eax jmp finish wmcommand: mov eax,[wparam] cmp eax,IDCANCEL je wmclose jmp processed DRAWCLIPBOARD: invoke PostMessage,[nexth],[msg],[wparam],[lparam] jmp processed wmclose: invoke EndDialog,[hwnddlg],0 processed: mov eax,1 finish: pop edi esi ebx ret endp nexth dd ? section '.rsrc' resource data readable IDR_DIALOG = 37 IDE = 2 directory RT_DIALOG,dialogs resource dialogs,\ IDR_DIALOG,LANG_ENGLISH+SUBLANG_DEFAULT,main dialog main,'test',390,270,30,30,WS_CAPTION+WS_SYSMENU dialogitem 'EDIT','',IDE,2,2,60,13,WS_VISIBLE+WS_TABSTOP+WS_BORDER enddialog section '.idata' import data readable writeable library kernel32,'KERNEL32.DLL',\ user32,'USER32.DLL' include 'api/kernel32.inc' include 'api/user32.inc'