Article ID: 104791
Article Last Modified on 12/3/2003
APPLIES TO
- Microsoft OLE 2.0
- Microsoft OLE 4.0, when used with:
- Microsoft Windows NT 4.0
- Microsoft Windows NT 3.51 Service Pack 5
- Microsoft Windows 95
This article was previously published under Q104791
SYMPTOMS
An OLE 2.0 object appears larger during visual editing compared to the loaded state.
CAUSE
The Windows application programming interface (API) LPtoDP is being used to convert the size of the object from MM_HIMETRIC to MM_TEXT. The object is then drawn with the MM_TEXT coordinates as the bounding rectangle.
RESOLUTION
LPtoDP is dependent on the current mapping mode to perform a conversion from logical points to device points. For a more accurate transformation, a function must be written to "manually" convert the units from MM_HIMETRIC to MM_TEXT by using GetDeviceCaps to get the logical pixels per inch for use in the conversion. The OLE2UI library, included with the OLE 2.0 toolkit, already includes several transformation functions to properly convert the units:
FUNCTION | DESCRIPTION |
---|---|
XformWidthInPixelsToHimetric |
Converts an int width into HiMetric units |
XformWidthInHimetricToPixels |
Converts an int width from HiMetric units |
XformHeightInPixelsToHimetric |
Converts an int height into HiMetric units |
XformHeightInHimetricToPixels |
Converts an int height from HiMetric units |
XformRectInPixelsToHimetric |
Converts a rect into HiMetric units |
XformRectInHimetricToPixels |
Converts a rect from HiMetric units |
XformSizeInPixelsToHimetric |
Converts a SIZEL into HiMetric units |
XformSizeInHimetricToPixels |
Converts a SIZEL from HiMetric units |
For more information on these functions, consult the "User Interface Dialog Help" help file (OLE2UI.HLP) included with the OLE 2.0 toolkit.
Additional query words: 2.00 3.50 4.00
Keywords: kbprogramming kbprb KB104791