⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 resedit.asm

📁 这是用win32汇编编写的资源编辑器
💻 ASM
📖 第 1 页 / 共 5 页
字号:
                   '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 + -