Hi,

Curious about the "Dialog to Window" tool in RadAsm, I wanted to study it's output creating a real window instead of a dialog application.
I considered it a good idea to study the output using a dialog, with all of the controls, available from the RadAsm toolbox, on it.

So I started a new project from the DialogAsMain template, and called it: DlgToWinClasses.
From the RadAsm toolbox I put all of the available controls on the dialog.
And I added a new Inc file to the project, and called it: DlgToWinExample.inc.

Then I started the Dialog To Window tool from the Tools menu.
I used the DlgToWin.rad template to convert the dialog to a real window.
At last I copied the output to the added include file: DlgToWinExample.inc.
So I could study it more easily.

Studying the output not everything was clear to me. Maybe you can clear things up for me?


First I looked at the Names and IDs

IDD_DIALOG        equ 1000

EDT_1            equ 1001
STC_1            equ 1002
GRP_1            equ 1003
BTN_1            equ 1004
CHK_1            equ 1005
RBN_1            equ 1006
CBO_1            equ 1007
LST_1            equ 1008
SCB_1            equ 1009
SCB_2            equ 1010
TAB_1            equ 1011
PGB_1            equ 1012
TRV_1            equ 1013
LSV_1            equ 1014
TRB_1            equ 1015
UDN_1            equ 1016
IMG_1            equ 1017
TBR_1            equ 1018
SBR_1            equ 1019
DTP_1            equ 1020
MVI_1            equ 1021
RED_1            equ 1022
UDC_1            equ 1023
CBE_1            equ 1024
SHP_1            equ 1025
IPA_1            equ 1026
ANI_1            equ 1027
HOT_1            equ 1028
PGR_1            equ 1029
PGR_2            equ 1030
REB_1            equ 1031
HDR_1            equ 1032
IDC_CAD1          equ 1033
IDC_RAE1          equ 1034
IDC_RAH1          equ 1035
IDC_GRD1          equ 1036
IDC_SPR1          equ 1037
IDC_WBR1          equ 1038
IDC_FBR1          equ 1039
IDC_RACCLB1      equ 1040
IDC_RACCTT1      equ 1041
IDC_HLK1          equ 1042
IDC_RG1          equ 1043
IDC_RAVID1        equ 1044

IDM_MENU          equ 10000
IDM_FILE_EXIT    equ 10001
IDM_HELP_ABOUT    equ 10101


As you can see we have 44 controls on the dialog.
It seems SCB_1 and SCB_2 must be from the same class.
And also PGR_1 and PGR_2 must be from the same class.
But the rest of the controls are all from a different class.
So I expect 42 control classes to be reported.

But these are the reported classes:

szWinClass        db 'DLGCLASS',0

szEdit            db 'Edit',0
szStatic          db 'Static',0
szButton          db 'Button',0
szCombo          db 'ComboBox',0
szList            db 'ListBox',0
szScroll          db 'ScrollBar',0
szSysTab          db 'SysTabControl32',0
szProgress        db 'msctls_progress32',0
szTreeView        db 'SysTreeView32',0
szListView        db 'SysListView32',0
szTrackBar        db 'msctls_trackbar32',0
szUpDown          db 'msctls_updown32',0
szToolBar        db 'ToolbarWindow32',0
szStatusBar      db 'msctls_statusbar32',0
szDateTime        db 'SysDateTimePick32',0
szMonthCal        db 'SysMonthCal32',0
szRichEdit        db 'RichEdit20A',0
szUdcClass        db 'UDCCLASS',0
szComboBoxEx      db 'ComboBoxEx32',0

szCustA          db '***',0
szCustB          db '***',0
szCustC          db '***',0
szCustD          db '***',0
db '',0


I expected to see 42 classes for the controls on my dialog.
But I only have 25 classnames. Where are the rest?

Now look at the last 4 sybolic addresses: szCustA, szCustB, szCustC, szCustD
They all have the same classname: '***'. Was this intended?

