DirectShow Animated Header -- IVideoWindow Object DirectShow Animated Header -- IVideoWindow Object* Microsoft DirectShow SDK
*Index  *Topic Contents
*Previous Topic: IRegFilterInfo Object
*Next Topic: DirectShow Basics

IVideoWindow Object


The IVideoWindow object supports the video window properties of a video renderer. It is a dual interface, accessible through Visual Basic® and Visual C++®, that controls a generic video window. Generally, this is a video renderer that draws video into a window on the display.

The IVideoWindow object supports both properties and methods. When operations require several properties to be changed simultaneously; methods are provided that allow a number of related properties to be changed simultaneously. For example, setting the position and size of the window can be done by four individual property calls or by the single method SetWindowPosition.

The video renderer must be connected to use the IVideoWindow properties and methods.

Properties
Name Description
AutoShow Retrieves or sets the flag that specifies if the window will be automatically shown on the first state change.
BackgroundPalette Retrieves or sets the flag that indicates whether the renderer realizes its palette in the background.
BorderColor Retrieves or sets the border color for the video window.
Caption Retrieves or sets the text caption on the playback window.
FullScreenMode Retrieves or sets the type of full-screen mode.
Height Retrieves or sets the height of the video window.
Left Retrieves or sets the x-axis coordinate for the video window.
MessageDrain Retrieves or sets a window handle that is used by the video window to receive or post messages.
NotifyOwnerMessage Forwards messages that have been received by a parent window to a child window owned by a filter.
Owner Retrieves or sets the owning parent window for the video playback window.
Top Retrieves or sets the y-axis coordinates for the video window.
Visible Retrieves or sets the visibility of the window.
Width Retrieves or sets the width of the video window.
WindowState Retrieves or sets the current window state (such as visible or minimized).
WindowStyle Retrieves or sets the playback window style.
WindowStyleEx Retrieves or sets the playback window's extended style bits.

Methods
Name Description
GetMaxIdealImageSize Gets the ideal maximum image size for the video image playback (client) area.
GetMinIdealImageSize Gets the ideal minimum image size for the video image playback (client) area.
GetRestorePosition Retrieves the restored video window size when maximizing and minimizing.
GetWindowPosition Retrieves the video window position.
HideCursor Hides the cursor.
IsCursorHidden Retrieves whether the cursor is visible or not.
NotifyOwnerMessage Passes palette and color change messages on the filter graph.
SetWindowForeground Sets the video window as the foreground window and optionally gives it focus.
SetWindowPosition Sets the video window position on the display.


AutoShow Property (IVideoWindow Object)

IVideoWindow Object

Retrieves or sets information about whether the window will be automatically shown.

objVideoWindow.AutoShow [= boolean]

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
boolean
True means the window will be made visible when the state is changed.
Remarks

Many simple applications require a displayed window when a filter graph is set to the running state. This method is set on (–1) by default so that when the graph changes state to paused or running, the window will be made visible (it will also be set to be the foreground window). It will be shown on all subsequent state changes to paused or running unless the window is closed, in which case it will not be shown again until the renderer goes through a stopped state. If this property is set to off (0), the window will remain hidden until explicitly shown. You can do this by setting the Visible property.


BackgroundPalette Property (IVideoWindow Object)

IVideoWindow Object

Determines whether any palette required will be realized in the background.

objVideoWindow.BackgroundPalette [= boolean]

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
boolean
Flag that indicates whether the palette will be realized.
Remarks

If this is True (–1), the renderer realizes any required video palette in the background. This means that any colors the palette uses will change to their closest match in the display palette prior to drawing. This ensures that an application will not have its palette disturbed when playing a video. It does, however, impose severe performance penalties on the video and should not be used unless absolutely necessary. The default value for this property is False (0).


BorderColor Property (IVideoWindow Object)

IVideoWindow Object

Retrieves or sets the border color for the video window.

objVideoWindow.BorderColor [= Color]

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
Color
New border color.
Remarks

When a destination rectangle that is set differs from the window's visible client area, a border is exposed around the edge. This method allows an application to change the border color. It is set to black by default. Any nonsystem color passed in is converted to its closest match, according to the current palette, before being used (this is not an issue on true-color devices). Setting this causes the window border to be repainted in the new color automatically.


