\ 
( :       controls    Windows 95!!!)

DECIMAL
WINAPI: DialogBoxIndirectParamA USER32.DLL
WINAPI: EndDialog USER32.DLL
WINAPI: SetDlgItemTextA  USER32.DLL
WINAPI: GetDlgItem  USER32.DLL
WINAPI: SendMessageA USER32.DLL
WINAPI: SetWindowTextA   USER32.DLL
WINAPI: InitCommonControls COMCTL32.DLL
WINAPI: LoadImageA       USER32.DLL
WINAPI: ImageList_Create COMCTL32.DLL
WINAPI: ImageList_AddIcon    COMCTL32.DLL
WINAPI: FreeConsole KERNEL32.DLL



\ ----------------------------------------------------------------- 
HEX
IMAGE-BASE CONSTANT HINST  \ Instance  
       0 CONSTANT HCON   \ hwnd   
       4 CONSTANT CELL
       2 CONSTANT CS_HREDRAW
       1 CONSTANT CS_VREDRAW
       8 CONSTANT CS_DBLCLKS
      20 CONSTANT CS_OWNDC
 8000000 CONSTANT CW_USEDEFAULT
  CF0000 CONSTANT WS_OVERLAPPEDWINDOW
10000000 CONSTANT WS_VISIBLE
80000000 CONSTANT WS_POPUP
  800000 CONSTANT WS_BORDER
40000000 CONSTANT WS_CHILD
00C00000 CONSTANT WS_CAPTION
00080000 CONSTANT WS_SYSMENU
00010000 CONSTANT WS_TABSTOP
00020000 CONSTANT WS_GROUP
00040000 CONSTANT WS_SIZEBOX
00100000 CONSTANT WS_HSCROLL
00200000 CONSTANT WS_VSCROLL
      80 CONSTANT DS_MODALFRAME
      40 CONSTANT DS_SETFONT
      80 CONSTANT ES_AUTOHSCROLL
      40 CONSTANT ES_AUTOVSCROLL
    0001 CONSTANT ES_CENTER
    0000 CONSTANT ES_LEFT
    0004 CONSTANT ES_MULTILINE
    0800 CONSTANT ES_READONLY
    0002 CONSTANT ES_RIGHT
    1000 CONSTANT ES_WANTRETURN
    0002 CONSTANT LBS_SORT
    0100 CONSTANT LBS_NOINTEGRALHEIGHT
    0180 CONSTANT LB_ADDSTRING
    7F00 CONSTANT IDI_APPLICATION
    7F04 CONSTANT IDI_ASTERISK
    7F03 CONSTANT IDI_EXCLAMATION
    7F01 CONSTANT IDI_HAND
    7F02 CONSTANT IDI_QUESTION
      0F CONSTANT WM_PAINT
     111 CONSTANT WM_COMMAND
     110 CONSTANT WM_INITDIALOG
    004E CONSTANT WM_NOTIFY
       5 CONSTANT COLOR_WINDOW
       0 CONSTANT BS_PUSHBUTTON
       2 CONSTANT BS_CHECKBOX
       1 CONSTANT IDOK
       2 CONSTANT IDCANCEL
\       6 CONSTANT IDYES
\       7 CONSTANT IDNO

FFFF0000 CONSTANT TVI_ROOT
FFFF0001 CONSTANT TVI_FIRST
FFFF0002 CONSTANT TVI_LAST
FFFF0003 CONSTANT TVI_SORT

        1100 CONSTANT TV_FIRST
TV_FIRST 0 + CONSTANT TVM_INSERTITEM
TV_FIRST 9 + CONSTANT TVM_SETIMAGELIST
           1 CONSTANT ILC_MASK

        0001 CONSTANT TVIF_TEXT
        0002 CONSTANT TVIF_IMAGE
        0004 CONSTANT TVIF_PARAM
        0008 CONSTANT TVIF_STATE
        0010 CONSTANT TVIF_HANDLE
        0020 CONSTANT TVIF_SELECTEDIMAGE
        0040 CONSTANT TVIF_CHILDREN

        0001 CONSTANT TVS_HASBUTTONS
        0004 CONSTANT TVS_LINESATROOT
        0002 CONSTANT TVS_HASLINES

         1000 CONSTANT LVM_FIRST
LVM_FIRST 3 + CONSTANT LVM_SETIMAGELIST
LVM_FIRST 7 + CONSTANT LVM_INSERTITEM