The last reported class has no symbolic name, and it has an empty classname. Why?


Now I looked at the generated captions:

szWinCap1         db 'Dialog As Main',0
szStaticCap1      db 'Static',0
szGroupCap1      db 'GroupBox',0
szButtonCap1      db 'Button',0
szCheckCap1      db 'CheckBox',0
szRadioCap1      db 'RadioButton',0
szStatusBarCap1  db 'StatusBar',0
szRichEditCap1    db 'RichEdit',0
szUdcCap1        db 'UDCCLASS',0

5                db 'Address:',0
1632459887        db 'http://www.radasm.com/',0
1415343477        db 'RaGrad',0


Look at the last 3 caption addresses: 5, 1632459887, 1415343477
They don't have a normal symbolic name like: 'sz...'. Why is that? Is it ok?


Finally I looked at the creation of the 44 controls in the WM_CREATE message.
The first 29 of them seem to be ok:

invoke CreateWindowEx,200h,addr szEdit,0,50010000h,159,48,73,28,hWin,EDT_1,hInstance,0
invoke CreateWindowEx,0h,addr szStatic,addr szStaticCap1,50000000h,270,48,76,31,hWin,STC_1,hInstance,0
invoke CreateWindowEx,0h,addr szButton,addr szGroupCap1,50000007h,15,81,109,40,hWin,GRP_1,hInstance,0
invoke CreateWindowEx,0h,addr szButton,addr szButtonCap1,50010000h,162,90,67,34,hWin,BTN_1,hInstance,0
invoke CreateWindowEx,0h,addr szButton,addr szCheckCap1,50010003h,273,96,79,28,hWin,CHK_1,hInstance,0
invoke CreateWindowEx,0h,addr szButton,addr szRadioCap1,50010009h,18,129,106,34,hWin,RBN_1,hInstance,0
invoke CreateWindowEx,0h,addr szCombo,0,50010003h,162,141,67,34,hWin,CBO_1,hInstance,0
invoke CreateWindowEx,200h,addr szList,0,50010141h,267,141,82,34,hWin,LST_1,hInstance,0
invoke CreateWindowEx,0h,addr szList,0,50000000h,18,180,106,37,hWin,SCB_1,hInstance,0
invoke CreateWindowEx,0h,addr szScroll,0,50000001h,165,186,64,37,hWin,SCB_2,hInstance,0
invoke CreateWindowEx,0h,addr szSysTab,0,50018000h,267,186,91,40,hWin,TAB_1,hInstance,0
invoke CreateWindowEx,0h,addr szProgress,0,50000000h,15,240,112,37,hWin,PGB_1,hInstance,0
invoke CreateWindowEx,200h,addr szTreeView,0,50010007h,159,234,70,49,hWin,TRV_1,hInstance,0
invoke CreateWindowEx,200h,addr szListView,0,50010003h,264,237,88,46,hWin,LSV_1,hInstance,0
invoke CreateWindowEx,0h,addr szTrackBar,0,50000000h,21,297,106,40,hWin,TRB_1,hInstance,0
invoke CreateWindowEx,0h,addr szUpDown,0,50000000h,186,300,17,46,hWin,UDN_1,hInstance,0
invoke CreateWindowEx,0h,addr szStatic,0,50000203h,270,300,106,55,hWin,IMG_1,hInstance,0
invoke CreateWindowEx,0h,addr szToolBar,0,50000001h,0,0,935,28,hWin,TBR_1,hInstance,0
invoke CreateWindowEx,0h,addr szStatusBar,addr szStatusBarCap1,50000003h,0,619,935,23,hWin,SBR_1,hInstance,0
invoke CreateWindowEx,0h,addr szDateTime,0,50010004h,270,369,115,46,hWin,DTP_1,hInstance,0
invoke CreateWindowEx,200h,addr szMonthCal,0,50000000h,15,432,127,100,hWin,MVI_1,hInstance,0
invoke CreateWindowEx,200h,addr szRichEdit,addr szRichEditCap1,50010000h,156,432,91,100,hWin,RED_1,hInstance,0
invoke CreateWindowEx,0h,addr szUdcClass,addr szUdcCap1,50000000h,273,429,82,106,hWin,UDC_1,hInstance,0
invoke CreateWindowEx,0h,addr szComboBoxEx,0,50010003h,429,42,124,52,hWin,CBE_1,hInstance,0
invoke CreateWindowEx,0h,addr szStatic,0,50000004h,585,42,109,34,hWin,SHP_1,hInstance,0
invoke CreateWindowEx,0h,addr szCustA,0,50010000h,732,42,121,31,hWin,IPA_1,hInstance,0
invoke CreateWindowEx,0h,addr szCustB,0,50000000h,432,93,118,46,hWin,ANI_1,hInstance,0
invoke CreateWindowEx,0h,addr szCustC,0,50010000h,582,93,118,40,hWin,HOT_1,hInstance,0
invoke CreateWindowEx,0h,addr szCustD,0,50000001h,735,93,124,43,hWin,PGR_1,hInstance,0


