GetRectangleIntersections Method
GetRectangleIntersections Method |
Finds the points where a IInkStrokeDisp object intersects a given rectangle.
Declaration
[C++]
HRESULT GetRectangleIntersections (
[in] IInkRectangle *rectangle,
[out, retval] VARIANT *Intersections
);
[Microsoft® Visual Basic® 6.0]
Public Function GetRectangleIntersections( _
rectangle As InkRectangle _
) As Variant
Parameters
rectangle
[in] The rectangle in ink space coordinates, that describes the hit test area.
Intersections
[out, retval] Returns a VARIANT array that indicates where the stroke intersects intersectRectangle. The beginning floating point indices are stored in the even indices. The ending floating point indices are stored in the odd indices. The first pair of indices represents the first intersection.
For more information about the VARIANT structure, see Using the Automation Library.
Return Value
HRESULT value | Description |
---|---|
S_OK | Success. |
E_POINTER | A parameter contained an invalid pointer. |
E_OUTOFMEMORY | Cannot allocate Stroke handler helper object. |
E_UNEXPECTED | Unexpected parameter or property type. |
E_INK_EXCEPTION | An exception occurred inside the method. |
Remarks
This method returns an array that indicates where the stroke intersects the specified rectangle. Each segment of the stroke that intersects the rectangle is one pair of indices, alternating with a beginning index followed by an ending index.
If the stroke begins within the test rectangle, the first index is set to -1. If the stroke ends within the test rectangle, the last index is set to -1. If the stroke is wholly outside the test rectangle, an empty array is returned. For example, if a stroke begins inside the test rectangle, leaves the boundaries of the rectangle, returns inside, and leaves again, then the GetRectangleIntersections method might return {-1, 1.4, 5.5, 10.1} to describe the two segments of the stroke falling within the rectangle.
Example
[Visual Basic 6.0]
This Visual Basic 6.0 example gets the array of beginning and end points of the sections of the IInkStrokeDisp, theStroke that was intersected by the InkRectangle, theRectangle, as floating point index values that are stored in each element of theSegments.
Dim theSegments() As Single
theSegments = theStroke.GetRectangleIntersections(theRectangle)