mirror of
https://github.com/stasenso/SHA256.git
synced 2026-06-27 05:42:43 +03:00
601 lines
19 KiB
PHP
601 lines
19 KiB
PHP
; ¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤
|
|
;
|
|
; Macros for in memory dialog templates
|
|
;
|
|
; ¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤=÷=¤
|
|
|
|
; ----------------------------------------
|
|
; 2 macros for aligning a 32 bit register
|
|
; ----------------------------------------
|
|
|
|
align_2 MACRO reg
|
|
add reg, 1
|
|
and reg, -2
|
|
ENDM
|
|
|
|
align_4 MACRO reg
|
|
add reg, 3
|
|
and reg, -4
|
|
ENDM
|
|
|
|
; ------------------------------------------------
|
|
; write unicode string at current location in EDI
|
|
; ------------------------------------------------
|
|
ustring MACRO quoted_text
|
|
LOCAL asc_txt
|
|
.data
|
|
asc_txt db quoted_text,0
|
|
.code
|
|
invoke MultiByteToWideChar,CP_ACP,MB_PRECOMPOSED,
|
|
ADDR asc_txt,-1,edi,LENGTHOF asc_txt
|
|
add edi, LENGTHOF asc_txt*2
|
|
ENDM
|
|
|
|
; --------------
|
|
; dialog window
|
|
; --------------
|
|
Dialog MACRO quoted_text_title,quoted_font,fsize,dstyle,ctlcnt,tx,ty,wd,ht,bsize
|
|
push esi
|
|
push edi
|
|
invoke GlobalAlloc,GMEM_FIXED or GMEM_ZEROINIT,bsize
|
|
mov esi, eax
|
|
mov edi, esi
|
|
mov DWORD PTR [edi+0], DS_SETFONT or dstyle
|
|
mov WORD PTR [edi+8], ctlcnt
|
|
mov WORD PTR [edi+10], tx
|
|
mov WORD PTR [edi+12], ty
|
|
mov WORD PTR [edi+14], wd
|
|
mov WORD PTR [edi+16], ht
|
|
add edi, 22
|
|
ustring quoted_text_title
|
|
mov WORD PTR [edi], fsize
|
|
add edi, 2
|
|
ustring quoted_font
|
|
ENDM
|
|
|
|
; DLGITEMTEMPLATE
|
|
|
|
; ------------
|
|
; push button
|
|
; ------------
|
|
DlgButton MACRO quoted_caption,dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
mov WORD PTR [edi+18], 0FFFFh ;; class array
|
|
mov WORD PTR [edi+20], 0080h ;; button
|
|
add edi, 22
|
|
ustring quoted_caption
|
|
align_2 edi
|
|
add edi, 2
|
|
ENDM
|
|
|
|
; -------------
|
|
; radio button
|
|
; -------------
|
|
DlgRadio MACRO quoted_caption,dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or BS_AUTORADIOBUTTON or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
mov WORD PTR [edi+18], 0FFFFh ;; class array
|
|
mov WORD PTR [edi+20], 0080h ;; button
|
|
add edi, 22
|
|
ustring quoted_caption
|
|
align_2 edi
|
|
add edi, 2
|
|
ENDM
|
|
|
|
; ----------
|
|
; check box
|
|
; ----------
|
|
DlgCheck MACRO quoted_caption,dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or BS_AUTOCHECKBOX or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
mov WORD PTR [edi+18], 0FFFFh ;; class array
|
|
mov WORD PTR [edi+20], 0080h ;; button
|
|
add edi, 22
|
|
ustring quoted_caption
|
|
align_2 edi
|
|
add edi, 2
|
|
ENDM
|
|
|
|
; ----------
|
|
; group box
|
|
; ----------
|
|
DlgGroup MACRO quoted_caption,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or BS_GROUPBOX
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
mov WORD PTR [edi+18], 0FFFFh ;; class array
|
|
mov WORD PTR [edi+20], 0080h ;; button
|
|
add edi, 22
|
|
ustring quoted_caption
|
|
align_2 edi
|
|
add edi, 2
|
|
ENDM
|
|
|
|
; ---------------
|
|
; static control
|
|
; ---------------
|
|
DlgStatic MACRO quoted_caption,dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
mov WORD PTR [edi+18], 0FFFFh ;; class array
|
|
mov WORD PTR [edi+20], 0082h ;; static
|
|
add edi, 22
|
|
ustring quoted_caption
|
|
align_2 edi
|
|
add edi, 2
|
|
ENDM
|
|
|
|
; ---------------
|
|
; icon control
|
|
; ---------------
|
|
DlgIcon MACRO IconID,tx,ty,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or SS_ICON
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+16], ctlID
|
|
mov WORD PTR [edi+18], 0FFFFh ;; class array
|
|
mov WORD PTR [edi+20], 0082h ;; static
|
|
mov WORD PTR [edi+22], 0FFFFh ;; title array
|
|
mov WORD PTR [edi+24], IconID
|
|
add edi, 26
|
|
ENDM
|
|
|
|
; ---------------
|
|
; bitmap control
|
|
; ---------------
|
|
DlgBitmap MACRO BmpID,tx,ty,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or SS_BITMAP
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+16], ctlID
|
|
mov WORD PTR [edi+18], 0FFFFh ;; class array
|
|
mov WORD PTR [edi+20], 0082h ;; static
|
|
mov WORD PTR [edi+22], 0FFFFh ;; title array
|
|
mov WORD PTR [edi+24], BmpID
|
|
add edi, 26
|
|
ENDM
|
|
|
|
; ---------------
|
|
; icon_ex control
|
|
; ---------------
|
|
DlgIconEx MACRO IconID,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or SS_ICON or SS_CENTERIMAGE
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
mov WORD PTR [edi+18], 0FFFFh ;; class array
|
|
mov WORD PTR [edi+20], 0082h ;; static
|
|
mov WORD PTR [edi+22], 0FFFFh ;; title array
|
|
mov WORD PTR [edi+24], IconID
|
|
add edi, 26
|
|
ENDM
|
|
|
|
; -----------------
|
|
; bitmap_ex control
|
|
; -----------------
|
|
DlgBitmapEx MACRO BmpID,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or SS_BITMAP or SS_CENTERIMAGE
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
mov WORD PTR [edi+18], 0FFFFh ;; class array
|
|
mov WORD PTR [edi+20], 0082h ;; static
|
|
mov WORD PTR [edi+22], 0FFFFh ;; title array
|
|
mov WORD PTR [edi+24], BmpID
|
|
add edi, 26
|
|
ENDM
|
|
|
|
; -------------
|
|
; edit control
|
|
; -------------
|
|
DlgEdit MACRO dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
mov WORD PTR [edi+18], 0FFFFh
|
|
mov WORD PTR [edi+20], 0081h ;; edit control
|
|
add edi, 26
|
|
ENDM
|
|
|
|
; ---------
|
|
; list box
|
|
; ---------
|
|
DlgList MACRO dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
mov WORD PTR [edi+18], 0FFFFh
|
|
mov WORD PTR [edi+20], 0083h ;; edit control
|
|
add edi, 26
|
|
ENDM
|
|
|
|
; ----------
|
|
; combo box
|
|
; ----------
|
|
DlgCombo MACRO dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
mov WORD PTR [edi+18], 0FFFFh
|
|
mov WORD PTR [edi+20], 0085h ;; edit control
|
|
add edi, 26
|
|
ENDM
|
|
|
|
; -----------
|
|
; scroll bar
|
|
; -----------
|
|
DlgScroll MACRO dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
mov WORD PTR [edi+18], 0FFFFh
|
|
mov WORD PTR [edi+20], 0084h ;; edit control
|
|
add edi, 26
|
|
ENDM
|
|
|
|
; "SysHeader32" ok
|
|
; "ToolbarWindow32" ok
|
|
; "msctls_statusbar32" ok
|
|
; "msctls_trackbar32" ok
|
|
; "msctls_updown32" ok
|
|
; "msctls_progress32" ok
|
|
; "SysListView32" ok
|
|
; "SysTreeView32" ok
|
|
; "SysTabControl32" ok
|
|
; "SysAnimate32" ok
|
|
; "RichEdit" ok
|
|
; "RichEdit20a" ok
|
|
; "SysMonthCal32" ok
|
|
; "SysDateTimePick32" ok
|
|
; "SysIPAddress32" ok
|
|
; "msctls_hotkey32" ok
|
|
; "ReBarWindow32" ok
|
|
; "SysPager" ok
|
|
|
|
; "NativeFontCtl"
|
|
; "commctrl_DragListMsg"
|
|
; "ComboBoxEx32"
|
|
; "tooltips_class32"
|
|
|
|
; ---------------------------------------------
|
|
; controls below from the common control
|
|
; library require the API "InitCommonControls"
|
|
; to initialise the common control library.
|
|
; Later common controls require the API
|
|
; "InitCommonControlsEx".
|
|
; ---------------------------------------------
|
|
; These are the styles that activate the common control library
|
|
; for each type of control listed that must be placed in the "dwICC"
|
|
; member of the "INITCOMMONCONTROLSEX" structure used by the API
|
|
; function "InitCommonControlsEx".
|
|
; ---------------------------------------------
|
|
|
|
; ICC_ANIMATE_CLASS Load animate control class.
|
|
; ICC_BAR_CLASSES Load toolbar, status bar,
|
|
; trackbar, and tooltip control classes.
|
|
; ICC_COOL_CLASSES Load rebar control class.
|
|
; ICC_DATE_CLASSES Load date and time picker control class.
|
|
; ICC_HOTKEY_CLASS Load hot key control class.
|
|
; ICC_INTERNET_CLASSES Load IP address class.
|
|
; ICC_LISTVIEW_CLASSES Load list view and header control classes.
|
|
; ICC_PAGESCROLLER_CLASS Load pager control class.
|
|
; ICC_PROGRESS_CLASS Load progress bar control class.
|
|
; ICC_TAB_CLASSES Load tab and tooltip control classes.
|
|
; ICC_TREEVIEW_CLASSES Load tree view and tooltip control classes.
|
|
; ICC_UPDOWN_CLASS Load up-down control class.
|
|
; ICC_USEREX_CLASSES Load ComboBoxEx class.
|
|
; ICC_WIN95_CLASSES Load animate control, header, hot key,
|
|
; list view, progress bar, status bar, tab,
|
|
; tooltip, toolbar, trackbar, tree view,
|
|
; and up-down control classes.
|
|
|
|
; -------------------------------------
|
|
; general purpose common control macro
|
|
; -------------------------------------
|
|
DlgComCtl MACRO quoted_class,dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
add edi, 18
|
|
ustring quoted_class
|
|
align_2 edi
|
|
add edi, 4
|
|
ENDM
|
|
|
|
; --------------
|
|
; rebar control
|
|
; --------------
|
|
DlgRebar MACRO dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
add edi, 18
|
|
ustring "ReBarWindow32"
|
|
align_2 edi
|
|
add edi, 4
|
|
ENDM
|
|
|
|
; ---------------
|
|
; hotkey control
|
|
; ---------------
|
|
DlgHotkey MACRO dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
add edi, 18
|
|
ustring "msctls_hotkey32"
|
|
align_2 edi
|
|
add edi, 4
|
|
ENDM
|
|
|
|
|
|
; -------------------
|
|
; IP address control
|
|
; -------------------
|
|
DlgIPAddress MACRO dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
add edi, 18
|
|
ustring "SysIPAddress32"
|
|
align_2 edi
|
|
add edi, 4
|
|
ENDM
|
|
|
|
; -----------------
|
|
; data time picker
|
|
; -----------------
|
|
DlgDateTime MACRO dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
add edi, 18
|
|
ustring "SysDateTimePick32"
|
|
align_2 edi
|
|
add edi, 4
|
|
ENDM
|
|
|
|
; ---------------
|
|
; month calender
|
|
; ---------------
|
|
DlgMonthCal MACRO dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
add edi, 18
|
|
ustring "SysMonthCal32"
|
|
align_2 edi
|
|
add edi, 4
|
|
ENDM
|
|
|
|
; -----------
|
|
; status bar
|
|
; -----------
|
|
DlgStatus MACRO ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD
|
|
mov WORD PTR [edi+16], ctlID
|
|
add edi, 18
|
|
ustring "msctls_statusbar32"
|
|
align_2 edi
|
|
add edi, 2
|
|
ENDM
|
|
|
|
; -------------
|
|
; progress bar
|
|
; -------------
|
|
DlgProgress MACRO dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
add edi, 18
|
|
ustring "msctls_progress32"
|
|
align_2 edi
|
|
add edi, 2
|
|
ENDM
|
|
|
|
; ------------------
|
|
; list view control
|
|
; ------------------
|
|
DlgListView MACRO dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
add edi, 18
|
|
ustring "SysListView32"
|
|
align_2 edi
|
|
add edi, 2
|
|
ENDM
|
|
|
|
DlgTreeView MACRO dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
add edi, 18
|
|
ustring "SysTreeView32"
|
|
align_2 edi
|
|
add edi, 2
|
|
ENDM
|
|
|
|
; ------------
|
|
; tab control
|
|
; ------------
|
|
DlgTabControl MACRO dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
add edi, 18
|
|
ustring "SysTabControl32"
|
|
align_2 edi
|
|
add edi, 2
|
|
ENDM
|
|
|
|
; ------------------
|
|
; animation control
|
|
; ------------------
|
|
DlgAnimate MACRO dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
add edi, 18
|
|
ustring "SysAnimate32"
|
|
align_2 edi
|
|
add edi, 2
|
|
ENDM
|
|
|
|
; ---------------
|
|
; header control
|
|
; ---------------
|
|
DlgHeader MACRO dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
add edi, 18
|
|
ustring "SysHeader32"
|
|
align_2 edi
|
|
add edi, 2
|
|
ENDM
|
|
|
|
; -----------------
|
|
; richedit control
|
|
; -----------------
|
|
DlgRichEdit MACRO dstyle,tx,ty,wd,ht,ctlID
|
|
align_4 edi
|
|
mov DWORD PTR [edi+0], WS_VISIBLE or WS_CHILD or dstyle
|
|
mov WORD PTR [edi+8], tx
|
|
mov WORD PTR [edi+10], ty
|
|
mov WORD PTR [edi+12], wd
|
|
mov WORD PTR [edi+14], ht
|
|
mov WORD PTR [edi+16], ctlID
|
|
add edi, 18
|
|
ustring "RICHEDIT"
|
|
align_2 edi
|
|
add edi, 2
|
|
ENDM
|
|
|
|
; ------------------------------------
|
|
; create a modal dialog from the data
|
|
; written to the memory template.
|
|
; ------------------------------------
|
|
CallModalDialog MACRO Instance,Parent,DlgProc,lpExtra
|
|
invoke DialogBoxIndirectParam,Instance,esi,Parent,
|
|
ADDR DlgProc,lpExtra
|
|
push eax ;; preserve return value
|
|
invoke GlobalFree,esi ;; free memory
|
|
pop eax ;; restore return value
|
|
pop edi
|
|
pop esi
|
|
ENDM
|
|
|
|
; -------------------------------------
|
|
; creat a modeless dialog from the data
|
|
; written to the memory template.
|
|
; -------------------------------------
|
|
|
|
CallModelessDialog MACRO Instance,Parent,DlgProc,lParamInit
|
|
invoke CreateDialogIndirectParam,Instance,esi,Parent,
|
|
ADDR DlgProc,lParamInit
|
|
push eax ;; preserve return value
|
|
invoke GlobalFree,esi ;; free memory
|
|
pop eax ;; restore return value
|
|
pop edi
|
|
pop esi
|
|
ENDM
|