ExDlg
-----
For the NullSoft Install system, by Peter Windridge.

Instructions

- create your dlg with your favourite dialog editor and compile to a .res
  Currently, the extra control classes are available..
    "FILE_BROWSE", "DIR_BROWSE", "START_BROWSE".
  
  If you use the "FILE_BROWSE" control, you can use the Extended style to
  specify extra flags for the GetSaveFileName function, so you can do things
  like only allow them to specify files that are read only or something.
  
  (tip, when designing dialogs, give all the control ids simple numbers rather
  than smbols you need to look up in the resource.h for).
- Compile the script (or save it as a .res)
- In your NSIS script, push the filename of the resource file.
  e.g. push "$TEMP\script1.res"
  THen push the id of the dialog you want to display.
  e.g. push "101"
- Call create_dlg 
  e.g. CallInstDLL exdlg.dll create_dlg
  Now, the buffer address for all the data is on the top of the stack. You 
  will not need to pop it to a temporary variable unless you plan on doing 
  anything that might disturb the stack order.
- To get values, 
  1. push the id of the component you want the value of..
  2. call push_windowtext, e.g. CallInstDLL exdlg.dll push_windowtext
  3. pop the window value and do whatever with it.

  For this function, the stack should be as follows, [id,buffer_addr] (with 
  id on top).
- REMEMBER TO FREE THE BUFFER AFTERWARDS WITH dealloc, e.g. 
  CallInstDLL exdlg.dll dealloc
  For this, the address should be on top of the stack.

Errmm.. some notes..

1. Adding a static icon control of ID 1004 addes the installer
   icon to your dialog.

2. If you use a check box, 'push_windowtext' gives 'checked' if it is 
   checked or the text if it is not a check box or it is unchecked.

3. Similarly, using a slider control with 'push_windowtext' gives the 
   result of TBM_GETPOS.

4. If for some reason, the buffer value after create_dlg is 0 (so if you 
   want you can check to see if the dialog was created and values saved 
   successfully).


Peter.