So far so good. But from now on there are no classnames anymore: This can't be ok, can it?

invoke CreateWindowEx,0h,addr ,0,50000000h,435,153,121,49,hWin,PGR_2,hInstance,0
invoke CreateWindowEx,0h,addr ,0,50000000h,585,153,109,40,hWin,REB_1,hInstance,0
invoke CreateWindowEx,0h,addr ,0,50000002h,732,156,136,49,hWin,HDR_1,hInstance,0
invoke CreateWindowEx,200h,addr ,0,56300000h,435,213,121,64,hWin,IDC_CAD1,hInstance,0
invoke CreateWindowEx,200h,addr ,0,50003000h,585,210,115,73,hWin,IDC_RAE1,hInstance,0
invoke CreateWindowEx,200h,addr ,0,50000000h,732,213,142,64,hWin,IDC_RAH1,hInstance,0
invoke CreateWindowEx,200h,addr ,0,5001000Dh,435,300,124,55,hWin,IDC_GRD1,hInstance,0
invoke CreateWindowEx,200h,addr ,0,5000002Fh,582,297,121,67,hWin,IDC_SPR1,hInstance,0


The next caption is: addr 6
As we have seen, in our .data section we only have the 'symbolic' name: 5
Why the difference? And is it ok?

invoke CreateWindowEx,0h,addr ,addr 6,5000000Fh,729,291,139,76,hWin,IDC_WBR1,hInstance,0
invoke CreateWindowEx,0h,addr ,0,50000000h,429,381,127,64,hWin,IDC_FBR1,hInstance,0
invoke CreateWindowEx,200h,addr ,0,50000000h,585,378,115,70,hWin,IDC_RACCLB1,hInstance,0
invoke CreateWindowEx,0h,addr ,0,80800000h,729,378,136,73,hWin,IDC_RACCTT1,hInstance,0


The next two captions are: addr 1632459888, addr 1415343478
As we have seen, in our .data section we only have the 'symbolic' names: 1632459887, 1415343477
The same questions as before: Why the difference? And is it ok?

invoke CreateWindowEx,200h,addr ,addr 1632459888,50000000h,432,462,121,79,hWin,IDC_HLK1,hInstance,0
invoke CreateWindowEx,200h,addr ,addr 1415343478,50000000h,585,459,118,79,hWin,IDC_RG1,hInstance,0
invoke CreateWindowEx,200h,addr ,0,52000000h,732,462,136,79,hWin,IDC_RAVID1,hInstance,0


Could something be wrong with the DlgToWin.rad template?
Or am I missing something important?

I appreciate your help. Thanks in advance.

Friendly regards,
mdevries.
Posted on 2006-12-15 10:30:13 by mdevries
Hi mdevries

You obviosly triggerd a bug by adding so many different controls.
Try adding fewer and stay away from custom controls, they are not fully supported.