Caption Property (IVideoWindow Object)

IVideoWindow Object

Retrieves or sets the textual title string for the video window.

objVideoWindow.Caption [= string]

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
string
New value for the window title caption.


FullScreenMode Property (IVideoWindow Object)

IVideoWindow Object

Retrieves or sets a flag indicating whether to use full-screen mode for the video window.

objVideoWindow.FullScreenMode [= boolean]

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
boolean
New flag value. True means use full-screen mode; False means do not use full-screen mode.


GetMaxIdealImageSize Method (IVideoWindow Object)

IVideoWindow Object

Retrieves the ideal maximum image size for the video image playback (client) area.

objVideoWindow.GetMaxIdealImageSize Width, Height

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
Width
Long value that will contain the image width.
Height
Long value that will contain the image height.


GetMinIdealImageSize Method (IVideoWindow Object)

IVideoWindow Object

Gets the ideal minimum image size for the video image playback (client) area.

objVideoWindow.GetMinIdealImageSize Width, Height

Parts
objVideoWindow
An object expression that evaluates to an IVideoWindow object.
Width
Long value that will contain the image width.
Height
Long value that will contain the image height.


GetRestorePosition Method (IVideoWindow Object)

IVideoWindow Object

Retrieves the size and position of the window when it is to be restored after being minimized.

objVideoWindow.GetRestorePosition Left, Top, Width, Height

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
Left
Returns the x-axis origin of the video window.
Top
Returns the y-axis origin of the video window.
Width
Returns the width of the video window.
Height
Returns the height of the video window.


GetWindowPosition Method (IVideoWindow Object)

IVideoWindow Object

Retrieves the current window rectangle (not the client rectangle) in device coordinates.

objVideoWindow.GetWindowPosition Left, Top, Width, Height

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
Left
Returns the x-axis origin of the window.
Top
Returns the y-axis origin of the window.
Width
Returns the width of the window.
Height
Returns the height of the window.
Remarks

This method has the same effect as individually setting the Left, Top, Width, and Height properties.


Height Property (IVideoWindow Object)

IVideoWindow Object

Retrieves or sets the height of the video window.

objVideoWindow.Height [= lValue]

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
lValue
New value for the vertical dimension of the video window.
Remarks

Changes to the Height property are independent of the Width property (the y-coordinate of the video window).


HideCursor Method (IVideoWindow Object)

IVideoWindow Object

Specifies whether the cursor is visible or hidden when it passes over the video playback window.

objVideoWindow.HideCursor bValue

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
bValue
Boolean value that specifies whether the cursor is visible or not; True hides the cursor and False makes it visible.
Remarks

When you use full-screen playback, it is common to hide the cursor to avoid distracting the user.

The following code fragment shows how to use this method.


	Dim o_objVideoWindow As IVideoWindow		'Initialize the IVideoWindow Object
	Dim g_objMediaControl As IMediaControl    	'Initialize the IMediaControl Object

	Set g_objVideoWindow = g_objMediaControl		'Assign the playback window to the filter graph
	g_objVideoWindow.HideCursor (True)			'Hide the cursor


IsCursorHidden Method (IVideoWindow Object)

IVideoWindow Object

Retrieves whether the cursor is visible or not.

objVideoWindow.IsCursorHidden bValue

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
bValue
Boolean value that will contain the cursor's state of visibility; True if the cursor is hidden and False if it is visible.
Remarks

When you use full-screen playback, it is common to hide the cursor to avoid distracting the user.

The following code fragment shows how to use this method.


	Dim o_objVideoWindow As IVideoWindow		'Initialize the IVideoWindow Object
	Dim g_objMediaControl As IMediaControl    	'Initialize the IMediaControl Object
	Dim bTest As Boolean					'Initialize the storage variable

	Set g_objVideoWindow = g_objMediaControl		'Assign the playback window to the filter graph
	g_objVideoWindow.IsCursorHidden (bTest)		'Check if the cursor is hidden


Left Property (IVideoWindow Object)

IVideoWindow Object

Retrieves or sets the x-coordinate for the video window.

objVideoWindow.Left [= lValue]

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
lValue
New value for the x-axis coordinate.
Remarks

