Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1
Private Const SRCCOPY = &HCC0020
Private Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" ( _
ByVal lpDriverName As String, ByVal lpDeviceName As String, _
ByVal lpOutput As String, lpInitData As Long) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hDC As Long) As Long
Private Declare Function GetSystemMetrics Lib "user32" ( _
ByVal nIndex As Long) As Long
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, _
ByVal x As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, _
ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, _
ByVal dwRop As Long) As Long
' Copie de tout l'écran.
Private Sub CopyScreen(DestDC As Long, DestX As Long, DestY As Long)
Call CopyScreenRECT(0, 0, GetSystemMetrics(SM_CXSCREEN), _
GetSystemMetrics(SM_CYSCREEN), DestDC, DestX, DestY)
End Sub
' Copie d'une zone de l'écran.
Private Sub CopyScreenRECT(Left As Long, Top As Long, Width As Long, _
Height As Long, DestDC As Long, DestX As Long, DestY As Long)
Dim hDC As Long
hDC = CreateDC("DISPLAY", vbNullString, vbNullString, 0&)
Call BitBlt(DestDC, DestX, DestY, Width, Height, hDC, Left, Top, SRCCOPY)
Call DeleteDC(hDC)
End Sub