: #define
  CREATE 0 0 BL WORD COUNT
  >NUMBER DUP IF 1- SWAP 1+ SWAP >NUMBER THEN 2DROP D>S ,
  DOES> @
;
#define DS_3DLOOK           0x0004
#define DS_FIXEDSYS         0x0008
#define DS_NOFAILCREATE     0x0010
#define DS_CONTROL          0x0400
#define DS_CENTER           0x0800
#define DS_CENTERMOUSE      0x1000
#define DS_CONTEXTHELP      0x2000

#define LVS_ICON                0x0000
#define LVS_REPORT              0x0001
#define LVS_SMALLICON           0x0002
#define LVS_LIST                0x0003
#define LVS_TYPEMASK            0x0003
#define LVS_SINGLESEL           0x0004
#define LVS_SHOWSELALWAYS       0x0008
#define LVS_SORTASCENDING       0x0010
#define LVS_SORTDESCENDING      0x0020
#define LVS_SHAREIMAGELISTS     0x0040
#define LVS_NOLABELWRAP         0x0080
#define LVS_AUTOARRANGE         0x0100
#define LVS_EDITLABELS          0x0200
#define LVS_NOSCROLL            0x2000

#define LVIF_TEXT               0x0001
#define LVIF_IMAGE              0x0002
#define LVIF_PARAM              0x0004
#define LVIF_STATE              0x0008

#define LVSIL_NORMAL            0
#define LVSIL_SMALL             1
#define LVSIL_STATE             2

#define LVCF_FMT                0x0001
#define LVCF_WIDTH              0x0002
#define LVCF_TEXT               0x0004
#define LVCF_SUBITEM            0x0008

#define LVCFMT_LEFT             0x0000
#define LVCFMT_RIGHT            0x0001
#define LVCFMT_CENTER           0x0002
#define LVCFMT_JUSTIFYMASK      0x0003


        0010 CONSTANT LR_LOADFROMFILE
        0080 CONSTANT LR_LOADREALSIZE

           1 CONSTANT IMAGE_ICON


0080 CONSTANT DI_Button 
0081 CONSTANT DI_Edit 
0082 CONSTANT DI_Static 
0083 CONSTANT DI_Listbox 
0084 CONSTANT DI_Scrollbar 
0085 CONSTANT DI_Combobox

DECIMAL
-1 CONSTANT  NM_OUTOFMEMORY          ( NM_FIRST-1)
-2 CONSTANT  NM_CLICK                ( NM_FIRST-2)
-3 CONSTANT  NM_DBLCLK               ( NM_FIRST-3)
-4 CONSTANT  NM_RETURN               ( NM_FIRST-4)
-5 CONSTANT  NM_RCLICK               ( NM_FIRST-5)
-6 CONSTANT  NM_RDBLCLK              ( NM_FIRST-6)
-7 CONSTANT  NM_SETFOCUS             ( NM_FIRST-7)
-8 CONSTANT  NM_KILLFOCUS            ( NM_FIRST-8)

          -400 CONSTANT TVN_FIRST               ( 0U-400U)
          -499 CONSTANT TVN_LAST                ( 0U-499U)
TVN_FIRST  1 - CONSTANT TVN_SELCHANGING         ( TVN_FIRST-1)
TVN_FIRST  2 - CONSTANT TVN_SELCHANGED          ( TVN_FIRST-2)
TVN_FIRST  5 - CONSTANT TVN_ITEMEXPANDING       ( TVN_FIRST-5)
TVN_FIRST  6 - CONSTANT TVN_ITEMEXPANDED        ( TVN_FIRST-6)
TVN_FIRST  7 - CONSTANT TVN_BEGINDRAG           ( TVN_FIRST-7)
TVN_FIRST  8 - CONSTANT TVN_BEGINRDRAG          ( TVN_FIRST-8)
TVN_FIRST  9 - CONSTANT TVN_DELETEITEM          ( TVN_FIRST-9)
TVN_FIRST 10 - CONSTANT TVN_BEGINLABELEDIT      ( TVN_FIRST-10)
TVN_FIRST 11 - CONSTANT TVN_ENDLABELEDIT        ( TVN_FIRST-11)
TVN_FIRST 12 - CONSTANT TVN_KEYDOWN             ( TVN_FIRST-12)

