Enumerazione POINTERINACTIVE (ocidl.h)

Indicare i criteri di attivazione dell'oggetto e vengono usati nel metodo IPointerInactive::GetActivationPolicy .

Sintassi

typedef enum tagPOINTERINACTIVE {
  POINTERINACTIVE_ACTIVATEONENTRY = 1,
  POINTERINACTIVE_DEACTIVATEONLEAVE = 2,
  POINTERINACTIVE_ACTIVATEONDRAG = 4
} POINTERINACTIVE;

Costanti

 
POINTERINACTIVE_ACTIVATEONENTRY
Valore: 1
L'oggetto deve essere attivato sul posto quando il mouse lo entra durante un'operazione di spostamento del mouse.
POINTERINACTIVE_DEACTIVATEONLEAVE
Valore: 2
L'oggetto deve essere disattivato quando il mouse lascia l'oggetto durante un'operazione di spostamento del mouse.
POINTERINACTIVE_ACTIVATEONDRAG
Valore: 4
L'oggetto deve essere attivato sul posto quando il mouse viene trascinato sopra di esso durante un'operazione di trascinamento e rilascio.

Commenti

Per altre informazioni sull'uso dei valori POINTERINACTIVE_ACTIVATEONENTRY e POINTERINACTIVE_DEACTIVATEONLEAVE , vedere il metodo IPointerInactive::GetActivationPolicy .

Il valore POINTERINACTIVE_ACTIVATEONDRAG può essere usato per supportare operazioni di trascinamento e rilascio su un oggetto inattivo. Un oggetto inattivo non ha alcuna finestra per registrarsi come destinazione potenziale di rilascio. La maggior parte dei contenitori ignora gli oggetti incorporati inattivi come destinazioni di rilascio a causa del sovraccarico associato all'attivazione.

In alternativa all'attivazione di un oggetto quando il puntatore del mouse si trova durante un'operazione di trascinamento e rilascio, il contenitore può prima eseguire QueryInterface per determinare se l'oggetto inattivo supporta IPointerInactive. Se quindi l'oggetto non supporta IPointerInactive, il contenitore può presumere che non sia una destinazione di rilascio. Se l'oggetto supporta IPointerInactive, il contenitore chiama il metodo IPointerInactive::GetActivationPolicy . Se il valore POINTERINACTIVE_ACTIVATEONDRAG è impostato, il contenitore attiva l'oggetto sul posto in modo che l'oggetto possa registrare la propria interfaccia IDropTarget .

Il contenitore elabora il proprio metodo IDropTarget::D ragOver quando si verificano tutte queste azioni. Per completare tale metodo, il contenitore restituisce DROPEFFECT_NONE per il parametro pdwEffect . L'operazione di trascinamento e rilascio continua quindi chiamando IDropTarget::D ragLeave dell'oggetto e quindi chiamando IDropTarget::D ragEnter del contenitore.

Importante Per gli oggetti OLE senza finestra questo meccanismo è leggermente diverso. Per altre informazioni sulle operazioni di trascinamento e rilascio per oggetti senza finestra, vedere IOleInPlaceSiteWindowless .
 

Se l'eliminazione si verifica nell'oggetto incorporato, l'oggetto viene attivato dall'interfaccia utente e verrà disattivato quando lo stato attivo cambia di nuovo. Se l'eliminazione non si verifica nell'oggetto, il contenitore deve disattivare l'oggetto alla successiva chiamata al proprio IDropTarget::D ragEnter. È possibile che l'eliminazione venga eseguita in un terzo oggetto attivo senza una chiamata di intervento all'IDropTarget::D ragEnter del contenitore. In questo caso, il contenitore deve provare a disattivare l'oggetto non appena può, ad esempio, quando attiva un altro oggetto.

Requisiti

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

Vedi anche

Idroptarget

IPointerInactive

IPointerInactive::GetActivationPolicy