Метод IOleInPlaceSiteWindowless::SetCapture (ocidl.h)
Разрешить встроенному активному безоконному объекту перехватывать все сообщения мыши.
Синтаксис
HRESULT SetCapture(
[in] BOOL fCapture
);
Параметры
[in] fCapture
Если задано значение TRUE, контейнер должен захватывать мышь для объекта . Если значение РАВНО FALSE, контейнер должен освободить запись мыши для объекта .
Возвращаемое значение
Этот метод возвращает S_OK, если запись мыши была успешно предоставлена объекту . При вызове для освобождения захвата мыши этот метод не должен возвращать ошибку. Другие возможные возвращаемые значения включают следующее.
Код возврата | Описание |
---|---|
|
Объекту отказано в фиксации мыши. |
Комментарии
Объект без окна захватывает входные данные с помощью мыши, вызывая IOleInPlaceSiteWindowless::SetCapture с true в объекте сайта. Контейнер может запретить захват с помощью мыши. В этом случае этот метод возвращает S_FALSE. Если запись предоставлена, контейнер должен задать для захвата мыши Windows собственное окно и отправить любое последующее сообщение мыши объекту независимо от того, находится ли курсор мыши над этим объектом или нет.
Позже объект может освободить захват мыши, вызвав IOleInPlaceSiteWindowless::SetCapture с false в своем объекте сайта. Запись также может быть освобождена из-за внешнего события, например нажатия клавиши ESC. В этом случае объект уведомляется WM_CANCELMODE сообщением, которое отправляет контейнер вместе с фокусом клавиатуры.
Контейнеры должны отправлять все сообщения мыши, включая WM_SETCURSOR, в объект OLE без окон, который захватил мышь. Если ни объект не захватил мышь, контейнер должен отправить сообщение мыши объекту под курсором мыши.
Контейнер отправляет эти сообщения окна, вызывая IOleInPlaceObjectWindowless::OnWindowMessage для объекта без окна. Объект без окна может возвращать S_FALSE этому методу, чтобы указать, что сообщение мыши не было обработано. Затем контейнер должен выполнить поведение по умолчанию для сообщения, вызвав функцию DefWindowProc . Для WM_SETCURSOR контейнер может либо задать сам курсор, либо ничего не делать.
Объекты также могут использовать IOleInPlaceSiteWindowless::OnDefWindowMessage для вызова обработки сообщений по умолчанию из контейнера. В случае сообщения WM_SETCURSOR это позволяет объекту выполнять действия, если контейнер не устанавливает курсор.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | ocidl.h |