LPtoDP function (wingdi.h)

The LPtoDP function converts logical coordinates into device coordinates. The conversion depends on the mapping mode of the device context, the settings of the origins and extents for the window and viewport, and the world transformation.


  [in]      HDC     hdc,
  [in, out] LPPOINT lppt,
  [in]      int     c


[in] hdc

A handle to the device context.

[in, out] lppt

A pointer to an array of POINT structures. The x-coordinates and y-coordinates contained in each of the POINT structures will be transformed.

[in] c

The number of points in the array.

Return value

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero.


The LPtoDP function fails if the logical coordinates exceed 32 bits, or if the converted device coordinates exceed 27 bits. In the case of such an overflow, the results for all the points are undefined.

LPtoDP calculates complex floating-point arithmetic, and it has a caching system for efficiency. Therefore, the conversion result of an initial call to LPtoDP might not exactly match the conversion result of a later call to LPtoDP. We recommend not to write code that relies on the exact match of the conversion results from multiple calls to LPtoDP even if the parameters that are passed to each call are identical.


Requirement Value
Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header wingdi.h (include Windows.h)
Library Gdi32.lib
DLL Gdi32.dll

See also

Coordinate Space and Transformation Functions

Coordinate Spaces and Transformations Overview