Calling this method does not affect the width of the video window.


MessageDrain Property (IVideoWindow Object)

IVideoWindow Object

Retrieves or sets the window handle of the window that receives posted messages for the video window.

objVideoWindow.MessageDrain [= handle]

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
handle
New value for the window handle.


NotifyOwnerMessage Method (IVideoWindow Object)

IVideoWindow Object

Forwards messages that have been received by a parent window to a child window owned by a filter.

objVideoWindow.NotifyOwnerMessage hwnd, uMsg, wParam, lParam

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
hwnd
Window handle.
uMsg
Message being sent.
wParam
Message's wParam.
lParam
Message's lParam.


Owner Property (IVideoWindow Object)

IVideoWindow Object

Retrieves or sets the owning parent for the video window.

objVideoWindow.Owner [= handle]

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
handle
New value for the window handle.
Remarks

This property offers a way for applications to set the owner of the video window. This is often used when playing videos in compound documents.


SetWindowForeground Method (IVideoWindow Object)

IVideoWindow Object

Sets the video window as the foreground window and optionally gives it focus.

objVideoWindow.SetWindowForeground Focus

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
Focus
Long value that specifies whether the video window will have focus. A value of –1 gives the window focus and 0 does not.


SetWindowPosition Method (IVideoWindow Object)

IVideoWindow Object

Sets the position of the video window (not the client rectangle position) in device coordinates.

objVideoWindow.SetWindowPosition Left, Top, Width, Height

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
Left
Specifies the x-axis origin of the window.
Top
Specifies the y-axis origin of the window.
Width
Specifies the width of the window.
Height
Specifies the height of the window.
Remarks

Specify, in window coordinates, where the video should appear. For example, setting a destination of (100,50,200,400) positions the video playback at an origin of 100 pixels from the left of the client area, 50 pixels from the top, and with an overall size of 200 x 400 pixels. If the video is smaller than this (or a source rectangle has been specified that is smaller than the video), it will be stretched appropriately. Similarly, if the video is larger than the destination rectangle, the video is compressed into the visible rectangle. There are fairly severe performance penalties if an application does not keep the source and destination rectangles the same size.

Under typical circumstances, when no destination rectangle has been set, the video fills the entire visible client window area (regardless of how much the user has stretched the window). Also, the destination rectangle properties correctly return the size of the video window client area.

This method has the same effect as individually setting the Left, Top, Width, and Height properties.


Top Property (IVideoWindow Object)

IVideoWindow Object

Retrieves or sets the y-axis coordinate of the video window.

objVideoWindow.Top [= lValue]

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
lValue
New value for the y-axis origin.
Remarks

Calling this method does not affect the height of the video window.


Visible Property (IVideoWindow Object)

IVideoWindow Object

Retrieves or sets the visibility of the video window.

objVideoWindow.Visible [= boolean]

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
boolean
If set to True, the window is shown; if False, the window is hidden.


Width Property (IVideoWindow Object)

IVideoWindow Object

Retrieves or sets the width of the video window.

objVideoWindow.Width [= lValue]

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
lValue
New value of the width.
Remarks

The Width property is independent of the video window's Height property (the x-coordinate).


WindowState Property (IVideoWindow Object)

IVideoWindow Object

Returns or sets the state of the video window.

objVideoWindow.WindowState [= lValue]

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
lValue
New value for the WindowState property.


WindowStyle Property (IVideoWindow Object)

IVideoWindow Object

Retrieves or sets the style parameters for the video window.

objVideoWindow.WindowStyle [= lValue]

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
lValue
New value for the WindowStyle property.
Remarks

For a complete list of window styles, see the CreateWindow function in the Microsoft® Platform Software Development Kit (SDK).


WindowStyleEx Property (IVideoWindow Object)

IVideoWindow Object

Changes the style parameters for the video window.

objVideoWindow.WindowStyleEx [= lValue]

Parts
objVideoWindow
Object expression that evaluates to an IVideoWindow object.
lValue
New value for the flags. Valid values include only those flags that can be set by the GWL_STYLE value of the Microsoft Win32 GetWindowLong function.

© 1998 Microsoft Corporation. All rights reserved. Terms of Use.

*Top of Page