Several controls share the same classname (button, checkbox, radiobutton and a few others have the same classname).

KetilO
Posted on 2006-12-16 05:51:33 by KetilO
Hi KetilO,

I followed your advice, and put less different controls on the dialog.
In fact, I used only one at a time, and studied the output from de DlgToWin.rad template.
The combined results from these 44 projects (we have 44 controls) are as follows:


These are the fully supported control classes:

Toolbox ToolTip:        Address:        Classname:
----------------        --------        ----------
EditText                szEdit          db 'Edit',0
Static                  szStatic        db 'Static',0
GroupBox                szButton        db 'Button',0
Button                  szButton        db 'Button',0
CheckBox                szButton        db 'Button',0
RadioButton            szButton        db 'Button',0
ComboBox                szCombo        db 'ComboBox',0
ListBox                szList          db 'ListBox',0

VScroll                szScroll        db 'ScrollBar',0
TabStrip                szSysTab        db 'SysTabControl32',0
ProgressBar            szProgress      db 'msctls_progress32',0
TreeView                szTreeView      db 'SysTreeView32',0
ListView                szListView      db 'SysListView32',0
TrackBar                szTrackBar      db 'msctls_trackbar32',0
UpDown                  szUpDown        db 'msctls_updown32',0

ToolBar                szToolBar      db 'ToolbarWindow32',0
StatusBar              szStatusBar    db 'msctls_statusbar32',0
DatePicker              szDateTime      db 'SysDateTimePick32',0
MonthView              szMonthCal      db 'SysMonthCal32',0
RichEdit                szRichEdit      db 'RichEdit20A',0
UserDefinedControl      szUdcClass      db 'UDCCLASS',0
ImageCombo              szComboBoxEx    db 'ComboBoxEx32',0



The next control is not exported correctly. The ScrollBar is exported as a ListBox:

Toolbox ToolTip:        Address:        Classname:
----------------        --------        ----------
HScroll                szList          db 'ListBox',0



For the next few controls my question is: Are the classnames correct?

Toolbox ToolTip:        Address:        Classname:
----------------        --------        ----------
Image                  szStatic        db 'Static',0
Shape                  szStatic        db 'Static',0

IPAddress              szCustA        db '***',0
Animate                szCustB        db '***',0
HotKey                  szCustC        db '***',0
HPager                  szCustD        db '***',0



These are the not fully supported controls (none of them has a caption property):
(There is no symbolic address for the classname, and the classname itself is empty)

Toolbox ToolTip:        Address:        Classname:
----------------        --------        ----------
VPager                                  db '',0
ReBar                                  db '',0
Header                                  db '',0
RaCad                                  db '',0
RaEdit                                  db '',0
RaHexEd                                db '',0
RaGrid                                  db '',0
SpreadSheet                            db '',0
FileBrowser                            db '',0
CodeCompleteListBox                    db '',0
RaCodeCompleteToolTip                  db '',0
RadAsm Video Custom Control            db '',0



These are the not fully supported controls (they all have a caption property):
(There is no symbolic address for the classname, and the classname itself is empty.
The symbolic address for the caption is a number, but in code another number is used to indicate the address.)


Toolbox ToolTip:        Address:        Classname:        Caption:
----------------        --------        ----------        --------
WebBrowser                              db '',0          2 db 'Address:',0
Static HyperLink                        db '',0          1632459887 db 'http://www.radasm.com/',0
RaGrad                                  db '',0          1415343477 db 'RaGrad',0



Summarized, my questions are:
-----------------------------
Is this correct: The Image and the Shape controls both share the same classname: 'Static'?
And is this correct: The IPAddress, Animate, HotKey and HPager controls ll share the same classname: '***'?
Could you please change the code for the HScroll control, so that it is exported as a ScrollBar, not as a ListBox?
And would it be a great pain to add some code in order to export the not yet completely supported controls correctly?

