IOleInPlaceSiteWindowless::SetCapture 方法 (ocidl.h)
啟用就地作用中無窗口物件,以擷取所有滑鼠訊息。
語法
HRESULT SetCapture(
[in] BOOL fCapture
);
參數
[in] fCapture
如果為 TRUE,容器應該擷取對象的滑鼠。 如果為 FALSE,容器應該釋放物件的滑鼠擷取。
傳回值
如果已成功將滑鼠擷取授與對象,這個方法會傳回S_OK。 如果呼叫 以釋放滑鼠擷取,這個方法不得失敗。 其他可能的傳回值包括下列專案。
傳回碼 | Description |
---|---|
|
滑鼠擷取已拒絕物件。 |
備註
無視窗物件會藉由在其月台物件上呼叫 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 |