Тема: Де можливо знайти змістовний довідник з Win32 API
Наприклад у мене є код п 50-345 вказанний нижче і мені потрібно знайти відповіть на запитання стосовно значеня кожного слова коду. У мене були кілька довідників по WinAPI, але вони нажаль не містять змістовну і повну інформацію. Наприклад по ним я не можу знайти значення як усіх слів окремо узятих так і сполучення-шляху : п 70\ includelib \masm32\lib\Comctl32.lib , і не тільки п 70 але і багато інших, де знайти повний довідник чи щось інше по якому можливо знайти зміст усього цього ?
▼Прихований текст
50) .386
51) .model flat,stdcall
52) option casemap:none
53) include \masm32\include\windows.inc
54) include \masm32\include\masm32.inc
55) include \masm32\include\gdi32.inc
include \masm32\include\user32.inc
57) include \masm32\include\kernel32.inc
58) include \masm32\include\Comctl32.inc
59) include \masm32\include\comdlg32.inc
60) include \masm32\include\shell32.inc
61) include \masm32\include\oleaut32.inc
62) include \masm32\include\msvcrt.inc
63) include \masm32\include\dialogs.inc
64) include \masm32\macros\macros.asm
65) include \masm32\include\winmm.inc
66) includelib \masm32\lib\masm32.lib
67) includelib \masm32\lib\gdi32.lib
68) includelib \masm32\lib\user32.lib
69) includelib \masm32\lib\kernel32.lib
70) includelib \masm32\lib\Comctl32.lib
71) includelib \masm32\lib\comdlg32.lib
72) includelib \masm32\lib\shell32.lib
73) includelib \masm32\lib\oleaut32.lib
74) includelib \masm32\lib\msvcrt.lib
75) includelib \masm32\lib\winmm.lib
76) WinMain proto :DWORD,:DWORD,:DWORD,:DWORD
77) Data proto :DWORD,:DWORD
78) .data
79) flag db 0h
80) pidl dd 0h
81) n1 db "C:\WINDOWS\system32\avicap32.dll",0
82) n2 db "-",0
83) n3 db "-",0
84) n4 db "VIDEOSOURCE",0
85) n5 db "стоп",0
86) n6 db "-",0
87) n7 db "снять фото",0
88) n8 db "Начать запись видео",0
89) n9 db "настройка сжатия видео",0
90) n10 db "папка для файлов",0
91) n11 db "формат",0
92) ButtonClassName db "button",0
93) ClassName db "SimpleWinClass",0
94) AppName db "oko",0
95) funcap db "capCreateCaptureWindowA",0
96) infof db "Выберете папку для файлов",0
97) str1 dd 0
98) buf db 550 dup (0h)
99) papkaf db 550 dup (0h)
100) .data?
101) hdll dd ?
102) afun dd ?
103) hCapWindow dd ?
104) hInstance HINSTANCE ?
105) CommandLine LPSTR ?
106) hBut2 HWND ?
107) hBut1 HWND ?
108) hBut3 HWND ?
109) hBut4 HWND ?
110) hBut5 HWND ?
111) hBut6 HWND ?
112) hBut7 HWND ?
113) hBut8 HWND ?
114) CAPTUREPARMS STRUCT
115) dwRequestMicroSecPerFrame DWORD ?
116) fMakeUserHitOKToCapture BOOL ?
117) wPercentDropForError UINT ?
118) fYield BOOL ?
119) dwIndexSize DWORD ?
120) wChunkGranularity UINT ?
121) fUsingDOSMemory BOOL ?
122) wNumVideoRequested UINT ?
123) fCaptureAudio BOOL ?
124) wNumAudioRequested UINT ?
125) vKeyAbort UINT ?
126) fAbortLeftMouse BOOL ?
127) fAbortRightMouse BOOL ?
128) fLimitEnabled BOOL ?
129) wTimeLimit UINT ?
130) fMCIControl BOOL ?
131) fStepMCIDevice BOOL ?
132) dwMCIStartTime DWORD ?
133) dwMCIStopTime DWORD ?
134) fStepCaptureAt2x BOOL ?
135) wStepCaptureAverageFrames UINT ?
136) dwAudioBufferSize DWORD ?
137) fDisableWriteCache BOOL ?
138) AVStreamMaster UINT ?
139) CAPTUREPARMS ENDS
140) BROWSEINFO STRUCT
141) hwndOwner dd ?
142) pidlRoot dd ?
143) pszDisplayName dd ?
144) lpszTitle dd ?
145) ulFlags dd ?
146) lpfn dd ?
147) lParam dd ?
148) iImage dd ?
149) BROWSEINFO ENDS
150) .const
151) ButID2 equ 2
152) ButID1 equ 1
153) ButID3 equ 3
154) ButID4 equ 4
155) ButID5 equ 5
156) ButID6 equ 6
157) ButID7 equ 7
158) ButID8 equ 8
159) .code
160) start:
161) invoke LoadLibrary, addr n1
162) mov hdll, eax
163) invoke GetProcAddress, hdll, addr funcap
164) mov afun, eax
165) invoke GetModuleHandle, NULL
166) mov hInstance,eax
167) invoke GetCommandLine
168) mov CommandLine,eax
169) invoke WinMain, hInstance,NULL, CommandLine, SW_SHOWDEFAULT
170) invoke ExitProcess,eax
171) WinMain proc hInst:HINSTANCE, hPrevInst:HINSTANCE, CmdLine:LPSTR, CmdShow:DWORD
172) LOCAL wc:WNDCLASSEX
173) LOCAL msg:MSG
174) LOCAL hwnd:HWND
175) mov wc.cbSize,SIZEOF WNDCLASSEX
176) mov wc.style, CS_HREDRAW or CS_VREDRAW
177) mov wc.lpfnWndProc, OFFSET WndProc
178) mov wc.cbClsExtra,NULL
179) mov wc.cbWndExtra,NULL
180) push hInstance
181) pop wc.hInstance
182) invoke LoadIcon, NULL, IDI_EXCLAMATION
183) mov wc.hIcon, eax
184) invoke LoadCursor, NULL, IDC_ARROW
185) mov wc.hCursor, eax
186) mov wc.hIconSm,NULL
187) mov wc.hbrBackground,COLOR_BTNFACE+1
188) mov wc.lpszMenuName,NULL
189) mov wc.lpszClassName,OFFSET ClassName
190) invoke RegisterClassEx, addr wc
191) invoke CreateWindowEx,NULL,ADDR ClassName,ADDR AppName,WS_MINIMIZEBOX or WS_SYSMENU,0,0, 700 , 500 ,NULL,NULL,hInst,NULL
192) mov hwnd,eax
193) invoke ShowWindow, hwnd,SW_SHOWNORMAL
194) invoke UpdateWindow, hwnd
195) .WHILE TRUE
196) invoke GetMessage, ADDR msg,NULL,0,0
197) .BREAK .IF (!eax)
198) invoke TranslateMessage, ADDR msg
199) invoke DispatchMessage, ADDR msg
200) .ENDW
201) mov eax,msg.wParam
202) ret
203) WinMain endp
204) WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
205) LOCAL cam:CAPTUREPARMS
206) LOCAL forb:BROWSEINFO
207) .IF uMsg==WM_COMMAND
208) mov eax, wParam
209) ;//////////////////////////////////////////////////////////////////////////////////////
210) .IF ax==ButID1
211) shr eax,16
212) .IF ax==BN_CLICKED
213) invoke Beep, 1111, 111 ; Гц, мс
214) xor eax,eax
215) .ENDIF
216) .ENDIF
217) ;-------------------------------------------------------------------------------------------------------------
218) .IF ax==ButID2
219) shr eax,16
220) .IF ax==BN_CLICKED
221) invoke Beep, 1144, 111
222) xor eax,eax
223) .ENDIF
224) .ENDIF
225) ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
226) .IF ax==ButID3
227) shr eax,16
228) .IF ax==BN_CLICKED
229) invoke SendMessage, hCapWindow, WM_CAP_DLG_VIDEOSOURCE, 0, 0
230) xor eax,eax
231) .ENDIF
232) .ENDIF
233) ;//////////////////////////////////////////////////////////////////////////////////////
234) .IF ax==ButID4
235) shr eax,16
236) .IF ax==BN_CLICKED
237) invoke Data, addr papkaf, SADD("bmp")
238) invoke SendMessage, hCapWindow, WM_CAP_FILE_SAVEDIBA, 0, str1
239) xor eax,eax
240) .ENDIF
241) .ENDIF
242) ;//////////////////////////////////////////////////////////////////////////////////////
243) .IF ax==ButID5
244) shr eax,16
245) .IF ax==BN_CLICKED
246) .if flag==0h
247) invoke Data, addr papkaf, SADD("avi")
248) invoke SendMessage, hCapWindow, WM_CAP_FILE_SET_CAPTURE_FILEA, 0, str1
249) mov cam.dwRequestMicroSecPerFrame, 50000 ; мкс, ~15 кадров в секунду
250) mov cam.fMakeUserHitOKToCapture, FALSE ; TRUE- dlg, FALSE- no dlg
251) mov cam.wPercentDropForError, 10 ; максимально допустимый процент выпадения кадров 1-100%
252) mov cam.fYield, TRUE ; TRUE- отдельный фоновый поток (или FALSE)
253) mov cam.dwIndexSize, 34952 ;Значения находятся в диапазоне от 1800 до 324000 (если 0, то значение по умолчанию 34952 не используется)
254) mov cam.wChunkGranularity, 0 ;Размер логического блока файла AVI в байтах (наверно)
255) mov cam.fUsingDOSMemory, 0 ;не используется
256) mov cam.wNumVideoRequested, 2 ;максимальное количество выделяемых видеобуферов, область памяти буфера указана в fUsingDOSMemory
257) mov cam.fCaptureAudio, TRUE ;флаг захвата звука. если TRUE(по умолчанию), то запись звука, FALSE без звука
258) mov cam.wNumAudioRequested, 2 ;Kоличество аудио буферов. Максимальное количество 10.
259) mov cam.vKeyAbort, VK_ESCAPE ;Виртуальный код клавиши, используется для прерывания записи. Можно использовать комбинации
260) mov cam.fAbortLeftMouse, FALSE ;Завершение записи левой кнопкой мыши- TRUE(по умолчанию)
261) mov cam.fAbortRightMouse, FALSE ;Завершение записи правой кнопкой мыши- TRUE(по умолчанию)
262) mov cam.fLimitEnabled, FALSE ;включить(TRUE) или выключить(FALSE) wTimeLimit
263) mov cam.wTimeLimit, 0 ;секунды. длительность записи. актуально если fLimitEnabled TRUE
264) mov cam.fMCIControl, FALSE ;Флаг MCI-устройства видеозахвата.(если FALSE, то три следующие параметра не используются)
265) mov cam.fStepMCIDevice, 0 ;Флаг шагового захвата. TRUE-включен шаговый захват. FALSE- обычный захват.
266) mov cam.dwMCIStartTime, 0 ;миллисекунды. исходное положение для захвата
267) mov cam.dwMCIStopTime, 0 ;мс. время до остановки захвата.
268) mov cam.fStepCaptureAt2x, TRUE ;флаг масштаба захвата.Если TRUE,то включено уменьшение масштаба. FALSE- полномасштабный захват(если поддерживается)
269) mov cam.wStepCaptureAverageFrames, 5 ; хрен его знает
270) mov cam.dwAudioBufferSize, 330000 ; размер звукового буфера, байты
271) mov cam.fDisableWriteCache, 0 ; не используется
272) mov cam.AVStreamMaster, AVSTREAMMASTER_AUDIO ; AVSTREAMMASTER_AUDIO- время аудиодорожки равно времени видеодорожки. AVSTREAMMASTER_NONE- продолжительность аудио и видео могут различаться.
273) invoke SendMessage, hCapWindow, WM_CAP_SET_SEQUENCE_SETUP, 57 , addr cam ; 57- 60
274) invoke SendMessage, hCapWindow, WM_CAP_SEQUENCE, 0, 0
275) mov flag, 01h
276) invoke SetWindowText, hBut5, addr n5
277) jmp metka
278) .endif
279) .if flag==01h
280) invoke SendMessage, hCapWindow, WM_CAP_ABORT, 0, 0
281) mov flag, 0h
282) invoke SetWindowText, hBut5, addr n8
283) .endif
284) metka:
285) xor eax,eax
286) .ENDIF
287) .ENDIF
288) ;//////////////////////////////////////////////////////////////////////////////////////
289) .IF ax==ButID6
290) shr eax,16
292) .IF ax==BN_CLICKED
293) invoke SendMessage, hCapWindow, WM_CAP_DLG_VIDEOCOMPRESSION, 0, 0
294) xor eax,eax
295) .ENDIF
296) .ENDIF
297) ;//////////////////////////////////////////////////////////////////////////////////////
298) .IF ax==ButID7
299) shr eax,16
230) .IF ax==BN_CLICKED
231) mov eax, hWnd
232) mov forb.hwndOwner, eax
233) mov forb.pidlRoot, 0
234) mov forb.pszDisplayName, 0
235) lea eax, infof
236) mov forb.lpszTitle, eax
237) mov forb.ulFlags, BIF_USENEWUI
268) mov forb.lpfn, 0
239) mov forb.lParam, 0
240) mov forb.iImage, 0
241) invoke SHBrowseForFolder, addr forb
242) mov pidl,eax
242) invoke SHGetPathFromIDList, eax, addr papkaf
243) xor eax,eax
244) .ENDIF
245) .ENDIF
246) ;//////////////////////////////////////////////////////////////////////////////////////
247) .IF ax==ButID8
248) shr eax,16
249) .IF ax==BN_CLICKED
250) invoke SendMessage, hCapWindow, WM_CAP_DLG_VIDEOFORMAT, 0, 0
251) xor eax,eax
252) .ENDIF
253) .ENDIF
254) ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
255) .ENDIF
256) .IF uMsg==WM_CREATE
257) push 0
258) push hWnd
259) push 500
260) push 500
261) push 0
262) push 0
263) push WS_VISIBLE or WS_CHILD
264) push 0
265) call afun
266) mov hCapWindow, eax
267) invoke SendMessage, hCapWindow, WM_CAP_DRIVER_CONNECT, 0, 0
268) invoke SendMessage, hCapWindow, WM_CAP_SET_SCALE , 1, 0
269) invoke SendMessage, hCapWindow, WM_CAP_SET_PREVIEWRATE , 20, 0
270) invoke SendMessage, hCapWindow, WM_CAP_SET_PREVIEW , 1, 0
271) invoke ShowWindow, hCapWindow, SW_SHOW
272) invoke CreateWindowEx, NULL, ADDR ButtonClassName, ADDR n2,WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON,510, 12, 70, 25, hWnd, ButID1, hInstance, NULL
273) mov hBut1, eax
274) invoke ShowWindow, hBut1, SW_HIDE
275) invoke CreateWindowEx, NULL, ADDR ButtonClassName, ADDR n3,WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON,510, 45, 70, 25, hWnd, ButID2, hInstance, NULL
276) mov hBut2, eax
277) invoke ShowWindow, hBut2, SW_HIDE
278) invoke CreateWindowEx, NULL, ADDR ButtonClassName, ADDR n4,WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON,510, 80, 110, 25, hWnd, ButID3, hInstance, NULL
279) mov hBut3, eax
280) invoke ShowWindow, hBut3, SW_SHOW
281) invoke CreateWindowEx, NULL, ADDR ButtonClassName, ADDR n7,WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON,510, 115, 110, 25, hWnd, ButID4, hInstance, NULL
282) mov hBut4, eax
283) invoke ShowWindow, hBut4, SW_SHOW
284) invoke CreateWindowEx, NULL, ADDR ButtonClassName, ADDR n8,WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON,510, 150, 175, 25, hWnd, ButID5, hInstance, NULL
285) mov hBut5, eax
286) invoke ShowWindow, hBut5, SW_SHOW
287) invoke CreateWindowEx, NULL, ADDR ButtonClassName, ADDR n9,WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON,510, 185, 175, 25, hWnd, ButID6, hInstance, NULL
388) mov hBut6, eax
289) invoke ShowWindow, hBut6, SW_SHOW
290) invoke CreateWindowEx, NULL, ADDR ButtonClassName, ADDR n10,WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON,510, 255, 135, 25, hWnd, ButID7, hInstance, NULL
291) mov hBut7, eax
292) invoke ShowWindow, hBut7, SW_SHOW
293) invoke CreateWindowEx, NULL, ADDR ButtonClassName, ADDR n11,WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON,510, 220, 70, 25, hWnd, ButID8, hInstance, NULL
294) mov hBut8, eax
295) invoke ShowWindow, hBut8, SW_SHOW
296) .ENDIF
297) .IF uMsg==WM_CLOSE
298) invoke SendMessage, hCapWindow, WM_CAP_DRIVER_DISCONNECT, 0, 0
299) invoke FreeLibrary, hdll
300) call ExitProcess
301) .ENDIF
302) .IF uMsg==WM_DESTROY
303) invoke SendMessage, hCapWindow, WM_CAP_DRIVER_DISCONNECT, 0, 0
304) invoke FreeLibrary, hdll
305) call ExitProcess
306) .ELSE
307) invoke DefWindowProc,hWnd,uMsg,wParam,lParam
308) ret
309) .ENDIF
310) xor eax,eax
311) ret
312) WndProc endp
313) ; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
314) Data proc put:DWORD, rash:DWORD
315) LOCAL Year:DWORD
316) LOCAL Month:DWORD
317) LOCAL Day:DWORD
318) LOCAL hour:DWORD
319) LOCAL minute:DWORD
320) LOCAL second:DWORD
321) LOCAL stm:SYSTEMTIME
322) mov eax, ptr$(buf)
323) mov str1, eax
324) invoke GetLocalTime,ADDR stm
325) movzx eax, stm.wYear
326) mov Year, ustr$(eax)
327) movzx eax, stm.wMonth
328) mov Month, ustr$(eax)
329) movzx eax, stm.wDay
330) mov Day, ustr$(eax)
331) movzx eax, stm.wHour
332) mov hour, ustr$(eax)
333) movzx eax, stm.wMinute
334) mov minute, ustr$(eax)
335) movzx eax, stm.wSecond
336) mov second, ustr$(eax)
337) .if pidl==0
338) mov str1, cat$(str1,Year,".",Month,".",Day,"_",hour,"h",minute,"m",second,"s.",rash)
339) ret
340) .endif
341) mov str1, cat$(str1,put,"\",Year,".",Month,".",Day,"_",hour,"h",minute,"m",second,"s.",rash)
342) ret
343) Data endp
344) ; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
345) end start