Friendly regards,
mdevries.
Posted on 2006-12-17 09:24:34 by mdevries
Hi mdevries

There was a bug in the addin.
The updated addin has support for some popular custom controls.
You can add more if you want. Sources for the addin is included.

For the class thing. I am shure you understand that several controls share the same class (button and static classes).

KetilO
Attachments:
Posted on 2006-12-17 18:51:44 by KetilO
Hi KetilO,

Thanks for the update.

For the class thing. I am shure you understand that several controls share the same class (button and static classes).


Yes, I do understand that some controls share the same class.

I am just curious about some other controls than button and static. For instance:
IPAddress, Animate, HotKey, HPager. They all share the same class: '***'.
Suppose you have these 4 controls on a dialog. Are they really of the same class?

Friendly regards,
mdevries.
Posted on 2006-12-18 14:54:10 by mdevries
No, thats one of the bugs fixed.

KetilO
Posted on 2006-12-18 15:47:24 by KetilO
Hi KetilO,

I added some classes to the WinToDlg project, compiled the project,
and copied the DLL to the AddIns directory.
All of the added controls, but one, come out OK.

The one that failed was: Static Hyperlink.
I used 66666 as the unique ID, and HYPERLINK as the classname.

This is the output for the class and the caption:
Class: szCustUnknown db 'Unknown' 
Caption: szCustUnknownCap1 db 'http://www.radasm.com/',0


Is something wrong with the ID or the Classname?

Friendly regards,
mdevries.
Posted on 2006-12-22 10:50:13 by mdevries
Hi

66666 and HYPERLINK is right.

Show us what you added.

KetilO
Posted on 2006-12-23 06:42:52 by KetilO
Hi KetilO,

This is partially the new contents of the DlgToWin.inc file.
It contains all the changes I made:

.data

szDlgToWin              db 'Dialog to window',0
szRad                  db 'Template (*.rad)',0,'*.rad',0,0
szMnu                  db 'Menu (*.mnu)',0,'*.mnu',0,0
szNotFound              db 'The template file was not found.',0Dh,0
szExport                db "Template,ID equ's,Classes,Names,Captions,Window,Controls,Commands",0
szProc                  db 'WndProc',0
szClass                db 'szWinClass,WinClass,szEdit,Edit,szStatic,Static,szButton,Button,szCombo,ComboBox,szList,ListBox,szScroll,ScrollBar,'
                        db 'szSysTab,SysTabControl32,szProgress,msctls_progress32,szTreeView,SysTreeView32,'
                        db 'szListView,SysListView32,szTrackBar,msctls_trackbar32,szUpDown,msctls_updown32,'
                        db 'szToolBar,ToolbarWindow32,szStatusBar,msctls_statusbar32,szDateTime,SysDateTimePick32,'
                        db 'szMonthCal,SysMonthCal32,szRichEdit,RichEdit20A,szUdcClass,UDCCLASS,szComboBoxEx,ComboBoxEx32,'
                        db 'szIPAdress,SysIPAddress32,szAnimate,SysAnimate32,szHotkey,msctls_hotkey32,szPager,SysPager,szRebar,ReBarWindow32,'
                        db 'szHeader,SysHeader32,szRAEdit,RAEdit,szRAHexEd,RAHexEd,szRAGrid,RAGrid,szWebBrowser,WEB_BROWSER,'
                        ;Add more custom controls here

                        ;------------------------------------------------------------------
                        ;Added by mdevries: Classnames taken from the DLLs project sources.
                        ;------------------------------------------------------------------
                        db 'szRACad,CADCLASS,'
                        db 'szSpreadSheet,SPREAD_SHEET,'
                        db 'szRAFileBrowser,RAFileBrowser,'
                        db 'szRACodeComplete,RACodeComplete,'
                        db 'szRAToolTip,RAToolTip,'
                        db 'szRAVideo,RAVIDEO,'
                        db 'szHyperLink,HYPERLINK,'
                        db 'szRAGraph,RAGRAPH,'
                        ;------------------------------------------------------------------

                        db 'szCustUnknown,Unknown',0

