hi, this code don't working...
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
include \masm32\include\masm32rt.inc
include \masm32\include\gdiplus.inc
includelib \masm32\lib\gdiplus.lib
include \masm32\macros\ucmacros.asm
GdiplusStartupInput STRUCT
GdiplusVersion DWORD ?
DebugEventCallback DWORD ?
SuppressBackgroundThread DWORD ?
SuppressExternalCodecs DWORD ?
GdiplusStartupInput ENDS
ImageCodecInfo STRUCT
ClassID CLSID <>
FormatID GUID <>
CodecName DWORD ?
DllName DWORD ?
FormatDescription DWORD ?
FilenameExtension DWORD ?
MimeType DWORD ?
Flags DWORD ?
Version DWORD ?
SigCount DWORD ?
SigSize DWORD ?
SigPattern DWORD ?
SigMask DWORD ?
ImageCodecInfo ENDS
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
StrLen PROTO :DWORD
.DATA
buffer db "*.bmp",0
token dd 0
image dd 0
numEncoders dd 0
sizeImageCodecInfo dd 0
pImageCodecInfo dd 0
gdipsi GdiplusStartupInput <1> ; version must be 1
.DATA?
buffer2 db 256 dup(?)
result WIN32_FIND_DATA <?>
hdl dd ?
.code
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
start:
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
invoke FindFirstFile, ADDR buffer, ADDR result
.IF eax!=INVALID_HANDLE_VALUE
mov hdl, eax
invoke MessageBox, 0,ADDR result.cFileName, ADDR result.cFileName, 10h
call _testpom
le_loop:
invoke FindNextFile, hdl, ADDR result
cmp eax, 0
je fini
invoke MessageBox, 0, ADDR result.cFileName, ADDR result.cFileName, 10h
call _testpom
jmp le_loop
.ELSE
.ENDIF
fini:
invoke FindClose, hdl
; inkey "OwNeDbYp0m1."
exit
_testpom proc
invoke GdiplusStartup, ADDR token, ADDR gdipsi, NULL
; invoke GdipLoadImageFromFile, uni$("sample.bmp"), ADDR image
invoke GdipLoadImageFromFile, ADDR result.cFileName, ADDR image
invoke GdipGetImageEncodersSize, ADDR numEncoders, ADDR sizeImageCodecInfo
mov pImageCodecInfo, alloc(sizeImageCodecInfo)
invoke GdipGetImageEncoders, numEncoders, sizeImageCodecInfo, pImageCodecInfo
xor ebx, ebx
mov esi, pImageCodecInfo
.WHILE ebx < numEncoders
.IF ucmp$([esi].ImageCodecInfo.MimeType, uni$("image/jpeg") )
; invoke GdipSaveImageToFile, image, uni$("sample.jpg"), esi, NULL
invoke GdipSaveImageToFile, image, ADDR result.cFileName, esi, NULL
.ENDIF
add esi, SIZEOF ImageCodecInfo
inc ebx
.ENDW
invoke GdipDisposeImage, image
invoke GdiplusShutdown, token
free pImageCodecInfo
ret
_testpom endp
end start
wtf ?
uni$("sample.jpg") to ADDR result.cFileName
Converting BMP to JPG (http://www.masm32.com/board/index.php?topic=9577.0)