1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
proc MainDlg hdlg, msg, wparam, lparam
push ebx esi edi
cmp [msg], WM_INITDIALOG ;case WM init dialog
je .wminitdlg ;on fait donc ce qui est là bas.
cmp [msg], WM_COMMAND ;idem, autre case
je .wmcommand ;autre case, autre routine
cmp [msg], WM_CLOSE ;encore un case
je .wmclose;etc..
xor eax, eax ;retourner 0 car on à rien fait, eax, c'est le return ? du C
jmp .finish ;on a terminé les cases, donc, endcase
.wminitdlg:;case 1
invoke capCreateCaptureWindow, _camtitle, WS_VISIBLE + WS_CHILD, 10, 10,\
266, 252, [hdlg], 0
mov [hWebcam], eax
jmp .finish ;ho, on a encore fini notre bout de case
.wmcommand:;case 2
cmp [wparam], BN_CLICKED shl 16 + ID_START
je .startbutton ;case2.1
cmp [wparam], BN_CLICKED shl 16 + ID_STOP
je .stopbutton ;case2.2
cmp [wparam], BN_CLICKED shl 16 + ID_CLICK
je .clickbutton ;case2.3
.wmclose:
invoke SendMessage, [hWebcam], WM_CAP_DRIVER_DISCONNECT, _camtitle, 0
invoke EndDialog, [hdlg], 0
;on sort ici, notre endcase, endfor, endif, end_quelque_chose...
.finish:
pop edi esi ebx ;petit bout d'out-it impossible à contourner, sinon crack!!!
ret
.startbutton: ;case2.3
invoke SendMessage, [hWebcam], WM_CAP_DRIVER_CONNECT, [nDevice], 0
invoke SendMessage, [hWebcam], WM_CAP_SET_SCALE, TRUE, 0
invoke SendMessage, [hWebcam], WM_CAP_SET_PREVIEWRATE, [nFPS], 0
invoke SendMessage, [hWebcam], WM_CAP_SET_PREVIEW, TRUE, 0
jmp .finish ;fini le case
.stopbutton:;case2.2
invoke SendMessage, [hWebcam], WM_CAP_DRIVER_DISCONNECT, _camtitle, 0
jmp .finish ;etc...
.clickbutton:;case2.1
invoke SendMessage, [hWebcam], WM_CAP_FILE_SAVEDIB, 0, _filename
jmp .finish;etc...
endp |