nClass                  db 0,1,2,3,3,3,3,4,5,6
                        db 6,7,8,9,10,11,12,2,13,14
                        db 15,16,17,18,19,2,20,21,22,23
                        db 23,24,25,26,27,28,29,30,31,32
                        db 33,34,35,36,37,38,39,40,41,42
                        db 43,44,45,46,47,48,49,50,51,52
szCaption              db ',szMenuName,szWinCap,szWinName,szEditCap,szEditName,szStaticCap,szStaticName,szGroupCap,szGroupName,szButtonCap,szButtonName,'
                        db 'szCheckCap,szCheckName,szRadioCap,szRadioName,szComboCap,szComboName,szListCap,szListName,szVScrollCap,szVScrollName,'
                        db 'szHScrollCap,szHScrollName,szTabCap,szTabName,szProgressCap,szProgressName,szTreeViewCap,szTreeViewName,'
                        db 'szListViewCap,szListViewName,szTrackBarCap,szTrackBarName,szUpDownCap,szUpDownName,szIconCap,szIconName,'
                        db 'szToolBarCap,szToolBarName,szStatusBarCap,szStatusBarName,szDatePickCap,szDatePickName,szMonthViewCap,szMonthViewName,'
                        db 'szRichEditCap,szRichEditName,szUdcCap,szUdcName,szCbExCap,szCbExName,szShpCap,szShpName,szIPCap,szIPName,szAniCap,szAniName,'
                        db 'szHotCap,szHotName,szHPagerCap,szHPagerName,szVPagerCap,szVPagerName,szRebarCap,szRebarName,szHdrCap,szHdrName,'
                        db 'szRAEditCap,szRAEditName,szRAHexEdCap,szRAHexEdName,szRAGridCap,szRAGridName,szWebBrowserCap,szWebBrowserName,'
                        ;Add more custom controls here

                        ;------------------------------------------------------------------
                        ;Added by mdevries: Address names will not cause any problems
                        ;------------------------------------------------------------------
                        db 'szRACadCap,szRACadName,'
                        db 'szSpreadSheetCap,szSpreadSheetName,'
                        db 'szRAFileBrowserCap,szRAFileBrowserName,'
                        db 'szRACodeCompleteCap,szRACodeCompleteName,'
                        db 'szRAToolTipCap,szRAToolTipName,'
                        db 'szRAVideoCap,szRAVideoName,'
                        db 'szHyperLinkCap,szHyperLinkName,'
                        db 'szRAGraphCap,szRAGraphName,'
                        ;------------------------------------------------------------------

                        db 'szCustUnknownCap,szCustUnknownName',0

;This table translates the custom controls unique ID to a fixed number
CustClassTranslate      dd 260,33 ;RAEdit
                        dd 261,34 ;RAHexEd
                        dd 280,35 ;RAGrid
                        dd 258,36 ;Web browser
                        ;Add more custom controls here

                        ;------------------------------------------------------------------
                        ;Added by mdevries: Unique IDs taken from the DLLs project sources.
                        ;------------------------------------------------------------------
                        dd 290,37 ;RACad
                        dd 256,38 ;SpreadSheet
                        dd 300,39 ;RAFileBrowser
                        dd 301,40 ;RACodeCompleteListBox
                        dd 302,41 ;RACodeCompleteToolTip
                        dd 902,42 ;RAVideo
                        dd 66666,43 ;Static HyperLink
                        dd 88888,44 ;RAGrad
                        ;------------------------------------------------------------------

                        ;------------------------------------------------------------------
                        ;Updated by mdevries: The next available fixed number
                        ;------------------------------------------------------------------
                        dd 0,45 ;Update 37 if more custom controls added
                        ;------------------------------------------------------------------


Can you find irregularities?

Friendly regards,
mdevries.
Posted on 2006-12-23 07:58:01 by mdevries
Hi mdevries