LVM_FIRST 27 + CONSTANT LVM_INSERTCOLUMN
LVM_FIRST 46 + CONSTANT LVM_SETITEMTEXT
LVM_FIRST  9 + CONSTANT LVM_DELETEALLITEMS

\ ----------------------------------------------------------------- 
0
4 -- DLGTEMPLATE.style
4 -- DLGTEMPLATE.dwExtendedStyle
2 -- DLGTEMPLATE.cdit
2 -- DLGTEMPLATE.x
2 -- DLGTEMPLATE.y
2 -- DLGTEMPLATE.cx
2 -- DLGTEMPLATE.cy
CONSTANT /DLGTEMPLATE

0
4 -- DLGITEMTEMPLATE.style
4 -- DLGITEMTEMPLATE.dwExtendedStyle
2 -- DLGITEMTEMPLATE.x
2 -- DLGITEMTEMPLATE.y
2 -- DLGITEMTEMPLATE.cx
2 -- DLGITEMTEMPLATE.cy
2 -- DLGITEMTEMPLATE.id
CONSTANT /DLGITEMTEMPLATE

0
4 -- TV_ITEM.mask
4 -- TV_ITEM.hItem
4 -- TV_ITEM.state
4 -- TV_ITEM.stateMask
4 -- TV_ITEM.pszText
4 -- TV_ITEM.cchTextMax
4 -- TV_ITEM.iImage
4 -- TV_ITEM.iSelectedImage
4 -- TV_ITEM.cChildren
4 -- TV_ITEM.lParam
CONSTANT /TV_ITEM

       0
       4 -- TV_INSERTSTRUCT.hParent
       4 -- TV_INSERTSTRUCT.hInsertAfter
/TV_ITEM -- TV_INSERTSTRUCT.item
CONSTANT /TV_INSERTSTRUCT

0
4 -- LV_ITEM.mask
4 -- LV_ITEM.iItem
4 -- LV_ITEM.iSubItem
4 -- LV_ITEM.state
4 -- LV_ITEM.stateMask
4 -- LV_ITEM.pszText
4 -- LV_ITEM.cchTextMax
4 -- LV_ITEM.iImage       \ index of the list view item's icon 
4 -- LV_ITEM.lParam       \ 32-bit value to associate with item 
CONSTANT /LV_ITEM

0 
4 -- LV_COLUMN.mask
4 -- LV_COLUMN.fmt
4 -- LV_COLUMN.cx
4 -- LV_COLUMN.pszText
4 -- LV_COLUMN.cchTextMax
4 -- LV_COLUMN.iSubItem
CONSTANT /LV_COLUMN

0
4 -- NMHDR.hwndFrom
4 -- NMHDR.idFrom
4 -- NMHDR.code
CONSTANT /NMHDR

0
4 -- POINT.x
4 -- POINT.y
CONSTANT /POINT

       0
  /NMHDR -- NM_TREEVIEW.hdr
       4 -- NM_TREEVIEW.action
/TV_ITEM -- NM_TREEVIEW.itemOld
/TV_ITEM -- NM_TREEVIEW.itemNew
  /POINT -- NM_TREEVIEW.ptDrag
CONSTANT /NM_TREEVIEW


\ *******      TreeViewItem
\ HERE 7 + 8 / 8 * HERE - ALLOT
HERE DUP /TV_INSERTSTRUCT DUP ALLOT ERASE
CONSTANT I.S  
TVI_FIRST I.S TV_INSERTSTRUCT.hInsertAfter !
TVIF_TEXT TVIF_IMAGE OR TVIF_HANDLE OR TVIF_SELECTEDIMAGE OR TVIF_PARAM OR
I.S TV_INSERTSTRUCT.item TV_ITEM.mask !
1 I.S TV_INSERTSTRUCT.item TV_ITEM.hItem !


\ *******      ListViewItem
\ HERE 7 + 8 / 8 * HERE - ALLOT
HERE DUP /LV_ITEM DUP ALLOT ERASE
CONSTANT L.I
LVIF_TEXT LVIF_IMAGE OR L.I LV_ITEM.mask !
2 L.I LV_ITEM.iImage !



\ *******      ListViewColumn
\ HERE 7 + 8 / 8 * HERE - ALLOT
HERE DUP /LV_COLUMN DUP ALLOT ERASE
CONSTANT L.C
LVCF_TEXT LVCF_SUBITEM OR LVCF_WIDTH OR L.C LV_COLUMN.mask !
150 L.C LV_COLUMN.cx !


