Parce que _ScreenCapture_CaptureWnd va attendre le Handle d'une fenêtre qui doit être visible à l'écran
(Ma fenêtre ne sera pas visible)
Pour WM_CAP_GRAB_FRAME_NOSTOP, c'est ce qu'il se passe déjà pour le _Webcam_Snap de l'UDF, (associé à une écriture dans un fichier) si j'ai bien compris, WM_CAP_GRAB_FRAME_NOSTOP va mettre l image actuelle dans un buffer, il faudrait avoir accès à ce buffer...
Je vais me pencher de ce coté.
Edit : Voila ce que j'ai trouvé :
Avec $WM_CAP_SET_CALLBACK_FRAME, je peux mettre une fonction de callback à chaque frame.
J'ai donc créé la fonction dans Webcam.au3 :
Code : Tout sélectionner
Func _WebcamSetCallBackFram($sId, $func)
$CallBack = DllCallbackRegister($func, "long", "int;ptr;ptr;ptr")
DllCall($user, "int", "SendMessage", "hWnd", $sId, "int", $WM_CAP_SET_CALLBACK_FRAME, "int", 0, "lparam", DllCallbackGetPtr($CallBack))
If(@error) Then
ToolTip("erf")
EndIf
EndFunc
Je mets ensuite la ligne dans mon code :
et la fonction :
Je ne suis pas sur du "int;ptr;ptr;ptr".
D'apres msdn ca aurai plutot été "int;videohdr" mais videohdr n'existant pas, j'ai du tatoner...
Quoi qu'il en soit, ma fonction est bien appelée à chaque frame généré, j'ai 4 parametres :
Le handle de la fenetre et 3 pointeurs (et oui, je ne sais toujours pas à quoi ils vont me servir)
J'ai essayé des fonctions GDI plus en pensant que ça seraient des hBitmap ou autre mais en vain.
Ô grand Tlem, puissiez vous me venir en aide.