Works great. It is the wrong version of hyper link that is distributed.
I will include the correct one in my next release.

KetilO
Posted on 2006-12-24 06:48:58 by KetilO
Hi KetilO,

Works great. It is the wrong version of hyper link that is distributed.


Since the Static Hyperlink control is not converted correctly at the moment, I decided to inject some extra code into the DlgToWin DLL to find out what was going wrong. It appears the hyperlink has ID 12345 at the moment.

I changed the Unique ID to 12345, compiled the DLL project, and now it works.
Thanks, for your great Dialog to Window tool!

B.t.w: Am I allowed to extend the functionality of the Dialog to Window tool?
I am thinking of this:

1) Ask the user: "Do you want to create space for saving the Control Handles?".
If the user agrees, the space is created in the .data? section, that is: if the symbol doesn't exist yet. The symbolic addresses h, will be created in this way.

ifndef h
    h dd ?
endif


2) Ask the user: "Do  you want to save the Control Handles?"
If the user agrees, and if the symbolic address h for a given control exists, the handle of the control will be saved, at the line directly after the creation of the control, in this way:

ifdef h
    mov    h,eax
endif


Would this be a useful idea?
If the user doesn't need all of the control handles, he can create the space for the handles he really needs, all by himself. In that case he says No to the first question.
At compile time, the assembler knows whether or not the handle has to be saved, depending on the existance of h.

Friendly regards,
mdevries
Posted on 2006-12-24 07:42:17 by mdevries
Hi mdevries

It would be nice if you extended its use.

KetilO
Posted on 2006-12-24 13:36:24 by KetilO
Hi KetilO,

Here is my update of the Dialog to Window tool:
- It supports more controls.
- It supports the saving of Control Handles.

See attachment for the zipped DLL project:
- The DlgToWin.txt contains more specific information about the changes made.

---------------------
Added Control support
---------------------

All available controls from the RadAsm toolbox are supported now.
Note that I am using 12345 as the Unique ID for the Static Hyperlink, as this is the ID right now.
If this ID is changed to 66666 in the next release, this ID has to be updated in DlgToWin.inc.

----------------
Added commands
----------------

Instead of asking the user what he wants, I decided to add some items to the combobox on the dialog.

Handles                         ;Define the Control handles unconditionally
Handles Defined conditionally   ;Define the Control handles conditionally
Controls Saved                  ;Save the Control handles unconditionally
Controls Saved conditionally    ;Save the Control handles conditionally


The corresponding commands to be used in templates are:

[*DEFCTLHANDLE*]            ;Define the Control handles unconditionally
[*DEFCTLHANDLECOND*]        ;Define the Control handles conditionally
[*CREATECTLSAVED*]          ;Save the Control handles unconditionally
[*CREATECTLSAVEDCOND*]      ;Save the Control handles conditionally


--------------------------------
Command output for each control
--------------------------------

Handles:
h    dd ?


Handles Defined conditionally:
ifndef    h
    h    dd ?
endif


Controls Saved:
invoke CreateWindowEx........
mov    h,eax


Controls Saved conditionalyy:
invoke CreateWindowEx........
ifdef h
    mov    h,eax
endif


Hope it can be of any use.

Final note: I haven't taken care of version control.

Friendly regards,
mdevries.
Attachments:
Posted on 2006-12-25 16:14:00 by mdevries
Thanks

I will include it in my next release.

KetilO
Posted on 2006-12-26 14:19:14 by KetilO
Hi KetilO,

I used the project zipper, and the Select All button, to create the zip file in my last post. Before zipping the project, I had emptied the Bak folder, so there wouldn't be any trash in it. But in the resulting zip file, there is no empty Bak folder.

Is this a bug? If not, how can I force the project zipper to include an empty folder into the zip file? I couldn't find anything in the RadAsm help file.

Friendly regards,
mdevries.
Posted on 2006-12-27 01:13:57 by mdevries