\ *******       

: DIALOG: ( x y cx cy cdit style "name" -- )
  CREATE HERE 0 ,
  HERE 7 + 8 / 8 * HERE - ALLOT
  HERE SWAP !
  HERE DUP >R /DLGTEMPLATE DUP ALLOT ERASE
  R@ DLGTEMPLATE.style !
  R@ DLGTEMPLATE.cdit W!
  R@ DLGTEMPLATE.cy W!
  R@ DLGTEMPLATE.cx W!
  R@ DLGTEMPLATE.y W!
  R> DLGTEMPLATE.x W!
  0 W, \ menu  (no menu)
  0 W, \ class (def)
  0 W, \ title (no title)
  8 W,
;

: L" ( "ccc" -- ) \ *******    UNICODE
  [CHAR] " PARSE
  0 ?DO DUP I + C@ W, LOOP DROP 0 W,
;
: DIALOGITEM ( x y cx cy id style class -- ) \ *******  
  >R
  HERE DUP >R /DLGITEMTEMPLATE DUP ALLOT ERASE
  R@ DLGITEMTEMPLATE.style !
  R@ DLGITEMTEMPLATE.id W!
  R@ DLGITEMTEMPLATE.cy W!
  R@ DLGITEMTEMPLATE.cx W!
  R@ DLGITEMTEMPLATE.y W!
  R> DLGITEMTEMPLATE.x W!
  -1 W, R> W, \ class
  0 W,             \ title (initial text)
  0 ,             \ creation data
;
\ -----------------    ------------------------------
DECIMAL

0 0 370 184 6
DS_MODALFRAME  WS_POPUP OR  WS_VISIBLE OR  WS_CAPTION OR  WS_SYSMENU OR
DS_SETFONT OR DS_CENTER OR
DIALOG: DLG
\ L" Fixedsys"
L" MS Sans Serif" 0 W,  (  204 W,)
\ -2 ALLOT 10 W, L" Courier" 0 W,

258 6 50 14 1
WS_VISIBLE WS_CHILD OR WS_TABSTOP OR \ ( WS_BORDER OR) \ BS_CHECKBOX OR
DI_Button DIALOGITEM

6 6 244 80 2
ES_MULTILINE ES_AUTOVSCROLL OR  ( ES_AUTOHSCROLL OR) ES_WANTRETURN OR
WS_VSCROLL OR  ( WS_HSCROLL OR ) WS_VISIBLE OR  WS_CHILD OR WS_BORDER OR WS_TABSTOP OR
\ WS_GROUP OR WS_SIZEBOX OR
DI_Edit DIALOGITEM

258 23 50 20 3
WS_VISIBLE WS_CHILD OR \ WS_BORDER OR
DI_Static DIALOGITEM

258 44 100 42 4
WS_VISIBLE WS_CHILD OR  WS_BORDER OR
LBS_SORT OR ( LBS_NOINTEGRALHEIGHT OR)  WS_VSCROLL OR  WS_HSCROLL OR WS_TABSTOP OR
DI_Listbox DIALOGITEM

258 90 100 80 5
WS_VISIBLE WS_CHILD OR WS_BORDER OR TVS_HASBUTTONS OR TVS_LINESATROOT OR TVS_HASLINES OR
WS_TABSTOP OR
DI_Static DIALOGITEM
-10 ALLOT
L" SysTreeView32"
0 W, 0 ,

6 90 244 80 6
WS_VISIBLE WS_CHILD OR WS_BORDER OR LVS_REPORT OR
WS_TABSTOP OR
DI_Static DIALOGITEM
-10 ALLOT
L" SysListView32"
0 W, 0 ,

\ ---------------------------------------------------------------------------

: LOAD-ICON16 ( c-addr u -- hicon ) \      *.ico
  DROP >R
  LR_LOADFROMFILE 16 16 IMAGE_ICON R> 0 LoadImageA
;

: ForthList ( hwnd -- ) \ ******   Listbox'  
  >R
    CONTEXT @ @
    BEGIN
      DUP 0<>
    WHILE
      DUP COUNT  HERE OVER + 0!  HERE SWAP MOVE  HERE
      0 LB_ADDSTRING
      R@ SendMessageA DROP
      CDR
    REPEAT DROP
  R> DROP
