HRESULT GetBoundingBox ( [in, optional, defaultvalue(IBBM_DEFAULT)] InkBoundingBoxMode BoundingBoxMode, [out, retval] IInkRectangle **BoundingBox );
[Microsoft® Visual Basic® 6.0]
Public Function GetBoundingBox( _ [boundingBoxMode As InkBoundingBoxMode = IBBM_Default] _ ) As InkRectangle
[in, optional] Specifies the stroke characteristics to use to calculate the bounding box. For more details about the use of stroke characteristics to calculate a bounding box, see the BoundingBoxMode enumeration type.
The BoundingBoxMode parameter of the Ink::GetBoundingBox method has a default value of -1, which means that all characteristics of a stroke are used to specify the bounding box.
Note: For an IInkStrokeDisp object, the returned bounding box is a copy of the strokes bounding box, so altering the returned bounding box does not affect the strokes location.
|E_POINTER||A parameter contained an invalid pointer.|
|E_INK_EXCEPTION||An exception occurred inside the method.|
|E_UNEXPECTED||Unexpected parameter or property type.|
|REGDB_CLASSNOTREG||The InkRectangle object is not registered.|
When the bounding box is affected by the pen width, then this width is scaled appropriately for the InkRenderer's view transform. To do this, the pen width is multiplied by the square root of the determinant of the view transform.
Note: If you have not set the pen width explicitly, it is 53 by default. You must multiply the pen width by the square root of the determinant to yield the correct bounding box. The height and width of the bounding box are expanded by half this amount in each direction. For example, consider that the pen width is 53, the square root of the determinant is 50, and the bounding box is (0, 0, 1000, 1000). The pen width adjustment to the bounding box in each direction is calculated as (53 * 50) / 2, and the right and bottom sides are incremented by one. This results in a rendered bounding box of (-1325, -1325, 2326, 2326).
[Visual Basic 6.0]
This Visual Basic 6.0 example gets the bounding box from an InkDisp object, using the IBBM_CurveFit flag to determine the bounds.
Dim theBoundingBox As InkRectangle Set theBoundingBox = _ theInkCollector.Ink.GetBoundingBox(IBBM_CurveFit)