ILMScrCap Interface
This is the interface for the LEAD Screen Capture Filter.
Data types:
typedef [v1_enum] enum PanToWindowConstants
{
PANTO_WINDOWUNDERCURSOR = -1,
PANTO_ACTIVEWINDOW = -2
} PanToWindowConstants;
typedef [v1_enum] enum WindowSelectStatusConstants
{
WINDOW_SELECT_STATUS_UPDATE = 0,
WINDOW_SELECT_STATUS_SELECTED = 1,
WINDOW_SELECT_STATUS_CANCELED = 2,
} WindowSelectStatusConstants;
typedef [v1_enum] enum CaptureSourceConstants
{
CAPTURE_FULLSCREEN = 0,
CAPTURE_ACTIVEWINDOW = 1,
CAPTURE_ACTIVECLIENT = 2,
CAPTURE_SELECTEDWINDOW = 3
} CaptureSourceConstants;
typedef [v1_enum] enum CursorIconConstants
{
CURSOR_ARROW = 0,
CURSOR_IBEAM = 1,
CURSOR_WAIT = 2,
CURSOR_CROSS = 3,
CURSOR_UPARROW = 4,
CURSOR_SIZENWSE = 5,
CURSOR_SIZENESW = 6,
CURSOR_SIZEWE = 7,
CURSOR_SIZENS = 8,
CURSOR_SIZEALL = 9,
CURSOR_NO = 10,
CURSOR_APPSTARTING = 11,
CURSOR_HELP = 12,
CURSOR_ACTUAL = 13,
CURSOR_CUSTOM = 14
} CursorIconConstants;
typedef [v1_enum] enum WindowCaptureOptionConstants
{
CAPTUREOPTION_VISIBLE_WINDOW = 0,
CAPTUREOPTION_ALL_WINDOW = 1,
} WindowCaptureOptionConstants;
typedef [v1_enum] enum NotifyCallbackConstants
{
NOTIFY_PRERUN_AREACHANGE = 0x0000,
NOTIFY_CLOSE = 0x0001,
NOTIFY_MINIMIZE = 0x0002,
NOTIFY_AREACHANGE = 0x0004,
NOTIFY_CAPWIDTH_EXCEEDED_LIMIT = 0x0008,
NOTIFY_CAPHEIGHT_EXCEEDED_LIMIT = 0x010,
} NotifyCallbackConstants;
typedef [v1_enum] enum SourceCloseConstants
{
CLOSE_STOP_CAPTURING = 0,
CLOSE_CONTNUE_FROM_LAST_POS = 1,
CLOSE_FILL_COLOR = 2
} SourceCloseConstants;
typedef [v1_enum] enum SourceMinimizeConstants
{
MINIMIZE_PAUSE_CAPTURING = 0,
MINIMIZE_STOP_CAPTURING = 1,
MINIMIZE_CONTINUE_FROM_LAST_POS = 2,
MINIMIZE_FILL_COLOR = 3
} SourceMinimizeConstants;
typedef [v1_enum] enum SourceAreaChangeConstants
{
AREACHANGE_CAPTURE_OTHER_WINDOWS = 0,
AREACHANGE_FILL_UNCOVERED_AREA = 1,
} SourceAreaChangeConstants;
typedef [v1_enum] enum EffectShapeConstants
{
EFFECTSHAPE_NON = 0,
EFFECTSHAPE_RINGS = 1,
EFFECTSHAPE_CIRCLE = 2,
EFFECTSHAPE_SUN = 3,
} EffectShapeConstants;
typedef [v1_enum] enum MouseHighlightConstants
{
MOUSEHIGHLIGHT_NON = 0,
MOUSEHIGHLIGHT_SQUARE = 1,
MOUSEHIGHLIGHT_RECTANGLE = 2,
MOUSEHIGHLIGHT_ROUNDEDRECTANGLE = 3,
MOUSEHIGHLIGHT_CIRCLE = 4,
MOUSEHIGHLIGHT_ELLIPSE = 5,
} MouseHighlightConstants;
typedef [v1_enum] enum MouseHighlightModeConstants
{
HIGHLIGHTMODE_TRANSLUCENT = 0,
HIGHLIGHTMODE_OPAQUE = 1,
} MouseHighlightModeConstants;
typedef [v1_enum] enum UserEventsNotifyConstants
{
USEREVENT_LBUTTONDOWN = 0x001,
USEREVENT_LBUTTONUP = 0x002,
USEREVENT_RBUTTONDOWN = 0x004,
USEREVENT_RBUTTONUP = 0x008,
USEREVENT_MOUSEMOVE = 0x010,
USEREVENT_MOUSEWHEEL = 0x020,
USEREVENT_KEYDOWN = 0x040,
USEREVENT_KEYUP = 0x080,
USEREVENT_SYSKEYDOWN = 0x100,
USEREVENT_SYSKEYUP = 0x200
} UserEventsNotifyConstants;
typedef [v1_enum] enum OutlineShapeConstants
{
OUTLINESHAPE_RECTANGLE = 0x00,
OUTLINESHAPE_CORNER = 0x01,
} OutlineShapeConstants;
typedef [v1_enum] enum CaptureAlignmentConstants
{
CAPALIGNMENT_LEFT = 0x001,
CAPALIGNMENT_TOP = 0x002,
CAPALIGNMENT_RIGHT = 0x004,
CAPALIGNMENT_BOTTOM = 0x008,
CAPALIGNMENT_HCENTER = 0x010,
CAPALIGNMENT_VCENTER = 0x020,
} CaptureAlignmentConstants;
Interface Properties:
Type |
Property name |
Description |
||
CaptureSourceConstants |
CaptureSource |
Sets or gets the capture source type. Possible
values are: |
||
long |
SourceWindowHandle |
Sets or gets the window handle of the capture source. Changing this property will automatically set the CaptureSource property of this interface to CAPTURE_WINDOW. |
||
float |
CaptureFrameRate |
Sets or gets the capture frame rate in frames per second. The filter will attempt to capture at this rate if possible. Possible values range from 0.1 to 30.0 frames per second. |
||
VARIANT_BOOL |
ConnectionStatus |
Gest the connection status of the filter
output. Possible values are: |
||
CursorIconConstants |
CursorIcon |
Sets or gets cursor icon. Possible values are: CURSOR_ARROW, If the value is CURSOR_ACTUAL, then the actual cursor icon on the screen will be captured. If the value is CURSOR_CUSTOM, then the custom cursor icon that is set using the CustomCursor property of this interface will be captured. |
||
long |
CustomCursor |
Sets or gets the custom cursor handle. The custom cursor will be used only if the CursorIcon property of this interface is set to CURSOR_CUSTOM. |
||
VARIANT_BOOL |
EnableRegion |
Enables or disables using the region coordinates. The region will be limited to the dimensions of the current capture source. |
||
long |
FillColor |
Sets or gets the fill color used to fill areas of the video under certain conditions. This property accepts/retrieves a COLORREF value. For more information, refer to the OnSourceClose property, OnSourceMinimize property and OnSourceAreaChange property of this interface. |
||
long |
NotifyCallback |
Determines what events will call the NotifyCallbackProc of the ILMScrCapUserCallback interface. Possible values are: NOTIFY_PRERUN_AREACHANGE: Call NotifyCallbackProc of the ILMScrCapUserCallback interface if the capture source area has changed while the filter is not in the running state. The notification is sent once the filter is run. NOTIFY_CLOSE: Call NotifyCallbackProc of the ILMScrCapUserCallback interface when the capture source is closed.
NOTIFY_MINIMIZE: Call NotifyCallbackProc of the ILMScrCapUserCallback interface when the capture source is minimized.
NOTIFY_AREACHANGE: Call NotifyCallbackProc of the ILMScrCapUserCallback interface when the capture area is changed. NOTIFY_CAPWIDTH_EXCEEDED_LIMIT: Call NotifyCallbackProc of the ILMScrCapUserCallback interface when using the selection tool and the selected area width exceeded the LowerWidthLimit or UpperWidthLimit values. NOTIFY_CAPHEIGHT_EXCEEDED_LIMIT: Call NotifyCallbackProc of the ILMScrCapUserCallback interface when using the selection tool and the selected area height exceeded the LowerHeightLimit or UpperHeightLimit values. These values may also be combined using logical OR. |
||
SourceAreaChangeConstants |
OnSourceAreaChange |
Determines what action to take if the capture source area is resized or the visible area of the capture source is covered by other windows. This property has no effect if the capture source is set to full screen. Possible values are:
AREACHANGE_CAPTURE_OTHER_WINDOWS: Capture the contents under the resized or/and convered area.
AREACHANGE_FILL_UNCOVERED_AREA: Fill the resized or/and covered area with the color specified in the FillColor property of this interface. |
||
SourceCloseConstants |
OnSourceClose |
Determines what action to take if the capture
source is closed. This property has no effect if the capture source is
set to full screen. Possible values are: |
||
SourceMinimizeConstants |
OnSourceMinimize |
Determines what action to take if the capture
source is minimized. This property has no effect if the capture source
is set to full screen. Possible values are: |
||
long |
RegionBottom |
Sets or gets the bottom boundary of the region. The value range is from RegionTop property + 1 to SourceHeight property. |
||
long |
RegionLeft |
Sets or gets the left boundary of the region. The value range is from 0 to RegionRight property. |
||
long |
RegionRight |
Sets or gets the right boundary of the region. The value range is from RegionLeft property + 1 to SourceWidth property. |
||
long |
RegionTop |
Sets or gets the top boundary of the region. The value range is from 0 to RegionBottom property. |
||
VARIANT_BOOL |
ShowCrossLines |
Shows or hides the cross lines cursor when
the SelectRegionTool method is being used. Possible values are: |
||
VARIANT_BOOL |
ShowCursor |
Shows or hides the cursor in the capture
stream. Possible values are: |
||
VARIANT_BOOL |
ShowPanWindow |
Shows or hides the pan window when the SelectRegionTool method is being used. The pan window provides up to 10X zooming. Use the + and keys for zooming in and out. The panned area is the area under the mouse cursor. |
||
VARIANT_BOOL |
ShowWHInfo |
Shows or hides the region width and height information while dragging the mouse to select the region, when the SelectRegionTool method is being used. The width and height information is displayed near the cursor. |
||
VARIANT_BOOL |
ShowXYPosInfo |
Shows or hides the X and Y coordinates while dragging the mouse to select a region when the SelectRegionTool mehtod is being used. The X and Y coordinate information is displayed near the cursor. |
||
long |
SourceHeight |
(Read only) Retrieves the actual height in pixels of the capture area. |
||
long |
SourceWidth |
(Read only) Retrieves the actual width in pixels of the capture area. |
||
VARIANT_BOOL |
TrackWindow |
Enables or disables the track window option.
Possible values are: This property has no effect if the capture source is set to full screen. |
||
WindowCaptureOptionConstants |
WindowCaptureOption |
Sets or gets a value that indicates what
to capture from the window. Possible values are: This property has no effect if the capture source is set to full screen. |
||
VARIANT_BOOL |
ManualMode |
Enables or disables the manual capturing mode. In manual capturing mode, frames are pushed downstream on user request (no frames will be captured if CaptureFrames method not called). | ||
EffectShapeConstants |
OnRightBtnClkEffectShape |
Sets or gets a value that indicates the effect shape when the right button click. Possible values are: EFFECTSHAPE_NON: dont do any effect. EFFECTSHAPE_RINGS: display the rings effect when the mouse clicks. EFFECTSHAPE_CIRCLE: display the circle effect when the mouse clicks. EFFECTSHAPE_SUN: display the sun effect when the mouse clicks. | ||
Long |
OnLeftBtnClkEffectColor |
Sets or gets the color effect shape for the left mouse button clicks. This property accepts/retrieves a COLORREF value. | ||
Long |
OnRightBtnClkEffectColor |
Sets or gets the color effect shape for the right mouse button clicks. This property accepts/retrieves a COLORREF value. | ||
Long |
OnLeftBtnClkEffectSize |
Sets or gets the shape effect size when the left mouse button clicks. | ||
Long |
OnRightBtnClkEffectSize |
Sets or gets the shape effect size when the right mouse button clicks. | ||
VARIANT_BOOL |
EnableOutline |
Display a frame (outline) around the captured source. | ||
OutlineShapeConstants |
OutlineShape |
Sets or gets a value that indicates the outline shape. Possible values are: OUTLINESHAPE_RECTANGLE: The outline shape is a rectangular shape.
OUTLINESHAPE_CORNER: the outline shape is a corner shape. | ||
MouseHighlightConstants |
MouseHighlight |
Sets or gets a value that indicates the mouse highlight. Possible values are: MOUSEHIGHLIGHT_NON: dont do any mouse shape highlight. MOUSEHIGHLIGHT_SQUARE: display a square shape highlight over the mouse. MOUSEHIGHLIGHT_RECTANGLE: display a rectangular shape highlight over the mouse. MOUSEHIGHLIGHT_ROUNDEDRECTANGLE: display a rounded rectangle shape highlight over the mouse. MOUSEHIGHLIGHT_CIRCLE: display a circle shape highlight over the mouse. MOUSEHIGHLIGHT_ELLIPSE: display an ellipse shape highlight over the mouse. | ||
Long |
MouseHighlightSize |
Sets or gets the mouse highlight size. This property accepts/retrieves a COLORREF value. | ||
long |
MouseHighlightColor |
Sets or gets the mouse highlight color. This property accepts/retrieves a COLORREF value. | ||
MouseHighlightModeConstants |
MouseHighlightMode |
Change the mouse highlight mode. Possible values are: HIGHLIGHTMODE_TRANSLUCENT: The mouse highlight is translucent. HIGHLIGHTMODE_OPAQUE: The mouse highlight is opaque.
| ||
Long |
UserEventsNotifyCallback |
Determines what events will call the MouseEventsProc and/or KeyboardEventsProc of the ILMScrCapUserEventsCallback interface. Possible values are: USEREVENT_LBUTTONDOWN: Call MouseEventsProc of the ILMScrCapUserEventsCallback interface if the left mouse button pressed. USEREVENT_LBUTTONUP: Call MouseEventsProc of the ILMScrCapUserEventsCallback interface if the left mouse button released. USEREVENT_RBUTTONDOWN: Call MouseEventsProc of the ILMScrCapUserEventsCallback interface if the right mouse button pressed.
USEREVENT_RBUTTONUP: Call MouseEventsProc of the ILMScrCapUserEventsCallback interface if the left mouse button released.
USEREVENT_MOUSEMOVE: Call MouseEventsProc of the ILMScrCapUserEventsCallback interface when the mouse moves.
USEREVENT_MOUSEWHEEL: Call MouseEventsProc of the ILMScrCapUserEventsCallback interface when the mouse wheel is rotated.
USEREVENT_KEYDOWN: Call KeyboardEventsProc of the ILMScrCapUserEventsCallback interface when a nonsystem key is pressed.
USEREVENT_KEYUP Call KeyboardEventsProc of the ILMScrCapUserEventsCallback interface when a nonsystem key is released.
USEREVENT_SYSKEYDOWN: Call KeyboardEventsProc of the ILMScrCapUserEventsCallback interface when the F10 key pressed (which activates the menu bar) or holds down the ALT key and then presses another key.
USEREVENT_SYSKEYUP: Call KeyboardEventsProc of the ILMScrCapUserEventsCallback interface when the key that was pressed while the ALT key was held down released. | ||
VARIANT_BOOL |
ManualMode |
Enable or disable the manual capturing mode. In manual capturing mode, frames are pushed downstream on user request (no frames will be captured if CaptureFrames method not called). | ||
Long |
CaptureAlignment |
Sets or gets the source capture alignments from the capture area. It also has an effect on the panning and zooming process. Possible values are: CAPALIGNMENT_LEFT: the source capture will be from the left. CAPALIGNMENT_TOP: the source capture will be from the top. CAPALIGNMENT_RIGHT: the source capture will be from the right. CAPALIGNMENT_BOTTOM: the source capture will be from the bottom. CAPALIGNMENT_HCENTER: the source capture will be from horizontal center. CAPALIGNMENT_VCENTER: the source capture will be from vertical center. | ||
long |
OutlineColor |
Sets or gets the outline shape color. This property accepts/retrieves a COLORREF value. | ||
Long |
LowerWidthLimit |
Sets or gets the minimum region width that can be selected when using the SelectRegionTool method. | ||
Long |
UpperWidthLimit |
Sets or gets the maximum region width that can be selected when using the SelectRegionTool method. | ||
Long |
LowerHeightLimit |
Sets or gets the minimum region height that can be selected when using the SelectRegionTool method. | ||
Long |
UpperHeightLimit |
Sets or gets the maximum region height that can be selected when using the SelectRegionTool method. | ||
Long |
RgnSelToolStepSizeX |
Sets or gets the X step size of the selection process when using SelectRegionTool method. (e.g If this value is 2, the selection X steps will be 2 by 2 pixels). | ||
Long |
RgnSelToolStepSizeY |
Sets or gets the Y step size of the selection process when using SelectRegionTool method. (e.g If this value is 2, the selection Y steps will be 2 by 2 pixels). | ||
Long |
RgnSelToolWarningColor |
Sets or gets the selection tool warning color. | ||
VARIANT_BOOL |
RgnSelToolLockSelOnLimit |
Enables or disables the lock selection when the region width and/or height reach the limits. If this is VARIANT_TRUE, the selection will be locked. If this is VARIANT_FALSE and the ShowWHInfo property is VARIANT_TRUE, the Width/Height info dialog color will be changed with RgnSelToolWarningColor color. | ||
EffectShapeConstants |
OnLeftBtnClkEffectShape |
Sets or gets a value that indicates the effect shape when the left button click. Possible values are: EFFECTSHAPE_NON: dont display any effect whe the mouse clicks. EFFECTSHAPE_RINGS: display the rings effect when the mouse clicks. EFFECTSHAPE_CIRCLE: display the circle effect when the mouse clicks. EFFECTSHAPE_SUN: display the sun effect when the mouse clicks. | ||
EffectShapeConstants |
OnRightBtnClkEffectShape |
Sets or gets a value that indicates the effect shape when the right button click. Possible values are: EFFECTSHAPE_NON: dont do any effect. EFFECTSHAPE_RINGS: display the rings effect when the mouse clicks. EFFECTSHAPE_CIRCLE: display the circle effect when the mouse clicks. EFFECTSHAPE_SUN: display the sun effect when the mouse clicks. | ||
long |
OnLeftBtnClkEffectColor |
Sets or gets the color effect shape for the left mouse button clicks. This property accepts/retrieves a COLORREF value. | ||
long |
OnRightBtnClkEffectColor |
Sets or gets the color effect shape for the right mouse button clicks. This property accepts/retrieves a COLORREF value. | ||
long |
OnLeftBtnClkEffectSize |
Sets or gets the shape effect size when the left mouse button clicks. | ||
long |
OnRightBtnClkEffectSize |
Sets or gets the shape effect size when the right mouse button clicks. | ||
VARIANT_BOOL |
EnablePanning |
Enable or disable mouse panning. If the value is VARIANT_TRUE then it will override the region and window options and the capture source will be the area around the mouse that can be determined using the PanningWidth and PanningHeight properties. | ||
Long |
ZoomFactor |
Change the zoom factor. Possible value between 10 and 800. Where 100 causes no zoom (normal size). |
Parameters
lXPos |
The X Coordinates on the screen. |
lYPos |
The Y Coordinates on the screen. |
Parameters
lHwnd |
The window handle to pan to it, or use one of the following values:
| ||||
vbFollow |
Determine if the region needs to follow the window when its position changed. Pass VARIANT_TRUE to follow the window, pass VAIRNAT_FALSE to do not. | ||||
vbFit |
Determine if the region needs to fit to the window. Pass VARIANT_TRUE to fit the window, pass VAIRNAT_FALSE to do not. |
Parameters
vbFollow |
If this is VARIANT_TRUE, the region will track the cursor when it moves. |
HRESULT SetZoomStepsInfo(long lSteps, long lMinStepSize)
Parameters
lSteps |
The zoom steps value between the old zoom level and new zoom level. |
lMinStepSize |
The minimum step size in pixels. If the increase/decrease size will be less than lMinStepSize value, then the increase/decrease size will be lMinStepSize value. |
Description
Sets the zoom steps information to change the zoom level from the old to the new level with steps. To change the zoom level without any steps, pass 0 to lSteps parameter.
Return
S_OK if successful, S_FALSE otherwise.
HRESULT GetZoomStepsInfo(long *plSteps, long *plMinStepSize)
Parameters
PlSteps |
Pointer to receive the current zoom steps value. |
plMinStepSize |
Pointer to receive the current minimum step size in pixels. |
Description
Gets the current zoom steps information.
Return
S_OK if successful, S_E_POINTER otherwise.
HRESULT SetPanStepsInfo(long lSteps, long lMinStepSize)
Parameters
lSteps |
The pan steps value between the old position and new position. |
lMinStepSize |
The minimum step size in pixels. If the movement size will be less than lMinStepSize value, then the movement size will be lMinStepSize value. |
Description
Sets the pan steps information to change the movement from the old to the new positions with steps. To set the movement without any steps, pass 0 to lSteps parameter.
Return
S_OK if successful, S_FALSE otherwise.
HRESULT GetPanStepsInfo(long *plSteps, long *plMinStepSize)
Parameters
PlSteps |
Pointer to receive the current pan steps value. |
plMinStepSize |
Pointer to receive the current minimum step size in pixels. |
Description
Gets the current movement steps information.
Return
S_OK if successful, E_POINTER otherwise.
HRESULT CaptureFrames(long lFramesNumber)
Return
S_OK if successful, VFW_E_WRONG_STATE otherwise.
HRESULT RefreshSource()
Description
To Refresh the capture source coordinates before running
Return
S_OK value.
Description
Activates the region selection tool for selecting a region of the current desktop. To select a region, press and hold the left mouse button and drag the mouse until the desired region is outlined. Release the mouse button to complete the selection. To cancel the selection process, press the ESC key. Options are provided for displaying information while dragging the mouse.
For more information, refer to the following properties listed in the Interface Properties table above:
EnableRegion property
RegionLeft property
RegionTop property
RegionRight property
RegionBottom property
ShowPanWindow property
ShowCrossLines property
ShowXYPosInfo property
ShowWHInfo property
Return
S_OK if successful, S_FALSE otherwise.
Description
Activates the window selection tool for selecting a window as the capture source for the filter. To select the window under the cursor, press the left mouse button. To cancel the window selection process, press the ESC key. Options are provided by several properties of this interface, for displaying information while dragging the mouse.
Return
S_OK if successful, S_FALSE otherwise.
Parameters
pCallbackObject |
a valid pointer to an ILMScrCapUserCallback interface. |
pUserData |
Long value to pass a pointer for user-defined data required by the callback. |
Description
Sets the callback object for the Screen Capture filter. For more information, refer to ILMScrCapUserCallback interface.
Return
S_OK if successful, S_FALSE otherwise.
Parameters
bBegin |
Indicates whether the properties are being changed and the streaming paused, or the properties are being updated and streaming resumed. |
|
|
Value |
Meaning |
|
VARIANT_TRUE |
The properties are being changed and streaming has been paused. |
|
VARIANT_FALSE |
The properties are being updated and streaming has resumed. |
Description
Sets the changes affecting the capture source. You must call this method before and after setting the following properties or calling the following methods of the ILMScrCap Interface:
CaptureSource property
SourceWindowHandle property
RegionLeft property
RegionTop property
RegionRight property
RegionBottom property
SelectRegionTool method
SelectWindowTool method
Return
S_OK if successful, S_FALSE otherwise.
Description
Cancels the region or window selection process.
Return
S_OK if connected, S_FALSE otherwise.
Parameters
pCallbackObject |
a valid pointer to an ILMScrCapUserEventsCallback interface. |
pUserData |
Long value to pass a pointer for user-defined data required by the callback. |
Description
Sets the callback object for the user events. Pass NULL in pCallbackObject parameter to free the old callback object. For more information, refer to ILMScrCapUserEventsCallback interface.
Return
S_OK if successful, E_POINTER otherwise.