;
: VocList ( wid hwnd -- ) \ ******      ListView
                          \          wid   
  >R
    @
    BEGIN
      DUP 0<>
    WHILE

      DUP L.I LV_ITEM.iItem !
      DUP COUNT  HERE OVER + 0!  HERE SWAP MOVE  HERE
      0 L.I LV_ITEM.iSubItem !
      L.I LV_ITEM.pszText !
      L.I 0 LVM_INSERTITEM
      R@ SendMessageA

      L.I LV_ITEM.iItem !
      1 L.I LV_ITEM.iSubItem !
      BASE @ >R HEX
      DUP 0 <# #S #> HERE OVER + 0!  HERE SWAP MOVE  HERE
      R> BASE !
      L.I LV_ITEM.pszText !
      L.I  L.I LV_ITEM.iItem @  LVM_SETITEMTEXT
      R@ SendMessageA DROP

      2 L.I LV_ITEM.iSubItem !
      DUP ?IMMEDIATE IF S" IMMEDIATE"
                     ELSE
                        DUP ?VOC IF S" VOCABULARY"
                                 ELSE S" " THEN
                     THEN DROP
      L.I LV_ITEM.pszText !
      L.I  L.I LV_ITEM.iItem @  LVM_SETITEMTEXT
      R@ SendMessageA DROP

      CDR
    REPEAT DROP
  R> DROP
;

: ForthVocs ( hwnd -- ) \    TreeView   (__  )
                        \    
  >R
    VOC-LIST @
    BEGIN
      DUP 0<>
    WHILE
      DUP CELL+ CELL+ @ ?DUP
      IF COUNT HERE OVER + 0!  HERE SWAP MOVE  HERE
      ELSE S" VOC" DROP THEN
             I.S TV_INSERTSTRUCT.item    TV_ITEM.pszText !
         DUP I.S TV_INSERTSTRUCT.item    TV_ITEM.hItem   !
         0   I.S TV_INSERTSTRUCT.hParent !
         I.S 0 TVM_INSERTITEM
         R@ SendMessageA \ hParent
      OVER CELL+ @
    ( CONTEXT @ @ )
    BEGIN
      DUP 0<>
    WHILE
      DUP COUNT  HERE OVER + 0!  HERE SWAP MOVE  HERE
           I.S TV_INSERTSTRUCT.item    TV_ITEM.pszText !
      OVER I.S TV_INSERTSTRUCT.hParent !
      DUP  I.S TV_INSERTSTRUCT.item    TV_ITEM.hItem   !
      I.S 0 TVM_INSERTITEM
      R@ SendMessageA DROP
      CDR
    REPEAT DROP DROP
    @
   REPEAT DROP
   R> DROP
;
: ForthTree ( hparent wid hwnd -- ) \ *******      wid 
                                    \ (      -  )
  >R
  DUP CELL+ @ ?DUP
  IF COUNT HERE OVER + 0!  HERE SWAP MOVE  HERE
  ELSE S" VOC" DROP THEN
       I.S TV_INSERTSTRUCT.item    TV_ITEM.pszText !
  DUP  I.S TV_INSERTSTRUCT.item    TV_ITEM.hItem   !
  DUP  I.S TV_INSERTSTRUCT.item    TV_ITEM.lParam  !
  SWAP I.S TV_INSERTSTRUCT.hParent !
  I.S 0 TVM_INSERTITEM
  R@ SendMessageA \ hParent
  SWAP @
  BEGIN
    DUP 0<>
  WHILE
    DUP ?VOC
    IF 2DUP NAME> >BODY @ R@ RECURSE
    ELSE
\      DUP COUNT  HERE OVER + 0!  HERE SWAP MOVE  HERE        \ \\\\\\   
\           I.S TV_INSERTSTRUCT.item    TV_ITEM.pszText !
\      OVER I.S TV_INSERTSTRUCT.hParent !
\      DUP  I.S TV_INSERTSTRUCT.item    TV_ITEM.hItem   !
\      I.S 0 TVM_INSERTITEM
\      R@ SendMessageA DROP
    THEN
    CDR
  REPEAT DROP DROP
  R> DROP
;

HEX
: LOWORD
  10000 MOD
;
DECIMAL

