Condividi tramite


Metodo IOleInPlaceSiteWindowless::SetCapture (ocidl.h)

Consente a un oggetto attivo sul posto e senza finestra di acquisire tutti i messaggi del mouse.

Sintassi

HRESULT SetCapture(
  [in] BOOL fCapture
);

Parametri

[in] fCapture

Se TRUE, il contenitore deve acquisire il mouse per l'oggetto. Se FALSE, il contenitore deve rilasciare l'acquisizione del mouse per l'oggetto .

Valore restituito

Questo metodo restituisce S_OK se l'acquisizione del mouse è stata concessa correttamente all'oggetto . Se chiamato per rilasciare il mouse capture, questo metodo non deve avere esito negativo. Gli altri valori restituiti possibili includono i seguenti:

Codice restituito Descrizione
S_FALSE
Il mouse capture è stato negato all'oggetto.

Commenti

Un oggetto senza finestra acquisisce l'input del mouse chiamando IOleInPlaceSiteWindowless::SetCapture con TRUE nell'oggetto sito. Il contenitore può negare l'acquisizione del mouse, nel qual caso questo metodo restituisce S_FALSE. Se l'acquisizione viene concessa, il contenitore deve impostare l'acquisizione del mouse di Windows sulla propria finestra e inviare qualsiasi messaggio del mouse successivo all'oggetto, indipendentemente dal fatto che la posizione del cursore del mouse si trova su questo oggetto o meno.

L'oggetto può rilasciare in un secondo momento l'acquisizione del mouse chiamando IOleInPlaceSiteWindowless::SetCapture con FALSE nel relativo oggetto sito. L'acquisizione può anche essere rilasciata a causa di un evento esterno, ad esempio il tasto ESC premuto. In questo caso, l'oggetto riceve una notifica da un messaggio WM_CANCELMODE che il contenitore invia insieme allo stato attivo della tastiera.

I contenitori devono inviare tutti i messaggi del mouse, inclusi i WM_SETCURSOR, all'oggetto OLE senza finestra che ha acquisito il mouse. Se nessun oggetto ha acquisito il mouse, il contenitore deve inviare il messaggio del mouse all'oggetto sotto il cursore del mouse.

Il contenitore invia questi messaggi di finestra chiamando IOleInPlaceObjectWindowless::OnWindowMessage nell'oggetto senza finestra. L'oggetto senza finestra può restituire S_FALSE a questo metodo per indicare che non ha elaborato il messaggio del mouse. Il contenitore deve quindi eseguire il comportamento predefinito per il messaggio chiamando la funzione DefWindowProc . Per WM_SETCURSOR, il contenitore può impostare il cursore stesso o non eseguire alcuna operazione.

Gli oggetti possono anche usare IOleInPlaceSiteWindowless::OnDefWindowMessage per richiamare l'elaborazione dei messaggi predefinita dal contenitore. Nel caso del messaggio WM_SETCURSOR , questo consente a un oggetto di intervenire se il contenitore non imposta il cursore.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione ocidl.h

Vedi anche

IOleInPlaceSiteWindowless

IOleInPlaceSiteWindowless::OnDefWindowMessage