共用方式為


IOleInPlaceSiteWindowless::SetCapture 方法 (ocidl.h)

啟用就地作用中無窗口物件,以擷取所有滑鼠訊息。

語法

HRESULT SetCapture(
  [in] BOOL fCapture
);

參數

[in] fCapture

如果為 TRUE,容器應該擷取對象的滑鼠。 如果為 FALSE,容器應該釋放物件的滑鼠擷取。

傳回值

如果已成功將滑鼠擷取授與對象,這個方法會傳回S_OK。 如果呼叫 以釋放滑鼠擷取,這個方法不得失敗。 其他可能的傳回值包括下列專案。

傳回碼 Description
S_FALSE
滑鼠擷取已拒絕物件。

備註

無視窗物件會藉由在其月台物件上呼叫 IOleInPlaceSiteWindowless::SetCapture ,以 取滑鼠輸入。 容器可以拒絕滑鼠擷取,在此情況下,此方法會傳回S_FALSE。 如果授與擷取,容器必須將 Windows 滑鼠擷取設定為自己的視窗,並將任何後續的滑鼠訊息分派給物件,不論滑鼠游標位置是否在此物件上。

物件稍後可以呼叫 IOleInPlaceSiteWindowless::SetCapture 在其月台物件上使用 FALSE 來釋放滑鼠擷取。 擷取也可以因為按下外部事件而釋放,例如按下 ESC 鍵。 在此情況下,物件會透過容器連同鍵盤焦點一起分派 的WM_CANCELMODE 訊息通知。

容器應該將所有滑鼠訊息分派到已擷取滑鼠的無視窗 OLE 物件,包括 WM_SETCURSOR。 如果沒有物件擷取滑鼠,容器應該將滑鼠訊息分派至滑鼠游標下的物件。

容器會在無窗口物件上呼叫 IOleInPlaceObjectWindowless::OnWindowMessage ,以分派這些視窗訊息。 無窗口物件可以將S_FALSE傳回至這個方法,以指出它未處理滑鼠訊息。 然後,容器應該藉由呼叫 DefWindowProc 函式來執行訊息的預設行為。 針對 WM_SETCURSOR,容器可以設定數據指標本身或不執行任何動作。

物件也可以使用 IOleInPlaceSiteWindowless::OnDefWindowMessage 從容器叫用預設訊息處理。 如果是 WM_SETCURSOR 訊息,這可讓物件在容器未設定數據指標時採取動作。

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 ocidl.h

另請參閱

IOleInPlaceSiteWindowless

IOleInPlaceSiteWindowless::OnDefWindowMessage