IamOverlord
شنبه 08 بهمن 1390, 16:03 عصر
سلام دوستان.
کسی می تونه بگه مشکل این کد چیه؟
می خواستم کد این تاپیک (http://barnamenevis.org/showthread.php?325191-%D9%81%D8%B1%D9%85-%D8%B4%DB%8C%D8%B4%D9%87-%D8%A7%DB%8C-(Aero-Glass)/page2) رو در FASM بنویسم.
; Template for program using standard Win32 headers
format PE GUI 4.0
entry start
include 'include\win32a.inc'
struc tagInitCommonControlsEx lngSize,lngICC
{
.lngSize dw lngSize
.lngICC dw lngICC
}
struc tRect m_Left,m_Right,m_Top,m_Bottom
{
.m_Left dw m_Left
.m_Right dw m_Right
.m_Top dw m_Top
.m_Bottom dw m_Bottom
}
ICC_USEREX_CLASSES equ 200h
WM_KEYDOWN equ 100h
;section '.rsrc' data readable resource from 'XP Resource.res'
section '.data' data readable writeable
_title db 'Win32 program XP style template',0
_class db 'FASMWIN32',0
wc WNDCLASS 0,WindowProc,0,0,NULL,NULL,NULL,COLOR_BTNFACE+1,NU LL,_class
msg MSG
iccex tagInitCommonControlsEx 4,ICC_USEREX_CLASSES
GRect tRect -1,-1,-1,-1
flags dd ?
caption db 'XP Style Without External Manifest File',0
message db 'Look At Button Below:',0
section '.code' code readable executable
start:
;invoke InitCommonControls,iccex
invoke MessageBox,HWND_DESKTOP,message,caption,[flags]
invoke GetModuleHandle,0
mov [wc.hInstance],eax
invoke LoadIcon,0,IDI_APPLICATION
mov [wc.hIcon],eax
invoke LoadCursor,0,IDC_ARROW
mov [wc.hCursor],eax
invoke RegisterClass,wc
invoke CreateWindowEx,0,_class,_title,WS_VISIBLE+WS_DLGFR AME+WS_SYSMENU,200,300,400,300,NULL,NULL,[wc.hInstance],NULL
msg_loop:
invoke GetMessage,msg,NULL,0,0
or eax,eax
jz end_loop
invoke TranslateMessage,msg
invoke DispatchMessage,msg
jmp msg_loop
end_loop:
invoke ExitProcess,[msg.wParam]
proc WindowProc hwnd,wmsg,wparam,lparam
push ebx esi edi
cmp [wmsg],WM_DESTROY
je wmdestroy
cmp [wmsg],WM_KEYDOWN
je keyboardproc
defwndproc:
invoke DefWindowProc,[hwnd],[wmsg],[wparam],[lparam]
jmp finish
keyboardproc:
invoke ApplyGlass,[hwnd],GRect
jmp finish
wmdestroy:
invoke PostQuitMessage,0
xor eax,eax
finish:
pop edi esi ebx
ret
endp
section '.idata' import data readable writeable
library kernel32,'KERNEL32.DLL',\
user32,'USER32.DLL',\
comctl32,'COMCTL32.DLL',\
dwmapi,'DWMAPI.DLL'
include 'include\apia\kernel32.inc'
include 'include\apia\user32.inc'
include 'include\apia\comctl32.inc'
;Private Declare Function ApplyGlass Lib "dwmapi.dll" Alias "DwmExtendFrameIntoClientArea" (ByVal hWnd As Long, rect As tRect) As Long
import dwmapi,\
ApplyGlass,'DwmExtendFrameIntoClientArea'
کسی می تونه بگه مشکل این کد چیه؟
می خواستم کد این تاپیک (http://barnamenevis.org/showthread.php?325191-%D9%81%D8%B1%D9%85-%D8%B4%DB%8C%D8%B4%D9%87-%D8%A7%DB%8C-(Aero-Glass)/page2) رو در FASM بنویسم.
; Template for program using standard Win32 headers
format PE GUI 4.0
entry start
include 'include\win32a.inc'
struc tagInitCommonControlsEx lngSize,lngICC
{
.lngSize dw lngSize
.lngICC dw lngICC
}
struc tRect m_Left,m_Right,m_Top,m_Bottom
{
.m_Left dw m_Left
.m_Right dw m_Right
.m_Top dw m_Top
.m_Bottom dw m_Bottom
}
ICC_USEREX_CLASSES equ 200h
WM_KEYDOWN equ 100h
;section '.rsrc' data readable resource from 'XP Resource.res'
section '.data' data readable writeable
_title db 'Win32 program XP style template',0
_class db 'FASMWIN32',0
wc WNDCLASS 0,WindowProc,0,0,NULL,NULL,NULL,COLOR_BTNFACE+1,NU LL,_class
msg MSG
iccex tagInitCommonControlsEx 4,ICC_USEREX_CLASSES
GRect tRect -1,-1,-1,-1
flags dd ?
caption db 'XP Style Without External Manifest File',0
message db 'Look At Button Below:',0
section '.code' code readable executable
start:
;invoke InitCommonControls,iccex
invoke MessageBox,HWND_DESKTOP,message,caption,[flags]
invoke GetModuleHandle,0
mov [wc.hInstance],eax
invoke LoadIcon,0,IDI_APPLICATION
mov [wc.hIcon],eax
invoke LoadCursor,0,IDC_ARROW
mov [wc.hCursor],eax
invoke RegisterClass,wc
invoke CreateWindowEx,0,_class,_title,WS_VISIBLE+WS_DLGFR AME+WS_SYSMENU,200,300,400,300,NULL,NULL,[wc.hInstance],NULL
msg_loop:
invoke GetMessage,msg,NULL,0,0
or eax,eax
jz end_loop
invoke TranslateMessage,msg
invoke DispatchMessage,msg
jmp msg_loop
end_loop:
invoke ExitProcess,[msg.wParam]
proc WindowProc hwnd,wmsg,wparam,lparam
push ebx esi edi
cmp [wmsg],WM_DESTROY
je wmdestroy
cmp [wmsg],WM_KEYDOWN
je keyboardproc
defwndproc:
invoke DefWindowProc,[hwnd],[wmsg],[wparam],[lparam]
jmp finish
keyboardproc:
invoke ApplyGlass,[hwnd],GRect
jmp finish
wmdestroy:
invoke PostQuitMessage,0
xor eax,eax
finish:
pop edi esi ebx
ret
endp
section '.idata' import data readable writeable
library kernel32,'KERNEL32.DLL',\
user32,'USER32.DLL',\
comctl32,'COMCTL32.DLL',\
dwmapi,'DWMAPI.DLL'
include 'include\apia\kernel32.inc'
include 'include\apia\user32.inc'
include 'include\apia\comctl32.inc'
;Private Declare Function ApplyGlass Lib "dwmapi.dll" Alias "DwmExtendFrameIntoClientArea" (ByVal hWnd As Long, rect As tRect) As Long
import dwmapi,\
ApplyGlass,'DwmExtendFrameIntoClientArea'