다음을 통해 공유


IOleInPlaceSiteWindowless::SetCapture 메서드(ocidl.h)

현재 위치 활성 창 없는 개체가 모든 마우스 메시지를 캡처할 수 있도록 합니다.

구문

HRESULT SetCapture(
  [in] BOOL fCapture
);

매개 변수

[in] fCapture

TRUE이면 컨테이너가 개체의 마우스를 캡처해야 합니다. FALSE이면 컨테이너가 개체에 대한 마우스 캡처를 해제해야 합니다.

반환 값

이 메서드는 마우스 캡처가 개체에 성공적으로 부여된 경우 S_OK 반환합니다. 마우스 캡처를 해제하기 위해 호출된 경우 이 메서드는 실패하지 않아야 합니다. 다른 가능한 반환 값은 다음과 같습니다.

반환 코드 설명
S_FALSE
개체에 마우스 캡처가 거부되었습니다.

설명

창 없는 개체는 사이트 개체에서 TRUE를 사용하여 IOleInPlaceSiteWindowless::SetCapture를 호출하여 마우스 입력을 캡처합니다. 컨테이너는 마우스 캡처를 거부할 수 있습니다. 이 경우 이 메서드는 S_FALSE 반환합니다. 캡처가 부여된 경우 컨테이너는 Windows 마우스 캡처를 자체 창으로 설정하고 마우스 커서 위치가 이 개체 위에 있는지 여부에 관계없이 후속 마우스 메시지를 개체에 디스패치해야 합니다.

개체는 나중에 사이트 개체에서 FALSE를 사용하여 IOleInPlaceSiteWindowless::SetCapture를 호출하여 마우스 캡처를 해제할 수 있습니다. ESC 키를 누르는 것과 같은 외부 이벤트로 인해 캡처를 해제할 수도 있습니다. 이 경우 개체는 키보드 포커스와 함께 컨테이너가 디스패치하는 WM_CANCELMODE 메시지로 알림을 받습니다.

컨테이너는 WM_SETCURSOR 포함한 모든 마우스 메시지를 마우스를 캡처한 창 없는 OLE 개체로 디스패치해야 합니다. 개체가 마우스를 캡처하지 않은 경우 컨테이너는 마우스 커서 아래의 개체에 마우스 메시지를 디스패치해야 합니다.

컨테이너는 창 없는 개체 에서 IOleInPlaceObjectWindowless::OnWindowMessage 를 호출하여 이러한 창 메시지를 디스패치합니다. 창 없는 개체는 이 메서드에 S_FALSE 반환하여 마우스 메시지를 처리하지 않았음을 나타낼 수 있습니다. 그런 다음, 컨테이너는 DefWindowProc 함수를 호출하여 메시지에 대한 기본 동작을 수행해야 합니다. WM_SETCURSOR 경우 컨테이너는 커서 자체를 설정하거나 아무 것도 수행할 수 없습니다.

개체는 IOleInPlaceSiteWindowless::OnDefWindowMessage 를 사용하여 컨테이너에서 기본 메시지 처리를 호출할 수도 있습니다. WM_SETCURSOR 메시지의 경우 컨테이너가 커서를 설정하지 않은 경우 개체가 작업을 수행할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 ocidl.h

추가 정보

IOleInPlaceSiteWindowless

IOleInPlaceSiteWindowless::OnDefWindowMessage