User and Graphics Device Interface Objects, страница 5

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

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

Курсор не отображается на экране, если внутренний счетчик отображения курсора (internal cursor display count) менее чем нуль. Это происходит если приложение использует функцию ShowCursor, чтобы спрятать курсор на  большее время чем, чтобы отобразить его.

Смотри также

CreateCursor, LoadCursor, LoadImage, SetCursorPos, ShowCursor

GetThreadDesktop

Функция GetThreadDesktop  возвращает описатель на десктоп, ассоциированный с указанной нитью.

HDESK GetThreadDesktop(

    DWORD  dwThreadId           // идентификатор нити

   );          

Параметры

dwThreadId

Идентифицирует нить, которой будет возвращен описатель на десктоп. Функции GetCurrentThreadId и CreateProcess возвращают идентификаторы нитей.

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

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

Замечание

Система ассоциирует десктоп с нитью, когда данная нить была создана. Нить может использовать функцию SetThreadDesktop, для изменения своего десктопа. Десктоп, ассоциированный с нитью, должен находиться в позиции окна, ассоциированного с процессом нити.

Вызов процесса может использовать возвращенный описатель в вызовах функций GetUserObjectInformation, GetUserObjectSecurity, SetUserObjectInformation, and SetUserObjectSecurity.

Windows 95: Windows 95 не поддерживает множественный десктоп, так что GetThreadDesktop всегда возвращает то же значение.

Смотри также

GetCurrentThreadId, GetProcessWindowStation, GetUserObjectInformation, GetUserObjectSecurity, SetProcessWindowStation, SetThreadDesktop, SetUserObjectInformation, SetUserObjectSecurity

SetWindowsHook

Функция  SetWindowsHook не реализована в Win32 API. Win32- приложения должны использовать функцию SetWindowsHookEx.

SetWindowsHookEx

Функция SetWindowsHookEx устанавливает определяемую приложением процедуру перехватчик в цепочку перехватчиков. Приложение устанавливает процедуру перехватчик для отслеживания системы на определенные типы событий. Процедура перехватчик может проверить события связанные или с указанной нитью или со всеми нитями в системе. Эта функция заменяет SetWindowsHook функцию.

HHOOK SetWindowsHookEx(

    int  idHook,     // тип устанавливаемого перехватчика

    HOOKPROC  hkprc, // адрес процедуры перехватчика

    HINSTANCE  hMod, // описатель экземпляра приложения

    DWORD  dwThreadID // идентичность нити для устанавливаемого перехватчика

   );          

Параметры

idHook

Определяет тип устанавливаемой процедуры перехватчика. Этот параметр может иметь одно из следующих значений:

Значение          Описание

WH_CALLWNDPROC            Устанавливает процедуру перехвата, которая проверяет сообщения прежде, чем система пошлет их процедуре окна назначения. Для более подробной информации, смотри процедура перехвата CallWndProc.

WH_CALLWNDPROCRET     Windows 95 только: Устанавливает процедуру перехвата, которая проверяет сообщения после того, как они обработаны процедурой окна назначения. Для более подробной информации, смотри процедура перехвата CallWndProc.

WH_CBT                                Устанавливает процедуру перехвата, которая получает уведомления полезные для приложений машинной подготовки (CBT). Для более подробной информации, смотри процедура перехвата CBTProc.