# IOleInPlaceSite::GetWindowContext

Enables the in-place object to retrieve the window interfaces that form the window object hierarchy, and the position in the parent window where the object’s in-place activation window should be placed.

HRESULT GetWindowContext(

IOleInPlaceFrame **ppFrame, | //Indirect pointer to location of frame interface
IOleInPlaceUIWindow **ppDoc, | //Indirect pointer to location of document window interface
LPRECT lprcPosRect, | //Points to position of in-place object
LPRECT lprcClipRect, | //Points to in-place object’s position rectangle
LPOLEINPLACEFRAMEINFO lpFrameInfo | //Points to structure
); |

Parameters

ppFrame
  [out] Indirect pointer to where the IOleInPlaceFrame interface on the frame is to be returned. If an error is returned, this parameter must be set to NULL.
ppDoc
  [out] Indirect pointer to where the IOleInPlaceUIWindow interface on the document window is to be returned. NULL is returned through the ppDoc pointer if the document window is the same as the frame window. In this case, the object can only use ppFrame or border negotiation. If an error is returned, this parameter must be set to NULL.
lprcPosRect
  [out] Pointer to the rectangle containing the position of the in-place object in the client coordinates of its parent window. If an error is returned, this parameter must be set to NULL.
lprcClipRect
  [out] Pointer to the outer rectangle containing the in-place object’s position rectangle (PosRect). This rectangle is relative to the client area of the object’s parent window. If an error is returned, this parameter must be set to NULL.
lpFrameInfo
  [out] Pointer to an OLEINPLACEFRAMEINFO structure the container is to fill in with appropriate data. If an error is returned, this parameter must be set to NULL.

Return Values

This method supports the standard return values E_INVALIDARG and E_UNEXPECTED, as well as the following:

S_OK
  The method completed successfully.

Remarks

The OLEINPLACEFRAMEINFO structure provides data needed by OLE to dispatch keystroke accelerators to a container frame while an object is active in place.

When an object is activated, it calls GetWindowContext from its container. The container returns the handle to its in-place accelerator table through the OLEINPLACEFRAMEINFO structure. Before calling GetWindowContext, the object must provide the size of the OLEINPLACEFRAMEINFO structure by filling in the cb member, pointed to by lpFrameInfo.