Public Class frmCaptura
Dim hwdc As Integer
Dim conectado As Boolean
Dim g As Graphics
Private delCallBack As CallBackDelegate = New CallBackDelegate(AddressOf procesaFrame)
Private Sub btnIniciar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIniciar.Click
Dim res As Integer
hwdc = capCreateCaptureWindow("Captura Cámara", WS_CHILD Or WS_VISIBLE, 0, 0, 320, 240, picCaptura.Handle.ToInt32, 0)
If (hwdc <> 0) Then
res = SendMessage(hwdc, WM_CAP_DRIVER_CONNECT, 0, 0)
res = SendMessage(hwdc, WM_CAP_SET_PREVIEW, 1, 0)
res = SendMessage(hwdc, WM_CAP_SET_PREVIEWRATE, 60, 0)
conectado = True
' Configura callback
res = SendMessage(hwdc, WM_CAP_SET_CALLBACK_FRAME, New IntPtr(0), delCallBack)
Else
MsgBox("No se encontró dispositivo de captura")
End If
End Sub
...
Private Function procesaFrame(ByVal hwnd As IntPtr, ByRef lpVHdr As VIDEOHDR) As IntPtr
...
End Function