Freigeben über


IOleInPlaceObjectWindowless::OnWindowMessage-Methode (ocidl.h)

Sendet eine Nachricht von einem Container an ein fensterloses Objekt, das aktiv ist.

Syntax

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

Parameter

[in] msg

Der Bezeichner für die Fenstermeldung, die von Windows für den Container bereitgestellt wird.

[in] wParam

Ein Parameter für die Fenstermeldung, die von Windows für den Container bereitgestellt wird.

[in] lParam

Ein Parameter für die Fenstermeldung, die von Windows für den Container bereitgestellt wird.

[out] plResult

Ein Zeiger auf den Ergebniscode für die Fenstermeldung.

Rückgabewert

Diese Methode gibt S_OK bei Erfolg zurück. Weitere mögliche Rückgabewerte:

Rückgabecode Beschreibung
S_FALSE
Das fensterlose Objekt hat die Fenstermeldung nicht verarbeitet. Der Container sollte defWindowProc für die Nachricht aufrufen oder die Nachricht selbst verarbeiten, wie unten beschrieben.

Hinweise

Ein Container ruft diese Methode auf, um Fensternachrichten an ein fensterloses Objekt zu senden, das aktiv ist. Der Container sollte Nachrichten gemäß den folgenden Richtlinien senden:

Für die folgenden Meldungen sollte der Container zuerst die Nachricht an das fensterlose Objekt senden, das die Maus erfasst hat, sofern vorhanden. Andernfalls sollte der Container die Nachricht an das fensterlose Objekt unter dem Mauscursor senden. Wenn kein solches Objekt vorhanden ist, kann der Container die folgenden Meldungen für sich selbst verarbeiten:

  • WM_MOUSEMOVE
  • WM_SETCURSOR
  • WM_XBUTTONDOWN
  • WM_XBUTTONUP
  • WM_XBUTTONDBLCLK
Der Container sollte die Nachricht mit dem Tastaturfokus für die folgenden Nachrichten an das fensterlose Objekt senden:
  • WM_CANCELMODE
  • WM_CHAR
  • WM_DEADCHAR
  • WM_HELP
  • WM_IMExxx
  • WM_KEYDOWN
  • WM_KEYUP
  • WM_SYSDEADCHAR
  • WM_SYSKEYDOWN
  • WM_SYSKEYUP
Für alle anderen Nachrichten sollte der Container die Nachricht selbst verarbeiten.

Das fensterlose Objekt kann S_FALSE an diese Methode zurückgeben, um anzugeben, dass die Nachricht nicht verarbeitet wurde. Anschließend führt der Container entweder das Standardverhalten für die Nachricht durch Aufrufen der DefWindowProc-Funktion aus oder verarbeitet die Nachricht selbst.

Der Container muss die folgenden Fenstermeldungen an die Standardfensterprozedur übergeben:

  • WM_CHAR
  • WM_DEADCHAR
  • WM_IMExxx
  • WM_KEYDOWN
  • WM_KEYUP
  • WM_MOUSEMOVE
  • WM_SYSCHAR
  • WM_SYSDEADCHAR
  • WM_SYSKEYUP
  • WM_XBUTTONDOWN
  • WM_XBUTTONUP
  • WM_XBUTTONDBLCLK
Der Container muss die folgenden Fenstermeldungen als eigene verarbeiten:
  • WM_CONTEXTMENU
  • WM_HELP
  • WM_SETCURSOR
Hinweis Für WM_SETCURSOR kann der Container entweder den Cursor selbst festlegen oder nichts tun.
 
Objekte können auch IOleInPlaceSiteWindowless::OnDefWindowMessage verwenden, um die Standardnachrichtenverarbeitung explizit aus dem Container aufzurufen. Im Fall der WM_SETCURSOR Meldung ermöglicht dies einem -Objekt das Ausführen einer Aktion, wenn der Container den Cursor nicht festgelegt.

Alle Koordinaten, die in wParam und lParam an das Objekt übergeben werden, werden als Clientkoordinaten des enthaltenden Fensters angegeben.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile ocidl.h

Weitere Informationen