用MASM32调用WinRAR中的对话框资源

王朝system·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

purpleendurer 原创

2005.11.18 第1版

注意:要用Alt+F4关闭它。

.386

.model flat, stdcall

option casemap:none

include \masm32\include\windows.inc

include \masm32\include\kernel32.inc

include \masm32\include\user32.inc

includelib \masm32\lib\user32.lib

includelib \masm32\lib\kernel32.lib

DlgProc PROTO :DWORD,:DWORD,:DWORD,:DWORD

.data

g_szWinRAR db "c:\program files\winrar\winrar.exe", 0

g_szDlgCaption db "GETARC", 0

g_szFailLoadLibrary db "LoadLibrary", 0

.data?

g_hRAR HANDLE ?

.code

start:

invoke LoadLibrary, ADDR g_szWinRAR

.if eax!=NULL

mov g_hRAR, eax

invoke DialogBoxParam, g_hRAR, ADDR g_szDlgCaption, NULL, ADDR DlgProc, NULL

invoke FreeLibrary, g_hRAR

mov eax, OFFSET g_szDlgCaption

.else

mov eax , OFFSET g_szFailLoadLibrary

.endif

invoke MessageBox, NULL, eax, eax, NULL

invoke ExitProcess, NULL

DlgProc proc hDlg: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM

.IF uMsg==WM_INITDIALOG

invoke MessageBox, NULL, OFFSET g_szWinRAR, OFFSET g_szWinRAR, MB_SYSTEMMODAL

invoke GetWindowLong, hDlg, GWL_STYLE

or eax, WS_MINIMIZEBOX or WS_MAXIMIZEBOX or WS_SYSMENU

invoke SetWindowLong, hDlg, GWL_STYLE, eax

.ELSE

invoke DefWindowProc, hDlg, uMsg, wParam, lParam

ret

.ENDIF

mov eax,TRUE

ret

DlgProc endp

end start

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航