Private Declare Function GetDC Lib "user32" (ByVal hWnd As IntPtr) As IntPtr
VB.NET Signature:
<DllImport("User32.dll", EntryPoint:="GetDC", _
CallingConvention:=CallingConvention.StdCall, _
CharSet:=CharSet.Auto, exactspelling:=True)> _
Public Shared Function GetDC(ByVal hwnd As IntPtr) As Int32
End Function
User-Defined Types:
None.
Notes:
Given the level of transparency provided by the System.Drawing.Graphics class, it is probably better to use that instead of GetDC.
Remember, if you use GetDC manually without the Graphics class, you must call ReleaseDC.
This method can also be declared using an IntPtr instead of a HandleRef. Using a HandleRef ensures that the window will not be destroyed/GCed while the function is executing.
An IntPtr is a pointer to a memory location (unmanaged) that adapts to the platform it is running on (64-bit, etc.) UNLIKE a standard int/Integer. You should always use this type for unmanaged calls that require it, even though an int will appear to work on your development machine.
1/13/2008 4:00:13 AM - Damon Carr-72.43.165.29
A HandleRef is essentially an IntPtr to a handle and a reference to the object the handle belongs to. Using HandleRef prevents the GC from collecting the object until the native method is done with it.
7/22/2009 9:41:44 AM - -212.251.139.186
A HandleRef is essentially an IntPtr to a handle and a reference to the object the handle belongs to. Using HandleRef prevents the GC from collecting the object until the native method is done with it.
7/22/2009 9:41:44 AM - -212.251.139.186
The EnumDisplayMonitors API
6/15/2020 1:24:20 PM - -165.214.11.71
Creates a device context for a device using the specified name.