Partager via


Méthode IOleInPlaceObjectWindowless ::OnWindowMessage (ocidl.h)

Distribue un message d’un conteneur à un objet sans fenêtre actif sur place.

Syntaxe

HRESULT OnWindowMessage(
  [in]  UINT    msg,
  [in]  WPARAM  wParam,
  [in]  LPARAM  lParam,
  [out] LRESULT *plResult
);

Paramètres

[in] msg

Identificateur du message de fenêtre fourni au conteneur par Windows.

[in] wParam

Paramètre pour le message de fenêtre fourni au conteneur par Windows.

[in] lParam

Paramètre pour le message de fenêtre fourni au conteneur par Windows.

[out] plResult

Pointeur vers le code de résultat pour le message de fenêtre.

Valeur retournée

Cette méthode retourne S_OK en cas de réussite. Les autres valeurs de retour possibles sont les suivantes.

Code de retour Description
S_FALSE
L’objet sans fenêtre n’a pas traiter le message de fenêtre. Le conteneur doit appeler defWindowProc pour le message ou traiter le message lui-même comme décrit ci-dessous.

Remarques

Un conteneur appelle cette méthode pour envoyer des messages de fenêtre à un objet sans fenêtre actif sur place. Le conteneur doit distribuer les messages conformément aux instructions suivantes :

Pour les messages suivants, le conteneur doit d’abord distribuer le message à l’objet sans fenêtre qui a capturé la souris, le cas échéant. Sinon, le conteneur doit distribuer le message à l’objet sans fenêtre sous le curseur de la souris. S’il n’existe aucun objet de ce type, le conteneur est libre de traiter les messages suivants pour lui-même :

  • WM_MOUSEMOVE
  • WM_SETCURSOR
  • WM_XBUTTONDOWN
  • WM_XBUTTONUP
  • WM_XBUTTONDBLCLK
Le conteneur doit distribuer le message à l’objet sans fenêtre avec le focus clavier pour les messages suivants :
  • WM_CANCELMODE
  • WM_CHAR
  • WM_DEADCHAR
  • WM_HELP
  • WM_IMExxx
  • WM_KEYDOWN
  • WM_KEYUP
  • WM_SYSDEADCHAR
  • WM_SYSKEYDOWN
  • WM_SYSKEYUP
Pour tous les autres messages, le conteneur doit traiter le message lui-même.

L’objet sans fenêtre peut retourner S_FALSE à cette méthode pour indiquer qu’il n’a pas traiter le message. Ensuite, le conteneur effectue le comportement par défaut du message en appelant la fonction DefWindowProc ou traite le message lui-même.

Le conteneur doit passer les messages de fenêtre suivants à la procédure de fenêtre par défaut :

  • WM_CHAR
  • WM_DEADCHAR
  • WM_IMExxx
  • WM_KEYDOWN
  • WM_KEYUP
  • WM_MOUSEMOVE
  • WM_SYSCHAR
  • WM_SYSDEADCHAR
  • WM_SYSKEYUP
  • WM_XBUTTONDOWN
  • WM_XBUTTONUP
  • WM_XBUTTONDBLCLK
Le conteneur doit traiter les messages de fenêtre suivants comme sien :
  • WM_CONTEXTMENU
  • WM_HELP
  • WM_SETCURSOR
Note Par WM_SETCURSOR, le conteneur peut définir le curseur lui-même ou ne rien faire.
 
Les objets peuvent également utiliser IOleInPlaceSiteWindowless ::OnDefWindowMessage pour appeler explicitement le traitement des messages par défaut à partir du conteneur. Dans le cas du message WM_SETCURSOR, cela permet à un objet d’effectuer une action si le conteneur ne définit pas le curseur.

Toutes les coordonnées passées à l’objet dans wParam et lParam sont spécifiées en tant que coordonnées client de la fenêtre conteneur.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête ocidl.h

Voir aussi