: (DlgWndProc)     ( lparam wparam uint hwnd )

  OVER WM_COMMAND =
  IF BASE @ >R HEX
     2>R
     ." WM_COMMAND: WPARAM: " DUP 0 <# # # # # [CHAR] . HOLD # # # # #> TYPE CR
     DUP ( LOWORD) IDCANCEL =
     IF NIP ( wparam )
        2R> R> BASE ! ( wparam uind hwnd )
        NIP ( wparam hwnd )
        EndDialog ( true ) DUP . EXIT
     ELSE 2R> R> BASE ! THEN
  THEN

  OVER WM_NOTIFY =
  IF BASE @ >R HEX
     2>R
\     ." WM_NOTIFY: "
\     OVER ( lparam )
\     DUP NMHDR.hwndFrom @ ." hwndFrom: " U.
\     DUP NMHDR.idFrom @ ." idFrom: " U.
\         NMHDR.code @ ." CODE: " DECIMAL . CR
     OVER NMHDR.code @ TVN_SELCHANGED =
     IF
        0 0 LVM_DELETEALLITEMS 6 2R@ NIP GetDlgItem SendMessageA DROP
        OVER NM_TREEVIEW.itemNew TV_ITEM.lParam @ 6 2R@ NIP GetDlgItem VocList
     THEN
     2R>
     R> BASE !
  THEN

  OVER WM_INITDIALOG =
  IF >R DROP 2DROP
     S" README!.TXT" R/O OPEN-FILE THROW >R
     HERE 10000 R@ READ-FILE THROW HERE + 0!
     R> CLOSE-FILE THROW
     HERE
     2 R@ SetDlgItemTextA DROP
     S" &OK" DROP 1 R@ SetDlgItemTextA DROP
     S" & " DROP 3 R@ SetDlgItemTextA
     4 R@ GetDlgItem ForthList

     0 3 ILC_MASK 16 16 ImageList_Create
     S" ICO\FOLDER03.ICO" LOAD-ICON16 OVER ImageList_AddIcon
     I.S TV_INSERTSTRUCT.item TV_ITEM.iImage !

     S" ICO\FOLDER04.ICO" LOAD-ICON16 OVER ImageList_AddIcon
     I.S TV_INSERTSTRUCT.item TV_ITEM.iSelectedImage !

     S" ICO\RTFDOC.ICO" LOAD-ICON16 OVER ImageList_AddIcon DROP
\     I.S TV_INSERTSTRUCT.item TV_ITEM.iImage !

     DUP 0 TVM_SETIMAGELIST 5 R@ GetDlgItem SendMessageA DROP
         LVSIL_SMALL LVM_SETIMAGELIST 6 R@ GetDlgItem SendMessageA DROP

\     0 L.C LV_COLUMN.iSubItem !
     S" " DROP L.C LV_COLUMN.pszText !
     150 L.C LV_COLUMN.cx !
     L.C 0 LVM_INSERTCOLUMN 6 R@ GetDlgItem SendMessageA DROP

\     1 L.C LV_COLUMN.iSubItem !
     S"   " DROP L.C LV_COLUMN.pszText !
     110 L.C LV_COLUMN.cx !
     L.C 1 LVM_INSERTCOLUMN 6 R@ GetDlgItem SendMessageA DROP

\     2 L.C LV_COLUMN.iSubItem !
     S" " DROP L.C LV_COLUMN.pszText !
     80 L.C LV_COLUMN.cx !
     L.C 2 LVM_INSERTCOLUMN 6 R@ GetDlgItem SendMessageA DROP

     0 FORTH-WORDLIST 5 R@ GetDlgItem ForthTree
\       FORTH-WORDLIST 6 R@ GetDlgItem VocList
\     5 R@ GetDlgItem ForthVocs

     S" -" DROP R> SetWindowTextA DROP
     EXIT
  THEN
  DROP WM_INITDIALOG = IF   2DROP 1
                       ELSE 2DROP 0 THEN
;
\  
VOCABULARY TEST1
VOCABULARY TEST2
ALSO TEST1 DEFINITIONS VOCABULARY TEST3 PREVIOUS DEFINITIONS

' (DlgWndProc) WNDPROC: DlgWndProc

InitCommonControls DROP

: T
  0 ['] DlgWndProc 0 DLG @ HINST DialogBoxIndirectParamA
  ."  RET-CODE " .
;
T
