📄 resedit.asm
字号:
'ES_UPPERCASE,ES_MULTILINE,ES_RIGHT,ES_CENTER,',0
szSCBS db ' ,CBS_LOWERCASE,CBS_UPPERCASE, ,CBS_DISABLENOSCROLL,CBS_NOINTEGRALHEIGHT,',
'CBS_HASSTRINGS,CBS_SORT,CBS_OEMCONVERT,CBS_AUTOHSCROLL,CBS_OWNERDRAWVARIABLE,',
'CBS_OWNERDRAWFIXED, , ,CBS_DROPDOWN, ,',0
szSLBS db ' ,LBS_NOSEL,LBS_NODATA,LBS_DISABLENOSCROLL,LBS_EXTENDEDSEL,LBS_WANTKEYBOARDINPUT,',
'LBS_MULTICOLUMN,LBS_NOINTEGRALHEIGHT,LBS_USETABSTOPS,LBS_HASSTRINGS,',
'LBS_OWNERDRAWVARIABLE,LBS_OWNERDRAWFIXED,LBS_MULTIPLESEL,LBS_NOREDRAW,',
'LBS_SORT,LBS_NOTIFY,',0
szSTVS db ' , , , , , , , , , ,TVS_SHOWSELALWAYS,TVS_DISABLEDRAGDROP,',
'TVS_EDITLABELS,TVS_LINESATROOT,TVS_HASLINES,TVS_HASBUTTONS,',0
szSLVS db 'LVS_NOSORTHEADER,LVS_NOCOLUMNHEADER,LVS_NOSCROLL,LVS_OWNERDATA,',
'LVS_ALIGNLEFT,LVS_OWNERDRAWFIXED,LVS_EDITLABELS,LVS_AUTOARRANGE,',
'LVS_NOLABELWRAP,LVS_SHAREIMAGELISTS,LVS_SORTDESCENDING,LVS_SORTASCENDING,',
'LVS_SHOWSELALWAYS,LVS_SINGLESEL,LVS_SMALLICON,LVS_REPORT,',0
szSTBSTYLE db 'TBSTYLE_TRANSPARENT,TBSTYLE_REGISTERDROP,TBSTYLE_CUSTOMERASE,TBSTYLE_LIST,',
'TBSTYLE_FLAT,TBSTYLE_ALTDRAG,TBSTYLE_WRAPABLE,TBSTYLE_TOOLTIPS,',
' , , , ,',
' ,TBSTYLE_GROUP,TBSTYLE_CHECK,TBSTYLE_SEP,',0
szSSBARS db ' , , , ,',
'SBARS_TOOLTIPS, , ,SBARS_SIZEGRIP,',
' , , , ,',
' , , , ,',0
szSSBS db ' , , , , , , , , ,',
' , ,SBS_SIZEGRIP,',
'SBS_SIZEBOX,SBS_RIGHTALIGN,SBS_LEFTALIGN,SBS_VERT,',0
szSPBS db ' , , , , , ,',
' , , , , , ,',
' ,PBS_VERTICAL, ,PBS_SMOOTH,',0
szSTBS db ' , , , , , ,TBS_REVERSED,TBS_TOOLTIPS,TBS_NOTHUMB,',
'TBS_FIXEDLENGTH,TBS_ENABLESELRANGE,TBS_NOTICKS,',
'TBS_BOTH,TBS_TOP,TBS_VERT,TBS_AUTOTICKS,',0
szSUDS db ' , , , , , , ,UDS_HOTTRACK,UDS_NOTHOUSANDS,',
'UDS_HORZ,UDS_ARROWKEYS,UDS_AUTOBUDDY,',
'UDS_ALIGNLEFT,UDS_ALIGNRIGHT,UDS_SETBUDDYINT,UDS_WRAP,',0
szSTCS db 'TCS_FOCUSNEVER,TCS_TOOLTIPS,TCS_OWNERDRAWFIXED,TCS_FOCUSONBUTTONDOWN,',
'TCS_RAGGEDRIGHT,TCS_FIXEDWIDTH,TCS_MULTILINE,TCS_BUTTONS,',
' , ,TCS_FORCELABELLEFT,TCS_FORCEICONLEFT,',
'TCS_FLATBUTTONS,TCS_MULTISELECT,TCS_BOTTOM,TCS_SCROLLOPPOSITE,',0
szSMCS db ' , , , , , , , , ,',
' , ,MCS_NOTODAY,',
'MCS_NOTODAYCIRCLE,MCS_WEEKNUMBERS,MCS_MULTISELECT,MCS_DAYSTATE,',0
szSDTS db ' , , , ,',
' , , , ,',
' , ,DTS_RIGHTALIGN,DTS_APPCANPARSE,',
' ,DTS_LONGDATEFORMAT,DTS_SHOWNONE,DTS_UPDOWN,',0
szSANI db ' , , , , , , , , ,',
' , , ,',
'ACS_TIMER,ACS_AUTOPLAY,ACS_TRANSPARENT,ACS_CENTER,',0
szSNA db ' , , , ,',
' , , , ,',
' , , , ,',
' , , , ,',0
StyleArray dd szSDLG,szSSta,szSGrp,szSRad,szSChk,szSBut,szSEdi,szSEdi,
szSCBS,szSLBS,szSTVS,szSLVS,szSTBSTYLE,szSSBARS,szSSBS,
szSSBS,szSPBS,szSTBS,szSUDS,szSTCS,szSMCS,szSDTS,szSSta,
szSSta,szSSta,szSANI,szSNA,szSNA,szSNA,szSNA
szSS db 'BITMAP = 1110 WHITEFRAME = 1001',0dh,0ah
db 'OWNERDRAW = 1101 BLACKFRAME = 0111',0dh,0ah
db 'NOWORDWRAP = 1100 WHITERECT = 0110',0dh,0ah
db 'SIMPLE = 1011 GRAYRECT = 0101',0dh,0ah
db 'USERITEM = 1010 ICON = 0011',0
; db 'ETCHEDHORZ = 10000 ETCHEDVERT = 10001',0dh,0ah
; db 'ETCHEDFRAME= 10010',0
szBSG db 'BS_OWNERDRAW = 1011',0dh,0ah
db 'BS_GROUPBOX = 0111',0
szBSR db 'BS_OWNERDRAW = 1011',0dh,0ah
db 'BS_AUTORADIOBUTTON = 1001',0dh,0ah
db 'BS_RADIOBUTTON = 0100',0
szBSC db 'BS_OWNERDRAW = 1011',0dh,0ah
db 'BS_AUTO3STATE = 0110',0dh,0ah
db 'BS_3STATE = 0101',0dh,0ah
db 'BS_AUTOCHECKBOX = 0011',0dh,0ah
db 'BS_CHECKBOX = 0010',0
szBSB db 'BS_OWNERDRAW = 1011',0
szCBS db 'CBS_DROPDOWNLIST = 0011',0dh,0ah
db 'CBS_DROPDOWN = 0010',0
szLVS db 'LVS_LIST = 0011',0dh,0ah
db 'LVS_ICON = 0010',0
szTBSTYLE db 'TBSTYLE_CHECKGROUP = 0110',0
szSBS db 'SBS_HORZ = 0000',0dh,0ah
db 'SBS_TOPALIGN = 0010',0dh,0ah
db 'SBS_SIZEBOXTOPLEFTALIGN = 0010',0dh,0ah
db 'SBS_SIZEBOXBOTTOMRIGHTALIGN = 0100',0dh,0ah
db 'SBS_BOTTOMALIGN = 0100',0
szTBS db 'TBS_BOTTOM = 0000',0dh,0ah
db 'TBS_HORZ = 0000',0dh,0ah
db 'TBS_RIGHT = 0000',0
szTCS db 'TCS_TABS = 0000',0dh,0ah
db 'TCS_SINGLELINE = 0000',0dh,0ah
db 'TCS_RIGHTJUSTIFY = 0000',0dh,0ah
db 'TCS_RIGHT = 0010',0
szDTS db 'DTS_SHORTDATEFORMAT = 0000',0dh,0ah
db 'DTS_TIMEFORMAT = 0009',0dh,0ah
db 'DTS_SHORTDATECENTURYFORMAT = 000c',0
szTest db 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890',0
szDialog db '(ID),(Start ID),(Font),(Menu),(Name),Class,Caption,ExStyle,Style,',
'Left,Top,Width,Height,',0
szCtrl db '(ID),(Name),Class,Caption,ExStyle,Style,TabIndex,Left,Top,Width,Height,',0 ;^^^^^^^
; Nice dd 0 ; +432 688
Dialog STRUCT
ID dd 2000
StartID dd 2001 ; +4
lpFont db 64 dup(?) ; +8
lpMenu db 32 dup(?) ; +72
lpName db 32 dup(?) ; +104
Class db 32 dup(?) ; +136
lpCaption db 512 dup(?) ; +168
ExStyle dd 0 ; +424 680
Style dd 0 ; +428 684
Left dd 55 ; +436 692
Top dd 65 ; +440 696
Wth dd 40 ; +444 700
Hgt dd 20 ; +448 704
LeftOrg dd 0 ; +336 592 -60
TopOrg dd 0 ; +340 596 -56
WthOrg dd 0 ; +344 600 -52
HgtOrg dd 0 ; +348 604 -48
Chg dd 0
Code db 'eefttttxseeee0000000000000000000' ; +452 708
Border dd 0 ; +484 740
CntType dd 0 ; +488 744
Handle dd 0 ; +492 748 + 4 = 752
Dialog ENDS
Dlg Dialog <>
Controls STRUCT
ID dd 2001
lpName db 32 dup(?) ; +4
Class db 32 dup(?) ; +36
lpCaption db 512 dup(?) ; +68
ExStyle dd 0 ; +324 580
Style dd 0 ; +328 584
TabIndex dd 5 ; +332 588
Left dd 50 ; +336 592 -60
Top dd 50 ; +340 596 -56
Wth dd 40 ; +344 600 -52
Hgt dd 20 ; +348 604 -48
LeftOrg dd 0 ; +336 592 -60
TopOrg dd 0 ; +340 596 -56
WthOrg dd 0 ; +344 600 -52
HgtOrg dd 0 ; +348 604 -48
Chg dd 0
Code db 'etttxseeeee000000000000000000000' ; +352 608 -16
Border dd 0 ; +384 640 -12
CntType dd 0 ; +388 644 -8
Handle dd 0 ; +392 648 + 4 = 652 + 224 == 364
Controls ENDS
Ctrls Controls <>
.data?
CopyPaste STRUCT
ID dd ?
Class db 32 dup(?)
ExStyle dd ?
Style dd ?
Left dd ?
Top dd ?
Wth dd ?
Hgt dd ?
Border dd ?
CopyPaste ENDS
CopyP CopyPaste <?>
PasteOn dd ?
DlgStart dd ?
DlgClass dd ?
DlgStyle dd ?
DlgLeftOrg dd ?
DlgCode dd ?
DlgBorder dd ?
DlgCntType dd ?
DlgHandle dd ?
CtrlsStart dd ?
CtrlsStyle dd ?
CtrlsLeft dd ?
CtrlsLeftOrg dd ?
CtrlsCode dd ?
CtrlsBorder dd ?
CtrlsCntType dd ?
CtrlsHandle dd ?
SavOff dd ?
sEXStyle dd ?
sStyle dd ?
osvMaj dd ?
osvMin dd ?
hStatic dd ?
osv OSVERSIONINFO <?>
tci TC_ITEM <?>
lf LOGFONT <?>
rect RECT <?>
Prect RECT <?>
Srect RECT <?>
CBrect RECT <?>
Savrect RECT <?>
tbab TBADDBITMAP <?>
dis DRAWITEMSTRUCT <?>
icc INITCOMMONCONTROLSEX <?>
nmhdr NMHDR <?>
.code
;________________________________________________________________________________
DllEntry PROC hInstance:DWORD, reason:DWORD, reserved1:DWORD
.if reason == DLL_PROCESS_ATTACH ; When the dll is loaded
push hInstance
pop hInst
mov eax, TRUE
.elseif reason == DLL_PROCESS_DETACH
;---------- [Unregister our user classes] ----------
INVOKE UnregisterClass, offset WorkClass, hInst
INVOKE UnregisterClass, offset FormClass, hInst
INVOKE UnregisterClass, offset GroupClass, hInst
INVOKE UnregisterClass, offset SizeClassV, hInst
INVOKE UnregisterClass, offset SizeClassH, hInst
INVOKE UnregisterClass, offset MultiClass, hInst
; xor eax, eax
mov eax, TRUE
.endif
ret
DllEntry ENDP
;________________________________________________________________________________
CloseIt PROC fromparent:DWORD
push fromparent
pop FromParent
mov sw1, 2244
INVOKE SendMessage, hWnd, WM_CLOSE, 0, 0
ret
CloseIt Endp
;________________________________________________________________________________
FunctionEntry PROC hwnd:DWORD, hedit, hretparent, hretform
push hwnd
pop hParentA
push hedit
pop hAsmREdit
.if hedit
mov ecx, hedit
mov eax, [ecx]
mov hAsmEdit, eax
.else
and hAsmEdit, 0
.endif
push hretparent
pop hRetParent
push hretform
pop hRetForm
.if hretform
mov ecx, hRetParent
mov eax, [ecx]
mov ParCode, eax
.endif
INVOKE GetCommandLine
mov CommandLine, eax
; call InitCommonControls ; Initialize the common ctrl lib
mov icc.dwSize, sizeof INITCOMMONCONTROLSEX
mov icc.dwICC, ICC_LISTVIEW_CLASSES or ICC_TREEVIEW_CLASSES or\
ICC_TAB_CLASSES or ICC_BAR_CLASSES or ICC_COOL_CLASSES or\
ICC_DATE_CLASSES or ICC_INTERNET_CLASSES
INVOKE InitCommonControlsEx, addr icc
INVOKE LoadLibrary, addr RichEdDLL ; Load the Riched20.dll
mov hREdDll, eax
.if !eax
INVOKE MessageBox, NULL, addr szError1, addr AppName, MB_OK or MB_ICONERROR
jmp NoGo
.endif
INVOKE GetProcessHeap
mov hDefHeap, eax
INVOKE WinMain, hInst ,NULL, CommandLine, SW_SHOWDEFAULT
mov MainExit, eax
INVOKE FreeLibrary, hREdDll
NoGo:
.if FromParent ;|| !hAsmEdit
INVOKE ExitProcess, MainExit
.endif
ret
FunctionEntry Endp
;=====================================================
; WndMain PROCEDURE
;=====================================================
WinMain PROC uses ebx hinst:DWORD, hPrevInst, CmdLine, CmdShow
LOCAL wc:WNDCLASSEX
LOCAL msg:MSG
LOCAL Rmsg:MSG
LOCAL hwnd:DWORD, Wth, Hgt, Temp
mov wc.cbSize, sizeof WNDCLASSEX
mov wc.style, CS_BYTEALIGNCLIENT or CS_BYTEALIGNWINDOW
mov wc.lpfnWndProc, offset WndProc
mov wc.cbClsExtra, 0
mov wc.cbWndExtra, 0
push hInst
pop wc.hInstance
mov wc.hbrBackground, COLOR_WINDOW+1 ;COLOR_BTNFACE+1
mov wc.lpszMenuName, 0 ;offset MenuName
mov wc.lpszClassName, offset ClassName
INVOKE LoadIcon, 0, IDI_APPLICATION
mov wc.hIcon, eax
mov wc.hIconSm, 0
INVOKE LoadCursor, 0, IDC_ARROW
mov wc.hCursor, eax
INVOKE RegisterClassEx, addr wc
mov wc.style, CS_BYTEALIGNCLIENT or CS_BYTEALIGNWINDOW
mov wc.lpfnWndProc, offset WorkProc
mov wc.lpszClassName, offset WorkClass
mov wc.hbrBackground, COLOR_SCROLLBAR+1
INVOKE LoadCursor, 0, IDC_CROSS
mov wc.hCursor, eax
INVOKE RegisterClassEx, addr wc
; Need CS_PARENTDC for drawing moving frame
mov wc.style, CS_BYTEALIGNCLIENT or CS_BYTEALIGNWINDOW or CS_PARENTDC ;or CS_DBLCLKS
mov wc.lpfnWndProc, offset FormProc
mov wc.lpszClassName, offset FormClass
mov wc.hbrBackground, COLOR_BTNFACE+1
INVOKE LoadCursor, 0, IDC_CROSS
mov wc.hCursor, eax
INVOKE RegisterClassEx, addr wc
mov wc.style, CS_BYTEALIGNCLIENT or CS_BYTEALIGNWINDOW or CS_PARENTDC ;or CS_DBLCLKS
mov wc.lpfnWndProc, offset FormProc
mov wc.lpszClassName, offset GroupClass
mov wc.hbrBackground, COLOR_BTNFACE+1
INVOKE LoadCursor, 0, IDC_CROSS
mov wc.hCursor, eax
INVOKE RegisterClassEx, addr wc
;---------- [Register our sizing handle classes] ----------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -