Is a 64-bit HDC supported by RenderPageToDCClip?
(The answer is no, not in the current Delphi source code version, but read below because the more accurate answer is “no, but that’s okay because Microsoft guarantees that only the bottom 32-bit range of handles is used in Windows”.)
The current build system for the Delphi-based version of Foxit Quick PDF Library cannot handle 64-bit handles so we always use 32-bit handles. In the C++ based version of Foxit Quick PDF Library 32-bit and 64-bit handle types are supported. Contact us if you would like to try our internal build of the C++ PDF library.
It is true that the HANDLE type is defined to be a PVOID, so technically they are 32-bit or 64-bit depending on the system. However, it is not a problem to use 32-bits as HANDLE types on Windows because Microsoft ensure that they are always guaranteed to fit into 32-bits. The upper 32-bits can be safely truncated.
So when sending an HDC value to Foxit Quick PDF Library, simply truncate the upper bits and pass only the lower 32-bits.
When receiving a HDC value from Foxit Quick PDF Library you can keep the upper bits as 0 or sign extend the value.
Here’s more information from Microsoft on this topic:
https://msdn.microsoft.com/en-us/library/aa384203.aspx
This article refers to a deprecated product. If you are looking for support for Foxit PDF SDK, please click here.
Updated on May 16, 2022